FAQ Instructions simples pour travailler avec le service Profitserver
Entrée FAQ Configuration du pare-feu sous Linux

Configuration du pare-feu sous Linux


Le pare-feu sous Linux joue un rôle essentiel dans la sécurité d'un système informatique. Il agit comme une barrière, contrôlant et filtrant le trafic réseau afin de protéger le système contre les accès non autorisés, les attaques et autres menaces. Sans un pare-feu correctement configuré, le serveur pourrait être vulnérable à divers types de cyberattaques, entraînant de graves conséquences pour la sécurité et la confidentialité des données.

Dans cet article, nous examinerons deux outils principaux pour configurer un pare-feu Linux : firewalld et iptables. Nous effectuerons une analyse comparative de leurs fonctionnalités et avantages. Nous fournirons également des instructions détaillées pour la configuration et l'utilisation de chacun de ces outils, ainsi que des bonnes pratiques pour sécuriser votre système avec un pare-feu sur la plateforme Linux. Toutes les actions seront présentées sur un support. serveur virtuel avec un accès root.

Configuration de firewalld sous Linux

Firewalld (Firewall Daemon) est un programme de gestion du pare-feu sous Linux. Il fournit une interface utilisateur permettant de configurer les règles de pare-feu et d'autoriser ou de bloquer les connexions des applications réseau. Il est préinstallé par défaut dans la plupart des distributions serveur. Si Firewalld n'est pas préinstallé, il peut être installé indépendamment des dépôts officiels de la distribution.

Pour les systèmes Red Hat (tels que RHEL, CentOS, Fedora), l'installation s'effectue avec la commande :

yum install firewalld

Pour Debian/Ubuntu :

apt-get install firewalld

Après l'installation, il peut être démarré et activé immédiatement avec la commande :

systemctl start firewalld

Ensuite, vous devez ajouter le service au démarrage :

systemctl enable firewalld
Ajout de firewalld dans le chargement automatique de Linux

À ce stade, nous vous recommandons de désactiver ufw, car son utilisation simultanée avec firewalld ou iptables est déconseillée. Vérifiez l'état :

systemctl status ufw
Vérification de ufw linux

Pour l'arrêter, entrez la commande :

systemctl stop ufw

Pour une désactivation complète :

ufw disable

Après ces actions, vous pouvez procéder à la configuration de firewalld.

Tout d'abord, il est nécessaire de définir des zones de confiance. Firewalld utilise le concept de zones pour déterminer le niveau de confiance des interfaces réseau. Chaque interface se voit attribuer une zone, et les règles de pare-feu sont appliquées en fonction de cette zone. La liste de toutes les zones disponibles s'ouvre avec la commande :

firewall-cmd --get-zones

Généralement, 4 zones principales sont utilisées :

  1. Public mode:Cette zone est réservée aux réseaux que vous considérez comme dangereux ;
  2. Privé mode: S'applique aux réseaux domestiques ou à d'autres connexions réseau de confiance ;
  3. Interne:Utilisé pour les réseaux internes, tels que ceux d'une organisation ou d'un réseau d'entreprise ;
  4. DMZ:Cette zone est l'endroit où sont généralement placés les serveurs qui doivent être accessibles depuis Internet.

Ceci n'est qu'un exemple. Vous pouvez ajouter votre propre zone avec la commande :

firewall-cmd --permanent --new-zone=nameyourzone

Après l'ajout, un rechargement est nécessaire :

firewall-cmd --reload

Pour supprimer une zone, une méthode similaire est utilisée

firewall-cmd --permanent --delete-zone=nameyourzone

Après avoir défini les zones, il est nécessaire d'autoriser le trafic pour les services et ports concernés. Pour autoriser un service spécifique, utilisez la commande :

firewall-cmd --zone=public --add-service=name

Le nom est le nom du service. Par exemple, pour autoriser le trafic pour Apache :

firewall-cmd --zone=public --add-service=http

Pour définir les ports autorisés, utilisez la commande :

firewall-cmd --zone=public --add-port=number/protocol

Par exemple, le port 22 standard pour SSH ressemblerait à ceci :

firewall-cmd --zone=public --add-port=22/tcp

À ce stade, les règles principales sont déjà créées. Il faut ensuite déterminer le traitement du trafic en fonction de la source, de la destination, du port et d'autres critères. Pour ajouter une règle (à l'aide de l'icône public zone à titre d'exemple) :

