Retour au blog

Configuration d'un pare-feu avec FirewallD sur CentOS 7

Configuration d'un pare-feu avec FirewallD sur CentOS 7

Introduction

Firewalld est une solution de gestion de pare-feu disponible pour de nombreuses distributions Linux. Elle sert d'interface au système de filtrage de paquets iptables fourni par le noyau Linux. Dans ce guide, vous apprendrez à configurer un pare-feu pour votre serveur. Nous vous montrerons également les bases de la gestion du pare-feu avec l'outil d'administration firewall-cmd.

Bases de Firewalld

FirewallD utilise les concepts de zones et de services, plutôt que les chaînes et les règles d'iptables. En fonction des zones et des services que vous configurez, vous pouvez contrôler quel trafic est autorisé ou non vers et depuis le système. FirewallD peut être configuré et géré à l'aide de l'utilitaire en ligne de commande firewall-cmd.

Installer et activer votre pare-feu pour qu'il démarre au démarrage

Sur la plupart des distributions Linux, firewallD est déjà installé. Cependant, si vous devez l'installer vous-même, saisissez la syntaxe ci-dessous :

Vous pouvez activer le service et redémarrer votre serveur une fois firewalld installé :

Ensuite, redémarrez votre serveur. Votre pare-feu sera activé lorsque vous aurez redémarré le serveur avec succès. Après cela, utilisez la commande ci-dessous pour vérifier que le service a été activé :

check firewall state FirewallD

La sortie montre que le paramètre de pare-feu par défaut fonctionne.

Vérification des valeurs par défaut

Vous pouvez vérifier la zone sélectionnée par le serveur à l'aide de cette commande :

check firewall default zone

Vérifiez la zone active en tapant :

firewall active zones

Affichez la configuration de la zone par défaut pour connaître les règles associées à la zone publique en utilisant cette syntaxe :

list all rules FirewallD

La sortie indique que cette zone est à la fois la zone par défaut et la zone active. Elle montre également que les interfaces eth0 et eth1 sont attribuées à cette zone.

Vérification des zones alternatives

En plus des zones par défaut et actives, il existe d'autres zones que vous pouvez explorer. Entrez cette commande pour voir toutes les zones disponibles :

firewall check other zones

Vérifiez la configuration particulière attribuée à une zone en ajoutant le paramètre –zone= dans la commande –list-all :

check zone configuration FirewallD

 Modifier la zone d'interface

Vous pouvez facilement modifier la zone d'interface en utilisant l'option –change-interface combinée avec l'option –change-interface. La commande suivante attribuera l'interface eth1 à l'espace de travail :

Vous pouvez vérifier les modifications en tapant :

changing firewall interface zones FirewallD

Modifier la zone par défaut

Pour modifier la zone par défaut, utilisez –set-default-zone suivi du nom de la zone que vous souhaitez définir par défaut. Par exemple, pour changer la zone par défaut pour commencer, vous devez exécuter la commande suivante :

Ensuite, vous pouvez vérifier les modifications avec :

firewall change default zone

Définir des règles pour vos applications

Passons en revue les bases requises pour définir des exceptions de pare-feu pour les services :

Ajouter un service à vos zones

La méthode la plus simple consiste à ajouter les ports ou services dont vous avez besoin aux zones que vous utilisez. De même, vous pouvez utiliser l'option –get-services pour voir tous les services disponibles :

firewall get services FirewallD

Vous pouvez activer le service pour une zone avec le paramètre –add-service =. L'action cible la zone par défaut ou toute zone définie par le paramètre –zone =. Par défaut, seule la session de pare-feu actuelle est configurée. Vous pouvez configurer une configuration de pare-feu permanente en activant le drapeau –permanent. Par exemple, si vous exécutez un serveur web qui fournit un trafic HTTP standard, vous pouvez autoriser ce trafic pour les interfaces de notre zone “public” pour cette session en saisissant :

Vous pouvez omettre –zone = si vous souhaitez modifier la zone par défaut. Vous pouvez vérifier la réussite de l'opération avec les opérations –list-all ou –list-services :

add service to zone

Une fois que vous avez vérifié que tout fonctionne comme prévu, vous voudrez très probablement modifier les règles de pare-feu permanentes pour que votre service reste disponible après un redémarrage. Nous pouvons rendre ce changement permanent pour notre zone “public” en saisissant la syntaxe suivante :

Vous pouvez vérifier si cela a réussi en ajoutant le drapeau –permanent à l'opération –list-services. Vous devez utiliser sudo pour toutes les opérations permanentes :

Votre zone “public” autorise désormais le trafic HTTP sur le port 80. Vous pouvez ajouter cela à la session actuelle et au jeu de règles persistantes en utilisant la commande ci-dessous :

S'il n'y a aucun service qui correspond à vos besoins, vous disposez de deux excellentes options pour gérer cette situation :

  1. Ouvrir un port pour vos zones

