logo Debian Debian Debian-France Debian-Facile Debian-fr.org Forum-Debian.fr Debian ? Communautés logo inclusivité

Debian-facile

Bienvenue sur Debian-Facile, site d'aide pour les nouveaux utilisateurs de Debian.

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 → ODT PDF Export

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
doc:reseau:iptables-pare-feu-pour-une-passerelle [16/11/2014 12:48]
Hypathie [Le script de la passerelle]
doc:reseau:iptables-pare-feu-pour-une-passerelle [01/11/2015 18:20] (Version actuelle)
milou [Le script de la passerelle]
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 <​...> ​
   * Commentaires sur le forum : [[http://​debian-facile.org/​viewtopic.php?​pid=99819#​p99819 | Lien vers le forum concernant ce tuto]] ((N'​hésitez pas à y faire part de vos remarques, succès, améliorations ou échecs !))    * Commentaires sur le forum : [[http://​debian-facile.org/​viewtopic.php?​pid=99819#​p99819 | Lien vers le forum concernant ce tuto]] ((N'​hésitez pas à y faire part de vos remarques, succès, améliorations ou échecs !)) 
  
 **Nota : Au programme, description avancée de la table NAT (iptables), et des protocoles ICMP et TCP (ssh, FTP ... logés) ; pour la mise en place d'un pare-feu iptables sur un système debian faisant office de routeur, muni de deux cartes ethernet. ** **Nota : Au programme, description avancée de la table NAT (iptables), et des protocoles ICMP et TCP (ssh, FTP ... logés) ; pour la mise en place d'un pare-feu iptables sur un système debian faisant office de routeur, muni de deux cartes ethernet. **
  
-Contributeurs,​ les FIXME sont là pour vous aider, supprimez-les une fois le problème corrigé ou le champ rempli !+**Nota :** Contributeurs,​ les FIXME sont là pour vous aider, supprimez-les une fois le problème corrigé ou le champ rempli ! 
  
 ===== 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 36: Ligne 36:
  * Les services installés :  * Les services installés :
  
-__Sur l'​ordinateur A (IP: 192.168.0.22)__,​ on a installé [[atelier:chantier:​iptables-pare-feu-pour-un-client#​pour-les-fadas-du-scripting-shell|ce pare-feu]].\\+__Sur l'​ordinateur A (IP: 192.168.0.22)__,​ on a installé [[doc:reseau:​iptables-pare-feu-pour-un-client#​pour-les-fadas-du-scripting-shell|ce pare-feu]].\\
  
 __Sur debian-routeur(IP:​ 192.168.0.1)__,​ on a installé:​\\  ​ __Sur debian-routeur(IP:​ 192.168.0.1)__,​ on a installé:​\\  ​
  - aucune interface graphique lors de son installation : on le configure en passant par ssh depuis l'​ordinateur A\\   - aucune interface graphique lors de son installation : on le configure en passant par ssh depuis l'​ordinateur A\\ 
- - [[atelier:chantier:​dhcp#​mise-en-place-basique-du-sercice-dhcp-sur-notre-reseau-local|un serveur DHCP basique]] qui fournit l'IP 192.168.1.2 a l'​ordinateur B\\ + - [[doc:reseau:​dhcp#​mise-en-place-basique-du-sercice-dhcp-sur-notre-reseau-local|un serveur DHCP basique]] qui fournit l'IP 192.168.1.2 a l'​ordinateur B\\ 
  - Un [[atelier:​chantier:​dns-bind9-sur-wheezy|serveur DNS (bind9)]]\\ ​  - Un [[atelier:​chantier:​dns-bind9-sur-wheezy|serveur DNS (bind9)]]\\ ​
  - le fichier **/​etc/​hosts de l'ordi B** est complété(( FQDN (Fully Qualified Domain Name)), par exemple:  - le fichier **/​etc/​hosts de l'ordi B** est complété(( FQDN (Fully Qualified Domain Name)), par exemple:
Ligne 54: Ligne 54:
 </​code>​ </​code>​
  - De même le fichier **/​etc/​hosts de la passerelle** connaît l'ordi B : Par exemple ''​192.168.1.3 ​    ​debian-hp''​  - De même le fichier **/​etc/​hosts de la passerelle** connaît l'ordi B : Par exemple ''​192.168.1.3 ​    ​debian-hp''​
- - La table NAT a été modifiée très simplement pour l'​instant afin [[atelier:chantier:​dhcp#​installation-de-la-passerelle-debian|de le transformer en passerelle]] avec masquerade sur eth0 (interface web).\\ ​+ - La table NAT a été modifiée très simplement pour l'​instant afin [[doc:reseau:​dhcp#​installation-de-la-passerelle-debian|de le transformer en passerelle]] avec masquerade sur eth0 (interface web).\\ ​
  - le fichier /​etc/​sysctl.conf a été modifié : la ligne ''​net.ipv4.ip_forward=0''​ est devenue ''​net.ipv4.ip_forward=1''​.  - le fichier /​etc/​sysctl.conf a été modifié : la ligne ''​net.ipv4.ip_forward=0''​ est devenue ''​net.ipv4.ip_forward=1''​.
  
Ligne 67: Ligne 67:
  
 <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 73:
 --- 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 80:
  
 <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 92:
  
 <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 102:
  
 <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 120:
   * 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 135:
  
 <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 143:
 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 149:
 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 160:
 --- 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 166:
   * 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 178:
 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 187:
  
 <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 201:
 --- 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 272:
 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 301:
 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 311:
    
 <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 322:
 -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 342:
 **__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 389:
     * 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 400:
 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 413:
  
 <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 419:
 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 432:
  
   * 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 440:
 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 446:
   * 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 455:
 --- 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 462:
 <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 469:
 --- 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 671:
 ====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 840:
 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>​
  
-On conserve ce qu'on a fait précédemment en ajoutant simplement les commandes du [[atelier:chantier:​iptables-pare-feu-pour-un-client#​pour-les-fadas-du-scripting-shell|script pour un client du LAN]] mais en tenant compte du fait qu'il y a cette fois deux interfaces réseau.+On conserve ce qu'on a fait précédemment en ajoutant simplement les commandes du [[doc:reseau:​iptables-pare-feu-pour-un-client#​pour-les-fadas-du-scripting-shell|script pour un client du LAN]] mais en tenant compte du fait qu'il y a cette fois deux interfaces réseau.
  
 <code root> <code root>
Ligne 971: Ligne 980:
   * 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 988:
 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 995:
 <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 1002:
 --- 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-)
Ligne 1001: Ligne 1010:
 Allez, il reste encore qu'une étape 8-o\\ Allez, il reste encore qu'une étape 8-o\\
  
-Il faut revenir sur les règles INPUT et OUTPUT que nous avons récupérée provisoirement du [[atelier:chantier:​iptables-pare-feu-pour-un-client#​pour-les-fadas-du-scripting-shell| script pour une station du LAN]].\\ Pour la passerelle on va affiner le filtrage des règles concernant TCP et UDP.\\ Ce sera l'​occasion de mettre en place des règles pour le protocole FTP que nous n'​avons pas encore abordé.+Il faut revenir sur les règles INPUT et OUTPUT que nous avons récupérée provisoirement du [[doc:reseau:​iptables-pare-feu-pour-un-client#​pour-les-fadas-du-scripting-shell| script pour une station du LAN]].\\ Pour la passerelle on va affiner le filtrage des règles concernant TCP et UDP.\\ Ce sera l'​occasion de mettre en place des règles pour le protocole FTP que nous n'​avons pas encore abordé.
  
 Nous aurons besoin pour cela d'un rappel sur le fonctionnement du protocole TCP Nous aurons besoin pour cela d'un rappel sur le fonctionnement du protocole TCP
Ligne 1313: Ligne 1322:
  
   * Pour l'​installation du script   * Pour l'​installation du script
-Suivre la même méthode que pour [[atelier:chantier:​iptables-pare-feu-pour-un-client?&#​pour-les-fadas-du-scripting-shell|firewall-client comme script init]].\\ ​+Suivre la même méthode que pour [[doc:reseau:​iptables-pare-feu-pour-un-client?&#​pour-les-fadas-du-scripting-shell|firewall-client comme script init]].\\ ​
  
   * Ou si l'on préfère utiliser les commandes iptables-save et iptables-restore ​   * Ou si l'on préfère utiliser les commandes iptables-save et iptables-restore ​
Ligne 1319: Ligne 1328:
 Puis lancer les commandes nécessaires à l'​exécution du script (droits d'​exécution et en root ''​bash /​chemin/​du/​script''​)\\ ​ Puis lancer les commandes nécessaires à l'​exécution du script (droits d'​exécution et en root ''​bash /​chemin/​du/​script''​)\\ ​
 Enfin éditer /​etc/​network/​interfaces : Enfin éditer /​etc/​network/​interfaces :
-<code># The loopback network interface+<file config /​etc/​network/​interfaces> 
 +# The loopback network interface
 auto lo auto lo
 iface lo inet loopback iface lo inet loopback
Ligne 1337: Ligne 1347:
 address 192.168.1.1 address 192.168.1.1
 network 192.168.1.0 network 192.168.1.0
-netmask 255.255.255.0</​code>+netmask 255.255.255.0 
 +</file>
  
 ====Le cas du serveur DHCP ==== ====Le cas du serveur DHCP ====
Ligne 1346: Ligne 1357:
 Voici une autre maxime à laquelle il faudra se tenir. Voici une autre maxime à laquelle il faudra se tenir.
  
-On voit dans de nombreux wiki l'​ajout aberrant de cette règle :\\ +On voit dans de nombreux wiki l'​ajout aberrant de cette règle :\\ 
 ''​IPTABLES ​ -I INPUT -i <​interface-interne>​ -p udp --dport 67:68 --sport 67:68 -j ACCEPT''​\\ ''​IPTABLES ​ -I INPUT -i <​interface-interne>​ -p udp --dport 67:68 --sport 67:68 -j ACCEPT''​\\
  
doc/reseau/iptables-pare-feu-pour-une-passerelle.1416138508.txt.gz · Dernière modification: 16/11/2014 12:48 par Hypathie

Pied de page des forums

Propulsé par FluxBB