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 [07/11/2014 10:40]
Hypathie [Pare-feu pour une station (client)]
doc:reseau:iptables-pare-feu-pour-un-client [25/10/2015 13:26]
milou [Introduction]
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 301: Ligne 301:
  ​RELATED,​ESTABLISHED -j ACCEPT  ​RELATED,​ESTABLISHED -j ACCEPT
 </​code>​ </​code>​
 +
 +===Pour IMAP et SMTP (utilisation de messagerie icedove) ===
 +<code root>​iptables -A INPUT -m multiport -p tcp --sport 25,​2525,​587,​465,​143,​993,​995 -m state --state RELATED,​ESTABLISHED -j ACCEPT
 +
 +iptables -A OUTPUT -m multiport -p tcp --dport 25,​2525,​143,​465,​587,​993,​995 -m state --state NEW,​RELATED,​ESTABLISHED -j ACCEPT </​code>​
 +
 +Pour la liste des ports selon les serveurs de messagerie utilisés voir : [[https://​www.arclab.com/​en/​amlc/​list-of-smtp-and-imap-servers-mailserver-list.html|list of smtp and imap servers mailserver]]
  
 ===Pour installer une imprimante partagée === ===Pour installer une imprimante partagée ===
Ligne 520: Ligne 527:
  
  
-====Sauvegarder ses règles ====+=====Sauvegarder ses règles ​=====
 En l'​état actuel, si on éteint le système au redémarrage nos règles et tables utilisateur auront disparu.\\ ​ En l'​état actuel, si on éteint le système au redémarrage nos règles et tables utilisateur auront disparu.\\ ​
 Pour les sauvegarder,​ il y a plusieurs méthodes. On peut créer un script de démarrage, ou se servir de les commandes iptables-save et iptables-restore.\\ ​ Pour les sauvegarder,​ il y a plusieurs méthodes. On peut créer un script de démarrage, ou se servir de les commandes iptables-save et iptables-restore.\\ ​
 On choisira d'​abord la seconde méthode car c'est la plus simple !  On choisira d'​abord la seconde méthode car c'est la plus simple ! 
  
-===Avec les commandes iptables-save et iptables-restore===+====Avec les commandes iptables-save et iptables-restore====
 La commande iptables-save crée un fichier et la commande iptables-restore charge la dernière sauvegarde à partir du fichier crée par iptables-save. La commande iptables-save crée un fichier et la commande iptables-restore charge la dernière sauvegarde à partir du fichier crée par iptables-save.
  
-  * Pour sauvegarder toutes les règles ​:+===Pour sauvegarder toutes les règles===
 <code root>​iptables-save > /​etc/​firewall-client</​code>​ <code root>​iptables-save > /​etc/​firewall-client</​code>​
  
-  * Pour les charger après le redémarrage ​:+===Pour les charger après le redémarrage===
 <code root>​iptables-restore < /​etc/​firewall-client</​code>​ <code root>​iptables-restore < /​etc/​firewall-client</​code>​
  
Ligne 538: Ligne 545:
 Évitons ce risque et surtout de nous fatiguer...\\ ​ Évitons ce risque et surtout de nous fatiguer...\\ ​
  
-  * Pour restaurer automatiquement les règles au démarrage+===Pour restaurer automatiquement les règles au démarrage===
  
-On va installer la commande iptables-restore avant que les interfaces ne soient chargés via le fichier /​etc/​network/​interfaces.\\ ​ +On va installer la commande iptables-restore avant que les interfaces ​ethernet ​ne soient chargés via le fichier /​etc/​network/​interfaces.\\ ​
- +
-  * L'​avantage de cette méthode : est la possibilité de créer des règles personnalisées pour chaque interface.  +
-Si les règles sont indépendantes des interfaces, on place la commande ​ iptables-restore en pre-up de la boucle locale.+
  
 <code root>vim /​etc/​network/​interfaces</​code>​ <code root>vim /​etc/​network/​interfaces</​code>​
Ligne 553: Ligne 557:
 </​code>​ </​code>​
  
-Donc le jour où on installera ​une carte wifi sur son vieil ordi fixe, on se teste d'​abord ​quelques nouvelles règles iptables, puis quand elles sont tip-top, on les sauvegarde ​ en créant un ''​iptables-save > /​etc/​iptables-wifi''​.\\ ​+===Avantages de cette méthode=== 
 + 
 +  * La possibilité de créer des règles personnalisées pour chaque interface.  
 +Si les règles sont indépendantes des interfaces, on place la commande ​ iptables-restore en pre-up de la boucle locale. 
 + 
 +On peut créer plusieurs fichiers à restaurer, un pour chaque interface par exemple, ou un fichier particulier pour un service particulier (un pour masquerade et squid, un autre pour un pare-feu)... 
 + 
 +Ainsi par exemple ​le jour où on ajoutera ​une carte wifi sur son vieil ordi fixe, on se teste quelques nouvelles règles iptables, puis quand elles sont tip-top, on les sauvegarde ​ en créant un ''​iptables-save > /​etc/​iptables-wifi''​.\\ ​
  
 On ne restera plus qu'à ajouter ''​pre-up iptables-restore < /​etc/​iptables-wifi''​ avant la configuration de l'​interface wlan dans /​etc/​network/​interfaces sans avoir à modifier ce qui fonctionnait déjà... On ne restera plus qu'à ajouter ''​pre-up iptables-restore < /​etc/​iptables-wifi''​ avant la configuration de l'​interface wlan dans /​etc/​network/​interfaces sans avoir à modifier ce qui fonctionnait déjà...
Ligne 560: Ligne 571:
 Si pour une raison ou une autre il est nécessaire d'​ajouter une règle au pare-feu, ou d'en supprimer une pour la modifier, on peut utiliser la commande iptables de suppression : Si pour une raison ou une autre il est nécessaire d'​ajouter une règle au pare-feu, ou d'en supprimer une pour la modifier, on peut utiliser la commande iptables de suppression :
  
-Par exemple :+Par exemple :\\ 
 Lister les règles avec un numéro de ligne : Lister les règles avec un numéro de ligne :
  
Ligne 575: Ligne 586:
 Ainsi cela évite de modifier un quelconque fichier, et l'on peut se servir de toutes les commandes fournies par sa distribution. Ainsi cela évite de modifier un quelconque fichier, et l'on peut se servir de toutes les commandes fournies par sa distribution.
  
-===Pour les fadas du "​scripting"​ shell===+====Pour les fadas du "​scripting"​ shell====
 Le script suivant permettra de mettre en place le pare-feu à chaque démarrage du système.\\ ​ Le script suivant permettra de mettre en place le pare-feu à chaque démarrage du système.\\ ​
 Donc c'est soit la méthode de sauvegarde des règles iptables précédente,​ soit celle-ci.\\ ​ Donc c'est soit la méthode de sauvegarde des règles iptables précédente,​ soit celle-ci.\\ ​
 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 589: Ligne 600:
  
   * 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 618: Ligne 640:
 '​start'​) '​start'​)
 ##Set up firewall-client ##Set up firewall-client
