Comment configurer un pare-feu Linux : le guide ultime

Configuring Firewalls for Linux blog image

Un pare-feu est un gardien numérique qui passe méticuleusement au crible le trafic du réseau et décide de ce qui peut passer. Ce bouclier protecteur, fondamental pour la cybersécurité, fait partie intégrante du monde Linux. Le noyau Linux lui-même est de facto un pare-feu à commutation de paquets, conçu autour des principes de filtrage de paquets au niveau le plus fondamental du système d’exploitation, illustrant ainsi le rôle central des pare-feu dans la sécurité des systèmes. Pour ceux qui s’intéressent à l’informatique et à la sécurité Linux, cette combinaison joue un rôle essentiel dans la maîtrise de la défense numérique.

Une configuration adéquate du pare-feu garantit que seul le trafic légitime est traité, ce qui réduit l’exposition du système aux menaces potentielles. En définissant des règles spécifiques, les pare-feu peuvent protéger efficacement les services et les données cruciales. Un pare-feu mal configuré peut laisser des ports ouverts par inadvertance, exposer des services sensibles ou même bloquer des opérations légitimes. De telles configurations erronées peuvent constituer une invitation ouverte aux attaquants, entraînant des violations de données ou des attaques par déni de service (DoS).

Après avoir configuré un pare-feu Linux, celui-ci fonctionnera en évaluant les paquets de données envoyés et reçus par le système. En vérifiant des attributs tels que le port de destination, l’adresse IP source et le protocole, il décide d’autoriser ou de refuser le trafic sur la base de règles prédéfinies.

Bonnes pratiques de la configuration d’un pare-feu Linux

Dans les domaines de l’administration des systèmes Linux et de la cybersécurité, la configuration des pare-feux est un élément clé de la défense. Pour s’y retrouver, il faut plus qu’un simple savoir-faire technique : il faut une approche stratégique qui s’aligne sur les objectifs de sécurité plus larges. Voici les pratiques essentielles à adopter :

Comprendre la politique de sécurité

Avant de se pencher sur les configurations, il faut commencer par une politique de sécurité bien établie. Définissez les données et les services qui doivent être protégés, et contre quelles menaces, afin de vous assurer que votre pare-feu constitue une première ligne de défense efficace. Il ne s’agit pas seulement de savoir ce qu’il faut bloquer ni de qui; des considérations relatives à la sécurité de l’information, telles que les méthodes de blocage, entrent également en ligne de compte. 

Définition de politiques par défaut

Pour une sécurité optimale de Linux, adoptez une exposition minimale. La bonne pratique consiste à refuser tout accès par défaut et à n’ouvrir des voies d’accès qu’en cas de nécessité , ce qui constitue essentiellement une architecture zero-trust. Cela permet de minimiser les surfaces d’exposition aux attaques et de réduire l’exposition involontaire. Un cas d’utilisation courant est la distinction entre les règles “deny” et “drop” dans le pare-feu (les premières envoient activement une réponse “REQUEST DENIED” à l’expéditeur des paquets, tandis que les secondes abandonnent silencieusement les paquets de demande sans réponse). Quiconque a déjà exploité un serveur de production sur l’internet public peut vous dire qu’il est judicieux de ne pas communiquer son adresse IP à des scanners de ports aléatoires, par exemple.

Gestion du trafic entrant et sortant

Si l’accent est mis sur la lutte contre le trafic entrant non sollicité, la surveillance et le contrôle du trafic sortant sont tout aussi essentiels. Il garantit que les systèmes potentiellement compromis au sein du réseau ne deviennent pas la source d’exfiltration de données ou autres activités malveillantes. Les infections des ordinateurs portables de vos utilisateurs peuvent plus facilement infecter d’autres ordinateurs à l’intérieur de votre réseau (comme le stockage en réseau ou les serveurs de l’entreprise) que les pirates eux-même, en partie à cause du niveau de confiance existant entre les appareils. C’est pourquoi la gestion du parc informatique mobile de votre entreprise avec des produits tels que le logiciel de gestion des terminaux de NinjaOne peut contribuer à la protection de votre réseau central en protégeant les appareils contre les virus, les logiciels espions et les cyberattaques telles que les attaques de ransomware, qui sont de plus en plus courantes.

Configuration de règles spécifiques à un service