La manière la plus simple d'ajouter la prise en charge de votre application particulière consiste à ouvrir les ports utilisés dans chaque zone. Il suffit de désigner un port ou une plage de ports et le protocole correspondant pour les ports que vous devez ouvrir. Par exemple, si votre application s'exécute sur le port 5000 et utilise TCP, vous pouvez l'ajouter à la zone “public” pour cette session avec le paramètre –add-port =. Les protocoles peuvent être TCP ou UDP :

Afin de vérifier que l'opération a réussi, utilisez l'opération –list-ports :

Vous pouvez également spécifier une plage pour l'interface série en séparant les ports de début et de fin de la plage par un trait d'union. Par exemple, si votre application utilise les ports UDP 4990 à 4999, vous pouvez les ouvrir dans “public” en écrivant :

Après les tests, nous voudrons probablement les ajouter au pare-feu permanent. Vous pouvez le faire en saisissant ce qui suit :

adding ports to permanent firewall

  1. Définir un service

Un service est une collection de ports avec un nom et une description associés. Les services sont plus faciles à gérer que les ports, mais cela nécessite un peu de travail initial. La façon la plus simple de commencer est de copier un script existant (dans / usr / lib / firewalld / services) vers le répertoire /etc/firewalld/services. Par exemple, vous pouvez copier la définition du service SSH pour l'utiliser dans la définition du service “example” comme suit. Le nom du fichier moins le suffixe XML détermine le nom du service dans la liste des services de pare-feu :

À ce stade, vous pouvez ajuster la définition dans le fichier copié :

Tout d'abord, le fichier contient la définition SSH que vous avez copiée :

La majeure partie de cette définition est constituée de métadonnées. Vous devez modifier le nom court du service dans les balises <short>. Il s'agit d'un nom de service lisible. Imaginez que pour notre service “example”, nous devions ouvrir le port 7777 pour TCP et 8888 pour UDP. Vous pouvez modifier la définition existante en entrant en mode INSERT en appuyant sur i :

Ensuite, appuyez sur ÉCHAP et tapez : x pour enregistrer et fermer le fichier. Ensuite, tapez la commande ci-dessous pour redémarrer votre pare-feu afin d'avoir accès à votre nouveau service ;

Après cela, utilisez la commande ci-dessous pour obtenir la liste des services disponibles :

get services

Ce service est désormais disponible dans votre zone.

Créer vos zones

Bien que les zones prédéfinies soient probablement suffisantes pour la plupart des utilisateurs, il peut être utile de définir vos propres zones qui décrivent plus précisément leur fonction.

Lorsque vous ajoutez une zone, ajoutez-la à vos paramètres de pare-feu permanents. Vous pouvez ensuite recharger pour appliquer les paramètres à votre session. Par exemple, vous pouvez créer les deux zones mentionnées précédemment en tapant :

Vous pouvez confirmer qu'elles sont présentes dans votre configuration permanente à l'aide de cette commande :

firewall zones

Rechargez le pare-feu pour appliquer ces nouvelles zones à la configuration active :

Vous pouvez maintenant attribuer les services et ports appropriés à vos zones. Par exemple, pour la zone “publicweb”, vous aimeriez peut-être ajouter les services SSH, HTTP et HTTPS :

list public web zone

 

De plus, vous pouvez ajouter le service DNS à votre zone “privateDNS” en utilisant cette commande :

list privateDNS zone FirewallD

Ensuite, vous pouvez changer vos interfaces vers ces nouvelles zones pour les tester :

Testez la configuration pour voir si elle fonctionne. Si ces valeurs fonctionnent pour vous, vous devez ajouter les mêmes règles à la configuration permanente. Vous pouvez le faire en réappliquant les règles avec l'indicateur —permanent :

 

Après avoir appliqué ces règles de manière permanente, vous pouvez redémarrer votre réseau et recharger votre service de pare-feu :

Vérifiez que les zones ont été correctement attribuées :

check active zones FirewallD

De plus, assurez-vous que les deux zones ont le bon service :

Si vous souhaitez définir l'une de vos zones par défaut pour d'autres interfaces, vous devez configurer ce comportement avec le paramètre –set-default-zone= en utilisant cette commande :

Conclusion

À ce stade, vous avez créé vos propres zones avec succès. Vous devriez avoir une compréhension de base de l'administration du service firewalld sur votre système CentOS pour une utilisation quotidienne. Une bonne maîtrise du service firewalld vous permet de profiter pleinement de sa puissance et de sa flexibilité.

Bonne informatique !

 

author

Akshay Nagpal

Auteur · CloudSigma

Preslav Dobrev est un designer créatif chez CloudSigma, axé sur une identité commerciale cohérente à travers des canaux marketing traditionnels et innovants. Il excelle à fusionner la vision artistique avec le marketing stratégique pour créer des récits de marque percutants.

Commentaires

Aucun commentaire pour l'instant. Soyez le premier.