-# Clear any existing rules+# Clear any FILTER ​existing rules
 /​sbin/​iptables -F /​sbin/​iptables -F
 # Delete all User-specified chains # Delete all User-specified chains
Ligne 638: Ligne 660:
 /​sbin/​iptables -t filter -A OUTPUT -p tcp -m multiport --dports 80,443,8000 -m conntrack --ctstate NEW,​RELATED,​ESTABLISHED -j ACCEPT /​sbin/​iptables -t filter -A OUTPUT -p tcp -m multiport --dports 80,443,8000 -m conntrack --ctstate NEW,​RELATED,​ESTABLISHED -j ACCEPT
 /​sbin/​iptables -t filter -A INPUT -p tcp -m multiport --sports 80,443,8000 -m conntrack --ctstate RELATED,​ESTABLISHED -j ACCEPT /​sbin/​iptables -t filter -A INPUT -p tcp -m multiport --sports 80,443,8000 -m conntrack --ctstate RELATED,​ESTABLISHED -j ACCEPT
 +#Allow mailing protocols (IMAP and SMTP)
 +/​sbin/​iptables -A INPUT -m multiport -p tcp --sport 25,​2525,​587,​465,​143,​993,​995 -m state --state RELATED,​ESTABLISHED -j ACCEPT
 +/​sbin/​iptables -A OUTPUT -m multiport -p tcp --dport 25,​2525,​143,​465,​587,​993,​995 -m state --state NEW,​RELATED,​ESTABLISHED -j ACCEPT
 #Allow cups #Allow cups
 iptables -A INPUT -i eth0 -s 192.168.0.0/​24 -d 192.168.0.22 -p tcp --dport 631 -m state --state NEW,​RELATED,​ESTABLISHED -j ACCEPT iptables -A INPUT -i eth0 -s 192.168.0.0/​24 -d 192.168.0.22 -p tcp --dport 631 -m state --state NEW,​RELATED,​ESTABLISHED -j ACCEPT