Les différents services présentent des vulnérabilités variées. Adaptez les règles de votre pare-feu à ces nuances, en veillant à ce que chaque service, qu’il s’agisse de SSH, de HTTP ou de FTP, dispose de son propre bouclier de défense. Les services de surveillance tels que fail2ban peuvent également surveiller les journaux des services pour y déceler des signes d’attaques, et prendre généralement les mesures appropriées en ajustant les règles du pare-feu et les listes noires.

Révision et mise à jour régulières du pare-feu

Les menaces sont en constante évolution, et vos défenses doivent l’être aussi. En examinant et en mettant à jour régulièrement les configurations de votre pare-feu, vous vous assurez qu’elles restent robustes, pertinentes et adaptées au monde actuel des menaces. Par essence, la configuration d’un pare-feu Linux ne se limite pas à l’établissement de règles : il s’agit de créer une protection complète qui s’aligne sur les normes de sécurité de l’entreprise.

Comment configurer votre pare-feu Linux

Introduction à iptables et à la configuration d’iptables

iptables est un puissant utilitaire utilisateur utilisé pour configurer les règles de filtrage des paquets IPv4 dans le noyau Linux. Il fait partie du projet netfilter et constitue l’outil de facto pour l’interaction directe avec le cadre de filtrage de paquets du noyau. Grâce à iptables, les administrateurs système peuvent définir des ensembles de règles pour gérer le trafic entrant et sortant, garantissant ainsi que le système est protégé contre les communications réseau potentiellement malveillantes.

Les mécanismes d’iptables s’articulent autour de trois éléments principaux

  1. Tableaux: Chaque tableau définit un ensemble de chaînes et est associé à un type spécifique de traitement des paquets.
  2. Chaînes: Il s’agit d’un ensemble de règles qui dictent la manière dont les paquets doivent être traités. Les trois chaînes par défaut sont INPUT (pour les paquets entrants), OUTPUT (pour les paquets sortants) et FORWARD (pour les paquets routés).

Règles : Les règles d’une chaîne déterminent le sort d’un paquet, qu’il s’agisse de l’accepter, de l’abandonner, de le refuser ou de prendre une autre mesure.

Quelques commandes fondamentales d’iptables et leurs configurations

  1. Liste des règles en vigueur

   sudo iptables -L -v -n 

   Cette commande affiche toutes les règles actuelles du pare-feu “iptables”.

  1. Définition de politiques par défaut

   – Pour supprimer par défaut tout le trafic entrant :

     sudo iptables -P INPUT DROP

   – Pour autoriser par défaut tout le trafic sortant :

     sudo iptables -P OUTPUT ACCEPT

  1. Autoriser un trafic spécifique

   – Pour autoriser le trafic SSH entrant sur le port 22 :

     sudo iptables -A INPUT -p tcp –dport 22 -j ACCEPT

  1. Blocage d’un trafic spécifique

   – Pour bloquer le trafic entrant d’une adresse IP spécifique (par exemple, “192.168.1.10”) :

     sudo iptables -A INPUT -s 192.168.1.10 -j DROP

  1. Configuration NAT (transfert de port)

   – Transférer le trafic entrant sur le port 8080 vers une machine interne 192.168.1.10 sur le port 80 :

     sudo iptables -t nat -A PREROUTING -i eth0 -p tcp –dport 8080 -j DNAT –to-destination 192.168.1.10:80

  1. Règles de sauvegarde

Les règles dans “iptables” sont volatiles, ce qui signifie qu’elles disparaîtront au redémarrage si elles ne sont pas sauvegardées.  Le passage à systemd et firewalld sur de nombreuses distributions a introduit un nouveau concept pour la sauvegarde et la gestion des règles iptables. Voici comment vous pouvez sauvegarder vos règles iptables en utilisant la méthode systemd, suivie d’une autre méthode couramment utilisée :

Utiliser la méthode systemd

De nombreuses distributions Linux modernes utilisent systemd pour la gestion des systèmes et des services. Si vous utilisez iptables avec systemd, vous pouvez utiliser la méthode suivante :

Tout d’abord, assurez-vous que le service iptables est paramétré pour démarrer au démarrage :

sudo systemctl enable iptables

Après avoir configuré vos règles iptables, enregistrez-les :

sudo sh -c ‘iptables-save > /etc/iptables/iptables.rules’

Ensuite, pour restaurer les règles au démarrage, systemd utilisera le service de restauration de iptables, qui lit le fichier /etc/iptables/iptables.rules par défaut.

