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 [01/11/2015 17:44]
milou [Pare-feu pour une station (client)]
doc:reseau:iptables-pare-feu-pour-un-client [30/08/2018 14:28]
Beta-Pictoris
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 220: Ligne 224:
 ===Autoriser les échanges avec les serveurs DNS=== ===Autoriser les échanges avec les serveurs DNS===
 <code root> <code root>
-iptables -t filter -A OUTPUT -p udp -m udp\ +iptables -t filter -A OUTPUT -p udp --dport 53 -m conntrack --ctstate NEW         ​-j ACCEPT 
- --dport 53 -m conntrack --ctstate NEW,​RELATED,​ESTABLISHED ​-j ACCEPT +iptables -t filter -A INPUT  -p udp --sport 53 -m conntrack --ctstate ESTABLISHED -j ACCEPT
- +
-iptables -t filter -A INPUT -p udp -m udp\ +
- --sport 53 -m conntrack --ctstate ​RELATED,ESTABLISHED -j ACCEPT+
 </​code>​ </​code>​
  
-<​note>​ + 
-**Signification de ces commandes** :\\ +===Signification de ces commandes=== 
 Autorise un paquet passant par la chaîne (OUTPUT|INPUT),​ par protocole de transport udp sur le port 53 (''​--dport''​ : port de destination | ''​--sport''​ : port source ), et pour udp utilisation du module "​conntrack", ​ selon l'​état de la connexion (NEW, demande de nouvelle connexion, RELATED, nouvelle demande mais en rapport avec une connexion déjà initiée et ESTABLISHED,​ en relation à une demande pour une connexion déjà initiée). Autorise un paquet passant par la chaîne (OUTPUT|INPUT),​ par protocole de transport udp sur le port 53 (''​--dport''​ : port de destination | ''​--sport''​ : port source ), et pour udp utilisation du module "​conntrack", ​ selon l'​état de la connexion (NEW, demande de nouvelle connexion, RELATED, nouvelle demande mais en rapport avec une connexion déjà initiée et ESTABLISHED,​ en relation à une demande pour une connexion déjà initiée).
  
Ligne 242: Ligne 243:
   * NEW : signifie que le paquet a commencé une nouvelle connexion   * NEW : signifie que le paquet a commencé une nouvelle connexion
   * ESTABLISHED : ce qui signifie que le paquet est associé à une connexion qui a vu les paquets dans les deux sens.   * ESTABLISHED : ce qui signifie que le paquet est associé à une connexion qui a vu les paquets dans les deux sens.
-  * RELATED : signifie que le paquet commence une nouvelle connexion, mais est associé à une connexion existante, ​telle qu'un transfère de données FTP, ou une erreur ICMP+  * RELATED : signifie que le paquet commence une nouvelle connexion ​(comme l'​état NEW), mais est associé à une connexion existante, ​commencéeen général, sur un autre port ou avec un autre protocole réseau. L'​état RELATED ne s'​applique que pour des protocoles réseaux bien précis (amanda, ftp, h323, irc, netbios, pptp, sane, sip, tftp).
   * UNTRACKED : signifie que le paquet n'est pas suivi du tout.   * UNTRACKED : signifie que le paquet n'est pas suivi du tout.
   * SNAT : Un état virtuel, le paquet correspond si l'​adresse source diffère la réponse de destination.   * SNAT : Un état virtuel, le paquet correspond si l'​adresse source diffère la réponse de destination.
Ligne 251: Ligne 252:
   * CONFIRMED : Connexion est confirmée   * CONFIRMED : Connexion est confirmée
  
 +<note important>​Depuis debian stretch, **conntrack** va étiqueter des paquets, comme étant dans l'​état **RELTATED**,​ que pour le protocole **icmp**.(Module **nf_conntrack_ipv4** chargé automatiquement). 
 +Pour les autres protocoles, il faudra ajouter une règle de type **raw** pour charger le module adéquat et activer la prise en charge de l'​état **RELATED**. Par exemple, pour le protocole **ftp**, coté serveur: 
 +<code root>​iptables -t raw -A PREROUTING -p tcp --dport 21 -j CT --helper ftp</​code>​ 
 +</​note>​
 Vous n'avez rien compris ? C'est normal, voyons ce qu'est //​conntrack//​ ! Vous n'avez rien compris ? C'est normal, voyons ce qu'est //​conntrack//​ !
  
