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 [08/10/2014 19:38]
Hypathie [Introduction]
doc:reseau:iptables-pare-feu-pour-un-client [14/10/2014 16:29]
Hypathie [Pare-feu pour une station (client)]
Ligne 6: Ligne 6:
   * Suivi : {{à-placer}}   * Suivi : {{à-placer}}
     * Création par [[user>​Hypathie]] 08/10/2014     * Création par [[user>​Hypathie]] 08/10/2014
-    * Testé par <...> le <​...> ​FIXME+    * Testé par <...> le <​...> ​
   * Commentaires sur le forum : [[http://​debian-facile.org/​viewtopic.php?​pid=99071#​p99071| 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=99071#​p99071| Lien vers le forum concernant ce tuto]] ((N'​hésitez pas à y faire part de vos remarques, succès, améliorations ou échecs !)) 
  
-**Nota :**+
 ===== Introduction ===== ===== Introduction =====
 **Iptables** est un logiciel libre grâce auquel l’administrateur système peut configurer les chaînes et règles du pare-feu en espace noyau. **Iptables** est un logiciel libre grâce auquel l’administrateur système peut configurer les chaînes et règles du pare-feu en espace noyau.
Ligne 28: Ligne 28:
  
 ===Un paquet ou un datagramme=== ===Un paquet ou un datagramme===
-est une représentation d'un phénomène physique. Il forme une unité de confinement où les données peuvent être examinées, ​acheminés ​et filtrés ​en ce qui concerne ​sa destination, ​son origine et son contenu.\\ ​+est une représentation d'un phénomène physique. Il forme une unité de confinement où les données peuvent être examinées, ​acheminées ​et filtrées ​en pour qui concerne ​leur destination, ​leur origine et leur contenu.\\ ​
 Le schéma suivant représente un paquet de datagramme sur un réseau.\\ ​ Le schéma suivant représente un paquet de datagramme sur un réseau.\\ ​
  
 Voir [[http://​fr.wikibooks.org/​wiki/​R%C3%A9seaux_TCP/​IP/​La_pile_TCP/​IP#​Le_datagramme_IP_.28version_4.29|le schéma d'un datagramme]].\\ ​ Voir [[http://​fr.wikibooks.org/​wiki/​R%C3%A9seaux_TCP/​IP/​La_pile_TCP/​IP#​Le_datagramme_IP_.28version_4.29|le schéma d'un datagramme]].\\ ​
  
-Un datagramme n'est pas un paquet réel, mais il représente visuellement le flux d'​électrons ou de photons qui transmettent des données physiques sur un réseau. À nos yeux "​nus",​ nous ne parlons ​que de variations de l'​amplitude et de la fréquence tel que ce qui serait visible sur un oscilloscope.\\ ​+Un datagramme n'est pas un paquet réel, mais il représente visuellement le flux d'​électrons ou de photons qui transmettent des données physiques sur un réseau. À nos yeux "​nus",​ nous ne voyons ​que des variations de l'​amplitude et de la fréquence tel que ce qui serait visible sur un oscilloscope.\\ ​
  
  
-Tous ces services s'​appuient sur des données de terrain transmises à chaque paquet. Le flux de données, ​appelés ​«trafic», est régi par des protocoles standards qui s'appuie ​sur des «ports» spécifiques. Chaque port est représenté ​par l'​ouverture ​ou la fermeture de ces ports ; l'​ouverture correspond à accepter, et la fermeture correspond à rejeter ​les paquets ​dont le champ de données correspond ce port.\\ ​+Tous les services ​listés ci-dessous ​s'​appuient sur des données de terrain transmises à chaque paquet. Le flux de données, ​appelé ​«trafic», est régi par des protocoles standards qui s'appuient ​sur des «ports» spécifiques. Chaque port peut être représenté ​comme ouvert ​ou fermé ​; l'​ouverture correspond à accepter ​un déplacement de flux (ou paquets), et la fermeture correspond à rejeter ​ce flux dont le champ de données correspond ​à ce port.\\ ​
  
 ===Ports TCP/UDP et Protocole couramment utilisés=== ===Ports TCP/UDP et Protocole couramment utilisés===
-Comme un pare-feu classique, iptables contrôle les ports sur une interface réseau ​dans lequel ​les paquets peuvent entrer, ​passer à travers ou sortir.\\  ​ +Comme un pare-feu classique, iptables contrôle les ports sur une interface réseau ​par laquelle ​les paquets peuvent entrer, ​transiter, ​sortir, être rejetés.\\  ​
-Les ports peuvent s'​ouvrir ou se fermer pour chaque service.\\ ​+
  
-Ce reporter à la documentation interne (lien en vert) pour la mise en place de ces services.\\  +Ce reporter à la documentation interne (lien en vert) pour la mise en place des services ​listés ci-dessous.\\  
-Vous y trouverez : leur installation et configuration. Et à ce sujet, ​comment les ports par défaut associé à tel ou tel servicepeuvent être manuellement configurés.+Vous y trouverez : leur installation et leur configuration, tel que la modification du port par défaut pour certains de ces protocoles.\\  
 + 
 +Et à ce sujet, ​dans la suite de ce wikije considérerai qu'ils n'ont pas été modifiés.
  
 **[[doc:​reseau:​ftp|FTP]]** = TCP 21/​20\\ ​ **[[doc:​reseau:​ftp|FTP]]** = TCP 21/​20\\ ​
Ligne 63: Ligne 64:
  
 Un conseil ne pas mettre en place un pare-feu tout fait sans comprendre ce qu'on fait.\\ ​ Un conseil ne pas mettre en place un pare-feu tout fait sans comprendre ce qu'on fait.\\ ​
-L'​idéal est d'​avoir ​des bases sur les réseaux.\\  +L'​idéal est d'​avoir ​quelques ​bases sur les réseaux.\\  
-Voici quelques liens indispensables pour aborder ces bases :\\ +Voici quelques liens indispensables pour acquérir quelques connaissances fondamentales ​:\\ 
  
   * [[http://​www.inetdoc.net/​guides/​iptables-tutorial/​tcpiprepetition.html|TCP/​IP]]   * [[http://​www.inetdoc.net/​guides/​iptables-tutorial/​tcpiprepetition.html|TCP/​IP]]
Ligne 73: Ligne 74:
     * sur SCTP : les [[http://​www.inetdoc.net/​guides/​iptables-tutorial/​sctpcharacteristics.html|Caractéristiques SCTP]] et les [[http://​www.inetdoc.net/​guides/​iptables-tutorial/​sctpheaders.html|En-têtes SCTP]]     * sur SCTP : les [[http://​www.inetdoc.net/​guides/​iptables-tutorial/​sctpcharacteristics.html|Caractéristiques SCTP]] et les [[http://​www.inetdoc.net/​guides/​iptables-tutorial/​sctpheaders.html|En-têtes SCTP]]
  
-Pour ce qui concerne le routage, l'aborder ​lors de la mise en place d'un pare-feu pour une machine faisant office de routeur.+Au sujet de la configuration réseau, commandes, fichiers de configuration pour GNU/​linux:​\\ [[http://​www.linux-france.org/​prj/​edu/​archinet/​systeme/​ch03.html]] 
 + 
 +Pour ce qui concerne le routage ​(table NAT)nous l'aborderons ​lors de la mise en place d'un pare-feu pour une machine faisant office de routeur, dans le wiki suivant.
 =====Fonctionnement d'​iptables===== =====Fonctionnement d'​iptables=====
 Pour apprendre à utiliser iptables et acquérir les différentes notions mises en œuvre lors de son utilisation,​ nous allons partir de l'​exemple.\\ ​ Pour apprendre à utiliser iptables et acquérir les différentes notions mises en œuvre lors de son utilisation,​ nous allons partir de l'​exemple.\\ ​
Ligne 81: Ligne 84:
 Une **table** permet de définir le plan de "​travail"​. En effet, iptables ne sert pas uniquement à bloquer certains paquets et n'est pas uniquement utiliser pour dresser un pare-feu. On peut par exemple s'en servir modifier un paquet (table MANGLE), ou pour faire de la redirection de paquet (table NAT). Une **table** permet de définir le plan de "​travail"​. En effet, iptables ne sert pas uniquement à bloquer certains paquets et n'est pas uniquement utiliser pour dresser un pare-feu. On peut par exemple s'en servir modifier un paquet (table MANGLE), ou pour faire de la redirection de paquet (table NAT).
  
-Mais c'est la table filter permet d'​utiliser iptables en tant que pare-feu. Avec cette table, on va indiquer à iptables un ensemble de règles dans un ordre précis afin qu'il sache s'il doit interdire ou autoriser le passage des paquets. \\ +Mais c'est la table filter ​qui permet d'​utiliser iptables en tant que pare-feu ​et qui nous intéresse ici.\\ Avec cette table, on va indiquer à iptables un ensemble de règles dans un ordre précis afin qu'il sache s'il doit interdire ou autoriser le passage des paquets. \\ 
  
 Dresser la table filter consistera à indiquer précisément à iptables pour quels paquets, pour quels ports ou protocoles, pour quelle direction... il y a autorisation ou interdiction de passage. Dresser la table filter consistera à indiquer précisément à iptables pour quels paquets, pour quels ports ou protocoles, pour quelle direction... il y a autorisation ou interdiction de passage.
Ligne 103: Ligne 106:
 > **La première ligne ''​Chain INPUT (policy ACCEPT)''​** concerne les paquets entrants **''​INPUT''​**.\\ On voit que tout passe dans toutes les directions **''​policy ACCEPT''​**. > **La première ligne ''​Chain INPUT (policy ACCEPT)''​** concerne les paquets entrants **''​INPUT''​**.\\ On voit que tout passe dans toutes les directions **''​policy ACCEPT''​**.
  
-> **En dessous ''​target ​  prot opt source ​ destination''​** ce sont les titres qui permettent de ranger dans un tableau bien lisible ce qui est mis en place :+> **En dessous ''​target ​  prot opt source ​ destination''​** ce sont les titres qui permettent de ranger ​le retour de la commande de listage ​dans un tableau bien lisible. Pratique pour lire plus facilement ​ce qui est mis en place :
 >> >>
 >> **''​target''​** : c'est l'​action à prendre, quand des règles seront mises en place, on trouvera dans cette colonne plusieurs lignes dont chacune aura l'une de ces valeurs :\\  **''​ACCEPT''​** (autoriser) ou **''​DROP''​** (interdire) ou **''​REJECT''​** (interdire en envoyant un signal d'​interdiction). >> **''​target''​** : c'est l'​action à prendre, quand des règles seront mises en place, on trouvera dans cette colonne plusieurs lignes dont chacune aura l'une de ces valeurs :\\  **''​ACCEPT''​** (autoriser) ou **''​DROP''​** (interdire) ou **''​REJECT''​** (interdire en envoyant un signal d'​interdiction).
Ligne 174: Ligne 177:
  
 <​note>​ <​note>​
--F : (flush) : vider toutes les tables ​existantes\\  +-F : (flush) : vider toutes les chaînes ​existantes\\  
--X : supprimer les règles ​personnelles ​+-X : supprimer les chaînes ​personnelles ​
 </​note>​ </​note>​
  
Ligne 462: Ligne 465:
  
   * Pour vérifier ses logs :   * Pour vérifier ses logs :
-On se connecte en ssh du client sur lequel on a installé le pare-feu vers un client de notre réseau; puis dans l'​autre sens d'un client du réseau vers le client "​pare-feuté"​ qui est aussi server ​ssh.+On se connecte en ssh du client sur lequel on a installé le pare-feu vers un client de notre réseau; puis dans l'​autre sens d'un client du réseau vers le client "​pare-feuté"​ qui est aussi serveur ​ssh.
  
 <code user>​less /​var/​log/​messages | grep OUTGOING_SSH</​code>​ <code user>​less /​var/​log/​messages | grep OUTGOING_SSH</​code>​
Ligne 497: Ligne 500:
 <code root>​iptables-restore < /​etc/​iptables</​code>​ <code root>​iptables-restore < /​etc/​iptables</​code>​
  
-Bon il ne faut pas oublier de mettre ​son pare-feu à chaque redémarrage !\\ +Bon il ne faut pas oublier de charger ​son pare-feu à chaque redémarrage !\\ 
  
 Évitons ce risque et surtout de nous fatiguer...\\ ​ Évitons ce risque et surtout de nous fatiguer...\\ ​
Ligne 564: Ligne 567:
 /​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 -m udp --dport 53 -m conntrack --ctstate NEW,​RELATED,​ESTABLISHED -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 -m udp --sport 53 -m conntrack --ctstate RELATED,​ESTABLISHED -j ACCEPT
-#Allow trafic on internal network ​ +#Allow trafic on internal network
-/​sbin/​iptables -t filter -A OUTPUT -o lo -j ACCEPT+
 /​sbin/​iptables -t filter -A INPUT -i lo -j ACCEPT /​sbin/​iptables -t filter -A INPUT -i lo -j ACCEPT
 +/​sbin/​iptables -t filter -A OUTPUT -o lo -j ACCEPT
 #Allow ping to internal network #Allow ping to internal network
 /​sbin/​iptables -A OUTPUT -p icmp -m conntrack --ctstate NEW,​ESTABLISHED,​RELATED -j ACCEPT /​sbin/​iptables -A OUTPUT -p icmp -m conntrack --ctstate NEW,​ESTABLISHED,​RELATED -j ACCEPT
Ligne 577: Ligne 580:
 /​sbin/​iptables -I INPUT -p tcp --dport 22 -j OutGoingSSH /​sbin/​iptables -I INPUT -p tcp --dport 22 -j OutGoingSSH
 /​sbin/​iptables -A OutGoingSSH -j LOG --log-prefix '​[OUTGOING_SSH] : ' /​sbin/​iptables -A OutGoingSSH -j LOG --log-prefix '​[OUTGOING_SSH] : '
-#Set up a user chain forr ssh incoming ​+#Set up a user chain for ssh incoming ​
 /​sbin/​iptables -t filter -N InComingSSH /​sbin/​iptables -t filter -N InComingSSH
 /​sbin/​iptables -I OUTPUT -p tcp --sport 22 -j InComingSSH /​sbin/​iptables -I OUTPUT -p tcp --sport 22 -j InComingSSH
Ligne 645: Ligne 648:
 Et voilà c'est déjà fini ;-) Et voilà c'est déjà fini ;-)
  
-**Prochain n° sur iptables : "un pare-feu pour une passerelle-routeur Debian"​.**+**Prochain n° sur iptables : "[[atelier:​chantier:​iptables-un-pare-feu-pour-une-passerelle?&​|un pare-feu pour une passerelle-routeur Debian]]".**
  
 =====Récapitulatif des commandes et options ===== =====Récapitulatif des commandes et options =====
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