Utilisation du plugin netfilter-persistent

Une autre méthode, particulièrement populaire sur les systèmes non Systemd basés sur Debian, est l’utilisation de netfilter-persistent :

Tout d’abord, vous devez installer les plugins nécessaires :

sudo apt-get install iptables-persistent

Lors de l’installation, il vous sera généralement demandé de sauvegarder vos règles iptables actuelles. Si vous devez sauvegarder vos règles ultérieurement, vous pouvez le faire avec :

sudo netfilter-persistent save

Cette commande permet de sauvegarder les règles actives d’iptables et de les conserver après le redémarrage.

Quelle que soit la méthode choisie, il est essentiel de sauvegarder régulièrement vos règles iptables, en particulier avant d’effectuer des modifications importantes. Vous disposerez ainsi d’une configuration fonctionnelle à laquelle vous pourrez revenir en cas d’erreurs ou de problèmes.

Incorporer “iptables” dans votre stratégie de sécurité Linux nécessite une compréhension claire de la structure et des besoins de votre réseau. Testez toujours les nouvelles configurations dans un environnement contrôlé et conservez des copies des sauvegardes de règles. La puissance et la précision d’iptables en font une arme à double tranchant : maniée avec soin, elle constitue une formidable barrière, mais utilisée de façon inadéquate, elle peut perturber des fonctions essentielles du réseau.

Autres outils de frontend pour iptables

Parmi les autres outils de configuration courants d’iptables, citons ufw (Uncomplicated Firewall), basé à l’origine sur Ubuntu, firewalld, basé sur systemd, et le ConfigServer Firewall (CSF).

UFW (Uncomplicated Firewall)

UFW, ou Uncomplicated Firewall, est conçu pour rendre la configuration du pare-feu iptables plus conviviale. Issu d’Ubuntu, il a été adopté par de nombreuses autres distributions en raison de sa simplicité et de sa facilité d’utilisation.

Exemples

Activer l’UFW

  • sudo ufw enable

Autoriser le trafic SSH

  • sudo ufw allow ssh

Refuser le trafic en provenance d’une IP spécifique

  • sudo ufw deny from 192.168.1.10

Vérifier le statut et les règles de l’UFW

  • sudo ufw status verbose

Firewalld (composant pare-feu de systemd)

firewalld est un gestionnaire de pare-feu dynamique qui prend en charge les zones réseau/pare-feu afin de définir le niveau de confiance des connexions ou des interfaces réseau. Il dispose d’un client en ligne de commande, firewall-cmd, et d’une interface graphique, firewall-config, ce qui lui permet de s’adapter aux différentes préférences des utilisateurs.

Exemples

Démarrer et activer firewalld

  • sudo systemctl start firewalld
  • sudo systemctl enable firewalld

Autoriser les services HTTP et HTTPS

  • sudo firewall-cmd –add-service=http –permanent
  • sudo firewall-cmd –add-service=https –permanent

Bloquer une adresse IP

  • sudo firewall-cmd –permanent –add-rich-rule=’rule family=”ipv4″ source address=”192.168.1.10″ reject’

Recharger la configuration

  • sudo firewall-cmd –reload

CSF (ConfigServer Firewall)

CSF est une solution de pare-feu riche en fonctionnalités conçue pour les serveurs Linux. Bien qu’il offre une gestion “iptables” comme les autres, il fournit également des fonctionnalités avancées telles que la détection de connexion/intrusion et le suivi des processus de sécurité.

Exemples

Installer CSF (sur un serveur cPanel par exemple)

  • cd /usr/src
  • wget https://download.configserver.com/csf.tgz
  • tar -xzf csf.tgz
  • cd csf
  • sh install.cpanel.sh

Autoriser une adresse IP

  • sudo csf -a 192.168.1.20

Bloquer une adresse IP

  • sudo csf -d 192.168.1.10

Recharger les règles CSF

  • sudo csf -r

Voir la configuration

  • sudo nano /etc/csf/csf.conf

Ces outils offrent plus de fonctionnalités que les exemples fournis, mais les exemples ci-dessus devraient vous donner un point de départ fondamental. Chacun des gestionnaires de pare-feu dispose d’une documentation complète qui permet d’effectuer des recherches approfondies et des configurations avancées.

ClearOS

