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 [24/09/2015 17:21] milou [La table de routage] |
doc:reseau:iptables-pare-feu-pour-une-passerelle [24/09/2015 17:47] milou [Un pare-feu avancé pour le routeur-debian] |
||
---|---|---|---|
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 384: | Ligne 388: | ||
* 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 395: | Ligne 399: | ||
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 | ||
Ligne 414: | Ligne 418: | ||
ACCEPT tcp -- anywhere 192.168.1.0/24 state 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 666: | Ligne 670: | ||
====Revisiter ICMP ==== | ====Revisiter ICMP ==== | ||
- | Puisqu'on a abordé la question du ping, revenons sur cette règle \\ ''iptables -A FORWARD -p icmp -j ACCEPT''\\ un peut trop permissive par rapport à la bonne vielle attaque doS (denial of service attack), ou "[[http://fr.wikipedia.org/wiki/Attaque_par_d%C3%A9ni_de_service|attaque par déni de service]]".\\ | + | Puisqu'on a abordé la question du ping, revenons sur cette règle \\ |
+ | |||
+ | ''iptables -A FORWARD -p icmp -j ACCEPT''\\ | ||
+ | |||
+ | un peu trop permissive par rapport à la bonne vieille attaque doS (denial of service attack), ou "[[http://fr.wikipedia.org/wiki/Attaque_par_d%C3%A9ni_de_service|attaque par déni de service]]".\\ | ||
Cette chaîne va être utilisée pour bloquer seulement certains paquets ICMP provenant de l'internet (WAN).\\ | Cette chaîne va être utilisée pour bloquer seulement certains paquets ICMP provenant de l'internet (WAN).\\ | ||
Ligne 831: | Ligne 839: | ||
D'abord pour ICMP qu'on ne laisse plus massivement entrer et sortir (table FILTER à DROP pour INPUT et OUTPUT, en plus de FORWARD).\\ | D'abord pour ICMP qu'on ne laisse plus massivement entrer et sortir (table FILTER à DROP pour INPUT et OUTPUT, en plus de FORWARD).\\ | ||
<note> | <note> | ||
- | Attention l'ordre des règles pour IMCP sur INPUT, OUTPUT et FORWARD, comptes ici. | + | Attention l'ordre des règles pour IMCP sur INPUT, OUTPUT et FORWARD, compte ici. |
</note> | </note> | ||
Ligne 971: | Ligne 979: | ||
* De l'ordinateur A vers B((on n'oublie sa table de routage (en root)\\ ''route add -net 192.168.1.0 gw 192.168.0.1 netmask 255.255.255.0 dev eth0'')) | * De l'ordinateur A vers B((on n'oublie sa table de routage (en root)\\ ''route add -net 192.168.1.0 gw 192.168.0.1 netmask 255.255.255.0 dev eth0'')) | ||
<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. | ||
64 bytes from 192.168.1.2: icmp_req=1 ttl=63 time=0.341 ms | 64 bytes from 192.168.1.2: icmp_req=1 ttl=63 time=0.341 ms | ||
Ligne 979: | Ligne 987: | ||
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.316/0.328/0.341/0.022 ms | rtt min/avg/max/mdev = 0.316/0.328/0.341/0.022 ms | ||
- | </code> | + | </file> |
=) | =) | ||
Ligne 986: | Ligne 994: | ||
<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.538 ms | 64 bytes from 192.168.0.22: icmp_req=1 ttl=63 time=0.538 ms | ||
64 bytes from 192.168.0.22: icmp_req=2 ttl=63 time=0.312 ms | 64 bytes from 192.168.0.22: icmp_req=2 ttl=63 time=0.312 ms | ||
Ligne 993: | Ligne 1001: | ||
--- 192.168.0.22 ping statistics --- | --- 192.168.0.22 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.312/0.388/0.538/0.108 ms</code> | + | rtt min/avg/max/mdev = 0.312/0.388/0.538/0.108 ms</file> |
8-) | 8-) |