Iptables est un pare-feu pour Linux. Il permet de bloquer ou d'autoriser des connexions entrantes et sortantes.
Installation
Pour installer iptables sur Ubuntu/Debian, il faut exécuter la commande suivante :
sudo apt install -y iptables
Sur Arch Linux, il faut exécuter la commande suivante :
sudo pacman -S iptables
Bloquer toutes les connexions entrantes
Pour bloquer toutes les connexions entrantes, il faut exécuter la commande suivante :
iptables -P INPUT DROP
Autoriser toutes les connexions sortantes
Pour autoriser toutes les connexions sortantes, il faut exécuter la commande suivante :
iptables -P OUTPUT ACCEPT
Autoriser les connexions provenant de l'interface de loopback
L'interface de loopback permet de communiquer avec le serveur lui-même via l'adresse IP 127.0.0.1.
iptables -A INPUT -i lo -j ACCEPT
Autoriser le protocole ICMP
Le protocole ICMP permet de communiquer avec le serveur via la commande ping
.
Pour l'autoriser, il faut exécuter la commande suivante :
iptables -A INPUT -p icmp -j ACCEPT
Autoriser un port spécifique
Pour autoriser un port spécifique (ex: 22 pour SSH), il faut exécuter la commande suivante :
iptables -A INPUT -p tcp --dport 22 -j ACCEPT
Autoriser un nouveau port
Lorsque tous les ports sont bloqués, pour autoriser un nouveau port, il faut exécuter les commandes suivantes :
iptables -A INPUT -p tcp -m tcp --dport <new_port> -j ACCEPTiptables -A INPUT -j DROPiptables -L INPUT --line-numbers # Récupérer l'ID de l'ancienne règle de DROPiptables -D INPUT <id> # Supprimer l'anciènne règle de DROP
Persister la configuration
Pour persister la configuration et permettre à iptables de se lancer au démarrage :
iptables-save > /etc/iptables/iptables.rulessudo systemctl enable --now iptables.service
Vider toutes les règles iptables
Pour vider toutes les règles iptables, il faut exécuter les commandes suivantes :
iptables -Fiptables -F -t mangleiptables -F -t natiptables -Xiptables -X -t mangleiptables -X -t nat
Ma configuration personnelle
Voici ma configuration personnelle :
iptables -Fiptables -F -t mangleiptables -F -t natiptables -Xiptables -X -t mangleiptables -X -t natiptables -F INPUTiptables -A INPUT -i lo -j ACCEPTiptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPTiptables -A INPUT -p tcp --dport 22 -j ACCEPTiptables -A INPUT -p tcp --dport 80 -j ACCEPTiptables -A INPUT -p tcp --dport 443 -j ACCEPTiptables -A INPUT -j DROPiptables-save > /etc/iptables/iptables.rulessudo systemctl enable --now iptables.service
Elle permet de bloquer toutes les connexions entrantes.