TUTOS.EU

Mettre en place la redirection de port sur un DD WRT

Mettre en place le port forwarding sur routeur linksys avec le firmware DD WRT

De base, vérifiez que le firewall est actif

Sur un routeur Linksys DD WRT vous pouvez faire du port forwarding pour rediriger certains ports via l'interface web

Sauf que si vous listez les règles de forwarding au niveau du firewall avec la commande suivante (il faut vous connecter en ssh sur le routeur pour pouvoir l'entrer)

iptables -L FORWARD --line-numbers
Lien vers le fichier : cliquez ici Copier le code

Et bien on constate qu'il n'y a pas de filtrage sur la source. C'est open bar, tout le monde peut venir :

Il y a également une autre table à regarder, la table prerouting.
Pour la voir on utilise la commande suivante :

iptables -t nat --line-numbers -L
Lien vers le fichier : cliquez ici Copier le code

Ici aussi on constate qu'il n'y a pas de filtrage au niveau de l'ip source

Donc au lieu de passer par l'interface graphique, on va utiliser des lignes de commandes. Voici la première à utiliser pour ajouter une entrée avec filtrage sur la source dans la table prerouting.
Le port cible étant ici le 3389 (port RDP)

iptables -t nat -I PREROUTING -p tcp -s ipsource  -d $(nvram get wan_ipaddr) --dport 3389 -j DNAT --to ipcible:3389
Lien vers le fichier : cliquez ici Copier le code

Exemple de résultat via la commande
iptables -t nat --line-numbers -L

Pour information pour effacer une ligne dans prerouting il faut utiliser la commande

iptables -t nat -D PREROUTING numéro_ligne_a_effacer
Lien vers le fichier : cliquez ici Copier le code

En seconde étape on va s'attaquer à la chain forward qui présente actuellement ainsi :

En 8ème position on va y ajouter une règle pour autoriser une redirection pour le port 3389 sans filtrage sur le port ip source, ce filtrage ayant déjà été mis en place au niveau de PREROUTING

iptables -I FORWARD 8 -d ipcible -p tcp --dport 3389 -j logaccept
Lien vers le fichier : cliquez ici Copier le code

Exemple de résultat :

N'oubliez pas que pour visualiser la chaine forward la commande est :

iptables -L FORWARD --line-numbers
Lien vers le fichier : cliquez ici Copier le code

Si on avait voulu ajouter un filtrage sur l'ip source cela aurait donné

iptables -I FORWARD 8 -s ipsource -d ipcible -p tcp --dport 3389 -j logaccept
Lien vers le fichier : cliquez ici Copier le code

Pour information pour effacer une ligne dans FORWARD il faut utiliser la commande

iptables -t nat -D PREROUTING numéro_ligne_a_effacer
Lien vers le fichier : cliquez ici Copier le code

Pour que vos règles de firewall soient conservées après le reboot du routeur, allez sur
Administration>Commands

ensuite collez les commandes d'ajout de règles firewall dans la fenêtre 'Commands' et cliquez sur 'Save Firewall'.

Pour rappel et pour information, juste après installation du routeur cad sans modifications, la table iptables donne ceci :

Pur plus de détails sur le log du firewall allez sur
http://www.dd-wrt.com/wiki/index.php/Logging_with_DD-WRT

Les logs se regardent normalement avec les commandes du type ci-dessous mais rien ne se passe chez moi. Maintenant si c'est comme sous linux, de base rien n'est loggé et il faut passer des commandes de ce genre :
iptables -A INPUT -j LOG
iptables -A FORWARD -j LOG

pour avoir des logs

cat /tmp/var/log/messages
tail -f /var/log/messages
Lien vers le fichier : cliquez ici Copier le code

Et cela malgré l'activation préalable de cette option :

Pages Web

Site WebDescription
dd-wrt.comWiki du dd-wrt qui explique comment filtrer à la source la redirection
Lubos.rendek.orgArticle qui explique comment afficher la table prerouting et effacer une de ses entrées

2