Netfilter iptables

Netfilter est un framework implémentant un pare-feu au sein du noyau Linux, il permet de filtrer et de manipuler les paquets réseau qui passent dans le système.

iptables est la commande qui permet de configurer Netfilter.

Syntaxe pour définir une règle:

iptables [-t table] -[AD] chain rule-specification [options]
(iptables -> Tables -> Chains -> Rules)

Iptables comprend quatre tables : mangle, filter, nat et raw
La table par défaut est filter
Les chaines associées à la table filter sont: INPUT, OUTPUT et FORWARD
 INPUT: paquets venant sur le serveur local
 OUTPUT: Pour les paquets générés localement et sortant du serveur local.
 FORWARD: Pour les paquets acheminés via le serveur local.

Pour les lister les règles :
iptables -L -n
Le policy par défaut est accept
Chain INPUT (policy ACCEPT)
Chain FORWARD (policy ACCEPT)
Chain OUTPUT (policy ACCEPT)

Lorsqu’un paquet est inspecté (à travers les règles), les correspondances sont recherchées de haut en bas (des tables et des chaînes)

Pour bannir une adresse ip:
iptables -I INPUT -s xxx.xxx.xxx.xxx -j DROP

Pour bloquer une ip sur un service (port: exemple port 22)
iptables -I INPUT -s xxx.xxx.xxx.xxx -p tcp –dport 22 -j DROP

Pour bloquer trafic entrant/sortant sur un service (port: exemple port 587)
iptables -I INPUT -s 0.0.0.0/0 -p tcp –dport 587 -j DROP

Pour autoriser une adresse ip:
iptables -I INPUT -s xxx.xxx.xxx.xxx -j ACCEPT

Pour autoriser une ip sur un service (port: exemple port 22)
iptables -I INPUT -s xxx.xxx.xxx.xxx -p tcp –dport 22 -j ACCEPT

Pour débannir une ip :
iptables -L -n –line-numbers
iptables -D chain lignenumber

iptables -D INPUT 1

Pour réinitialiser les règles:
iptables -F
iptables -X