3 votes

Configuration d'iptables sur un routeur dd-wrt

J'essaie de configurer un routeur dd-wrt pour qu'il serve de sous-réseau à des appareils arduino construits sur mesure.

L'idée est de faire en sorte que les routeurs LAN/WIFI soient ouverts aux dispositifs arduino et de n'autoriser le trafic à quitter le port WAN vers le LAN de l'entreprise que s'il s'agit du serveur de contrôle.

J'ai essayé d'appliquer les règles suivantes :

echo "allow all router connections"
iptables -A INPUT -s 127.0.0.1 -j ACCEPT
iptables -A OUTPUT -d 127.0.0.1 -j ACCEPT

echo "allow all ping"
iptables -A OUTPUT -p icmp -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT  -p icmp -m state --state ESTABLISHED,RELATED     -j ACCEPT

echo "allow all ntp (time)"
iptables -A OUTPUT -p udp --dport 123 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A INPUT  -p udp --sport 123 -m state --state ESTABLISHED     -j ACCEPT

echo "allow dns"
iptables -A OUTPUT -p udp -d 10.80.91.2 --dport 53 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A INPUT  -p udp -s 10.80.91.2 --sport 53 -m state --state ESTABLISHED     -j ACCEPT
iptables -A OUTPUT -p tcp -d 10.80.91.2 --dport 53 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A INPUT  -p tcp -s 10.80.91.2 --sport 53 -m state --state ESTABLISHED     -j ACCEPT

echo "allow webserver"
iptables -A OUTPUT -p tcp -d 10.80.91.2 --dport 80  -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A INPUT  -p tcp -s 10.80.91.2 --sport 80  -m state --state ESTABLISHED     -j ACCEPT

echo "drop everything else"
iptables -A INPUT -j DROP
iptables -A OUTPUT -j DROP

iptables -P INPUT   DROP
iptables -P FORWARD DROP
iptables -P OUTPUT  DROP

Malheureusement, à chaque fois que j'arrive à "iptables -A INPUT -j DROP", je perds ma connexion telnet au routeur, comme si toutes les règles que j'avais définies auparavant étaient ignorées.

C'est la première fois que j'utilise iptables et toutes les informations que je vois en ligne semblent indiquer que je le fais correctement.

Le routeur est un Linksys E2000 avec DD-WRT v24-sp2 (08/12/10) std-usb-ftp (révision SVN 14929).

3voto

mtiernan Points 131

Vous n'avez pas autorisé les connexions établies du type que vous utilisez dans la connexion. C'est pourquoi, lorsque vous ajoutez la dernière ligne, la connexion est interrompue.

Vous voudriez une ligne comme celle-ci :

-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT

Cela signifie que le pare-feu doit autoriser les connexions qui ont déjà été établies et qui fonctionnent. (c'est-à-dire qui ont passé toutes les autres règles du pare-feu).

Ceci étant dit, vous aurez également besoin d'une règle pour autoriser l'entrée de ssh, comme par exemple :

-A INPUT -s <source> -p tcp -m state --state NEW -m tcp --dport ssh -j ACCEPT

Ceci indique au pare-feu d'autoriser les connexions ssh à être a commencé .

J'espère que cela vous aidera.

P.S. Il faudrait que je vérifie, mais les lignes "-P" (les trois dernières) ne devraient pas être utilisées, car je pense qu'elles effacent les tables. Mais il faudrait que je revérifie.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X