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-un-client [11/11/2014 10:33]
Hypathie [Sauvegarder ses règles]
doc:reseau:iptables-pare-feu-pour-un-client [22/08/2018 17:55]
smolski mis le ping sur google en user
Ligne 4: Ligne 4:
   * Niveau requis : {{tag> avisé}}   * Niveau requis : {{tag> avisé}}
   * Commentaires : //Contexte d'​utilisation du sujet du tuto. //   * Commentaires : //Contexte d'​utilisation du sujet du tuto. //
-  * Suivi : {{à-placer}}+  * Suivi : {{tag>à-tester}}
     * Création par [[user>​Hypathie]] 08/10/2014     * Création par [[user>​Hypathie]] 08/10/2014
     * Testé par <...> le <​...> ​     * Testé par <...> le <​...> ​
Ligne 53: Ligne 53:
 **SSL/​https** = UDP 443((voir samba))\\ ​ **SSL/​https** = UDP 443((voir samba))\\ ​
 **[[doc:​reseau:​dns|DNS]]** = UDP = 53\\  **[[doc:​reseau:​dns|DNS]]** = UDP = 53\\ 
-**[[atelier:chantier:​dhcp|DHCP]]** = UDP = 67 et 68\\ +**[[doc:reseau:​dhcp|DHCP]]** = UDP = 67 et 68\\ 
 **[[doc:​reseau:​samba|SAMBA]]** = 137-139 et 445 (voir ci-dessous)\\ ​ **[[doc:​reseau:​samba|SAMBA]]** = 137-139 et 445 (voir ci-dessous)\\ ​
 **NETBIOS** = 137-139\\ ​ **NETBIOS** = 137-139\\ ​
Ligne 98: Ligne 98:
 > **''​-t table''​** : pour demander une table en particulier((Par défaut c'est la table filter qui est listée, donc on peut aussi utiliser la commande: ''​iptables -L''​ pour le même résultat.)) > **''​-t table''​** : pour demander une table en particulier((Par défaut c'est la table filter qui est listée, donc on peut aussi utiliser la commande: ''​iptables -L''​ pour le même résultat.))
  
-<​code>​+<​code ​config retour de la commande>
 Chain INPUT (policy ACCEPT) Chain INPUT (policy ACCEPT)
 target ​    prot opt source ​              ​destination ​         target ​    prot opt source ​              ​destination ​        
