Configurer le pare-feu sous Linux avec Iptables
Découvrez comment sécuriser un serveur avec Iptables
Objectif
Votre VPS 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 grâce à Iptables.
Informations sur l’administration des services OVHcloud et sur la manière d’obtenir l’assistance appropriée
Lors de l’utilisation des guides OVHcloud, veuillez tenir compte des points suivants :
- Les instructions visent à fournir un maximum de détails, mais ne peuvent pas couvrir tous les cas d’utilisation particuliers. Il peut être nécessaire d’adapter les actions décrites à vos besoins.
- L’écosystème OVHcloud est conçu pour offrir flexibilité et liberté de choix. Vous êtes donc responsable de la configuration correcte et sécurisée de vos services. Afin d’éviter toute perte de données, nous vous recommandons vivement de mettre en place des stratégies de sauvegarde pour toutes vos données importantes.
- Nos guides et tutoriels peuvent faire référence à des logiciels ou services tiers utilisés en combinaison avec les solutions OVHcloud. Le support technique fourni par OVHcloud n’inclut pas la configuration de systèmes ou de produits ne relevant pas de notre responsabilité. Cela inclut notamment :
- Les systèmes d’exploitation et les interfaces utilisateur (Windows, Debian, Plesk, etc.).
- Tout autre logiciel tiers (clients FTP, logiciels de messagerie, etc.).
- Les services proposés par d’autres fournisseurs (DNS, API, interfaces utilisateur, etc.).
Pour recevoir l’assistance appropriée en cas de problème, suivez ces recommandations :
- Vous souhaitez obtenir des conseils personnalisés ou discuter d’un sujet qui n’est pas traité en détail dans notre documentation ?
Rejoignez la communauté OVHcloud pour y rechercher votre sujet et échanger avec d’autres utilisateurs. - Vous devez signaler un incident concernant votre service OVHcloud ou vous rencontrez des difficultés dans l’espace client OVHcloud ?
Créez une demande d’assistance dans notre centre d’aide. - Vous avez besoin d’une assistance professionnelle pour votre projet ou d’aide pour des tâches en dehors de notre périmètre de support ?
Consultez notre portail des partenaires pour trouver des experts des solutions OVHcloud. - Vous recherchez des informations plus détaillées sur nos niveaux de support et Professional Services ?
Consultez nos pages niveaux de support OVHcloud et OVHcloud Professional Services.
Vous pouvez participer à l’amélioration de notre documentation :
- Vous souhaitez faire un retour pour améliorer un guide ou signaler des informations insuffisantes sur une page spécifique ?
Utilisez les boutons « Cette page vous a-t-elle aidé ? » en bas de page pour nous en informer. - Vous souhaitez proposer directement une modification de la documentation ?
Utilisez la fonction « Modifier cette page », disponible en bas de page et dans la barre latérale.
Prérequis
- Disposer d'un VPS 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.
Etape 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 VPS pour plus d'informations.
Etape 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 iptables6. 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 confirmer que Iptables est installé, utilisez la commande suivante :
L'exemple de sortie dans Ubuntu confirme que la dernière version de Iptables est déjà présente :
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.
Etape 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 :
Etape 4 : autoriser le trafic sur localhost
Pour autoriser le trafic de votre propre système (le localhost), ajoutez la chaîne d'entrée 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.
Etape 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 ce guide.Etape 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 : Correspond à l'option spécifiée.
- -iprange : Indique au système d'attendre une plage d'adresses IP au lieu d'une seule.
- --src-range : Identifie la plage d'adresses IP.
Etape 7 : supprimer le trafic indésirable
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.
Etape 8 : supprimer une règle
Une méthode plus précise consiste à supprimer le numéro de ligne d'une règle.
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.
Etape 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
Échangez avec notre communauté d’utilisateurs.