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
iptables [Le 16/02/2025, 04:44]
78.121.49.7 [Via iptables-persistent]
iptables [Le 16/02/2025, 06:46] (Version actuelle)
78.121.49.7 [Configuration du pare-feu]
Ligne 57: Ligne 57:
 Pour permettre à une connexion déjà ouverte de recevoir du trafic : Pour permettre à une connexion déjà ouverte de recevoir du trafic :
 <​code>​ <​code>​
-iptables -A INPUT -m conntrack --ctstate ESTABLISHED -j ACCEPT+sudo iptables -A INPUT -m conntrack --ctstate ESTABLISHED -j ACCEPT
 </​code>​ </​code>​
 Cette commande ajoute une règle (''​-A''​) à la chaîne contrôlant le trafic entrant //INPUT//, pour autoriser le trafic (''​-j ACCEPT''​),​ aprés vérification que l'​état de la connexion est établie (''​-m conntrack --ctstate ESTABLISHED''​). Cette commande ajoute une règle (''​-A''​) à la chaîne contrôlant le trafic entrant //INPUT//, pour autoriser le trafic (''​-j ACCEPT''​),​ aprés vérification que l'​état de la connexion est établie (''​-m conntrack --ctstate ESTABLISHED''​).
Ligne 71: Ligne 71:
 Pour permettre le trafic entrant sur le port 22 (traditionnellement utilisé par SSH, vous devrez indiquer à iptables tout le trafic TCP sur le port 22 de votre adaptateur réseau. Pour permettre le trafic entrant sur le port 22 (traditionnellement utilisé par SSH, vous devrez indiquer à iptables tout le trafic TCP sur le port 22 de votre adaptateur réseau.
 <​code>​ <​code>​
-iptables -A INPUT -p tcp -i eth0 --dport ssh -j ACCEPT+sudo iptables -A INPUT -p tcp -i eth0 --dport ssh -j ACCEPT
 </​code>​ </​code>​
 Cette commande ajoute une règle (''​-A''​) à la chaîne contrôlant le trafic entrant //INPUT//, pour autoriser le trafic (''​-j ACCEPT''​),​ vers l'​interface (''​-i''​) //eth0// et à destination du port (''<​nowiki>​--dport</​nowiki>''​) //SSH// (on aurait pu mettre 22). Cette commande ajoute une règle (''​-A''​) à la chaîne contrôlant le trafic entrant //INPUT//, pour autoriser le trafic (''​-j ACCEPT''​),​ vers l'​interface (''​-i''​) //eth0// et à destination du port (''<​nowiki>​--dport</​nowiki>''​) //SSH// (on aurait pu mettre 22).
Ligne 77: Ligne 77:
 Maintenant vous pouvez vérifier vos règles iptables : Maintenant vous pouvez vérifier vos règles iptables :
 <​code>​ <​code>​
-iptables -L+sudo iptables -L
 Chain INPUT (policy ACCEPT) Chain INPUT (policy ACCEPT)
 target ​    prot opt source ​              ​destination ​       ​ target ​    prot opt source ​              ​destination ​       ​
Ligne 86: Ligne 86:
 Maintenant, acceptons tout le trafic web (''​www''​) entrant : Maintenant, acceptons tout le trafic web (''​www''​) entrant :
 <​code>​ <​code>​
-iptables -A INPUT -p tcp -i eth0 --dport 80 -j ACCEPT+sudo iptables -A INPUT -p tcp -i eth0 --dport 80 -j ACCEPT
 </​code>​ </​code>​
  
 En regardant nos règles, nous avons : En regardant nos règles, nous avons :
 <​code>​ <​code>​
-iptables -L+sudo iptables -L
 Chain INPUT (policy ACCEPT) Chain INPUT (policy ACCEPT)
 target ​    prot opt source ​              ​destination ​       ​ target ​    prot opt source ​              ​destination ​       ​
Ligne 105: Ligne 105:
 Maintenant que nous avons fini avec les autorisations,​ il faut maintenant bloquer le reste. Maintenant que nous avons fini avec les autorisations,​ il faut maintenant bloquer le reste.
 Nous allons en fait modifier la « politique par défaut » (//​policy//​) de la chaîne //INPUT// : cette décision (//DROP//) s'​applique lorsque aucune règle n'a été appliquée à un paquet. Donc, si la tentative de connexion n'est permise par aucune des règles précédentes,​ elle sera rejetée. Nous allons en fait modifier la « politique par défaut » (//​policy//​) de la chaîne //INPUT// : cette décision (//DROP//) s'​applique lorsque aucune règle n'a été appliquée à un paquet. Donc, si la tentative de connexion n'est permise par aucune des règles précédentes,​ elle sera rejetée.
 +<note important>​warning : a ne pas utiliser sur un serveur distant !</​note>​
 <​code>​ <​code>​
-iptables -P INPUT DROP #warning : a ne pas utiliser sur un serveur distant ! +sudo iptables -P INPUT DROP #warning : a ne pas utiliser sur un serveur distant ! 
-iptables -L+sudo iptables -L
 Chain INPUT (policy DROP) Chain INPUT (policy DROP)
 target ​    prot opt source ​              ​destination ​       ​ target ​    prot opt source ​              ​destination ​       ​
Ligne 115: Ligne 115:
 ACCEPT ​    ​tcp ​ --  anywhere ​            ​anywhere ​           tcp dpt:​www ​ ACCEPT ​    ​tcp ​ --  anywhere ​            ​anywhere ​           tcp dpt:​www ​
 </​code>​ </​code>​
 +
 +== Autre méthode, par exemple pour les server ==
  
 **Un autre moyen de procéder** est l'​ajout en fin de chaîne d'une règle supprimant les paquets (les paquets autorisés par les règles précédentes n'​atteindraient pas celle-ci), //via// ''​iptables -A INPUT -j DROP'',​ mais il faudrait alors faire attention à la position des futures règles. **Un autre moyen de procéder** est l'​ajout en fin de chaîne d'une règle supprimant les paquets (les paquets autorisés par les règles précédentes n'​atteindraient pas celle-ci), //via// ''​iptables -A INPUT -j DROP'',​ mais il faudrait alors faire attention à la position des futures règles.
Ligne 124: Ligne 126:
  
 <​code>​ <​code>​
-iptables -I INPUT 2 -i lo -j ACCEPT+sudo iptables -I INPUT 2 -i lo -j ACCEPT
 </​code>​ </​code>​
  
 Pour lister les règles plus en détail. Pour lister les règles plus en détail.
 <​code>​ <​code>​
-iptables -L -v -n+sudo iptables -L -v -n
 </​code>​ </​code>​
  
Ligne 137: Ligne 139:
 <​code>​ <​code>​
 # On autorise le PC a faire des pings sur des IP externes et à répondre aux requêtes "​ping"​ # On autorise le PC a faire des pings sur des IP externes et à répondre aux requêtes "​ping"​
-iptables -A OUTPUT -p icmp -m conntrack --ctstate NEW,​ESTABLISHED,​RELATED -j ACCEPT+sudo iptables -A OUTPUT -p icmp -m conntrack --ctstate NEW,​ESTABLISHED,​RELATED -j ACCEPT
  
 # Si vous utilisez une ancienne version de iptables la commande ci-dessus peut ne pas fonctionner,​ dans ce cas entrez la commande suivante : # Si vous utilisez une ancienne version de iptables la commande ci-dessus peut ne pas fonctionner,​ dans ce cas entrez la commande suivante :
-iptables -A OUTPUT -p icmp -m conntrack --ctstate NEW,​ESTABLISHED,​RELATED -j ACCEPT+sudo iptables -A OUTPUT -p icmp -m conntrack --ctstate NEW,​ESTABLISHED,​RELATED -j ACCEPT
  
 # On autorise les pings  # On autorise les pings 
-iptables -A INPUT -p icmp -j ACCEPT+sudo iptables -A INPUT -p icmp -j ACCEPT
 </​code>​ </​code>​
  
Ligne 152: Ligne 154:
 Tout d'​abord vous listez l'​ensemble de vos règles avec l'​affichage des lignes : Tout d'​abord vous listez l'​ensemble de vos règles avec l'​affichage des lignes :
 <​code>​ <​code>​
-iptables -L --line-numbers+sudo iptables -L --line-numbers
 </​code>​ </​code>​
 Ce qui personnellement me retourne : Ce qui personnellement me retourne :
Ligne 177: Ligne 179:
  
 <​code>​ <​code>​
-iptables -D OUTPUT 2+sudo iptables -D OUTPUT 2
 </​code>​ </​code>​
  
Ligne 197: Ligne 199:
 iptables-persistent propose de sauvegarder les règles dans le dossier **/​etc/​iptables**,​ fichier **rules.v4** pour les règles IPv4 et **rules.v6** pour les règles IPv6. Le script peut s’appeler via : iptables-persistent propose de sauvegarder les règles dans le dossier **/​etc/​iptables**,​ fichier **rules.v4** pour les règles IPv4 et **rules.v6** pour les règles IPv6. Le script peut s’appeler via :
  
-  ​iptable-save+  ​sudo iptables-save
  
 Il prend les arguments : **save** pour sauvegarder les règles, **flush** pour vider toutes les règles et **reload** pour les recharger depuis les fichiers précités. Il prend les arguments : **save** pour sauvegarder les règles, **flush** pour vider toutes les règles et **reload** pour les recharger depuis les fichiers précités.
  • iptables.1739677492.txt.gz
  • Dernière modification: Le 16/02/2025, 04:44
  • par 78.121.49.7