ClearOS est une distribution Linux conçue pour gérer les fonctions de serveur, de réseau et de passerelle. Il est convivial et s’accompagne d’une console de gestion basée sur le web. Bien que ClearOS puisse être utilisé à travers son interface graphique, nous allons aborder quelques exemples de lignes de commande pour avoir un aperçu de ses capacités.

Exemples

Installer le module pare-feu

(En supposant ClearOS 7, via l’interface web)

Naviguer vers ClearCenter Logiciel Pare-feu et cliquez sur “Installer“.

Démarrer et activer le pare-feu

  • sudo systemctl start clearos-firewall
  • sudo systemctl enable clearos-firewall

Autoriser un service (par exemple, SSH)

  • sudo firewall-cmd –zone=external –add-service=ssh –permanent
  • sudo firewall-cmd –reload

Bloquer une adresse IP

  • sudo firewall-cmd –add-rich-rule=’rule family=”ipv4″ source address=”192.168.1.10″ reject’ –permanent
  • sudo firewall-cmd –reload

OPNsense

OPNsense est un pare-feu et une plateforme de routage libres et gratuits basés sur FreeBSD. Conçu pour remplacer pfSense, il est doté de nombreuses fonctionnalités et est principalement géré via une interface web.

Étapes de configuration (interface web)

Accéder à l’interface web

Généralement, après la configuration initiale, OPNsense est accessible via un navigateur web en se rendant à l’adresse IP de l’appareil, généralement https://192.168.1.1 (par défaut).

Mise en place de règles de pare-feu

  1. Naviguez vers Pare-feu → Règles → LAN (ou l’interface pour laquelle vous souhaitez définir une règle).
  2. Cliquez sur le signe + pour ajouter une nouvelle règle.
  3. Indiquez les détails, tels que la source, la destination, les ports et l’action (autoriser/refuser).
  4. Cliquez sur Sauvegarder puis sur Appliquer les modifications.

NAT / transfert de port

  1. Naviguez vers Pare-feu → NAT → Transfert de port.
  2. Cliquez sur le signe + pour ajouter une nouvelle règle.
  3. Remplissez les champs obligatoires tels que l’interface, le protocole, les adresses IP source/destination et les ports.
  4. Cliquez sur Sauvegarder puis sur Appliquer les modifications.

Bloquer une adresse IP

  1. Naviguez vers Pare-feu → Alias puis ajoutez un nouvel alias pour l’IP ou la plage d’IP que vous souhaitez bloquer.
  2. Une fois l’alias créé, allez dans Pare-feu → Règles → LAN (ou l’interface correspondante).
  3. Créez une nouvelle règle avec Action défini sur “Bloquer” et utiliser l’alias comme source ou destination.

Mise à jour et maintenance

Des mises à jour régulières sont essentielles pour la sécurité. Naviguez vers Système → Firmware → Mises à jour pour vérifier et appliquer les mises à jour disponibles.

Bien que ClearOS et OPNsense disposent tous deux de fonctionnalités de ligne de commande, leur force et leur conception résident dans leurs interfaces web respectives, qui offrent des configurations intuitives aux utilisateurs de tous niveaux de compétence. N’oubliez jamais de tester les configurations dans un environnement contrôlé avant de les appliquer à une installation de production en direct. N’oubliez pas non plus de faire des sauvegardes avant de procéder à des modifications ! La fonctionnalité de sauvegarde de NinjaOne est compatible avec la plupart des fonctionnalités de sauvegarde des principaux systèmes d’exploitation sans compromettre votre sécurité.

Dépannage des problèmes de configuration du pare-feu

Problèmes courants

  • Services bloqués : Le blocage involontaire de services ou d’applications légitimes.
  • Vulnérabilités ouvertes : Ports ou services exposés involontairement.
  • Conflits de règles : Règles qui se chevauchent ou se contredisent et qui entraînent un comportement inattendu.
  • Dégradation des performances : Règles excessives entraînant une réduction des performances du système/réseau.

Diagnostiquer et résoudre

  • Journaux et alertes : Vérifier régulièrement les journaux du pare-feu pour détecter les anomalies ou les activités bloquées.
  • Tester la configuration : Après avoir établi des règles, testez-les dans des scénarios contrôlés pour vous assurer du comportement souhaité.
  • Hiérarchisation des règles : Veiller à ce que les règles plus spécifiques soient placées plus haut que les règles génériques afin d’éviter les conflits.
  • Utiliser des outils de contrôle : Des outils comme nmap ou netstat peuvent aider à visualiser les ports ouverts et les services actifs.