Ligne 297: Ligne 301:
 iptables -t filter -A OUTPUT -p tcp -m multiport\ iptables -t filter -A OUTPUT -p tcp -m multiport\
  ​--dports 80,443,8000 -m conntrack --ctstate\  ​--dports 80,443,8000 -m conntrack --ctstate\
- NEW,RELATED,​ESTABLISHED -j ACCEPT+ ​NEW,​ESTABLISHED -j ACCEPT
   ​   ​
 iptables -t filter -A INPUT -p tcp -m multiport\ iptables -t filter -A INPUT -p tcp -m multiport\
  ​--sports 80,443,8000 -m conntrack --ctstate\  ​--sports 80,443,8000 -m conntrack --ctstate\
- RELATED,ESTABLISHED -j ACCEPT+ ​ESTABLISHED -j ACCEPT
 </​code>​ </​code>​
  
 ===Pour IMAP et SMTP (utilisation de messagerie icedove) === ===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+<code root>​iptables -A INPUT -m multiport -p tcp --sport 25,​2525,​587,​465,​143,​993,​995 -m state --state 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>​+iptables -A OUTPUT -m multiport -p tcp --dport 25,​2525,​143,​465,​587,​993,​995 -m state --state NEW,​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 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]]
Ligne 315: Ligne 319:
  
 <code root>​iptables -A INPUT -i eth0 -s 192.168.0.0/​24 -d 192.168.0.22 -p tcp\ <code root>​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+ ​--dport 631 -m state --state NEW,​ESTABLISHED -j ACCEPT
  
 iptables -A OUTPUT -o eth0 -s 192.168.0.22 -d 192.168.0.0/​24 -p tcp\ iptables -A OUTPUT -o eth0 -s 192.168.0.22 -d 192.168.0.0/​24 -p tcp\
Ligne 325: Ligne 329:
  
 <code root>​iptables -A INPUT -i eth0 -s 192.168.1.0/​24 -d 192.168.0.22 -p tcp\ <code root>​iptables -A INPUT -i eth0 -s 192.168.1.0/​24 -d 192.168.0.22 -p tcp\
- ​--dport 631 -m state --state NEW,RELATED,​ESTABLISHED -j ACCEPT+ ​--dport 631 -m state --state NEW,​ESTABLISHED -j ACCEPT
  
 iptables -A OUTPUT -o eth0 -s 192.168.0.22 -d 192.168.1.0/​24 -p tcp\ iptables -A OUTPUT -o eth0 -s 192.168.0.22 -d 192.168.1.0/​24 -p tcp\
Ligne 335: Ligne 339:
 Par exemple : Par exemple :
  
-  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 +  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 
-  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+  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
  
  
Ligne 375: Ligne 379:
  
 ===Faire des tests === ===Faire des tests ===
 +
   * Sur l'​interface lo   * Sur l'​interface lo
 <code user>​ping localhost</​code>​ <code user>​ping localhost</​code>​
Ligne 403: Ligne 408:
  
   * Ping sur un domaine :   * Ping sur un domaine :
-<​code ​root>ping google.fr</​code>​+<​code ​user>ping google.fr</​code>​
  
 <code config retour de la commande>​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.
Ligne 551: 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 650: Ligne 657:
 /​sbin/​iptables -P FORWARD DROP /​sbin/​iptables -P FORWARD DROP
 # Allow trafic with DNS server # Allow trafic with DNS server