Ligne 667: Ligne 692:
 ;; ;;
 '​stop'​) '​stop'​)
-Supprime toutes les règles du pare-feu+delete any existing rules
 /​sbin/​iptables -t filter -F /​sbin/​iptables -t filter -F
 /​sbin/​iptables -t nat -F /​sbin/​iptables -t nat -F
Ligne 696: Ligne 721:
 '​status'​) '​status'​)
 /​sbin/​iptables -L -n --line-numbers /​sbin/​iptables -L -n --line-numbers
-/​sbin/​iptables -t nat -L+/​sbin/​iptables -t nat -L -n --line-numbers
 RETVAL=$? RETVAL=$?
 ;; ;;
Ligne 707: Ligne 732:
 </​code>​ </​code>​
  
-===firewall-client.sh comme script init===+===Instalation de firewall-client.sh comme script init===
  
-Après avoir téléchargé ​firewall-client.sh.+  * Téléchargé ​firewall-client.sh. 
 + 
 +  * Déplacer le fichier firewall-client.sh dans le répertoire d'init :
 <note important>​ <note important>​
 Attention de bien changer $USER par votre nom d'​utilisateur !\\  Attention de bien changer $USER par votre nom d'​utilisateur !\\ 
 Pour pouvoir écrire (i.e. créer un fichier dans un dossier root, il faut lancer la commande en tant que root. Et donc $USER serait l'​utilisateur root qui n'a pas de fichier "​Téléchargements"​. Pour pouvoir écrire (i.e. créer un fichier dans un dossier root, il faut lancer la commande en tant que root. Et donc $USER serait l'​utilisateur root qui n'a pas de fichier "​Téléchargements"​.
 </​note>​ </​note>​
-  * Déplacer dans le répertoire d'init : 
  
 <code root>mv /​home/​$USER/​Téléchargements/​firewall-client.sh /​etc/​init.d/</​code>​ <code root>mv /​home/​$USER/​Téléchargements/​firewall-client.sh /​etc/​init.d/</​code>​
  
-  * Ajouter ​les droits d'​exécution ​au fichier ​pour en faire un exécutable ​:+  * Définir ​les droits d'​exécution ​et l'​appartenance du fichier ​/​etc/​init.d/​firewall-client.sh 
 + 
 +Ils doivent être :
  
 <code root> <code root>
Ligne 726: Ligne 754:
  
   * 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 759: Ligne 791:
 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 =====
Ligne 772: Ligne 804:
 | -L -t typetable | lister les règles d'un type de table où typetable est\\ soit ''​FILTER''​\\ soit ''​NAT''​\\ soit ''​MANGLE''​ ... | | -L -t typetable | lister les règles d'un type de table où typetable est\\ soit ''​FILTER''​\\ soit ''​NAT''​\\ soit ''​MANGLE''​ ... |
 |-E <​nowiki>​[chain]</​nowiki>​ | renommer la chaîne chain | |-E <​nowiki>​[chain]</​nowiki>​ | renommer la chaîne chain |
-| -F <​nowiki>​[chain]</​nowiki>​ | effacer (flush) les règles de la chaîne chain\\ ATTENTION\\ si on ne précise pas de chaîne, tout est effacé ! |+| -F <​nowiki>​[chain]</​nowiki>​ | effacer (flush) les règles de la chaîne chain |
 | -N chain | créer une nouvelle chaîne chain par l'​usager | | -N chain | créer une nouvelle chaîne chain par l'​usager |
 | -X chain | effacer la chaîne chain de l'​usager | | -X chain | effacer la chaîne chain de l'​usager |
-| -P chain target | définir la politique par défaut de la chaîne chain\\ où **target** est\\ soit ''​ACCEPT''​\\ soit ''​DROP''​\\ soit ''​REJETC''​ |+| -P chain target | définir la politique par défaut de la chaîne chain\\ où **target** est\\ soit ''​ACCEPT''​\\ soit ''​DROP''​\\ soit ''​REJECT''​ |
 | -Z <​nowiki>​[chain]</​nowiki>​ | remise à zéro des compteurs dans la chaîne chain si elle est indiquée | | -Z <​nowiki>​[chain]</​nowiki>​ | remise à zéro des compteurs dans la chaîne chain si elle est indiquée |
  
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