Entretien et performance

  • Examens réguliers : Réexaminez et supprimez périodiquement les règles obsolètes ou inutiles.
  • Mises à jour : Maintenez le logiciel ou le micrologiciel du pare-feu à jour pour éliminer les vulnérabilités.
  • Sauvegardes : Il faut toujours sauvegarder les configurations avant de les modifier.
  • Segmentation : Implémentez la segmentation du réseau pour réduire la charge de travail du pare-feu et renforcer la sécurité.

Une configuration efficace du pare-feu est essentielle pour la sécurité Linux

En comprenant les politiques de sécurité, en définissant des règles par défaut, en gérant le flux de trafic, en configurant des règles spécifiques aux services et en révisant régulièrement les configurations, les utilisateurs garantissent une protection solide du système contre les menaces extérieures. Un pare-feu méticuleusement configuré n’est pas seulement un gardien, mais un bastion essentiel de la stratégie de sécurité globale des systèmes Linux. Au-delà du simple blocage du trafic indésirable, il témoigne d’une approche de défense proactive, renforçant Linux et les appareils contre les menaces de cybersécurité en constante évolution. 

Outre la mise en place de pare-feu et le respect des bonnes pratiques en matière de cybersécurité, l’un des moyens les plus efficaces de protéger vos appareils est d’utiliser une solution de gestion des terminaux, telle que le logiciel de gestion des terminaux de NinjaOne. Avec NinjaOne, vous pouvez surveiller, gérer et sécuriser tous vos appareils Linux à distance à partir d’un panneau de contrôle centralisé. Profitez des nombreuses fonctions d’automatisation de NinjaOne pour gagner du temps et de l’efficacité tout en assurant la sécurité de votre environnement informatique. Profitez d’un essai gratuit de NinjaOne pour découvrir à quel point la gestion de l’informatique peut être simple et efficace.

Pour aller plus loin

Les principes fondamentaux de la sécurité des appareils sont essentiels à votre posture de sécurité globale. NinjaOne facilite l’application de correctifs, le durcissement, la sécurisation et la sauvegarde des données de tous les appareils de façon centralisée, à distance et à grande échelle.
Pour en savoir plus sur NinjaOne Backup, participez à une visite guidée en direct ou commencez votre essai gratuit de la plateforme NinjaOne.

Vous pourriez aussi aimer

Prêt à simplifier les aspects les plus complexes de l'informatique et de la sécurité ?
×

Voir NinjaOne en action !

En soumettant ce formulaire, j'accepte la politique de confidentialité de NinjaOne.

Termes et conditions NinjaOne

En cliquant sur le bouton “J’accepte” ci-dessous, vous indiquez que vous acceptez les termes juridiques suivants ainsi que nos conditions d’utilisation:

  • Droits de propriété: NinjaOne possède et continuera de posséder tous les droits, titres et intérêts relatifs au script (y compris les droits d’auteur). NinjaOne vous accorde une licence limitée pour l’utilisation du script conformément à ces conditions légales.
  • Limitation de l’utilisation: Les scripts ne peuvent être utilisés qu’à des fins personnelles ou professionnelles internes légitimes et ne peuvent être partagés avec d’autres entités.
  • Interdiction de publication: Vous n’êtes en aucun cas autorisé à publier le script dans une bibliothèque de scripts appartenant à, ou sous le contrôle d’un autre fournisseur de logiciels.
  • Clause de non-responsabilité: Le texte est fourni “tel quel” et “tel que disponible”, sans garantie d’aucune sorte. NinjaOne ne promet ni ne garantit que le script sera exempt de défauts ou qu’il répondra à vos besoins ou attentes particulières.
  • Acceptation des risques: L’utilisation du script est sous votre propre responsabilité. Vous reconnaissez qu’il existe certains risques inhérents à l’utilisation du script, et vous comprenez et assumez chacun de ces risques.
  • Renonciation et exonération de responsabilité: Vous ne tiendrez pas NinjaOne pour responsable des conséquences négatives ou involontaires résultant de votre utilisation du script, et vous renoncez à tout droit ou recours légal ou équitable que vous pourriez avoir contre NinjaOne en rapport avec votre utilisation du script.
  • EULA: Si vous êtes un client de NinjaOne, votre utilisation du script est soumise au contrat de licence d’utilisateur final qui vous est applicable (End User License Agreement (EULA)).