« Iptables » : différence entre les versions
m (→Généralités) |
(Ajout d'interdiction d'adresse dans INPUT + ajout de -n pour le listage des règles + aération du code + ajout de précisions WAN eth0 dans la partie sur le NAT.) |
||
Ligne 2 : | Ligne 2 : | ||
=Généralités= | =Généralités= | ||
Contrairement à PF ([https://fr.wikipedia.org/wiki/BSD_Packet_Filter Packet Filter]) sous BSD, Iptables n'a aucune règle par défaut et accepte tout type de trafic sans aucune restriction. | Contrairement à PF ([https://fr.wikipedia.org/wiki/BSD_Packet_Filter Packet Filter]) sous BSD, Iptables n'a aucune règle par défaut et accepte tout type de trafic sans aucune restriction. | ||
==Lister des règles== | ==Lister des règles== | ||
Lister les règles des chaînes de la table ''filter'' | Lister les règles des chaînes de la table ''filter'' | ||
iptables -L | iptables -L | ||
''l'argument -n permet de ne pas résoudre les noms de domaine.'' | |||
Lister les règles des chaînes de la table ''nat'' | Lister les règles des chaînes de la table ''nat'' | ||
iptables -t nat -L | iptables -t nat -L | ||
Ligne 11 : | Ligne 14 : | ||
Lister les règles telle qu'elles ont été renseignés (permet de les sauvegarder) | Lister les règles telle qu'elles ont été renseignés (permet de les sauvegarder) | ||
iptables-save | iptables-save | ||
==Supprimer des règles== | ==Supprimer des règles== | ||
Purger la table ''filter'' | Purger la table ''filter'' | ||
Ligne 18 : | Ligne 22 : | ||
Supprimer une règle particulière (ici la numéro 3 de la chaîne ''POSTROUTING'' de la table ''nat'') | Supprimer une règle particulière (ici la numéro 3 de la chaîne ''POSTROUTING'' de la table ''nat'') | ||
iptables -t nat -D POSTROUTING 3 | iptables -t nat -D POSTROUTING 3 | ||
===Source de la section=== | ===Source de la section=== | ||
* http://naeh.net/iptables-supprimer-une-regle-specifique/ | * http://naeh.net/iptables-supprimer-une-regle-specifique/ | ||
Ligne 24 : | Ligne 29 : | ||
==Filter== | ==Filter== | ||
Filter est la table par défaut d'iptables. Nous n'avons donc pas besoin de taper ''-t filter'' pour agir avec ses chaînes. | Filter est la table par défaut d'iptables. Nous n'avons donc pas besoin de taper ''-t filter'' pour agir avec ses chaînes. | ||
===INPUT=== | ===INPUT=== | ||
Il est possible d'interdire à une IP distante, l'accès à notre machine. | |||
iptables -A INPUT -s 10.10.10.1/32 -j DROP | |||
On peut également spécifier tout un réseau | |||
iptables -A INPUT -s 10.0.0.0/8 -j DROP | |||
===FORWARD=== | ===FORWARD=== | ||
Bloquer le port 22 (SSH) des machines derrières notre routeur ([https://www.inetdoc.net/guides/iptables-tutorial/rejecttarget.html source]) | Bloquer le port 22 (SSH) des machines derrières notre routeur ([https://www.inetdoc.net/guides/iptables-tutorial/rejecttarget.html source]) | ||
iptables -A FORWARD -p TCP --dport 22 -j REJECT --reject-with tcp-reset | iptables -A FORWARD -p TCP --dport 22 -j REJECT --reject-with tcp-reset | ||
===OUTPUT=== | ===OUTPUT=== | ||
==Nat== | ==Nat== | ||
'''Comme une box ADSL''' | '''Comme une box ADSL''' | ||
Dans cet exemple notre réseau est comme chez tati Chantal. Elle a un réseau privé qui doit pouvoir communiqué avec Internet. Sont IP publique est 1.1.1.1 et son réseau privé est 192.168.1.0/24. | Dans cet exemple notre réseau est comme chez tati Chantal. Elle a un réseau privé qui doit pouvoir communiqué avec Internet. Sont IP publique est 1.1.1.1 (eth0 - WAN) et son réseau privé est 192.168.1.0/24. | ||
Activation de la traduction d'adresse à partir de l'adresse IP publique | Activation de la traduction d'adresse à partir de l'adresse IP publique | ||
Ligne 43 : | Ligne 56 : | ||
Ce mode permet, lorsque vous ajoutez un réseau chez vous et que votre box ne permet pas d'ajouter une route, d'avoir quand même accès à Internet depuis ce réseau. | Ce mode permet, lorsque vous ajoutez un réseau chez vous et que votre box ne permet pas d'ajouter une route, d'avoir quand même accès à Internet depuis ce réseau. | ||
iptables -t nat -A POSTROUTING -s 192.168.180.0/24 -o eth0 -j MASQUERADE | iptables -t nat -A POSTROUTING -s 192.168.180.0/24 -o eth0 -j MASQUERADE | ||
===PREROUTING=== | ===PREROUTING=== | ||
===INPUT=== | ===INPUT=== |
Version du 24 septembre 2018 à 22:04
Généralités
Contrairement à PF (Packet Filter) sous BSD, Iptables n'a aucune règle par défaut et accepte tout type de trafic sans aucune restriction.
Lister des règles
Lister les règles des chaînes de la table filter
iptables -L
l'argument -n permet de ne pas résoudre les noms de domaine.
Lister les règles des chaînes de la table nat
iptables -t nat -L
Lister avec les numéros de lignes
iptables -L --line-numbers
Lister les règles telle qu'elles ont été renseignés (permet de les sauvegarder)
iptables-save
Supprimer des règles
Purger la table filter
iptables -F
Purger la table nat
iptables -F -t nat
Supprimer une règle particulière (ici la numéro 3 de la chaîne POSTROUTING de la table nat)
iptables -t nat -D POSTROUTING 3
Source de la section
Tables
Filter
Filter est la table par défaut d'iptables. Nous n'avons donc pas besoin de taper -t filter pour agir avec ses chaînes.
INPUT
Il est possible d'interdire à une IP distante, l'accès à notre machine.
iptables -A INPUT -s 10.10.10.1/32 -j DROP
On peut également spécifier tout un réseau
iptables -A INPUT -s 10.0.0.0/8 -j DROP
FORWARD
Bloquer le port 22 (SSH) des machines derrières notre routeur (source)
iptables -A FORWARD -p TCP --dport 22 -j REJECT --reject-with tcp-reset
OUTPUT
Nat
Comme une box ADSL
Dans cet exemple notre réseau est comme chez tati Chantal. Elle a un réseau privé qui doit pouvoir communiqué avec Internet. Sont IP publique est 1.1.1.1 (eth0 - WAN) et son réseau privé est 192.168.1.0/24.
Activation de la traduction d'adresse à partir de l'adresse IP publique
iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -o eth0 -j SNAT --to-source 1.1.1.1
Redirection de port (car le petit fils de Chantal a acheté un NAS qu'il veux pouvoir administrer depuis chez lui)
iptables -t nat -A PREROUTING -p tcp -d 1.1.1.1 --dport 443 -j DNAT --to-destination 192.168.1.1:443 iptables -t nat -A PREROUTING -p tcp -d 1.1.1.1 --dport 80 -j DNAT --to-destination 192.168.1.1:80
Traduction d'adresse transparentes
Ce mode permet, lorsque vous ajoutez un réseau chez vous et que votre box ne permet pas d'ajouter une route, d'avoir quand même accès à Internet depuis ce réseau.
iptables -t nat -A POSTROUTING -s 192.168.180.0/24 -o eth0 -j MASQUERADE