Ligne 125: Ligne 125:
 > **La cinquième ligne ''​Chain OUTPUT (policy ACCEPT)''​** concerne les paquets sortants (**''​OUTPUT''​**). > **La cinquième ligne ''​Chain OUTPUT (policy ACCEPT)''​** concerne les paquets sortants (**''​OUTPUT''​**).
  
 +=== Lien utile ===
 +
 +En complément,​ voir ce post sur le forum :
 +  * [[https://​debian-facile.org/​viewtopic.php?​id=18221]]
  
 ====Quelques définitions==== ====Quelques définitions====
Ligne 143: Ligne 147:
 Une chaîne est un ensemble de règles définies dans un **ordre précis**.\\ Pour l'​instant,​ il n'y n'a pas de règle mais une fois le pare-feu mis en place on pourrait avoir par exemple pour les entrées ''​INPUT'':​ Une chaîne est un ensemble de règles définies dans un **ordre précis**.\\ Pour l'​instant,​ il n'y n'a pas de règle mais une fois le pare-feu mis en place on pourrait avoir par exemple pour les entrées ''​INPUT'':​
 <code root>​iptables -L --line-numbers Chain INPUT</​code>​ <code root>​iptables -L --line-numbers Chain INPUT</​code>​
-<​code>​ + 
-num  target ​  prot opt  source ​    ​destination ​        +<​code ​config retour de la commande>​num ​ target ​  prot opt  source ​    ​destination ​        
 1    ACCEPT ​  ​tcp ​ --  anywhere ​   anywhere ​   tcp dpt:​www ​ 1    ACCEPT ​  ​tcp ​ --  anywhere ​   anywhere ​   tcp dpt:​www ​
 2    ACCEPT ​  ​tcp ​ --  anywhere ​   anywhere ​   tcp dpt:​ssh ​ 2    ACCEPT ​  ​tcp ​ --  anywhere ​   anywhere ​   tcp dpt:​ssh ​
-3    ACCEPT ​  ​tcp ​ --  anywhere ​   anywhere ​   tcp dpt:imap2 +3    ACCEPT ​  ​tcp ​ --  anywhere ​   anywhere ​   tcp dpt:​imap2</​code>​ 
-</​code>​+
  
 >**Il y a bien un ordre précis** :  >**Il y a bien un ordre précis** : 
 >>La première règle (''​1''​) autorise ''​ACCEPT'',​ le protocole ''​tcp'',​ venant de partout ''​anywhere'',​ allant partout ''​anywhere'',​ et cela pour ''​www'',​ le web (ou port 80). >>La première règle (''​1''​) autorise ''​ACCEPT'',​ le protocole ''​tcp'',​ venant de partout ''​anywhere'',​ allant partout ''​anywhere'',​ et cela pour ''​www'',​ le web (ou port 80).
 +>>
 >>La seconde (''​2''​) pour ''​ssh''​ >>La seconde (''​2''​) pour ''​ssh''​
 +>>
 >>la troisième (''​3''​)pour ''​imap2''​ >>la troisième (''​3''​)pour ''​imap2''​
  
Ligne 207: Ligne 213:
   * Voyons le résultat :   * Voyons le résultat :
 <code root>​iptables -L -n --line-numbers</​code>​ <code root>​iptables -L -n --line-numbers</​code>​
-<​code>​Chain INPUT (policy DROP)+<​code ​config retour de la commande>Chain INPUT (policy DROP)
 num  target ​    prot opt source ​              ​destination ​         num  target ​    prot opt source ​              ​destination ​        
  
Ligne 214: Ligne 220:
  
 Chain OUTPUT (policy DROP) Chain OUTPUT (policy DROP)
-num  target ​    prot opt source ​              ​destination </​code>​+num  target ​    prot opt source ​              ​destination</​code> ​
  
 ===Autoriser les échanges avec les serveurs DNS=== ===Autoriser les échanges avec les serveurs DNS===
Ligne 262: Ligne 268:
 Pour l'​espace utilisateur les états valides sont NEW, ESTABLISHED,​ RELATED et INVALID. ​ Pour l'​espace utilisateur les états valides sont NEW, ESTABLISHED,​ RELATED et INVALID. ​
  
-Voir [[http://​www.inetdoc.net/​guides/​iptables-tutorial/​traversingoftables.html|la ​traverser ​des tables et des chaînes]].+Voir [[http://​www.inetdoc.net/​guides/​iptables-tutorial/​traversingoftables.html|la ​traversée ​des tables et des chaînes]].
  
 [[http://​www.inetdoc.net/​guides/​iptables-tutorial/​tcpconnections.html|La machine d'​état:​ connexion TCP]] [[http://​www.inetdoc.net/​guides/​iptables-tutorial/​tcpconnections.html|La machine d'​état:​ connexion TCP]]
Ligne 337: Ligne 343:
  
  
-Voir : [[atelier:chantier:iptables-un-pare-feu-pour-une-passerelle?&#​le-script-de-la-passerelle|Script d'une passerelle]]+Voir : [[doc:reseau:​iptables-pare-feu-pour-une-passerelle?&#​le-script-de-la-passerelle|Script d'une passerelle]]
 </​note> ​ </​note> ​
  
Ligne 345: Ligne 351:
 ou ou
 <code root>​iptables -L -n --line-numbers</​code>​ <code root>​iptables -L -n --line-numbers</​code>​
-<​code>​ + 
-Chain INPUT (policy DROP 80 packets, 19279 bytes)+<​code ​config retour de la commande>Chain INPUT (policy DROP 80 packets, 19279 bytes)
  pkts bytes target ​ prot opt in    out   ​source ​       destination ​          pkts bytes target ​ prot opt in    out   ​source ​       destination ​        
     1   131 ACCEPT ​ udp  --  *      *    0.0.0.0/​0 ​    ​0.0.0.0/​0 ​  udp\     1   131 ACCEPT ​ udp  --  *      *    0.0.0.0/​0 ​    ​0.0.0.0/​0 ​  udp\
Ligne 369: Ligne 375:
 dports 80,443,8000 ctstate NEW,​RELATED,​ESTABLISHED dports 80,443,8000 ctstate NEW,​RELATED,​ESTABLISHED
   ​   ​
-   ​4 ​ 336 ACCEPT ​  ​all ​ --  *     ​lo ​   0.0.0.0/​0 ​    ​0.0.0.0/​0 +   ​4 ​ 336 ACCEPT ​  ​all ​ --  *     ​lo ​   0.0.0.0/​0 ​    ​0.0.0.0/​0</​code>​ 
-</​code>​+
  
 ===Faire des tests === ===Faire des tests ===
 +
   * Sur l'​interface lo   * Sur l'​interface lo
 <code user>​ping localhost</​code>​ <code user>​ping localhost</​code>​
-<​code>​ + 
-PING localhost (127.0.0.1) 56(84) bytes of data.+<​code ​config retour de la commande>PING localhost (127.0.0.1) 56(84) bytes of data.
 64 bytes from localhost (127.0.0.1):​ icmp_req=1 ttl=64 time=0.050 ms 64 bytes from localhost (127.0.0.1):​ icmp_req=1 ttl=64 time=0.050 ms
 64 bytes from localhost (127.0.0.1):​ icmp_req=2 ttl=64 time=0.042 ms 64 bytes from localhost (127.0.0.1):​ icmp_req=2 ttl=64 time=0.042 ms
Ligne 382: Ligne 389:
 --- localhost ping statistics --- --- localhost 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.042/​0.046/​0.050/​0.004 ms +rtt min/​avg/​max/​mdev = 0.042/​0.046/​0.050/​0.004 ms</​code>​
-</​code>​+
  
 Ça marche 8-) Ça marche 8-)
Ligne 389: Ligne 395:
   * Vers un autre client :   * Vers un autre client :
 <code user>​ping 192.168.0.1</​code>​ <code user>​ping 192.168.0.1</​code>​
-<​code>​ + 
-PING 192.168.0.1 (192.168.0.1) 56(84) bytes of data.+<​code ​config retour de la commande>PING 192.168.0.1 (192.168.0.1) 56(84) bytes of data.
 64 bytes from 192.168.0.1:​ icmp_req=1 ttl=64 time=0.226 ms 64 bytes from 192.168.0.1:​ icmp_req=1 ttl=64 time=0.226 ms
 64 bytes from 192.168.0.1:​ icmp_req=2 ttl=64 time=0.209 ms 64 bytes from 192.168.0.1:​ icmp_req=2 ttl=64 time=0.209 ms
Ligne 396: Ligne 402:
 --- 192.168.0.1 ping statistics --- --- 192.168.0.1 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.209/​0.217/​0.226/​0.017 ms +rtt min/​avg/​max/​mdev = 0.209/​0.217/​0.226/​0.017 ms</​code>​ 
-</​code>​+
  
 Tout va bien :-D Tout va bien :-D
  
   * Ping sur un domaine :   * Ping sur un domaine :
-<​code ​root>ping google.fr</​code>​+<​code ​user>ping google.fr</​code>​
  
-<​code>​PING google.fr (173.194.40.152) 56(84) bytes of data.+<​code ​config retour de la commande>PING google.fr (173.194.40.152) 56(84) bytes of data.
 64 bytes from par10s10-in-f24.1e100.net (173.194.40.152):​ icmp_req=1 ttl=55 time=34.0 ms 64 bytes from par10s10-in-f24.1e100.net (173.194.40.152):​ icmp_req=1 ttl=55 time=34.0 ms
 ^C ^C
Ligne 509: Ligne 515:
  
 <code user>​less /​var/​log/​messages | grep OUTGOING_SSH</​code>​ <code user>​less /​var/​log/​messages | grep OUTGOING_SSH</​code>​
-<​code>​ + 
-<...>+<​code ​config retour de la commande><​...>​
 Oct  8 12:01:07 debian-pc1 kernel: [16793.633030] [OUTGOING_SSH] : IN=eth0 OUT= MAC=xxx.. Oct  8 12:01:07 debian-pc1 kernel: [16793.633030] [OUTGOING_SSH] : IN=eth0 OUT= MAC=xxx..
 SRC=192.168.0.1 DST=192.168.0.22 LEN=52 TOS=0x10 PREC=0x00 TTL=64 ID=13465 SRC=192.168.0.1 DST=192.168.0.22 LEN=52 TOS=0x10 PREC=0x00 TTL=64 ID=13465
  DF PROTO=TCP SPT=48542 DPT=22 WINDOW=1523 RES=0x00 ACK URGP=0  DF PROTO=TCP SPT=48542 DPT=22 WINDOW=1523 RES=0x00 ACK URGP=0
-<...> +<​...></​code>​ 
-</​code>​+
  
 <code user>​less /​var/​log/​messages | grep INCOMING_SSH</​code>​ <code user>​less /​var/​log/​messages | grep INCOMING_SSH</​code>​
-<​code>​ + 
-<...>+<​code ​config retour de la commande><​...>​
 Oct  8 12:01:07 debian-pc1 kernel: [16793.632822] [INCOMING_SSH] : IN= OUT=eth0 Oct  8 12:01:07 debian-pc1 kernel: [16793.632822] [INCOMING_SSH] : IN= OUT=eth0
  ​SRC=192.168.0.22 DST=192.168.0.1 LEN=52 TOS=0x10 PREC=0x00 TTL=64  ​SRC=192.168.0.22 DST=192.168.0.1 LEN=52 TOS=0x10 PREC=0x00 TTL=64
  ​ID=35238 DF PROTO=TCP SPT=22 DPT=48542 WINDOW=431 RES=0x00 ACK FIN URGP=0  ​ID=35238 DF PROTO=TCP SPT=22 DPT=48542 WINDOW=431 RES=0x00 ACK FIN URGP=0
-<...> +<​...></​code>​ 
-</​code>​+
  
  
Ligne 550: Ligne 556:
  
 <code root>vim /​etc/​network/​interfaces</​code>​ <code root>vim /​etc/​network/​interfaces</​code>​
-<code>+ 
 +<file config interfaces>
 # The loopback network interface # The loopback network interface
 auto lo auto lo
 iface lo inet loopback iface lo inet loopback
 post-up iptables-restore < /​etc/​firewall-client post-up iptables-restore < /​etc/​firewall-client
-</code>+</file> 
  
 ===Avantages de cette méthode=== ===Avantages de cette méthode===
Ligne 591: Ligne 599:
 Si vous avez testé la première méthode, ne pas oublier de supprimer ou de commenté la ligne **''#​post-up iptables-restore < /​etc/​firewall-client''​** du fichier /​etc/​network/​interfaces. Si vous avez testé la première méthode, ne pas oublier de supprimer ou de commenté la ligne **''#​post-up iptables-restore < /​etc/​firewall-client''​** du fichier /​etc/​network/​interfaces.
  
-  * Ce script permettra ​un rappel des possibilités ​:+  * Ce script permettra :
 <code root>/​etc/​init.d/​firewall-client.sh</​code>​ <code root>/​etc/​init.d/​firewall-client.sh</​code>​
  
Ligne 600: Ligne 608:
  
   * Avec "​restart"​ pour permettre de remettre en place toutes les règles (via le fichier de sauvegarde d'​iptables-restore)   * Avec "​restart"​ pour permettre de remettre en place toutes les règles (via le fichier de sauvegarde d'​iptables-restore)
-  * Avec "​start" ​ pour relancer toutes les règles avec le script lui-même et les re-sauvegarder+  * Avec "​start" ​ pour relancer toutes les règles avec le script lui-même et les sauvegarder
   * Avec "​status"​ pour l'​affichage des règles FILTER et NAT)   * Avec "​status"​ pour l'​affichage des règles FILTER et NAT)
  
 <note tip> <note tip>
-Il faut prendre conscience que si l'on souhaite modifier les règles du pare-feu, il est nécessaire après avoir effectué ses tests d'​aller éditer le fichier /​etc/​init.d/​firewall-client pour y apporter les modifications souhaitées aux commandes iptables ​su script.\\  +Il faut prendre conscience que si l'on souhaite modifier les règles du pare-feu, il est nécessaire après avoir effectué ses tests d'​aller éditer le fichier /​etc/​init.d/​firewall-client pour y apporter les modifications souhaitées aux commandes iptables ​du script.\\  
-La commande iptables-save lancée après ​suppression,​ ajout, etc de nouvelles ​règles iptables ​seront ​écrasées au prochain ​redemarrage ​du système qui installera les règles du script /​etc/​init.d/​firewall-client ​qui auraient été laissées en l'​état.+ 
 +Pour ce faire :\\  
 + 
 +**''​update-rc.d -f firewall-client.sh remove''​** 
 + 
 +**''​vim /​etc/​init.d/​firewall-client.sh''​** 
 + 
 +-> On modifie ce qu'on veut 
 + 
 +**''​update-rc.d -f firewall-client.sh default''​** 
 + 
 +Si l'on n'​inscrit pas toute modification dans /​etc/​init.d/​firewall-client.sh ainsi qu'une réinitialisation de ipdate-rc, comme ci-dessus, la simple ​commande iptables-save lancée après ​toutes modifications ​de règles iptables ​seraient ​écrasées au prochain ​redémarrage ​du système qui ré-installera les règles du script /​etc/​init.d/​firewall-client laissées en l'​état.
 </​note>​ </​note>​
  
Ligne 738: Ligne 757:
  
 <code root> <code root>
-chmod 0755 /​etc/​init.d/​firewall-client.sh +chmod 0755 /​etc/​init.d/​firewall-client.sh</​code>​ 
-chown root:root /​etc/​init.d/​firewall-client.sh+<code root>chown root:root /​etc/​init.d/​firewall-client.sh
 </​code>​ </​code>​
  
   * Faire en sorte qu'​init le prenne en compte à chaque redémarrage   * Faire en sorte qu'​init le prenne en compte à chaque redémarrage
 +
 +<code root>​update-rc.d firewall-client.sh defaults</​code>​
 +
 +  * Pour démarrer :
  
 <code root>​update-rc.d firewall-client.sh defaults</​code>​ <code root>​update-rc.d firewall-client.sh defaults</​code>​
  
 ===Et si tout c'est bien passé=== ===Et si tout c'est bien passé===
-Au prochain redémarrage :+Au prochain redémarrage, pendant la mise en route du système ​:
   * Le pare-feu se met en place pendant le démarrage du système ​   * Le pare-feu se met en place pendant le démarrage du système ​
 <​code>​set up firewall-client .........>​ [OK] <​code>​set up firewall-client .........>​ [OK]
Ligne 776: Ligne 799:
 Et voilà c'est déjà fini ;-) Et voilà c'est déjà fini ;-)
  
-**Prochain n° sur iptables : "[[atelier:chantier:iptables-un-pare-feu-pour-une-passerelle?&|un pare-feu pour une passerelle Debian]]"​.**+**Prochain n° sur iptables : "[[doc:reseau:​iptables-pare-feu-pour-une-passerelle|un pare-feu pour une passerelle Debian]]"​.**
  
 =====Récapitulatif,​ commandes, options, syntaxe ===== =====Récapitulatif,​ commandes, options, syntaxe =====
doc/reseau/iptables-pare-feu-pour-un-client.txt · Dernière modification: 31/05/2023 20:57 par lagrenouille

Pied de page des forums

Propulsé par FluxBB