firewall-cmd --zone=public rule

Par exemple, pour autoriser le trafic entrant depuis n’importe quelle source vers le port 80 (HTTP) :

firewall-cmd --zone=public --add-port=80/tcp --permanent

Pour supprimer une règle :

firewall-cmd --permanent --remove-rule=rule_specification

exclure est le type de règle (par exemple, port, service, règle riche, etc.), et spécification_de_règle est la spécification de la règle elle-même.

Après avoir modifié la configuration de Firewalld, il est nécessaire de les enregistrer et de les appliquer. Pour cela, utilisez la commande :

firewall-cmd --runtime-to-permanent

Pour appliquer les modifications :

firewall-cmd --reload

Une fois la configuration terminée, vous pouvez vérifier les paramètres sélectionnés en ouvrant la liste de toutes les règles :

firewall-cmd --list-all
règles Linux de firewalld

Si des problèmes surviennent, vérifiez les journaux Firewalld avec la commande :

journalctl -u firewalld

Remarque : Nous n'avons abordé que l'algorithme général de configuration de la connexion. L'outil offre de nombreuses fonctionnalités. Pour plus d'informations sur toutes les options disponibles, consultez le documentation officielle ou ouvrez l'aide :

firewall-cmd --help

Configuration d'iptables sous Linux

Contrairement à Firewalld, iptables est un outil plus ancien, mais toujours largement utilisé sous Linux pour gérer le pare-feu. Il offre une approche plus directe et plus flexible des règles de filtrage de paquets au niveau du noyau Linux. Cependant, iptables requiert des connaissances et une expérience plus avancées que Firewalld, ce qui le rend moins accessible aux débutants. Vérifiez la version préinstallée de l'outil avec la commande :

iptables -V

Si l'outil n'est pas installé, il devra l'être. La commande d'installation sur Ubuntu et Debian est la suivante :

apt install iptables

Pour les systèmes Red Hat (par exemple, CentOS, Fedora) :

yum install iptables

La commande d'activation après l'installation :

systemctl start iptables

Pour ajouter au démarrage, exécutez :

systemctl enable iptables

Avant de commencer la configuration d'iptables, il est important de comprendre son fonctionnement. La syntaxe du programme vous y aidera. Voici comment elle se présente :

iptables -t table action chain additional_parameters

Examinons de plus près chaque élément.

Iptables possède quatre tables principales : filtre, nat, mangle et rawChacun est conçu pour traiter certains types de paquets et possède ses propres chaînes de règles :

  1. une fonction filtre: Il s'agit du tableau le plus fréquemment utilisé, contenant les règles de filtrage des paquets. Il permet de décider d'autoriser ou de refuser des paquets.
  2. nat: Cette table permet de modifier les adresses réseau et les ports des paquets. Elle est souvent utilisée pour configurer le masquage (NAT).
  3. mangle: Dans ce tableau, vous pouvez modifier les en-têtes des paquets. Il est utilisé pour des opérations de paquets spécialisées, comme le marquage.
  4. brutCe tableau permet de configurer les règles applicables avant leur passage par le système de suivi des connexions. Il est généralement utilisé pour définir des règles qui ne doivent pas être modifiées par le système de suivi, comme l'abandon de paquets provenant de certaines adresses.

Chaque table contient un ensemble de chaînes. Les chaînes sont une séquence de règles vérifiées séquentiellement. Il existe trois chaînes prédéfinies :

  1. ENTRÉE (entrant)Les règles de cette chaîne déterminent ce qu’il faut faire avec les paquets entrants.
  2. SORTIE (sortant)Cette chaîne s’applique à tous les paquets que votre ordinateur envoie à d’autres appareils ou ordinateurs sur le réseau.
  3. TRANSFÉRER (transfert)Les règles de cette chaîne spécifient ce qu’il faut faire avec les paquets transférés.

Enfin, chaque chaîne possède une action (cible). En pratique, cinq actions principales sont utilisées :

  1. ACCEPTER: Autoriser le paquet à traverser le pare-feu.
  2. GOUTTE:Rejetez le paquet et jetez-le sans aucune réponse.
  3. REJETER:Rejeter le paquet et envoyer à l'expéditeur un message d'erreur ICMP.
  4. Se Connecter: Enregistrez le paquet dans le journal système et effectuez une autre action (par exemple, ACCEPT ou DROP).
  5. RETOUR: Arrêtez de vérifier les règles dans la chaîne actuelle et revenez à la chaîne d'appel (le cas échéant).

