Configurer iptables sur un serveur dédié Linux
Sécurisez votre serveur dédié en configurant des règles de pare-feu iptables pour filtrer le trafic réseau sous Linux
Objectif
Votre serveur dédié est équipé d'un pare-feu. Les pare-feux créent une barrière entre un réseau de confiance et un réseau non fiable. Les pare-feux fonctionnent en définissant des règles qui régissent le trafic autorisé et celui qui est bloqué. Le pare-feu utilitaire développé pour les systèmes Linux est Iptables.
Apprenez à sécuriser votre serveur dédié grâce à Iptables.
OVHcloud met à votre disposition des services dont la configuration, la gestion et la responsabilité vous incombent. Il vous revient de ce fait d'en assurer le bon fonctionnement.
Nous mettons à votre disposition ce guide afin de vous accompagner au mieux sur des tâches courantes. Néanmoins, nous vous recommandons de faire appel à un prestataire spécialisé et/ou d'échanger avec notre communauté d'utilisateurs si vous éprouvez des difficultés ou avez des doutes concernant l’administration, l’utilisation ou la sécurisation d’un serveur. Plus d’informations dans la section « Aller plus loin » de ce guide.
Prérequis
- Disposer d’un serveur dédié dans votre compte OVHcloud
- Disposer d'un accès administrateur (root/sudo) à votre serveur via SSH
En pratique
Ce guide indique les commandes pour une distribution Ubuntu Server.
Ce guide est à usage général. Il est possible que vous deviez adapter quelques commandes en fonction de la distribution et/ou du système d'exploitation que vous utilisez. Certains conseils pourront vous suggérer l'utilisation d'outil tiers. En cas de question quant à leur utilisation, veuillez vous référer à leur documentation officielle.
La plupart des règles décrites dans ce guide supposent que votre iptables est configuré par défaut pour DROP le trafic entrant, et que vous autorisez sélectivement le trafic entrant. Si vous avez l'intention de mettre en place un autre type de configuration, nous vous recommandons de consulter la documentation complémentaire.
Étape 1 : mettre à jour votre système
Les développeurs de systèmes de distribution et d'exploitation proposent des mises à jour fréquentes de progiciels, très souvent pour des raisons de sécurité. Garder votre distribution ou votre système d'exploitation à jour est primordial pour la sécurisation de votre serveur.
Consultez notre guide sur la sécurisation d'un serveur dédié pour plus d'informations.
Étape 2 : installer le pare-feu Iptables sous Ubuntu
Il existe deux versions différentes d'iptables, pour IPv4 et IPv6. Les règles que nous couvrons dans ce tutoriel Linux Iptables concernent IPv4. Pour configurer Iptables pour IPv6, vous devez utiliser l'utilitaire ip6tables. Ces deux protocoles différents ne fonctionnent pas ensemble et doivent être configurés indépendamment.
Iptables est installé par défaut sur la plupart des systèmes Linux. Pour vous assurer que Iptables est installé, utilisez la commande suivante :
En général, une commande Iptables se présente comme suit :
Voici une liste de quelques options Iptables courantes :
- -A --append : Ajoute une règle à une chaîne (à la fin).
- -C --check : Recherche une règle qui correspond aux exigences de la chaîne.
- -D --delete : Supprime les règles spécifiées d'une chaîne.
- -F --flush : Supprime toutes les règles.
- -I --insert : Ajoute une règle à une chaîne à une position donnée.
- -L --list : Affiche toutes les règles d'une chaîne.
- -N --new-chain : Crée une nouvelle chaîne.
- -v --verbose : Affiche plus d'informations lors de l'utilisation d'une option de liste.
- -X --delete-chain : Supprime la chaîne fournie.
Étape 3 : vérifier l'état actuel d'iptables
Pour afficher l'ensemble des règles actuelles sur votre serveur, saisissez la commande suivante dans la fenêtre du terminal :
Le système affiche le statut de vos chaînes.
La sortie répertoriera trois chaînes :
Étape 4 : autoriser le trafic sur localhost
Pour autoriser le trafic de votre propre système (le localhost), ajoutez une règle à la chaîne INPUT en saisissant ce qui suit :
Cette commande configure le pare-feu pour accepter le trafic pour l'interface localhost (lo) (-i). Désormais, tout ce qui provient de votre système passera par votre pare-feu. Vous devez définir cette règle pour permettre aux applications de communiquer avec l'interface localhost.
Étape 5 : autoriser le trafic sur des ports spécifiques
Ces règles autorisent le trafic sur les différents ports que vous spécifiez à l'aide des commandes répertoriées ci-dessous. Un port est un point de terminaison de communication spécifié pour un type spécifique de données.
Pour autoriser le trafic Web HTTP, saisissez la commande suivante :
Pour autoriser uniquement le trafic SSH (Secure Shell) entrant, saisissez ce qui suit (veuillez noter que nous utilisons le port 22, qui est le numéro du port SSH par défaut. Si votre numéro de port est différent, veillez à ajuster les commandes suivantes en fonction) :
Pour autoriser le trafic Internet HTTPS, saisissez la commande suivante :
Les options fonctionnent ainsi :
- -p : Vérifie le protocole spécifié (tcp).
- --dport : Spécifie le port de destination.
- -j jump : Effectue l'action
En cas de perte d'accès à votre serveur, vous pouvez toujours utiliser l'outil KVM/IPMI pour y accéder à nouveau et modifier votre configuration ou supprimer vos règles.
Pour plus d'informations sur l'accès à cet outil, veuillez consulter notre guide « Comment utiliser la console IPMI avec un serveur dédié ».Étape 6 : contrôler le trafic par adresse IP
Utilisez la commande suivante pour accepter le trafic à partir d'une adresse IP spécifique.
Remplacez l'adresse IP dans la commande par l'adresse IP que vous souhaitez autoriser.
Vous pouvez également bloquer le trafic à partir d'une adresse IP
Remplacez l'adresse IP dans la commande par l'adresse IP que vous souhaitez bloquer.
Vous pouvez rejeter le trafic à partir d'une plage d'adresses IP, avec la commande suivante :
Les options iptables que nous avons utilisées dans les exemples fonctionnent ainsi :
- -m : Charge un module de correspondance, ici iprange.
- iprange : Correspond à une plage d'adresses IP au lieu d'une seule adresse.
- --src-range : Identifie la plage d'adresses IP.
Étape 7 : supprimer le trafic indésirable
Avant de bloquer le reste du trafic, autorisez les réponses aux connexions que votre serveur établit lui-même (mises à jour de paquets, requêtes DNS, etc.). Sans cette règle, ces réponses seraient également bloquées :
Si vous définissez des règles de pare-feu Iptables, vous devez empêcher les accès non autorisés en supprimant tout trafic provenant d'autres ports :
L'option -A ajoute une nouvelle règle à la chaîne. Si une connexion passe par des ports autres que ceux que vous avez définis, elle sera abandonnée.
Attention, si vous tapez cette commande avant d'effectuer l'étape 5, vous bloquerez tous les accès y compris celui en cours, l'accès SSH. Ceci est particulièrement problématique sur une machine sur laquelle vous accédez à distance.
Étape 8 : supprimer une règle
Pour supprimer une règle, utilisez son numéro de ligne.
Tout d'abord, répertoriez toutes les règles en saisissant ce qui suit :
Recherchez la ligne de la règle de pare-feu que vous souhaitez supprimer et exécutez cette commande :
Remplacez Number par le numéro de ligne de règle que vous souhaitez supprimer.
Étape 9 : enregistrer vos modifications
Lors du redémarrage du système, Iptables ne conserve pas les règles que vous aviez créées. Chaque fois que vous configurez Iptables sous Linux, toutes les modifications que vous apportez s'appliquent uniquement jusqu'au prochain redémarrage.
Sur les systèmes basés sur Ubuntu, le paquet iptables-persistent se charge de restaurer vos règles au démarrage. Installez-le avec la commande suivante :
Lors de l'installation, il vous est demandé si vous souhaitez enregistrer les règles IPv4 et IPv6 actuelles. Répondez Yes pour conserver les règles que vous venez de créer.
Vous pouvez ensuite enregistrer vos règles à tout moment avec la commande suivante :
Vos règles IPv4 sont écrites dans le fichier /etc/iptables/rules.v4 (et vos règles IPv6 dans le fichier /etc/iptables/rules.v6).
Au prochain démarrage de votre système, Iptables rechargera automatiquement les règles du pare-feu.
Vous pouvez dorénavant configurer des règles de pare-feu Iptables de base pour votre serveur Linux. N'hésitez pas à expérimenter car vous pouvez toujours supprimer les règles dont vous n'avez pas besoin, ou vider toutes les règles et recommencer.
Aller plus loin
Activer et configurer le Edge Network Firewall
Suivre les attaques DDoS avec le tableau de bord Anti-DDoS
Échangez avec notre communauté d’utilisateurs.