Article en cours de rédaction !
Il existe 3 types de règles :
La règle INPUT correspond à la partie "Client". Elle fonctionne du même principe que le pare-feu Windows. Cette règle correspond aux règles entrantes.
Exemples de règle INPUT :
iptables -A INPUT -s 10.10.10.10 -j DROP
iptables -A INPUT -s 10.10.10.0/24 -j DROP
iptables -A INPUT -p tcp --dport ssh -j DROP
Même principe que la règle INPUT, mais pour les connexions sortantes.
Exemples :
iptables -A OUTPUT -p any --dport 80 -j ACCEPT && iptables -A OUTPUT -p any --dport 443 -j ACCEPT
La règle FORWARD ne fonctionne pas de la même façon que les règles précédentes. Cette règle sera utilisé par une machine par lesquelles passeront les requêtes, comme un routeur.
Ici, la règle ne sera pas pour le routeur. On n'utilisera pas cette règle si l'on veut autoriser le SSH sur le routeur, mais plutôt si l'on veut utiliser le SSH sur un serveur qui est derrière ce routeur.
Il existe 3 actions pour les règles :
Cette action permet d'autoriser le paquet sur la machine.
On autorisera le paquet avec l'option -j ACCEPT
Cette action va refuser le paquet, et ne vas pas avertir le client. Cela fera comme si la machine était inexistante.
On refusera le paquet avec l'option -j DROP
Cette action va refuser le paquet, mais va envoyer un message au client pour lui dire que la connexion ne peut être effectuée.
On refusera la connexion avec l'option -j REJECT
Attention : Les mots clé sont sensibles à la casse.
ACCEPT
sera différent deaccept
iptables -P <FORWARD/INPUT/OUTPUT> DROP
iptables -P <FORWARD/INPUT/OUTPUT> ACCEPT
iptables –L
iptables -L -n
iptables -L --line-number
iptables - L -nv --line-number
iptables -A <INPUT/FORWARD/OUTPUT> -s <ip source> -d <ip dest> --dport <port destination> --sport <port source> -j <ACCEPT/DROP/REJECT>
Attention : Il faut que l'option
-p
soit placée AVANT les options--dport
et--sport
.
Pour utiliser le module conntrack, il faut utiliser la commande
modprobe ip_conntrack
pour l'activer.
iptables -D <CHAIN> <numéro règle>
iptables -F <CHAIN>
iptables -F
Le suivi de connexion va permettre de filtrer le trafic en fonction de son état TCP.
Pour filtrer au mieux le trafic, nous pouvons ajouter ce paramètre dans la commande IPTABLES.
Exemple : Autoriser le trafic depuis le client vers internet serveur WEB sur le port 443. La règle se fera sur le routeur Linux. Le client aura pour IP 192.168.1.1
# On autorise les paquets provenant du client vers internet sur le port 443 si la connexion est nouvelle ou établie.
iptables -A FORWARD -s 192.168.1.1 -p tcp --dport 443 -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT
# On autorise la réponse depuis le serveur web vers le client si la connexion est établie. Cela évite que le serveur WEB créer une nouvelle connexion TCP sur le client, il n'en a pas besoin.
iptables -A FORWARD -d 192.168.1.1 -p tcp --sport 443 -m conntrack --ctstate ESTABLISHED -j ACCEPT