Filtrage :
Definition :
ACCEPT
- Cette cible permet d'accepter les paquets
DROP
- Cette cible permet de refuser les paquets sans avertir le demandeur que sa demande de connexion à été refusée.
-
REJECT
- Cette cible permet de refuser les paquets, mais en avertissant le demandeur que sa demande de connexion a été refusée en lui envoyant un paquet RESET (RST)
-
-p TCP
- premier paramètre
-
--dport 22
- Sous paramètre
-
docs :
iptables --help
Selection des chaînes :
INPUT
: Entrer dans la machine ( routeur )OUTPUT
: En sortis de la machine ( routeur )FORWARD
: Qui traverse le routeur
Schéma des chaînes :
PACKET IN
|
PREROUTING--[routing]-->--FORWARD-->--POSTROUTING-->--OUT
- nat (dst) | - filter - nat (src)
| |
| |
INPUT OUTPUT
- filter - nat (dst)
| - filter
| |
`----->-----[app]----->------'
Diagnostique :
Lister toutes les règles :
iptables -L -n
Lister les règles avec port numérique et utilisation en octets :
ìptables -nvL
Lister les règles d'une chaîne :
iptables -P INPUT -n
Vérifier le filtrage des paquets.
iptables -L -n
Connaître le numéro de ligne :
iptables -L --line-numbers
Modification de la policy
- Modification de la règle par défaut (Rien ne passe à travers le routeur).
iptables -P FORWARD DROP
Créer règles de filtrage :
Exemple :
iptables -A INPUT -s 192.168.1.148/32 -d 192.168.31.250/32 -i ens192 -p TCP --dport 22 -j accept
Explication :
iptables
: Commande pour configurer le filtre-A
: append / ajouter ( mes la règles à la fin de la table)I
: insersion de la règles au numéro de règles choisisC
: Check : Vérifier-R
: Remove : Supprimer
INPUT
: estiné à la machine ( routeur )OUTPUT
: En sortis de la machine ( routeur )FORWARD
: Qui travers le routeur
-s
: Source-d
: destination-p
: protocole couche 4 (TCP ou UDP)--dport
: protocole couche 7 (22,80,443,...)
-j
: Accepte ou refuse le paquet : - -DROP
: Refuse le paquet sans prévenirACCEPT
: Accepte le paquetREJECT
: Refuse le paquet mais avertie le demandeur via un paquet RESET (RST)
Filtrage multi-port :
iptables -A INPUT -p tcp -s 172.24.26.32 -m multiport --dport
110,666,42 -j REJECT
Le suivi de connexion :
Cela se base sur trois états :
-
NEW
- Signifie que le paquet a démarré une nouvelle connexion ou est associé d'une autre manière à une connexion qui n'a pas vu de paquets dans les deux sens
- correspond à la demande de communication TCP initiale, au premier datagramme UDP ou au premier messages ICMP.
-
ESTABLISHED
- Signifie que le paquet est associé à une connexion qui a vu des paquets dans les deux sens.
- Si une entrée de la table de suivi des communications correspond, alors le paquet appartient à une communication de type ESTABLISHED. Dans le cas du protocole TCP, on se réfère au
ACK
après qu'une communication ait été initiée. Dans le cas de datagrammes UDP, c'est l'échange entre deux hôtes et les correspondances de numéros de ports qui sont prises en compte. Enfin, les messages ICMP echo-reply doivent correspondre au requêtes echo-request.
RELATED
- signifie que le paquet commence une nouvelle connexion, mais qu'il est associé à une connexion existante, telle qu'un transfert de données FTP ou une erreur ICMP.
- Se réfère aux messages d'erreurs ICMP correspondant à une "communication" TCP ou UDP déjà présente dans la tables de suivi.
Analogie pour comprendre les états TCP
Considérons un NOUVEAU paquet comme un appel téléphonique avant que le destinataire ne décroche. Un paquet ESTABLISHED est leur "Bonjour". Et un paquet RELATED serait si vous appeliez pour leur parler d'un courrier électronique que vous alliez leur envoyer. (L'e-mail étant CONNEXE.)
Exemple :
- Autoriser le nouveau trafic ou le trafic établie
iptables -A FORWARD -s 192.168.32.0/24 -d 192.168.38.10/32 -p tcp -m multiport --dport 80,443 -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT
- Autoriser le retours du trafic déjà établie
iptables -A FORWARD -s 0.0.0.0/0 -d 192.168.32.0/24 -p tcp -m multiport --sport 53,80,443 -m state --state RELATED,ESTABLISHED -j ACCEPT
Supprimer règles de filtrage :
Supprimer règle précise : -D
:
Supprimer règle 5 en OUTPUT
iptables -D OUTPUT 5
Supprimer toutes les règles d'une chaîne : -F
iptables -F INPUT
Pat avec Iptable
Exemple :
iptables -t nat -A PREROUTING -p tcp --dport 80 -j DNAT --to-destination 192.168.38.10:80
iptables -t nat -A POSTROUTING -j MASQUERADE
Sauvegarde et restauration des règles :
Sauvegarde :
iptables-save > /etc/filtrages.save
Restauration :
iptabes-restore < /etc/filtrages.save