Si vous avez besoin d'un bon pare-feu pour votre serveur ou bureau Linux, iptables est un excellent choix. Il est très flexible et rapide. Dans ce guide, nous allons vous montrer comment configurer un pare-feu iptables sous Linux.
Installer iptables sous Linux
Pour configurer le pare-feu avec iptables sur votre système Linux , vous devez d'abord l'installer. Ouvrez une fenêtre de terminal et suivez les instructions d'installation ci-dessous pour votre système d'exploitation Linux. Iptables est installable sur les ordinateurs de bureau et les serveurs Linux, et si vous préférez un téléchargement Linux générique d'iptables, vous pouvez visiter le site officiel . Une fois l'installation terminée, vous pouvez procéder à la configuration de votre pare-feu avec iptables.
Instructions d'Ubuntu
sudo apt installer iptables
Instructions Debian
sudo apt-get install iptables
Instructions Arch Linux
sudo pacman -S iptables
Instructions Fedora
sudo dnf installer iptables
Instructions d'OpenSUSE
sudo sudo zypper dans iptables
Distributions EPEL (Rhel, CentOS, Rocky, Alma, etc.)
sudo miam installer iptables
Comment créer un jeu de règles iptables
Vous devez créer un nouvel ensemble de règles iptables avant de tenter de l'utiliser comme pare-feu. Ouvrez une fenêtre de terminal et assurez-vous que vous pouvez saisir les commandes sudo . Si votre utilisateur ne peut pas, connectez-vous au compte root avec su .
À partir de là, utilisez la commande iptables -F . Cette commande supprimera et videra toutes les règles précédentes pour iptables sur votre système.
sudo iptables -F
Après avoir exécuté la commande ci-dessus, vous pouvez exécuter la commande iptables -L pour vérifier et confirmer que les règles ont été effacées.
sudo iptables -L
Une fois que vous avez confirmé que les règles iptables ont été vidées, utilisez la commande iptables -P ci-dessous pour bloquer le trafic entrant par défaut.
AVERTISSEMENT : si vous modifiez iptables via SSH, déconnectez-vous et modifiez-le sur la machine physique. L'exécution de la commande ci-dessous vous déconnectera automatiquement de SSH jusqu'à ce que vous l'autorisiez à traverser le pare-feu.
sudo iptables -P INPUT DROP
Ensuite, vous devez autoriser le trafic sortant de votre système via iptables. Vous pouvez autoriser le trafic sortant via le pare-feu iptables en saisissant la commande iptables -P suivante.
sudo iptables -P OUTPUT ACCEPT
Une fois que vous avez désactivé le trafic entrant et activé le trafic sortant, vous passez à l'autorisation de services spécifiques.
Comment autoriser les ports via le pare-feu iptables
Par défaut, l'exécution d'iptables -P INPUT DROP désactive le trafic entrant de toutes les sources (SSH, HTTP, etc.) Pour activer ces services, vous devrez ajouter à vos règles iptables.
Pour simplifier les choses, voici une liste des ports courants que vous souhaiterez peut-être activer dans votre pare-feu iptables. Copiez la commande associée au port que vous souhaitez activer via votre pare-feu iptables.
- HTTP (port 80) :
sudo iptables -A INPUT -p tcp --dport 80 -m state --state NEW,ESTABLISHED -j ACCEPT
- HTTPS (port 443) :
sudo iptables -A INPUT -p tcp --dport 443 -m state --state NEW,ESTABLISHED -j ACCEPT
- SSH (port 22) :
sudo iptables -A INPUT -p tcp --dport 22 -m state --state NEW,ESTABLISHED -j ACCEPT
- FTP (port 21) :
sudo iptables -A INPUT -p tcp --dport 21 -m state --state NEW,ESTABLISHED -j ACCEPT
- SMTP (port 25) :
sudo iptables -A INPUT -p tcp --dport 25 -m state --state NEW,ESTABLISHED -j ACCEPT
- DNS (port 53) :
sudo iptables -A INPUT -p udp --dport 53 -j ACCEPT
pour UDP ou sudo iptables -A INPUT -p tcp --dport 53 -m state --state NEW,ESTABLISHED -j ACCEPT
pour TCP
- DNS sur TLS (DoT) (port 853) :
sudo iptables -A INPUT -p tcp --dport 853 -m state --state NEW,ESTABLISHED -j ACCEPT
- DNS sur HTTPS (DoH) (port 443) :
sudo iptables -A INPUT -p tcp --dport 443 -m state --state NEW,ESTABLISHED -j ACCEPT
- Protocole de bureau à distance (RDP) (port 3389) :
sudo iptables -A INPUT -p tcp --dport 3389 -m state --state NEW,ESTABLISHED -j ACCEPT
- Informatique en réseau virtuel (VNC) (port 5900) :
sudo iptables -A INPUT -p tcp --dport 5900 -m state --state NEW,ESTABLISHED -j ACCEPT
- Secure Shell (SSH) avec transfert X11 (port 6010) :
sudo iptables -A INPUT -p tcp --dport 6010 -m state --state NEW,ESTABLISHED -j ACCEPT
- Base de données MySQL (port 3306) :
sudo iptables -A INPUT -p tcp --dport 3306 -m state --state NEW,ESTABLISHED -j ACCEPT
- Base de données PostgreSQL (port 5432) :
sudo iptables -A INPUT -p tcp --dport 5432 -m state --state NEW,ESTABLISHED -j ACCEPT
Lorsque vous avez autorisé tous les ports que vous souhaitez autoriser, vous pouvez vérifier vos règles avec iptables -L .
sudo iptables -L
Enfin, enregistrez vos règles iptables dans un fichier à des fins de sauvegarde. Vous pouvez le faire avec la commande iptables-save .
sudo iptables-save > /path/tosave/where/you/wish/to/save/rules/iptable-rules-backup
Comment restaurer les sauvegardes iptables
Si vous avez besoin de redéployer votre pare-feu iptables sur une autre machine, voici ce qu'il faut faire. Tout d'abord, utilisez la commande iptables -F pour vider les règles existantes.
sudo iptables -F
Ensuite, copiez votre fichier de sauvegarde sur le système. Une fois copié, restaurez la sauvegarde.
sudo iptables-restore <>