Vous n'êtes pas identifié(e).
L'icône rouge permet de télécharger chaque page du wiki visitée au format PDF et la grise au format ODT →
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente Prochaine révision Les deux révisions suivantes | ||
doc:reseau:iptables-pare-feu-pour-une-passerelle [16/11/2014 10:32] Hypathie [Les règles du pare-feu pas à pas] |
doc:reseau:iptables-pare-feu-pour-une-passerelle [24/09/2015 17:41] milou [Les règles du pare-feu pas à pas] |
||
---|---|---|---|
Ligne 4: | Ligne 4: | ||
* Niveau requis : {{tag> avisé}} | * Niveau requis : {{tag> avisé}} | ||
* Commentaires : Fignoler le routage, installer un pare-feu sur une passerelle debian. | * Commentaires : Fignoler le routage, installer un pare-feu sur une passerelle debian. | ||
- | * Débutant, à savoir : [[:doc:systeme:commandes:le_debianiste_qui_papillonne|Utiliser GNU/Linux en ligne de commande, tout commence là !.]] :-) | + | * Suivi : {{tag>à-tester}} |
- | * Suivi : {{tag>à-tester à-placer}} | + | |
* Création par [[user>Hypathie]] 14/10/2014 | * Création par [[user>Hypathie]] 14/10/2014 | ||
* Testé par <...> le <...> FIXME | * Testé par <...> le <...> FIXME | ||
Ligne 15: | Ligne 14: | ||
===== Introduction ===== | ===== Introduction ===== | ||
- | Pour ce qui concerne iptables, ce wiki prend la suite du wiki [[http://wiki.debian-facile.org/atelier:chantier:iptables-pare-feu-pour-un-client|iptables-pare-feu-pour-un-client]], où les connaissances de base sur les commandes iptables ont été abordées.\\ | + | Pour ce qui concerne iptables, ce wiki prend la suite du wiki [[doc:reseau:iptables-pare-feu-pour-un-client?&#sauvegarder-ses-reglest|iptables-pare-feu-pour-un-client]], où les connaissances de base sur les commandes iptables ont été abordées.\\ |
Pour ce qui concerne les exemplifications qui vont suivre, je considérerai qu'une passerelle a été mise en place et que les commandes de base d'iptables sont connues. | Pour ce qui concerne les exemplifications qui vont suivre, je considérerai qu'une passerelle a été mise en place et que les commandes de base d'iptables sont connues. | ||
Ligne 67: | Ligne 66: | ||
<code user>ping 192.168.1.2</code> | <code user>ping 192.168.1.2</code> | ||
- | <code>PING 192.168.1.2 (192.168.1.2) 56(84) bytes of data. | + | <file config retour de la commande>PING 192.168.1.2 (192.168.1.2) 56(84) bytes of data. |
64 bytes from 192.168.1.2: icmp_req=1 ttl=64 time=0.132 ms | 64 bytes from 192.168.1.2: icmp_req=1 ttl=64 time=0.132 ms | ||
64 bytes from 192.168.1.2: icmp_req=2 ttl=64 time=0.123 ms | 64 bytes from 192.168.1.2: icmp_req=2 ttl=64 time=0.123 ms | ||
Ligne 73: | Ligne 72: | ||
--- 192.168.1.2 ping statistics --- | --- 192.168.1.2 ping statistics --- | ||
2 packets transmitted, 2 received, 0% packet loss, time 999ms | 2 packets transmitted, 2 received, 0% packet loss, time 999ms | ||
- | rtt min/avg/max/mdev = 0.123/0.127/0.132/0.012 ms</code> | + | rtt min/avg/max/mdev = 0.123/0.127/0.132/0.012 ms</file> |
^_^ | ^_^ | ||
Ligne 80: | Ligne 79: | ||
<code user>ping 192.168.0.22</code> | <code user>ping 192.168.0.22</code> | ||
- | <code>PING 192.168.0.22 (192.168.0.22) 56(84) bytes of data. | + | <file config retour de la commande>PING 192.168.0.22 (192.168.0.22) 56(84) bytes of data. |
^C | ^C | ||
--- 192.168.0.22 ping statistics --- | --- 192.168.0.22 ping statistics --- | ||
- | 2 packets transmitted, 0 received, 100% packet loss, time 1007ms</code> | + | 2 packets transmitted, 0 received, 100% packet loss, time 1007ms</file> |
8-) | 8-) | ||
Ligne 92: | Ligne 91: | ||
<code user>ping 192.168.0.22</code> | <code user>ping 192.168.0.22</code> | ||
- | <code>PING 192.168.0.22 (192.168.0.22) 56(84) bytes of data. | + | <file config retour de la commande>PING 192.168.0.22 (192.168.0.22) 56(84) bytes of data. |
^C | ^C | ||
--- 192.168.0.22 ping statistics --- | --- 192.168.0.22 ping statistics --- | ||
- | 6 packets transmitted, 0 received, 100% packet loss, time 4999ms</code> | + | 6 packets transmitted, 0 received, 100% packet loss, time 4999ms</file> |
:-\ | :-\ | ||
Ligne 102: | Ligne 101: | ||
<code user>ping 192.168.1.2</code> | <code user>ping 192.168.1.2</code> | ||
- | <code>PING 192.168.1.2 (192.168.1.2) 56(84) bytes of data. | + | <file config retour de la commande>PING 192.168.1.2 (192.168.1.2) 56(84) bytes of data. |
^C | ^C | ||
--- 192.168.1.2 ping statistics --- | --- 192.168.1.2 ping statistics --- | ||
- | 3 packets transmitted, 0 received, 100% packet loss, time 1999ms</code> | + | 3 packets transmitted, 0 received, 100% packet loss, time 1999ms</file> |
:-/ | :-/ | ||
Ligne 120: | Ligne 119: | ||
* La table de routage actuelle de debian-routeur : | * La table de routage actuelle de debian-routeur : | ||
<code user>route -n</code> | <code user>route -n</code> | ||
- | <code>Table de routage IP du noyau | + | <file config retour de la commande>Table de routage IP du noyau |
Destination Passerelle Genmask Indic Metric Ref Use Iface | Destination Passerelle Genmask Indic Metric Ref Use Iface | ||
default 192.168.0.254 0.0.0.0 UG 0 0 0 eth0 | default 192.168.0.254 0.0.0.0 UG 0 0 0 eth0 | ||
| | ||
192.168.0.0 * 255.255.255.0 U 0 0 0 eth0 | 192.168.0.0 * 255.255.255.0 U 0 0 0 eth0 | ||
- | 192.168.1.0 * 255.255.255.0 U 0 0 0 eth1</code> | + | 192.168.1.0 * 255.255.255.0 U 0 0 0 eth1</file> |
- | L'étoile ''*'' dans la colonne ''Passerelle'' indique que le réseau de destination ''192.168.0.0'' (i.e.192.168.0.0/24) n'a pas de passerelle.\\ | + | L'étoile ''*'' dans la colonne ''Passerelle'' indique que le réseau de destination ''192.168.0.0'' (i.e.192.168.0.0/24) n'a pas de passerelle.\\ |
+ | |||
De même (''*'') le réseau de destination 192.168.1.0/24 n'a pas de passerelle. | De même (''*'') le réseau de destination 192.168.1.0/24 n'a pas de passerelle. | ||
Ligne 134: | Ligne 134: | ||
<code root> | <code root> | ||
- | route add -net 192.168.0.0 netmask 255.255.255.0 gw 192.168.0.1 dev eth0 | + | route add -net 192.168.0.0 netmask 255.255.255.0 gw 192.168.0.1 dev eth0</code> |
- | route add -net 192.168.1.0 netmask 255.255.255.0 gw 192.168.1.1 dev eth1 | + | <code root>route add -net 192.168.1.0 netmask 255.255.255.0 gw 192.168.1.1 dev eth1 |
</code> | </code> | ||
Ligne 142: | Ligne 142: | ||
ou en root ;-) | ou en root ;-) | ||
<code root>route -n</code> | <code root>route -n</code> | ||
- | <code>Table de routage IP du noyau | + | <file config retour de la commande>Table de routage IP du noyau |
Destination Passerelle Genmask Indic Metric Ref Use Iface | Destination Passerelle Genmask Indic Metric Ref Use Iface | ||
0.0.0.0 192.168.0.254 0.0.0.0 UG 0 0 0 eth0 | 0.0.0.0 192.168.0.254 0.0.0.0 UG 0 0 0 eth0 | ||
Ligne 148: | Ligne 148: | ||
192.168.0.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0 | 192.168.0.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0 | ||
192.168.1.0 192.168.1.1 255.255.255.0 UG 0 0 0 eth1 | 192.168.1.0 192.168.1.1 255.255.255.0 UG 0 0 0 eth1 | ||
- | 192.168.1.0 0.0.0.0 255.255.255.0 U 0 0 0 eth1</code> | + | 192.168.1.0 0.0.0.0 255.255.255.0 U 0 0 0 eth1</file> |
* Ping de l'ordinateur B (192.168.1.0/24) vers l'ordinateur A (192.168.0.0/24) | * Ping de l'ordinateur B (192.168.1.0/24) vers l'ordinateur A (192.168.0.0/24) | ||
<code user>ping 192.168.0.22</code> | <code user>ping 192.168.0.22</code> | ||
- | <code>PING 192.168.0.22 (192.168.0.22) 56(84) bytes of data. | + | <file config retour de la commande>PING 192.168.0.22 (192.168.0.22) 56(84) bytes of data. |
64 bytes from 192.168.0.22: icmp_req=1 ttl=63 time=0.546 ms | 64 bytes from 192.168.0.22: icmp_req=1 ttl=63 time=0.546 ms | ||
64 bytes from 192.168.0.22: icmp_req=2 ttl=63 time=0.338 ms | 64 bytes from 192.168.0.22: icmp_req=2 ttl=63 time=0.338 ms | ||
Ligne 159: | Ligne 159: | ||
--- 192.168.0.22 ping statistics --- | --- 192.168.0.22 ping statistics --- | ||
3 packets transmitted, 3 received, 0% packet loss, time 2000ms | 3 packets transmitted, 3 received, 0% packet loss, time 2000ms | ||
- | rtt min/avg/max/mdev = 0.338/0.409/0.546/0.098 ms</code> | + | rtt min/avg/max/mdev = 0.338/0.409/0.546/0.098 ms</file> |
=) | =) | ||
Ligne 165: | Ligne 165: | ||
* Par contre le ping de l'ordinateur A (192.168.0.0/22) vers l'ordinateur B (192.168.1.0/22) | * Par contre le ping de l'ordinateur A (192.168.0.0/22) vers l'ordinateur B (192.168.1.0/22) | ||
<code user>ping 192.168.1.2</code> | <code user>ping 192.168.1.2</code> | ||
- | <code>PING 192.168.1.2 (192.168.1.2) 56(84) bytes of data. | + | <file config retour de la commande>PING 192.168.1.2 (192.168.1.2) 56(84) bytes of data. |
^C | ^C | ||
--- 192.168.1.2 ping statistics --- | --- 192.168.1.2 ping statistics --- | ||
- | 3 packets transmitted, 0 received, 100% packet loss, time 1999ms</code> | + | 3 packets transmitted, 0 received, 100% packet loss, time 1999ms</file> |
:-| | :-| | ||
Ligne 177: | Ligne 177: | ||
Sur l'ordinateur A, IP:192.168.0.22 : | Sur l'ordinateur A, IP:192.168.0.22 : | ||
<code root>route -n</code> | <code root>route -n</code> | ||
- | <code>Table de routage IP du noyau | + | <file config retour de la commande>Table de routage IP du noyau |
Destination Passerelle Genmask Indic Metric Ref Use Iface | Destination Passerelle Genmask Indic Metric Ref Use Iface | ||
0.0.0.0 192.168.0.254 0.0.0.0 UG 0 0 0 eth0 | 0.0.0.0 192.168.0.254 0.0.0.0 UG 0 0 0 eth0 | ||
- | 192.168.0.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0</code> | + | 192.168.0.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0</file> |
Il faut donc instruire la table de routage de l'ordinateur A de l'existence du réseau B et lui indiquer que la route à prendre est la passerelle ! | Il faut donc instruire la table de routage de l'ordinateur A de l'existence du réseau B et lui indiquer que la route à prendre est la passerelle ! | ||
Ligne 186: | Ligne 186: | ||
<code root>route -n</code> | <code root>route -n</code> | ||
- | <code>Table de routage IP du noyau | + | <file config retour de la commande>Table de routage IP du noyau |
Destination Passerelle Genmask Indic Metric Ref Use Iface | Destination Passerelle Genmask Indic Metric Ref Use Iface | ||
0.0.0.0 192.168.0.254 0.0.0.0 UG 0 0 0 eth0 | 0.0.0.0 192.168.0.254 0.0.0.0 UG 0 0 0 eth0 | ||
192.168.0.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0 | 192.168.0.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0 | ||
- | 192.168.1.0 192.168.0.1 255.255.255.0 UG 0 0 0 eth0</code> | + | 192.168.1.0 192.168.0.1 255.255.255.0 UG 0 0 0 eth0</file> |
* Et maintenant le ping de l'ordinateur A vers l'ordinateur B: | * Et maintenant le ping de l'ordinateur A vers l'ordinateur B: | ||
<code user>ping 192.168.1.2</code> | <code user>ping 192.168.1.2</code> | ||
- | <code>PING 192.168.1.2 (192.168.1.2) 56(84) bytes of data. | + | <file config retour de la commande>PING 192.168.1.2 (192.168.1.2) 56(84) bytes of data. |
64 bytes from 192.168.1.2: icmp_req=1 ttl=63 time=0.504 ms | 64 bytes from 192.168.1.2: icmp_req=1 ttl=63 time=0.504 ms | ||
64 bytes from 192.168.1.2: icmp_req=2 ttl=63 time=0.308 ms | 64 bytes from 192.168.1.2: icmp_req=2 ttl=63 time=0.308 ms | ||
Ligne 200: | Ligne 200: | ||
--- 192.168.1.2 ping statistics --- | --- 192.168.1.2 ping statistics --- | ||
2 packets transmitted, 2 received, 0% packet loss, time 999ms | 2 packets transmitted, 2 received, 0% packet loss, time 999ms | ||
- | rtt min/avg/max/mdev = 0.308/0.406/0.504/0.098 ms</code> | + | rtt min/avg/max/mdev = 0.308/0.406/0.504/0.098 ms</file> |
8-) | 8-) | ||
Ligne 271: | Ligne 271: | ||
Ré-préquis qui déterminent le fait que l'ordinateur B puisse recevoir des paquets, et en envoyer. | Ré-préquis qui déterminent le fait que l'ordinateur B puisse recevoir des paquets, et en envoyer. | ||
- | Ainsi, si La commande installée précédemment \\ ''iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE''\\ permettait la transmission des paquets du réseau interne (eth1), au externe (eth0), et vice-versa c'est parce qu'on avait laissé la police par défaut pour la tables FILTER du pare-feu de la passerelle. | + | Ainsi, si La commande installée précédemment \\ |
+ | |||
+ | ''iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE''\\ | ||
+ | |||
+ | permettait la transmission des paquets du réseau interne (eth1), au externe (eth0), et vice-versa c'est parce qu'on avait laissé la police par défaut pour la tables FILTER du pare-feu de la passerelle. | ||
* Nous obtenons pour l'instant : | * Nous obtenons pour l'instant : | ||
<code root>iptables -L -t nat && iptables -L</code> | <code root>iptables -L -t nat && iptables -L</code> | ||
- | <code> | + | <file config retour de la commande> |
Chain PREROUTING (policy ACCEPT) | Chain PREROUTING (policy ACCEPT) | ||
target prot opt source destination | target prot opt source destination | ||
Ligne 296: | Ligne 300: | ||
Chain OUTPUT (policy ACCEPT) | Chain OUTPUT (policy ACCEPT) | ||
target prot opt source destination | target prot opt source destination | ||
- | </code> | + | </file> |
====Dépendance entre NAT et FILTER (FORWARD)==== | ====Dépendance entre NAT et FILTER (FORWARD)==== | ||
Ligne 306: | Ligne 310: | ||
<code root> | <code root> | ||
- | iptables -F | + | iptables -F</code> |
- | iptables -X | + | <code root>iptables -X</code> |
- | iptables -t nat -F | + | <code root>iptables -t nat -F</code> |
- | iptables -t nat -X | + | <code root>iptables -t nat -X</code> |
- | iptables -P FORWARD DROP | + | <code root>iptables -P FORWARD DROP</code> |
- | iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE | + | <code root>iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE |
</code> | </code> | ||
Ligne 317: | Ligne 321: | ||
-Ping de l'ordinateur A vers B : | -Ping de l'ordinateur A vers B : | ||
<code user>ping 192.168.1.2</code> | <code user>ping 192.168.1.2</code> | ||
- | <code> | + | <file config retour de la commande> |
PING 192.168.1.2 (192.168.1.2) 56(84) bytes of data. | PING 192.168.1.2 (192.168.1.2) 56(84) bytes of data. | ||
^C | ^C | ||
--- 192.168.1.2 ping statistics --- | --- 192.168.1.2 ping statistics --- | ||
3 packets transmitted, 0 received, 100% packet loss, time 2017ms | 3 packets transmitted, 0 received, 100% packet loss, time 2017ms | ||
- | </code> | + | </file> |
-Ping de l'ordinateur A vers l'IP de google.fr : | -Ping de l'ordinateur A vers l'IP de google.fr : | ||
<code user>ping 64.233.166.94</code> | <code user>ping 64.233.166.94</code> | ||
- | <code> | + | <file config retour de la commande> |
PING 64.233.166.94 (64.233.166.94) 56(84) bytes of data. | PING 64.233.166.94 (64.233.166.94) 56(84) bytes of data. | ||
^C | ^C | ||
--- 64.233.166.94 ping statistics --- | --- 64.233.166.94 ping statistics --- | ||
3 packets transmitted, 0 received, 100% packet loss, time 2014m | 3 packets transmitted, 0 received, 100% packet loss, time 2014m | ||
- | </code> | + | </file> |
//De même on peut tester : depuis l'ordinateur B au moyen du navigateur pour constater qu'il n'y a plus de navigation.// | //De même on peut tester : depuis l'ordinateur B au moyen du navigateur pour constater qu'il n'y a plus de navigation.// | ||
Ligne 337: | Ligne 341: | ||
**__Les commandes pour tout annuler et revenir à l'état précédent__** : | **__Les commandes pour tout annuler et revenir à l'état précédent__** : | ||
<code root> | <code root> | ||
- | iptables -F | + | iptables -F</code> |
- | iptables -X | + | <code root>iptables -X</code> |
- | iptables -t nat -F | + | <code root>iptables -t nat -F</code> |
- | iptables -t nat -X | + | <code root>iptables -t nat -X</code> |
- | iptables -P INPUT ACCEPT | + | <code root>iptables -P INPUT ACCEPT</code> |
- | iptables -P FORWARD ACCEPT | + | <code root>iptables -P FORWARD ACCEPT</code> |
- | iptables -P OUTPUT ACCEPT | + | <code root>iptables -P OUTPUT ACCEPT |
</code> | </code> | ||
INPUT et OUTPUT, pour ne pas avoir à répéter ce rappel, plus bas, quand nous mettrons en place les règles des chaînes INPUT et OUTPUT de la table FILTER. | INPUT et OUTPUT, pour ne pas avoir à répéter ce rappel, plus bas, quand nous mettrons en place les règles des chaînes INPUT et OUTPUT de la table FILTER. | ||
Ligne 376: | Ligne 380: | ||
iptables -t filter -A FORWARD -i eth1 -o eth0 -s 192.168.1.0/24 -d 0.0.0.0/0 -p\ | iptables -t filter -A FORWARD -i eth1 -o eth0 -s 192.168.1.0/24 -d 0.0.0.0/0 -p\ | ||
- | tcp -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT | + | tcp -m state --state NEW,ESTABLISHED -j ACCEPT |
iptables -t filter -A FORWARD -i eth0 -o eth1 -s 0.0.0.0/0 -d 192.168.1.0/24 -p\ | iptables -t filter -A FORWARD -i eth0 -o eth1 -s 0.0.0.0/0 -d 192.168.1.0/24 -p\ | ||
- | tcp -m state --state ESTABLISHED,RELATED -j ACCEPT | + | tcp -m state --state ESTABLISHED -j ACCEPT |
</code> | </code> | ||
* Ce qui donne : | * Ce qui donne : | ||
<code root>iptables -L</code> | <code root>iptables -L</code> | ||
- | <code> | + | <file config retour de la commande> |
Chain INPUT (policy ACCEPT) | Chain INPUT (policy ACCEPT) | ||
target prot opt source destination | target prot opt source destination | ||
Ligne 390: | Ligne 394: | ||
Chain FORWARD (policy DROP) | Chain FORWARD (policy DROP) | ||
target prot opt source destination | target prot opt source destination | ||
- | ACCEPT tcp -- 192.168.1.0/24 anywhere state NEW,RELATED,ESTABLISHED | + | ACCEPT tcp -- 192.168.1.0/24 anywhere state NEW,ESTABLISHED |
- | ACCEPT tcp -- anywhere 192.168.1.0/24 state RELATED,ESTABLISHED | + | ACCEPT tcp -- anywhere 192.168.1.0/24 state ESTABLISHED |
Chain OUTPUT (policy ACCEPT) | Chain OUTPUT (policy ACCEPT) | ||
target prot opt source destination | target prot opt source destination | ||
- | </code> | + | </file> |
> La navigation web fonctionne | > La navigation web fonctionne | ||
> Le ping vers google et vers 192.168.0.22 est bloqué car on a autorisé seulement tcp | > Le ping vers google et vers 192.168.0.22 est bloqué car on a autorisé seulement tcp | ||
Ligne 408: | Ligne 412: | ||
<code root>iptables -L FORWARD</code> | <code root>iptables -L FORWARD</code> | ||
- | <code> | + | <file config retour de la commande> |
Chain FORWARD (policy DROP) | Chain FORWARD (policy DROP) | ||
target prot opt source destination | target prot opt source destination | ||
- | ACCEPT tcp -- 192.168.1.0/24 anywhere state NEW,RELATED,ESTABLISHED | + | ACCEPT tcp -- 192.168.1.0/24 anywhere state NEW,ESTABLISHED |
- | ACCEPT tcp -- anywhere 192.168.1.0/24 state RELATED,ESTABLISHED | + | ACCEPT tcp -- anywhere 192.168.1.0/24 state ESTABLISHED |
ACCEPT icmp -- anywhere anywhere | ACCEPT icmp -- anywhere anywhere | ||
- | </code> | + | </file> |
* OU de manière plus précise : | * OU de manière plus précise : | ||
Ligne 427: | Ligne 431: | ||
* Ce qui donnerait cette fois : | * Ce qui donnerait cette fois : | ||
- | <code>iptables -L FORWARD</code> | + | <code root>iptables -L FORWARD</code> |
- | <code> | + | <file config retour de la commande> |
Chain FORWARD (policy DROP) | Chain FORWARD (policy DROP) | ||
target prot opt source destination | target prot opt source destination | ||
Ligne 435: | Ligne 439: | ||
ACCEPT icmp -- 192.168.1.0/24 anywhere state NEW,RELATED,ESTABLISHED | ACCEPT icmp -- 192.168.1.0/24 anywhere state NEW,RELATED,ESTABLISHED | ||
ACCEPT icmp -- anywhere 192.168.1.0/24 state RELATED,ESTABLISHED | ACCEPT icmp -- anywhere 192.168.1.0/24 state RELATED,ESTABLISHED | ||
- | </code> | + | </file> |
> Le web et le ping fonctionne : | > Le web et le ping fonctionne : | ||
Ligne 441: | Ligne 445: | ||
* De la machine A vers la machine B : | * De la machine A vers la machine B : | ||
<code user> | <code user> | ||
- | ping 192.168.1.2 | + | ping 192.168.1.2</code> |
- | </code> | + | <file config retour de la commande> |
<code>PING 192.168.1.2 (192.168.1.2) 56(84) bytes of data. | <code>PING 192.168.1.2 (192.168.1.2) 56(84) bytes of data. | ||
64 bytes from 192.168.1.2: icmp_req=1 ttl=63 time=0.402 ms | 64 bytes from 192.168.1.2: icmp_req=1 ttl=63 time=0.402 ms | ||
Ligne 450: | Ligne 454: | ||
--- 192.168.1.2 ping statistics --- | --- 192.168.1.2 ping statistics --- | ||
3 packets transmitted, 3 received, 0% packet loss, time 1998ms | 3 packets transmitted, 3 received, 0% packet loss, time 1998ms | ||
- | rtt min/avg/max/mdev = 0.306/0.341/0.402/0.043 ms</code> | + | rtt min/avg/max/mdev = 0.306/0.341/0.402/0.043 ms</file> |
:-D | :-D | ||
Ligne 457: | Ligne 461: | ||
<code user> | <code user> | ||
ping 192.168.0.22</code> | ping 192.168.0.22</code> | ||
- | <code>PING 192.168.0.22 (192.168.0.22) 56(84) bytes of data. | + | <file config retour de la commande>PING 192.168.0.22 (192.168.0.22) 56(84) bytes of data. |
64 bytes from 192.168.0.22: icmp_req=1 ttl=63 time=0.370 ms | 64 bytes from 192.168.0.22: icmp_req=1 ttl=63 time=0.370 ms | ||
64 bytes from 192.168.0.22: icmp_req=2 ttl=63 time=0.341 ms | 64 bytes from 192.168.0.22: icmp_req=2 ttl=63 time=0.341 ms | ||
Ligne 464: | Ligne 468: | ||
--- 192.168.0.22 ping statistics --- | --- 192.168.0.22 ping statistics --- | ||
3 packets transmitted, 3 received, 0% packet loss, time 2000ms | 3 packets transmitted, 3 received, 0% packet loss, time 2000ms | ||
- | rtt min/avg/max/mdev = 0.326/0.345/0.370/0.028 ms</code> | + | rtt min/avg/max/mdev = 0.326/0.345/0.370/0.028 ms</file> |
8-) | 8-) | ||
Ligne 491: | Ligne 495: | ||
> ping de l'un de ces ordi vers google est ok | > ping de l'un de ces ordi vers google est ok | ||
- | * __Sans suivi de connexion__ : | + | * __Dans les deux sens d'une interface à l'autre__ : |
iptables -A FORWARD -i eth1 -o eth0 -j ACCEPT | iptables -A FORWARD -i eth1 -o eth0 -j ACCEPT | ||
Ligne 510: | Ligne 514: | ||
> On autorise le passage de eth1 à eth0 et de eth0 à eth1 | > On autorise le passage de eth1 à eth0 et de eth0 à eth1 | ||
- | * __Avec suivi de connexion__ : | + | * __Avec suivi de connexion d'une interface à l'autre avec des règles différentes__ : |
iptables -t filter -A FORWARD -i eth1 -o eth0 -s 192.168.1.0/24 -d 0.0.0.0/0 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT | iptables -t filter -A FORWARD -i eth1 -o eth0 -s 192.168.1.0/24 -d 0.0.0.0/0 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT | ||
Ligne 540: | Ligne 544: | ||
<code root> | <code root> | ||
iptables -t filter -A FORWARD -i eth1 -o eth0 -s 192.168.1.0/24 -d 0.0.0.0/0 -p udp\ | iptables -t filter -A FORWARD -i eth1 -o eth0 -s 192.168.1.0/24 -d 0.0.0.0/0 -p udp\ | ||
- | --dport 53 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT | + | --dport 53 -m state --state NEW,ESTABLISHED -j ACCEPT |
iptables -t filter -A FORWARD -i eth0 -o eth1 -s 0.0.0.0/0 -d 192.168.1.0/24 -p udp\ | iptables -t filter -A FORWARD -i eth0 -o eth1 -s 0.0.0.0/0 -d 192.168.1.0/24 -p udp\ | ||
- | --dport 53 -m state --state ESTABLISHED,RELATED -j ACCEPT | + | --dport 53 -m state --state ESTABLISHED -j ACCEPT |
</code> | </code> | ||
Ligne 598: | Ligne 602: | ||
#mais on oublie pas eth1 ! | #mais on oublie pas eth1 ! | ||
iptables -t filter -A FORWARD -i eth1 -o eth0 -s 192.168.1.0/24 -d 0.0.0.0/0 -p\ | iptables -t filter -A FORWARD -i eth1 -o eth0 -s 192.168.1.0/24 -d 0.0.0.0/0 -p\ | ||
- | tcp -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT | + | tcp -m state --state NEW,ESTABLISHED -j ACCEPT |
iptables -t filter -A FORWARD -i eth0 -o eth1 -s 0.0.0.0/0 -d 192.168.1.0/24 -p\ | iptables -t filter -A FORWARD -i eth0 -o eth1 -s 0.0.0.0/0 -d 192.168.1.0/24 -p\ | ||
- | tcp -m state --state ESTABLISHED,RELATED -j ACCEPT | + | tcp -m state --state ESTABLISHED -j ACCEPT |
iptables -t filter -A FORWARD -i eth1 -o eth0 -s 192.168.1.0/24 -d 0.0.0.0/0 -p icmp\ | iptables -t filter -A FORWARD -i eth1 -o eth0 -s 192.168.1.0/24 -d 0.0.0.0/0 -p icmp\ | ||
Ligne 612: | Ligne 616: | ||
#iptables -t filter -A FORWARD -i eth1 -o eth0 -s 192.168.1.0/24 -d 0.0.0.0/0 -p udp\ | #iptables -t filter -A FORWARD -i eth1 -o eth0 -s 192.168.1.0/24 -d 0.0.0.0/0 -p udp\ | ||
- | # --dport 53 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT | + | # --dport 53 -m state --state NEW,ESTABLISHED -j ACCEPT |
#iptables -t filter -A FORWARD -i eth0 -o eth1 -s 0.0.0.0/0 -d 192.168.1.0/24 -p udp\ | #iptables -t filter -A FORWARD -i eth0 -o eth1 -s 0.0.0.0/0 -d 192.168.1.0/24 -p udp\ | ||
- | # --dport 53 -m state --state ESTABLISHED,RELATED -j ACCEPT | + | # --dport 53 -m state --state ESTABLISHED -j ACCEPT |
##Règles icmp pour INPUT et OUTPUT | ##Règles icmp pour INPUT et OUTPUT | ||
Ligne 635: | Ligne 639: | ||
iptables -t filter -A OUTPUT -o eth0 -p udp -m udp --dport 53\ | iptables -t filter -A OUTPUT -o eth0 -p udp -m udp --dport 53\ | ||
- | -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT | + | -m state --state NEW,ESTABLISHED -j ACCEPT |
iptables -t filter -A INPUT -i eth0 -p udp -m udp --sport 53\ | iptables -t filter -A INPUT -i eth0 -p udp -m udp --sport 53\ | ||
- | -m state --state RELATED,ESTABLISHED -j ACCEPT | + | -m state --state ESTABLISHED -j ACCEPT |
iptables -t filter -A OUTPUT -o eth1 -p udp -m udp --dport 53\ | iptables -t filter -A OUTPUT -o eth1 -p udp -m udp --dport 53\ | ||
- | -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT | + | -m state --state NEW,ESTABLISHED -j ACCEPT |
iptables -t filter -A INPUT -i eth1 -p udp -m udp --sport 53\ | iptables -t filter -A INPUT -i eth1 -p udp -m udp --sport 53\ | ||
- | -m state --state RELATED,ESTABLISHED -j ACCEPT | + | -m state --state ESTABLISHED -j ACCEPT |
iptables -t filter -A OUTPUT -o eth0 -p tcp -m multiport --dports\ | iptables -t filter -A OUTPUT -o eth0 -p tcp -m multiport --dports\ | ||
- | 80,443,8000 -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT | + | 80,443,8000 -m state --state NEW,ESTABLISHED -j ACCEPT |
iptables -t filter -A INPUT -i eth0 -p tcp -m multiport --sports\ | iptables -t filter -A INPUT -i eth0 -p tcp -m multiport --sports\ | ||
- | 80,443,8000 -m state --state RELATED,ESTABLISHED -j ACCEPT | + | 80,443,8000 -m state --state ESTABLISHED -j ACCEPT |
iptables -A OUTPUT -o eth1 -p tcp -m multiport --dports 80,443,8000 -j ACCEPT | iptables -A OUTPUT -o eth1 -p tcp -m multiport --dports 80,443,8000 -j ACCEPT | ||
Ligne 788: | Ligne 792: | ||
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE | iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE | ||
- | iptables -A FORWARD -i eth1 -o eth0 -d 192.168.1.0/24 -s 0.0.0.0/0\ | + | iptables -t filter -A FORWARD -i eth1 -o eth0 -s 192.168.1.0/24 -d 0.0.0.0/0 -p tcp\ |
- | -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT | + | -m state --state NEW,ESTABLISHED -j ACCEPT |
- | iptables -A FORWARD -i eth0 -o eth1 -s 0.0.0.0/0\ | + | iptables -t filter -A FORWARD -i eth0 -o eth1 -s 0.0.0.0/0 -d 192.168.1.0/24 -p tcp\ |
- | -d 192.168.1.0/24 -m state --state ESTABLISHED,RELATED -j ACCEPT | + | -m state --state ESTABLISHED -j ACCEPT |
- | iptables -A FORWARD -i eth1 -o eth0 -p tcp -m multiport\ | + | #Si pas de DNS configurer on dé-commente les règles udp suivantes : |
- | --dports 80,443,8000 -j ACCEPT | + | |
- | iptables -A FORWARD -i eth0 -o eth1 -s 0.0.0.0/0\ | + | #iptables -t filter -A FORWARD -i eth1 -o eth0 -s 192.168.1.0/24 -d 0.0.0.0/0 -p udp\ |
- | -d 192.168.1.0/24 -m state --state ESTABLISHED,RELATED -j ACCEPT | + | # --dport 53 -m state --state NEW,ESTABLISHED -j ACCEPT |
+ | |||
+ | #iptables -t filter -A FORWARD -i eth0 -o eth1 -s 0.0.0.0/0 -d 192.168.1.0/24 -p udp\ | ||
+ | # --dport 53 -m state --state ESTABLISHED -j ACCEPT | ||
+ | |||
+ | iptables -t filter -A FORWARD -p icmp -j ACCEPT | ||
iptables -N icmp_packets | iptables -N icmp_packets | ||
Ligne 818: | Ligne 827: | ||
</code> | </code> | ||
+ | |||
+ | > La navigation web fonctionne pour l'ordi B | ||
+ | > Les ping de même | ||
+ | |||
====DROP sur INPUT et OUTPUT (chaîne filter) ==== | ====DROP sur INPUT et OUTPUT (chaîne filter) ==== | ||
Cette fois, il va falloir interdire (DROP) les chaînes INPUT et OUTPUT de la table FILTER excepté pour tous les protocoles dont on a besoin.\\ | Cette fois, il va falloir interdire (DROP) les chaînes INPUT et OUTPUT de la table FILTER excepté pour tous les protocoles dont on a besoin.\\ | ||
Ligne 854: | Ligne 867: | ||
iptables -A OUTPUT -o eth1 -j ACCEPT | iptables -A OUTPUT -o eth1 -j ACCEPT | ||
- | # On garde nos règles concernant le DROP sur FORWARD (FILTER) | + | # On garde nos règles concernant FORWARD (FILTER) |
- | # et on oublie pas eth1 ! | + | |
- | iptables -t filter -A FORWARD -i eth1 -o eth0 -d 192.168.1.0/24 -s 0.0.0.0/0\ | + | iptables -t filter -A FORWARD -i eth1 -o eth0 -s 192.168.1.0/24 -d 0.0.0.0/0 -p tcp\ |
- | -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT | + | -m state --state NEW,ESTABLISHED -j ACCEPT |
+ | |||
+ | iptables -t filter -A FORWARD -i eth0 -o eth1 -s 0.0.0.0/0 -d 192.168.1.0/24 -p tcp\ | ||
+ | -m state --state ESTABLISHED -j ACCEPT | ||
+ | |||
+ | #Si pas de DNS configurer on dé-commente les règles udp suivantes : | ||
+ | |||
+ | #iptables -t filter -A FORWARD -i eth1 -o eth0 -s 192.168.1.0/24 -d 0.0.0.0/0 -p udp\ | ||
+ | # --dport 53 -m state --state NEW,ESTABLISHED -j ACCEPT | ||
- | iptables -t filter -A FORWARD -i eth0 -o eth1 -s 0.0.0.0/0\ | + | #iptables -t filter -A FORWARD -i eth0 -o eth1 -s 0.0.0.0/0 -d 192.168.1.0/24 -p udp\ |
- | -d 192.168.1.0/24 -m state --state ESTABLISHED,RELATED -j ACCEPT | + | # --dport 53 -m state --state ESTABLISHED -j ACCEPT |
iptables -t filter -A FORWARD -p icmp -j ACCEPT | iptables -t filter -A FORWARD -p icmp -j ACCEPT | ||
- | + | ||
+ | # règles icmp sur INPUT et OUTPUT | ||
iptables -t filter -A INPUT -p icmp -i eth0 -m conntrack\ | iptables -t filter -A INPUT -p icmp -i eth0 -m conntrack\ | ||
--ctstate ESTABLISHED,RELATED -j ACCEPT | --ctstate ESTABLISHED,RELATED -j ACCEPT | ||
Ligne 881: | Ligne 903: | ||
iptables -t filter -A OUTPUT -o eth0 -p udp -m udp --dport 53\ | iptables -t filter -A OUTPUT -o eth0 -p udp -m udp --dport 53\ | ||
- | -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT | + | -m state --state NEW,ESTABLISHED -j ACCEPT |
iptables -t filter -A INPUT -i eth0 -p udp -m udp --sport 53\ | iptables -t filter -A INPUT -i eth0 -p udp -m udp --sport 53\ | ||
- | -m state --state RELATED,ESTABLISHED -j ACCEPT | + | -m state --state ESTABLISHED -j ACCEPT |
iptables -t filter -A OUTPUT -o eth1 -p udp -m udp --dport 53\ | iptables -t filter -A OUTPUT -o eth1 -p udp -m udp --dport 53\ | ||
- | -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT | + | -m state --state NEW,ESTABLISHED -j ACCEPT |
iptables -t filter -A INPUT -i eth1 -p udp -m udp --sport 53\ | iptables -t filter -A INPUT -i eth1 -p udp -m udp --sport 53\ | ||
- | -m state --state RELATED,ESTABLISHED -j ACCEPT | + | -m state --state ESTABLISHED -j ACCEPT |
iptables -t filter -A OUTPUT -o eth0 -p tcp -m multiport --dports\ | iptables -t filter -A OUTPUT -o eth0 -p tcp -m multiport --dports\ | ||
- | 80,443,8000 -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT | + | 80,443,8000 -m state --state NEW,ESTABLISHED -j ACCEPT |
iptables -t filter -A INPUT -i eth0 -p tcp -m multiport --sports\ | iptables -t filter -A INPUT -i eth0 -p tcp -m multiport --sports\ | ||
- | 80,443,8000 -m state --state RELATED,ESTABLISHED -j ACCEPT | + | 80,443,8000 -m state --state ESTABLISHED -j ACCEPT |
iptables -A OUTPUT -o eth1 -p tcp -m multiport --dports 80,443,8000 -j ACCEPT | iptables -A OUTPUT -o eth1 -p tcp -m multiport --dports 80,443,8000 -j ACCEPT | ||
Ligne 1128: | Ligne 1150: | ||
/sbin/iptables -A INPUT -i eth1 -j ACCEPT | /sbin/iptables -A INPUT -i eth1 -j ACCEPT | ||
/sbin/iptables -A OUTPUT -o eth1 -j ACCEPT | /sbin/iptables -A OUTPUT -o eth1 -j ACCEPT | ||
- | #permettre le passage entre les deux interfaces eternet de la passerelle | + | #permettre le passage de tcp entre les deux interfaces eternet de la passerelle |
- | /sbin/iptables -t filter -A FORWARD -i eth1 -o eth0 -s 192.168.1.0/24 -d 0.0.0.0/0 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT | + | /sbin/iptables -t filter -A FORWARD -i eth1 -o eth0 -s 192.168.1.0/24 -d 0.0.0.0/0 -p tcp\ |
- | /sbin/iptables -t filter -A FORWARD -i eth0 -o eth1 -s 0.0.0.0/0 -d 192.168.1.0/24 -m state --state ESTABLISHED,RELATED -j ACCEPT | + | -m state --state NEW,ESTABLISHED -j ACCEPT |
+ | /sbin/iptables -t filter -A FORWARD -i eth0 -o eth1 -s 0.0.0.0/0 -d 192.168.1.0/24 -p tcp\ | ||
+ | -m state --state ESTABLISHED -j ACCEPT | ||
+ | #Si pas de DNS configurer on dé-commente les règles udp suivantes : | ||
+ | #iptables -t filter -A FORWARD -i eth1 -o eth0 -s 192.168.1.0/24 -d 0.0.0.0/0 -p udp\ | ||
+ | # --dport 53 -m state --state NEW,ESTABLISHED -j ACCEPT | ||
+ | #iptables -t filter -A FORWARD -i eth0 -o eth1 -s 0.0.0.0/0 -d 192.168.1.0/24 -p udp\ | ||
+ | # --dport 53 -m state --state ESTABLISHED -j ACCEPT | ||
+ | |||
+ | #autoriser le ping avec le sous-réseau 192.168.1.0/24 | ||
/sbin/iptables -t filter -A FORWARD -p icmp -j ACCEPT | /sbin/iptables -t filter -A FORWARD -p icmp -j ACCEPT | ||
+ | |||
#accepter le ping entre les réseaux locaux | #accepter le ping entre les réseaux locaux | ||
/sbin/iptables -t filter -A INPUT -p icmp -i eth0 -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT | /sbin/iptables -t filter -A INPUT -p icmp -i eth0 -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT | ||
Ligne 1173: | Ligne 1205: | ||
/sbin/iptables -A syn_flood -j DROP | /sbin/iptables -A syn_flood -j DROP | ||
#autoriser la connexion avec les serveurs DNS | #autoriser la connexion avec les serveurs DNS | ||
- | /sbin/iptables -t filter -A OUTPUT -o eth0 -p udp -m udp --dport 53 -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT | + | /sbin/iptables -t filter -A OUTPUT -o eth0 -p udp -m udp --dport 53 -m state --state NEW,ESTABLISHED -j ACCEPT |
- | /sbin/iptables -t filter -A INPUT -i eth0 -p udp -m udp --sport 53 -m state --state RELATED,ESTABLISHED -j ACCEPT | + | /sbin/iptables -t filter -A INPUT -i eth0 -p udp -m udp --sport 53 -m state --state ESTABLISHED -j ACCEPT |
- | /sbin/iptables -t filter -A OUTPUT -o eth1 -p udp -m udp --dport 53 -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT | + | /sbin/iptables -t filter -A OUTPUT -o eth1 -p udp -m udp --dport 53 -m state --state NEW,ESTABLISHED -j ACCEPT |
- | /sbin/iptables -t filter -A INPUT -i eth1 -p udp -m udp --sport 53 -m state --state RELATED,ESTABLISHED -j ACCEPT | + | /sbin/iptables -t filter -A INPUT -i eth1 -p udp -m udp --sport 53 -m state --state ESTABLISHED -j ACCEPT |
#autoriser la navigation web | #autoriser la navigation web | ||
- | /sbin/iptables -t filter -A OUTPUT -o eth0 -p tcp -m multiport --dports 80,443,8000 -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT | + | /sbin/iptables -t filter -A OUTPUT -o eth0 -p tcp -m multiport --dports 80,443,8000 -m state --state NEW,ESTABLISHED -j ACCEPT |
- | /sbin/iptables -t filter -A INPUT -i eth0 -p tcp -m multiport --sports 80,443,8000 -m state --state RELATED,ESTABLISHED -j ACCEPT | + | /sbin/iptables -t filter -A INPUT -i eth0 -p tcp -m multiport --sports 80,443,8000 -m state --state ESTABLISHED -j ACCEPT |
/sbin/iptables -A OUTPUT -o eth1 -p tcp -m multiport --dports 80,443,8000 -j ACCEPT | /sbin/iptables -A OUTPUT -o eth1 -p tcp -m multiport --dports 80,443,8000 -j ACCEPT | ||
/sbin/iptables -A INPUT -i eth1 -p tcp -m multiport --sports 80,443,8000 -j ACCEPT | /sbin/iptables -A INPUT -i eth1 -p tcp -m multiport --sports 80,443,8000 -j ACCEPT | ||
#Si le serveur cups est branché sur un ordinateur du réseau 192.168.0.0/24, par exemple sur 192.168.0.22 | #Si le serveur cups est branché sur un ordinateur du réseau 192.168.0.0/24, par exemple sur 192.168.0.22 | ||
# laisser décommenter les deux lignes suivantes : | # laisser décommenter les deux lignes suivantes : | ||
- | /sbin/iptables -A INPUT -i eth0 -s 192.168.0.22 -d 192.168.0.1 -p tcp --sport 631 -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT | + | /sbin/iptables -A INPUT -i eth0 -s 192.168.0.22 -d 192.168.0.1 -p tcp --sport 631 -m state --state NEW,ESTABLISHED -j ACCEPT |
- | /sbin/iptables -A OUTPUT -o eth0 -s 192.168.0.1 -d 192.168.0.22 -p tcp --dport 631 -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT | + | /sbin/iptables -A OUTPUT -o eth0 -s 192.168.0.1 -d 192.168.0.22 -p tcp --dport 631 -m state --state NEW,ESTABLISHED -j ACCEPT |
#créer une chaîne utilisateur pour les connexion ssh, les loguer et les accepter | #créer une chaîne utilisateur pour les connexion ssh, les loguer et les accepter | ||
/sbin/iptables -t filter -N InComingSSH | /sbin/iptables -t filter -N InComingSSH | ||
Ligne 1274: | Ligne 1306: | ||
<code root> | <code root> | ||
/sbin/iptables -A INPUT -i eth1 -p udp -m udp --sport 27000 -m\ | /sbin/iptables -A INPUT -i eth1 -p udp -m udp --sport 27000 -m\ | ||
- | state --state NEW,RELATED,ESTABLISHED -j ACCEPT | + | state --state NEW,ESTABLISHED -j ACCEPT |
/sbin/iptables -A INPUT -i eth0 -p udp -m udp --sport 27000 -m\ | /sbin/iptables -A INPUT -i eth0 -p udp -m udp --sport 27000 -m\ | ||
- | state --state RELATED,ESTABLISHED -j ACCEPT | + | state --state ESTABLISHED -j ACCEPT |
</code> | </code> | ||