Net-filtre comme nous le savons tous, c’est un pare-feu sous Linux. Pare-feu est un démon dynamique pour gérer les pare-feu avec prise en charge des zones réseau. Dans la version antérieure, RHEL & CentOS nous avons utilisé iptables comme démon pour le framework de filtrage de paquets.
Dans les nouvelles versions des distributions basées sur RHEL telles que Feutre, Rocheux Linux, Flux CentOS, AlmaLinuxet ouvrirSUSE – la iptables l’interface est remplacée par pare-feu.
[ You might also like: 10 Useful Open Source Security Firewalls for Linux Systems ]
Il est recommandé de commencer à utiliser Pare-feu à la place de iptables car cela pourrait cesser à l’avenir. Cependant, iptables sont toujours pris en charge et peuvent être installés avec la commande yum. Nous ne pouvons pas garder Pare-feu et iptables les deux dans le même système, ce qui peut conduire à des conflits.
Dans iptablesnous avions l’habitude de configurer comme SAISIR, PRODUCTION & CHAÎNES AVANT mais ici dans Pare-feule concept utilise Zones. Par défaut, différentes zones sont disponibles dans pare-feudont il sera question dans cet article.
La zone de base qui sont comme zone publique et espace privé. Pour que les choses fonctionnent avec ces zones, nous devons ajouter l’interface avec le support de zone spécifié, puis nous pouvons ajouter les services à pare-feu.
Par défaut, de nombreux services sont disponibles, l’une des meilleures fonctionnalités de pare-feu c’est-à-dire qu’il est livré avec des services prédéfinis et nous pouvons prendre ces services comme exemple pour ajouter nos services en les copiant simplement.
Pare-feu fonctionne très bien avec IPv4, IPv6, et Ponts Ethernet aussi. Nous pouvons avoir une configuration d’exécution et une configuration permanente séparées dans firewalld.
Commençons par travailler avec les zones et créer nos propres services et une utilisation beaucoup plus excitante de pare-feu sous Linux.
Notre environnement de test
Operating System : Red Hat Enterprise Linux release 9.0 (Plow) IP Address : 192.168.0.159 Host-name : tecmint-rhel9
Étape 1 : Installation de Firewalld dans les systèmes basés sur RHEL
1. Pare-feu package est installé par défaut dans RHEL, Feutre, Rocheux Linux, Flux CentOS, AlmaLinuxet ouvrirSUSE. Sinon, vous pouvez l’installer à l’aide de la commande yum suivante.
# yum install firewalld -y
2. Après le pare-feu package a été installé, il est temps de vérifier si le iptables service est en cours d’exécution ou non, s’il est en cours d’exécution, vous devez arrêter et masquer (ne plus utiliser) le iptables service avec les commandes ci-dessous.
# systemctl status iptables # systemctl stop iptables # systemctl mask iptables
Étape 2 : Comprendre les composants Firewalld (zones et règles)
3. Avant de partir pour pare-feu configuration, je voudrais discuter de chaque zone. Par défaut, certaines zones sont disponibles. Nous devons attribuer l’interface à la zone. Une zone définit la zone qui a été approuvée ou refusée au niveau de l’interface pour obtenir une connexion. Une zone peut contenir des services et des ports.
Ici, nous allons décrire chacune des zones disponibles dans Pare-feu.
- Zone de largage: Tous les paquets entrants sont supprimés si nous utilisons une zone de dépôt. C’est la même chose que nous utilisons pour ajouter iptables -j déposer. Si nous utilisons la règle de suppression, cela signifie qu’il n’y a pas de réponse, seules les connexions réseau sortantes seront disponibles.
- Bloquer la zone: La zone de blocage refusera que les connexions réseau entrantes soient rejetées avec un icmp-host-prohibited. Seules les connexions établies au sein du serveur seront autorisées.
- Espace public: Pour accepter les connexions sélectionnées, nous pouvons définir des règles dans la zone publique. Cela permettra uniquement au port spécifique de s’ouvrir sur notre serveur, les autres connexions seront supprimées.
- Zone externe: Cette zone agira comme des options de routeur avec le masquage activé, les autres connexions seront abandonnées et ne seront pas acceptées, et seules les connexions spécifiées seront autorisées.
- Zone DMZ: Si nous devons autoriser l’accès à certains services au public, vous pouvez le définir dans la zone DMZ. Cela a aussi la caractéristique de n’accepter que les connexions entrantes sélectionnées.
- Zone de travail : dans cette zone, nous pouvons définir uniquement les réseaux internes, c’est-à-dire que le trafic des réseaux privés est autorisé.
- Zone d’accueil: Cette zone est spécialement utilisée dans les zones domestiques, nous pouvons utiliser cette zone pour faire confiance aux autres ordinateurs sur les réseaux pour ne pas endommager votre ordinateur comme dans toutes les zones. Cela aussi n’autorise que les connexions entrantes sélectionnées.
- Zone interne: Celle-ci est similaire à la zone de travail avec les connexions autorisées sélectionnées.
- Zone de confiance: Si nous définissons la zone de confiance, tout le trafic est accepté.
Maintenant que vous avez une meilleure idée des zones, découvrons maintenant les zones disponibles et les zones par défaut, et répertorions toutes les zones à l’aide des commandes suivantes.
Répertorier les zones de pare-feu
# firewall-cmd --get-zones
Répertorier la zone par défaut du pare-feu
# firewall-cmd --get-default-zone
Répertorier toutes les zones de pare-feu
# firewall-cmd --list-all-zones
Noter: La sortie de la commande ci-dessus ne tient pas sur une seule page car elle répertorie toutes les zones telles que block, dmz, drop, external, home, internal, public, trust et work. Si les zones ont des règles enrichies, les services ou ports activés seront également répertoriés avec ces informations de zone respectives.
Étape 3 : Définition de la zone de pare-feu par défaut
4. Si vous souhaitez définir la zone par défaut comme interne, externe, de dépôt, de travail ou toute autre zone, vous pouvez utiliser la commande ci-dessous pour définir la zone par défaut. Ici, nous utilisons le « interne” zone par défaut.
# firewall-cmd --set-default-zone=internal
5. Après avoir défini la zone, vérifiez la zone par défaut à l’aide de la commande ci-dessous.
# firewall-cmd --get-default-zone
6. Ici, notre interface est enp0s3Si nous devons vérifier la zone dans laquelle l’interface est délimitée, nous pouvons utiliser la commande ci-dessous.
# firewall-cmd --get-zone-of-interface=enp0s3
sept. Une autre fonctionnalité intéressante de firewalld est ‘icmptype‘ est l’un des types icmp pris en charge par firewalld. Pour obtenir la liste des types icmp pris en charge, nous pouvons utiliser la commande ci-dessous.
# firewall-cmd --get-icmptypes
Étape 4 : Créer ses propres services dans Firewalld
8. Les services sont un ensemble de règles avec des ports et des options qui sont utilisés par Pare-feu. Les services activés seront automatiquement chargés lorsque le Pare-feu le service est opérationnel.
Par défaut, de nombreux services sont disponibles, pour obtenir la liste de tous les services disponibles, utilisez la commande suivante.
# firewall-cmd --get-services
9. Pour obtenir la liste de tous les services disponibles par défaut, allez dans le répertoire suivant, ici vous obtiendrez la liste des services.
# cd /usr/lib/firewalld/services/
dix. Pour créer votre propre service, vous devez le définir à l’emplacement suivant. Par exemple, ici, je veux ajouter un service pour RTMP Port 1935faites d’abord une copie de l’un des services.
# cd /etc/firewalld/services/ # cp /usr/lib/firewalld/services/ssh.xml /etc/firewalld/services/
Et ensuite, accédez à l’emplacement où notre fichier de service a été copié, renommez ensuite le fichier ‘ssh.xml‘ à ‘rtmp.xml‘ comme le montre l’image ci-dessous.
# cd /etc/firewalld/services/ # mv ssh.xml rtmp.xml # ls -l rtmp.xml
11. Ensuite, ouvrez et modifiez le fichier comme Titre, La description, Protocoleet Port numéro, que nous devons utiliser pour le RTMP service comme indiqué dans l’image ci-dessous.
12. Pour activer ces modifications, redémarrez le service firewalld ou rechargez les paramètres.
# firewall-cmd --reload
13. Pour confirmer si un service est ajouté ou non, exécutez la commande ci-dessous pour obtenir une liste des services disponibles.
# firewall-cmd --get-services
Étape 5 : Attribuer des services aux zones de pare-feu
14. Ici, nous allons voir comment gérer le pare-feu à l’aide de la commande firewall-cmd. Pour connaître l’état actuel du pare-feu et de toutes les zones actives, tapez la commande suivante.
# firewall-cmd --state # firewall-cmd --get-active-zones
15. Pour obtenir la zone publique de l’interface enp0s3il s’agit de l’interface par défaut, qui est définie dans /etc/firewalld/firewalld.conf fichier en tant que DefaultZone=public.
Pour lister tous les services disponibles dans cette zone d’interface par défaut.
# firewall-cmd --get-service
Étape 6 : Ajouter des services aux zones de pare-feu
16. Dans les exemples ci-dessus, nous avons vu comment créer nos propres services en créant le rtmp service, nous allons voir ici comment ajouter le rtmp également desservir la zone.
# firewall-cmd --add-service=rtmp
17. Pour supprimer la zone ajoutée, tapez.
# firewall-cmd --zone=public --remove-service=rtmp
L’étape ci-dessus n’était qu’une période temporaire. Pour le rendre permanent, nous devons exécuter la commande ci-dessous avec l’option -permanent.
# firewall-cmd --add-service=rtmp --permanent # firewall-cmd --reload
18. Définissez des règles pour la plage de sources réseau et ouvrez l’un des ports. Par exemple, si vous souhaitez ouvrir une plage réseau, dites ‘192.168.0.0/24‘ et port ‘1935‘ utilisez les commandes suivantes.
# firewall-cmd --permanent --add-source=192.168.0.0/24 # firewall-cmd --permanent --add-port=1935/tcp
Assurez-vous de recharger le service firewalld après avoir ajouté ou supprimé des services ou des ports.
# firewall-cmd --reload # firewall-cmd --list-all
Étape 7 : Ajout de règles enrichies de pare-feu pour la plage réseau
19. Si je veux autoriser les services tels que http, https, vnc-server et PostgreSQL, j’utilise les règles suivantes. Tout d’abord, ajoutez la règle et rendez-la permanente, puis rechargez les règles et vérifiez l’état.
# firewall-cmd --add-rich-rule 'rule family="ipv4" source address="192.168.0.0/24" service name="http" accept' # firewall-cmd --add-rich-rule 'rule family="ipv4" source address="192.168.0.0/24" service name="http" accept' --permanent # firewall-cmd --add-rich-rule 'rule family="ipv4" source address="192.168.0.0/24" service name="https" accept' # firewall-cmd --add-rich-rule 'rule family="ipv4" source address="192.168.0.0/24" service name="https" accept' --permanent # firewall-cmd --add-rich-rule 'rule family="ipv4" source address="192.168.0.0/24" service name="vnc-server" accept' # firewall-cmd --add-rich-rule 'rule family="ipv4" source address="192.168.0.0/24" service name="vnc-server" accept' --permanent # firewall-cmd --add-rich-rule 'rule family="ipv4" source address="192.168.0.0/24" service name="postgresql" accept' # firewall-cmd --add-rich-rule 'rule family="ipv4" source address="192.168.0.0/24" service name="postgresql" accept' --permanent
Désormais, la gamme Network 192.168.0.0/24 peut utiliser le service ci-dessus à partir de mon serveur. L’option -permanent peut être utilisé dans chaque règle, mais nous devons définir la règle et vérifier avec l’accès client après quoi nous devons la rendre permanente.
20. Après avoir ajouté les règles ci-dessus, n’oubliez pas de recharger les règles de pare-feu et de répertorier les règles à l’aide :
# firewall-cmd --reload # firewall-cmd --list-all
Pour en savoir plus sur Firewalld.
# man firewalld
Voilà, nous avons vu comment mettre en place un net-filtre utilisant Pare-feu dans les distributions basées sur RHEL telles que Feutre, Rocheux Linux, Flux CentOS, AlmaLinuxet ouvrirSUSE.
Conclusion
Net-filtre est le cadre d’un pare-feu pour chaque distribution Linux. De retour dans chaque RHEL et CentOS édition, nous avons utilisé iptables mais dans les versions plus récentes, ils ont introduit Pare-feu. Il est plus facile de comprendre et d’utiliser firewalld. J’espère que vous avez apprécié la rédaction.