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
Prochaine révision Les deux révisions suivantes
doc:reseau:iptables-pare-feu-pour-une-passerelle [16/11/2014 07:42]
Hypathie [Les règles du pare-feu pas à pas]
doc:reseau:iptables-pare-feu-pour-une-passerelle [01/11/2015 18:07]
milou [Introduction]
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 ! 
  
 ===== 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 34: Ligne 32:
 L'​ordinateur B appartient au sous sous-réseau : 192.168.1.0/​255.255.255.0 L'​ordinateur B appartient au sous sous-réseau : 192.168.1.0/​255.255.255.0
  
-  ​* 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\\  
- - 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]].\\ ​+ - 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: 
 +<​code>​ 
 +127.0.0.1 localhost 
 +127.0.1.1 debian-hpmondomaine.hyp ​ debian-hp 
 +</​code>​ 
 + - le fichier **/​etc/​resolv.conf de l'ordi B** a connaissance de l'ip du serveur DNS : 
 +<​code>​ 
 +domaine mondomaine.hyp 
 +search mondomaine.hyp 
 +nameserver 192.168.1.1 
 +</​code>​ 
 + - 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 [[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 54: Ligne 65:
  
 <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 60: Ligne 71:
 --- 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 67: Ligne 78:
  
 <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 79: Ligne 90:
  
 <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 89: Ligne 100:
  
 <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 107: Ligne 118:
   * 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 121: Ligne 133:
  
 <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 129: Ligne 141:
 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 135: Ligne 147:
 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 146: Ligne 158:
 --- 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 152: Ligne 164:
   * 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 164: Ligne 176:
 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 173: Ligne 185:
  
 <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 187: Ligne 199:
 --- 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 258: Ligne 270:
 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 283: Ligne 299:
 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 293: Ligne 309:
    
 <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 304: Ligne 320:
 -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 324: Ligne 340:
 **__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 363: Ligne 379:
  
 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>​
  
 +    * Ce qui donne :
 +<code root>​iptables -L</​code>​
 +<file config retour de la commande>​
 +Chain INPUT (policy ACCEPT)
 +target ​    prot opt source ​              ​destination ​        
 +
 +Chain FORWARD (policy DROP)
 +target ​    prot opt source ​              ​destination ​        
 +ACCEPT ​    ​tcp ​ --  192.168.1.0/​24 ​      ​anywhere ​            state NEW,​ESTABLISHED
 +ACCEPT ​    ​tcp ​ --  anywhere ​            ​192.168.1.0/​24 ​      state ESTABLISHED
 +
 +Chain OUTPUT (policy ACCEPT)
 +target ​    prot opt source ​              ​destination
 +</​file>​
 +> La navigation web fonctionne
 +> Le ping vers google et vers 192.168.0.22 est bloqué car on a autorisé seulement tcp
 +
 +  * On ajoute une autorisation pour icmp :
 +
 +<code root>
 iptables -t filter -A FORWARD -p icmp -j ACCEPT iptables -t filter -A FORWARD -p icmp -j ACCEPT
 </​code>​ </​code>​
  
-<note tip> +  ​Ce qui donne :
-**__Quelques exlications ​:__**+
  
-  * __Sans suivi de connexion__ :+<code root>​iptables -L FORWARD</​code>​ 
 +<file config retour ​de la commande>​ 
 +Chain FORWARD (policy DROP) 
 +target ​    prot opt source ​              ​destination ​         
 +ACCEPT ​    ​tcp ​ --  192.168.1.0/​24 ​      ​anywhere ​            state NEW,​ESTABLISHED 
 +ACCEPT ​    ​tcp ​ --  anywhere ​            ​192.168.1.0/​24 ​      state ESTABLISHED 
 +ACCEPT ​    icmp --  anywhere ​            ​anywhere ​            
 +</​file>​
  
-  iptables -A FORWARD -i eth1 -o eth0 -j ACCEPT +  ​* OU de manière plus précise : 
-  ​iptables ​-A FORWARD ​-o eth1 -i eth0 -j ACCEPT+<code root> 
 +iptables ​-t filter ​-A FORWARD -i eth1 -o eth0 -s 192.168.1.0/​24 -d 0.0.0.0/0 -p icmp\ 
 + -m state --state NEW,​ESTABLISHED,​RELATED ​-j ACCEPT
  
-> On autorise tout passage de eth1 à eth0 et de eth0 à eth1+iptables -t filter -A FORWARD -i eth0 -o eth1 -s 0.0.0.0/0 -d 192.168.1.0/​24 -p icmp\ 
 + -m state --state ESTABLISHED,​RELATED -j ACCEPT
  
-  * __Avec suivi de connexion__ : +</​code>​
  
-  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 +  ​* Ce qui donnerait cette fois : 
-  ​iptables ​-t filter ​-A FORWARD -i eth0 -o eth1 -s 0.0.0.0/-192.168.1.0/​24 ​-m state --state ESTABLISHED,RELATED -j ACCEPT+<code root>iptables -FORWARD</​code>​ 
 +<file config retour de la commande>​ 
 +Chain FORWARD (policy DROP) 
 +target ​    prot opt source ​              ​destination ​         
 +ACCEPT ​    ​tcp  ​--  192.168.1.0/​24 ​      anywhere ​            state NEW,​RELATED,​ESTABLISHED 
 +ACCEPT ​    ​tcp  ​--  anywhere ​            192.168.1.0/24       state 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 
 +</​file>​
  
-On autorise tout passage avec suivi de connexion de eth1 à eth0 et inversement,​ en précisant les sous-réseaux. +Le web et le ping fonctionne : 
-</​note>​ + 
-  * On vérifie si le ping fonctionne 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 399: Ligne 453:
 --- 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
  
-  * Et de la machine B vers la machine A :+  * De la machine B vers la machine A :
 <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 413: Ligne 467:
 --- 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-)
  
-  ​Pour voir ce qu'on a fait +<note tip> 
-<code root>​iptables --t nat && ​iptables -L</​code>​+ 
 +**__Quelques exlications :__** 
 + 
 +  * __On autorise toute connexion pour le LAN__ 
 + 
 +  iptables -A FORWARD -i eth1 -j ACCEPT 
 +  iptables -A FORWARD -o eth1 -j ACCEPT 
 + 
 +  iptables -L 
 +  Chain INPUT (policy ACCEPT) 
 +  target ​    prot opt source ​              ​destination ​         
 +  Chain FORWARD (policy DROP) 
 +  target ​    prot opt source ​              ​destination ​         
 +  ACCEPT ​    ​all ​ --  anywhere ​            ​anywhere ​            
 +  ACCEPT ​    ​all ​ --  anywhere ​            ​anywhere ​            
 +  Chain OUTPUT (policy ACCEPT) 
 +  target ​    prot opt source ​              ​destination  
 + 
 +> Ce qui entre ''​-i''​ et ce qui sort ''​-o''​ 
 +> La navigation internet depuis un ordi du réseau 192.168.1.0/​24 est possible 
 +> ping de l'un de ces ordi vers google est ok 
 + 
 +  * __Dans les deux sens d'une interface à l'​autre__ : 
 + 
 +  iptables -A FORWARD -i eth1 -o eth0 -j ACCEPT 
 +  iptables -A FORWARD -o eth1 -i eth0 -j ACCEPT 
 + 
 +> On constate que sans préciser de protocole ni de réseau, cela revient au même que précédemment 
 + 
 +  iptables -L  
 +  Chain INPUT (policy ACCEPT) 
 +  target ​    prot opt source ​              ​destination ​         
 +  Chain FORWARD (policy ACCEPT) 
 +  target ​    prot opt source ​              ​destination ​         
 +  ACCEPT ​    ​all ​ --  anywhere ​            ​anywhere ​            
 +  ACCEPT ​    ​all ​ --  anywhere ​            ​anywhere ​            
 +  Chain OUTPUT (policy ACCEPT) 
 +  target ​    prot opt source ​              ​destination  
 + 
 +> On autorise le passage de eth1 à eth0 et de eth0 à eth1 
 + 
 +  * __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 eth0 -o eth1 -s 0.0.0.0/0 -d 192.168.1.0/​24 -m state --state ESTABLISHED,​RELATED -j ACCEPT 
 + 
 +> On autorise le passage de tous protocoles avec suivi de connexion, de eth1 à eth0, et inversement,​ en précisant les réseaux source et destination. 
 + 
 +  iptables -L 
 +  Chain INPUT (policy ACCEPT) 
 +  target ​    prot opt source ​              ​destination ​         
 +  Chain FORWARD (policy DROP) 
 +  target ​    prot opt source ​              ​destination ​         
 +  ACCEPT ​    ​all ​ --  192.168.1.0/​24 ​      ​anywhere ​            state NEW,​RELATED,​ESTABLISHED 
 +  ACCEPT ​    ​all ​ --  anywhere ​            ​192.168.1.0/​24 ​      state RELATED,​ESTABLISHED 
 +  Chain OUTPUT (policy ACCEPT) 
 +  target ​    prot opt source ​              ​destination 
 + 
 +> Là encore la navigation est possible pour un ordi du sous-réseau 192.168.1.0/​24 
 +> Et le ping fonctionne vers google et l'ordi 192.168.0.22 sans besoin d'​ajouter de règle imcp car on a autorisé TOUS les protocoles 
 + 
 +**Enfin il est inutile d'​ajouter une règle udp pour la résolution de nom si le serveur de nom est installé et correctement paramétré.**\\  
 +Dans le cas contraire on ajouterait ​
 +<code root> 
 +iptables -t filter -A FORWARD -p udp --dport 53 -j ACCEPT 
 +</​code>​ 
 + 
 +Ou pour être plus précis : 
 + 
 +<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\ 
 + ​--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 
 +</​code>​ 
 + 
 +</​note>​ 
  
 ====Dépendance du NAT et des chaînes FILTER sur l'​interface interne (eth1)==== ====Dépendance du NAT et des chaînes FILTER sur l'​interface interne (eth1)====
Ligne 466: Ligne 598:
 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 le DROP sur FORWARD (FILTER)
 #mais on oublie pas eth1 ! #mais on oublie pas eth1 !
-/sbin/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\ 
 + 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
 + -m state --state NEW,​ESTABLISHED,​RELATED ​-j ACCEPT 
 +  
 +iptables -t filter -A FORWARD -i eth0 -o eth1 -s 0.0.0.0/0 -d 192.168.1.0/​24 -p icmp\ 
 + -m state --state ESTABLISHED,​RELATED -j ACCEPT 
 + 
 +#décocher les deux règles ci-dessous si un serveur DNS n'est pas installé sur la passerelle  
 + 
 +#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
  
-/sbin/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 udp
- tcp -m state --state ESTABLISHED,​RELATED ​-j ACCEPT+# --dport 53 -m state --state ESTABLISHED -j ACCEPT
  
 +##Règles icmp pour 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 491: Ligne 638:
  
 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 522: Ligne 669:
 ====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 644: Ligne 795:
 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 -192.168.1.0/​24 -0.0.0.0/​0\ +iptables ​-t filter ​-A FORWARD -i eth1 -o eth0 -192.168.1.0/​24 -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 674: Ligne 830:
  
 </​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.\\ ​
 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 710: Ligne 870:
 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 737: Ligne 906:
    
 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 809: Ligne 978:
   * 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 817: Ligne 986:
 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 824: Ligne 993:
 <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 831: Ligne 1000:
 --- 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 984: Ligne 1153:
 /​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 1029: Ligne 1208:
 /​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 1130: Ligne 1309:
 <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>​
  
Ligne 1174: Ligne 1353:
 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.txt · Dernière modification: 01/11/2015 18:20 par milou

Pied de page des forums

Propulsé par FluxBB