Comment Installer et Utiliser le Pare-feu Linux Iptables
Nous allons diviser ce tutoriel sur iptables en trois étapes. Tout d'abord, vous apprendrez comment installer l'outil sur Ubuntu. Deuxièmement, nous vous montrerons comment définir les règles. Enfin, nous vous guiderons pour effectuer des modifications persistantes dans iptables.
1. Installer Iptables
Iptables est préinstallé dans la plupart des distributions Linux. Cependant, si vous ne l'avez pas dans un système Ubuntu/Debian par défaut, suivez les étapes ci-dessous :
- Connectez-vous à votre serveur via SSH. Si vous ne savez pas comment faire, vous pouvez lire notre tutoriel sur SSH.
- Exécutez les commandes suivantes une par une :
sudo apt-get update
sudo apt-get install iptables
Vérifiez l'état de votre configuration iptables actuelle en exécutant :
sudo iptables -L -v
Ici, l'option -L est utilisée pour lister toutes les règles, et -v permet d'afficher les informations de manière plus détaillée. Voici un exemple de sortie :
Chaîne INPUT (politique ACCEPTER 0 paquets, 0 octets)
pkts bytes cible prot opt in out source destination
Chaîne FORWARD (politique ACCEPTER 0 paquets, 0 octets)
pkts bytes cible prot opt in out source destination
Chaîne OUTPUT (politique ACCEPTER 0 paquets, 0 octets)
pkts bytes cible prot opt in out source destination
Vous avez maintenant le pare-feu Linux iptables installé. À ce stade, vous pouvez remarquer que toutes les chaînes sont définies sur ACCEPTER et qu'il n'y a pas de règles. Ce n'est pas sécurisé car n'importe quel paquet peut passer sans filtrage.
Ne vous inquiétez pas. Nous allons vous montrer comment définir des règles à l'étape suivante de notre tutoriel sur iptables.
2. Définir les Règles de la Chaîne
Définir une règle signifie l'ajouter à la chaîne. Pour ce faire, vous devez insérer l'option -A (Ajouter) juste après la commande iptables, comme ceci :
sudo iptables -A
Cela informera iptables que vous ajoutez de nouvelles règles à une chaîne. Ensuite, vous pouvez combiner la commande avec d'autres options, telles que :
-i(interface) — l'interface réseau dont vous souhaitez filtrer le trafic, telle queeth0,lo,ppp0, etc.-p(protocole) — le protocole réseau où votre processus de filtrage a lieu. Il peut s'agir detcp,udp,udplite,icmp,sctp,icmpv6, etc. Vous pouvez également taperallpour choisir tous les protocoles.-s(source) — l'adresse à partir de laquelle provient le trafic. Vous pouvez ajouter un nom d'hôte ou une adresse IP.--dport(port de destination) — le numéro de port de destination d'un protocole, tel que 22 (SSH), 443 (https), etc.-j(cible) — le nom de la cible (ACCEPTER,REJETER,RETOUR). Vous devez insérer cela à chaque fois que vous créez une nouvelle règle.
Si vous voulez les utiliser tous, vous devez écrire la commande dans cet ordre :
sudo iptables -A <chaîne> -i <interface> -p <protocole (tcp/udp)> -s <source> --dport <numéro de port> -j <cible>
Une fois que vous avez compris la syntaxe de base, vous pouvez commencer à configurer le pare-feu pour renforcer la sécurité de votre serveur. Pour ce tutoriel sur iptables, nous allons utiliser la chaîne INPUT comme exemple.
Activer le Trafic sur Localhost
Pour autoriser le trafic sur localhost, tapez cette commande :
sudo iptables -A INPUT -i lo -j ACCEPT
Pour ce tutoriel sur iptables, nous utilisons l'interface lo ou boucle locale. Elle est utilisée pour toutes les communications sur l'ordinateur local. La commande ci-dessus garantira que les connexions entre une base de données et une application web sur la même machine fonctionnent correctement.
Activer les Connexions sur les Ports HTTP, SSH et SSL
Ensuite, nous voulons que les connexions HTTP (port 80), HTTPS (port 443) et SSH (port 22) fonctionnent comme d'habitude. Pour ce faire, nous devons spécifier le protocole (-p) et le port correspondant (--dport). Vous pouvez exécuter ces commandes une par une :
sudo iptables -A INPUT -p tcp --dport 22 -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 443 -j ACCEPT
Il est temps de vérifier si les règles ont été ajoutées à iptables :
sudo iptables -L -v
Cela devrait renvoyer les résultats ci-dessous, ce qui signifie que toutes les connexions du protocole TCP depuis les ports spécifiés seront acceptées :
Filtrer les Paquets en Fonction de la Source
Iptables vous permet de filtrer les paquets en fonction d'une adresse IP ou d'une plage d'adresses IP. Vous devez le spécifier après l'option -s. Par exemple, pour accepter les paquets en provenance de 192.168.1.3, la commande serait :
sudo iptables -A INPUT -s 192.168.1.3 -j ACCEPT
Vous pouvez également refuser les paquets en provenance d'une adresse IP spécifique en remplaçant la cible ACCEPTER par REJETER.
sudo iptables -A INPUT -s 192.168.1.3 -j REJETER
Si vous souhaitez refuser les paquets d'une plage d'adresses IP, vous devez utiliser l'option -m et le module iprange. Ensuite, spécifiez la plage d'adresses IP avec --src-range. N'oubliez pas qu'un trait d'union doit séparer la plage d'adresses IP sans espace, comme ceci :
sudo iptables -A INPUT -m iprange --src-range 192.168.1.100-192.168.1.200 -j REJETER
Refuser tout Autre Trafic
Il est essentiel d'utiliser la cible REJETER pour tout autre trafic après avoir défini les règles --dport. Cela empêchera une connexion non autorisée d'accéder au serveur via d'autres ports ouverts. Pour cela, tapez simplement :
sudo iptables -A INPUT -j REJETER
Maintenant, la connexion en dehors du port spécifié sera refusée.
Supprimer les Règles
Si vous souhaitez supprimer toutes les règles et repartir à zéro, vous pouvez utiliser l'option -F (vider) :
sudo iptables -F
Cette commande efface toutes les règles actuelles. Cependant, pour supprimer une règle spécifique, vous devez utiliser l'option -D. Tout d'abord, vous devez voir toutes les règles disponibles en entrant la commande suivante :
sudo iptables -L --line-numbers
Vous obtiendrez une liste de règles avec des numéros :
Chaîne INPUT (politique ACCEPTER)
num cible prot opt source destination
1 ACCEPTER all -- 192.168.0.4 anywhere
2 ACCEPTER tcp -- anywhere anywhere tcp dpt:https
3 ACCEPTER tcp -- anywhere anywhere tcp dpt:http
4 ACCEPTER tcp -- anywhere anywhere tcp dpt
sh
Pour supprimer une règle, insérez la chaîne correspondante et le numéro de la liste. Disons que pour ce tutoriel sur iptables, nous voulons nous débarrasser de la règle numéro trois de la chaîne INPUT. La commande devrait être :
sudo iptables -D INPUT 3
3. Persister les Modifications
Les règles iptables que nous avons créées sont enregistrées en mémoire. Cela signifie que nous devons les sauvegarder dans un fichier pour pouvoir les charger à nouveau après un redémarrage. Pour effectuer ces modifications, vous pouvez utiliser les commandes suivantes en fonction que vous sauvegardez les règles IPv4 ou IPv6 :
sudo iptables-save > /etc/iptables/rules.v4
sudo iptables-save > /etc/iptables/rules.v6
Maintenant, chaque fois que vous redémarrez votre VPS, vous devrez charger les règles sauvegardées avec les commandes suivantes :
sudo iptables-restore < /etc/iptables/rules.v4
sudo iptables-restore < /etc/iptables/rules.v6
Si vous souhaitez que le processus de chargement soit entièrement automatique, vous pouvez configurer le paquet iptables-persistent et il se chargera de charger les règles.
sudo apt-get install iptables-persistent
Après l'installation, on vous demandera de sauvegarder les règles actuelles. Choisissez Oui pour IPv4 et IPv6 et terminez la configuration. Désormais, le processus de chargement sera automatique. Gardez à l'esprit que vous devrez toujours utiliser la commande sudo iptables-save à chaque fois que vous apportez des modifications à iptables.