-/​sbin/​iptables -t filter -A OUTPUT -p udp -m udp --dport 53 -m conntrack --ctstate NEW,​RELATED,​ESTABLISHED ​-j ACCEPT +/​sbin/​iptables -t filter -A OUTPUT -p udp --dport 53 -m conntrack --ctstate NEW         ​-j ACCEPT 
-/​sbin/​iptables -t filter -A INPUT -p udp -m udp --sport 53 -m conntrack --ctstate ​RELATED,ESTABLISHED -j ACCEPT+/​sbin/​iptables -t filter -A INPUT  -p udp --sport 53 -m conntrack --ctstate ESTABLISHED -j ACCEPT
 #Allow trafic on internal network #Allow trafic on internal network
 /​sbin/​iptables -t filter -A INPUT -i lo -j ACCEPT /​sbin/​iptables -t filter -A INPUT -i lo -j ACCEPT
Ligne 659: Ligne 666:
 /​sbin/​iptables -A INPUT -i eth0 -p icmp -m conntrack --ctstate NEW,​ESTABLISHED,​RELATED -j ACCEPT /​sbin/​iptables -A INPUT -i eth0 -p icmp -m conntrack --ctstate NEW,​ESTABLISHED,​RELATED -j ACCEPT
 #Get web #Get web
-/​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,​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 ESTABLISHED -j ACCEPT
 #Allow mailing protocols (IMAP and SMTP) #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 INPUT -m multiport -p tcp --sport 25,​2525,​587,​465,​143,​993,​995 -m state --state 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+/​sbin/​iptables -A OUTPUT -m multiport -p tcp --dport 25,​2525,​143,​465,​587,​993,​995 -m state --state NEW,​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,​ESTABLISHED -j ACCEPT
    
 iptables -A OUTPUT -o eth0 -s 192.168.0.22 -d 192.168.0.0/​24 -p tcp --sport 631 -m state ! --state INVALID -j ACCEPT iptables -A OUTPUT -o eth0 -s 192.168.0.22 -d 192.168.0.0/​24 -p tcp --sport 631 -m state ! --state INVALID -j ACCEPT
 #Allow cups from sub-net #Allow cups from sub-net
-/​sbin/​iptables -A INPUT -i eth0 -s 192.168.1.0/​24 -d 192.168.0.22 -p tcp --dport 631 -m state --state NEW,RELATED,​ESTABLISHED -j ACCEPT+/​sbin/​iptables -A INPUT -i eth0 -s 192.168.1.0/​24 -d 192.168.0.22 -p tcp --dport 631 -m state --state NEW,​ESTABLISHED -j ACCEPT
 /​sbin/​iptables -A OUTPUT -o eth0 -s 192.168.0.22 -d 192.168.1.0/​24 -p tcp --sport 631 -m state ! --state INVALID -j ACCEPT /​sbin/​iptables -A OUTPUT -o eth0 -s 192.168.0.22 -d 192.168.1.0/​24 -p tcp --sport 631 -m state ! --state INVALID -j ACCEPT
 #Set up a user chain for ssh outgoing ​ #Set up a user chain for ssh outgoing ​
Ligne 750: 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>​
  
Ligne 864: Ligne 871:
   * En sortie :   * En sortie :
  
-  iptables -A OUTPUT -o eth0 -s <​ip_locale>​ -d <​reseau_local/​masque_de_reseau>​ -p <​nom_du_protocole>​ --sport <​nom_du_port>​ -m state --state ​RELATED,ESTABLISHED -j ACCEPT+  iptables -A OUTPUT -o eth0 -s <​ip_locale>​ -d <​reseau_local/​masque_de_reseau>​ -p <​nom_du_protocole>​ --sport <​nom_du_port>​ -m state --state ESTABLISHED -j ACCEPT
  
 > On précise que l'on accepte de laisser sortir de l'​interface réseau, tout paquet dont la source est l'​adresse ip correspondant à notre interface réseau, à destination de notre réseau local utilisant tel protocole, vers tel numero de port (ou service) dont l'​état est '​relatif'​ ou '​établi'​ - en rapport avec la règle d'​entrée. > On précise que l'on accepte de laisser sortir de l'​interface réseau, tout paquet dont la source est l'​adresse ip correspondant à notre interface réseau, à destination de notre réseau local utilisant tel protocole, vers tel numero de port (ou service) dont l'​état est '​relatif'​ ou '​établi'​ - en rapport avec la règle d'​entré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