Activer un pare-feu IPTABLES

La mise en place d’un pare-feu est essentielle pour la sécurité de votre serveur, au cours de ce tutoriel nous allons bloquer toutes les connexions entrantes et sortantes puis autoriser au cas par cas selon vos besoins les ports qui seront autorisés à communiquer avec l’extérieur.

sudo apt-get remove --auto-remove nftables
sudo apt-get purge nftables
sudo apt-get update
sudo apt-get install iptables

On commence par vérifier les règles IPTABLES présentes:

sudo iptables -L

Si des règles existent on s’en débarrasse:

sudo iptables -F

On va maintenant créer notre firewall:

# Interdire toutes connexions entrantes et sortantes
sudo iptables -P INPUT DROP
sudo iptables -P FORWARD DROP
sudo iptables -P OUTPUT DROP
# Ne pas casser les connexions etablies
sudo iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
sudo iptables -A OUTPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
# Autoriser loopback
sudo iptables -A INPUT -i lo -j ACCEPT
sudo iptables -A OUTPUT -o lo -j ACCEPT
# Autoriser le ping
sudo iptables -A INPUT -p icmp -j ACCEPT
sudo iptables -A OUTPUT -p icmp -j ACCEPT
# Autoriser SSH
sudo iptables -A INPUT -p tcp --dport 22 -j ACCEPT
sudo iptables -A OUTPUT -p tcp --dport 22 -j ACCEPT
# Autoriser DNS
sudo iptables -A OUTPUT -p tcp --dport 53 -j ACCEPT
sudo iptables -A OUTPUT -p udp --dport 53 -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 53 -j ACCEPT
sudo iptables -A INPUT -p udp --dport 53 -j ACCEPT
# Autoriser NTP
sudo iptables -A OUTPUT -p udp --dport 123 -j ACCEPT
# Autoriser FTP
modprobe ip_conntrack_ftp
sudo iptables -A OUTPUT -p tcp --dport 20:21 -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 20:21 -j ACCEPT
sudo iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
# Autoriser HTTP et HTTPS
sudo iptables -A OUTPUT -p tcp --dport 80 -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT
sudo iptables -A OUTPUT -p tcp --dport 443 -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 443 -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 8443 -j ACCEPT
# Autoriser POP3
sudo iptables -A INPUT -p tcp --dport 110 -j ACCEPT
sudo iptables -A OUTPUT -p tcp --dport 110 -j ACCEPT
# Autoriser SMTP
sudo iptables -A INPUT -p tcp --dport 25 -j ACCEPT
sudo iptables -A OUTPUT -p tcp --dport 25 -j ACCEPT
# Autoriser IMAP
sudo iptables -A INPUT -p tcp --dport 143 -j ACCEPT
sudo iptables -A OUTPUT -p tcp --dport 143 -j ACCEPT
# Autoriser POP3S
sudo iptables -A INPUT -p tcp --dport 995 -j ACCEPT
sudo iptables -A OUTPUT -p tcp --dport 995 -j ACCEPT
ATTENTION:
Avant de continuer si vous avez changé le port de connexion ssh/ , localisez la section:
# Autoriser SSH et adaptez avec le port que vous avez choisi précédemment sinon vous allez définitivement vous enfermer dehors de votre machine. locked-out

Ajoutez les ports qui vous sont nécessaires, en ajoutant pour chaque port les lignes suivantes en remplaçant la variable $PORT par le numéro de port désiré:


# Autoriser MON.SERVICE.A.AUTORISER
-A INPUT -p tcp --dport $PORT -j ACCEPT
-A OUTPUT -p tcp --dport $PORT -j ACCEPT

Installez iptables-persistent en prenant soin de répondre Oui à la configuration IPv4:

sudo apt-get install iptables-persistent

Et redemarrez:

sudo reboot

Pour vérifier la conf:

sudo nano /etc/iptables/rules.v4