Pour démarrer la configuration, ouvrez la liste des règles existantes avec la commande :

iptables -L
Configuration du pare-feu sous Linux

Pour vous guider dans la configuration d'Iptables, examinons des exemples pratiques des commandes les plus courantes. Pour plus de commodité, nous diviserons les exemples en trois groupes, selon la chaîne concernée.

Chaîne CONTRIBUTION:

  1. Autoriser le trafic entrant via le protocole TCP sur le port 80 :
iptables -A INPUT -p tcp --dport 80 -j ACCEPT

2. Autoriser le trafic entrant via le protocole UDP sur le port 22 :

iptables -A INPUT -p udp --dport 22 -j ACCEPT

3. Bloquer le trafic entrant provenant d’une adresse IP spécifique :

iptables -A INPUT -s 192.168.1.100 -j DROP

Chaîne SORTIE:

  1. Autoriser le trafic sortant via le protocole TCP sur le port 443 :
iptables -A OUTPUT -p tcp --dport 443 -j ACCEPT

2. Autoriser le trafic sortant via le protocole UDP sur le port 80 :

iptables -A OUTPUT -p udp --dport 80 -j ACCEPT

3. Bloquer le trafic sortant vers un port spécifique (par exemple, 21) :

iptables -A OUTPUT -p tcp --dport 21 -j DROP

Chaîne AVANT:

  1. Bloquer le trafic transféré à partir d'une plage spécifique d'adresses IP :
iptables -A FORWARD -s 172.16.0.0/24 -j DROP

2. Bloquer la transmission des paquets à partir d'une interface réseau spécifique :

iptables -A FORWARD -i eth1 -j DROP

3. Limitez le nombre de connexions simultanées pour un port spécifique (dans cet exemple, 10 connexions par minute sur le port 80) :

iptables -A INPUT -p tcp --dport 80 -m limit --limit 10/minute -j ACCEPT

Comme vous pouvez le constater, dans chaque cas, un argument supplémentaire (commande) est utilisé. Pour obtenir la liste complète des arguments possibles et la prise en charge globale des fonctionnalités de l'outil, saisissez :

iptables -h
liste des commandes de configuration Linux d'iptables

Pour vous assurer que les paramètres sont corrects, entrez à nouveau la commande pour afficher la liste des règles :

iptables -L
Vérification des règles Linux iptables

Pour supprimer une règle spécifique, utilisez la commande :

iptables -D chain rule_number

Par exemple, si vous souhaitez supprimer la règle numéro 1 de la chaîne INPUT, la commande ressemblera à ceci :

iptables -D INPUT 1

Pour supprimer toutes les règles avec une seule commande :

iptables -F

Note importante: Les règles iptables ne sont pas enregistrées automatiquement après le redémarrage du système ou du service. Pour les enregistrer, il faut les ajouter à un fichier de configuration et les restaurer après le redémarrage. iptables-sauvegarder et iptables-restauration Les utilitaires peuvent vous aider. Pour enregistrer les règles, saisissez la commande :

iptables-save > /etc/iptables/rules.v4

Ceci enregistre les règles iptables actuelles dans le fichier rules.v4. Pour les restaurer après un redémarrage, saisissez :

iptables-restore < /etc/iptables/rules.v4

Cette commande restaure les règles du fichier rules.v4.

Conclusion

Configurer un pare-feu sous Linux avec firewalld ou iptables est un aspect important de la sécurité du serveur. Ces deux outils offrent des moyens fiables de gérer le trafic réseau et de protéger le système contre les accès non autorisés et les cyberattaques. Le choix entre firewalld et iptables dépend des besoins et préférences spécifiques de l'utilisateur, compte tenu de leurs fonctionnalités et atouts respectifs.

❮ Article précédent Utilisateurs Linux : gestion et autorisations
Article suivant ❯ Diagnostic de charge du serveur

Demandez-nous des informations sur VPS

Nous sommes toujours prêts à répondre à vos questions à toute heure du jour ou de la nuit.