Filtre net 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 6 nous utiliserons iptables en tant que démon pour le cadre de filtrage de paquets. Dans RHEL/CentOS 7/8 et Feutre iptables l’interface est remplacée par pare-feu.
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 le commande yum. On ne peut pas garder Pare-feu et iptables les deux dans le même système, ce qui peut conduire à des conflits.
Dans iptables, nous avions l’habitude de configurer comme CHAÎNES D’ENTRÉE, DE SORTIE ET D’AVANCE mais ici en Pare-feu, le concept utilise Zones. Par défaut, il existe différentes zones disponibles dans firewalld, qui seront abordées dans cet article.
La zone de base qui ressemble à zone publique et zone privée. Pour que les choses fonctionnent avec ces zones, nous devons ajouter l’interface avec la prise en charge de la zone spécifiée, puis nous pouvons ajouter les services à firewalld.
Par défaut, de nombreux services sont disponibles, l’une des meilleures fonctionnalités de pare-feu Autrement dit, 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 permanente distincte dans firewalld.
Commençons par la façon de travailler avec des zones et de créer nos propres services et une utilisation beaucoup plus excitante de firewalld.
Notre environnement de test
Operating System : CentOS Linux release 7.0.1406 (Core) IP Address : 192.168.0.55 Host-name : server1.tecmintlocal.com
Étape 1: Installation de Firewalld dans CentOS
1. Pare-feu le package est installé par défaut dans RHEL / CentOS 7/8 et Feutre. Sinon, vous pouvez l’installer en utilisant les éléments suivants commande yum.
# yum install firewalld -y
2. Après le pare-feu a été installé, il est temps de vérifier si le iptables le 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 service iptables avec les commandes ci-dessous.
# systemctl status iptables # systemctl stop iptables # systemctl mask iptables
Étape 2: discussion des composants de Firewalld
3. Avant de passer à la configuration de firewalld, je voudrais discuter de chaque zone. Par défaut, certaines zones sont disponibles. Nous devons attribuer l’interface à la zone. Une zone définit que 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 Firewalld.
- Zone de largage: Tous les paquets entrants sont abandonnés si nous utilisons cette zone de dépôt. C’est la même chose que nous utilisons pour ajouter iptables -j drop. 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.
- Zone de blocage: La zone de blocage refusera que les connexions réseau entrantes soient rejetées avec un icmp-host-interdit. Seules les connexions établies au sein du serveur seront autorisées.
- Zone publique: 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 abandonnées.
- Zone externe: Cette zone agira comme les options du routeur avec le masquage est activé, les autres connexions seront abandonnées et n’accepteront pas, seule la connexion spécifiée sera autorisée.
- Zone DMZ: Si nous devons autoriser l’accès à certains des services au public, vous pouvez le définir dans la zone DMZ. Cela a également la particularité que seules les connexions entrantes sélectionnées sont acceptées.
- Zone de travail: Dans cette zone, nous ne pouvons définir que des 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 afin de ne pas nuire à votre ordinateur comme à chaque zone. Cela permet également uniquement les connexions entrantes sélectionnées.
- Zone interne: Celui-ci est similaire à la zone de travail avec des 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, les zones par défaut et listons toutes les zones à l’aide des commandes suivantes.
Répertorier les zones Firewalld
# firewall-cmd --get-zones
Liste de la zone par défaut de Firewalld
# firewall-cmd --get-default-zone
Lister toutes les zones Firewalld
# firewall-cmd --list-all-zones
Noter: La sortie de la commande ci-dessus ne rentrera pas dans une seule page car elle listera toutes les zones telles que block, dmz, drop, external, home, internal, public, de confiance et de travail. Si les zones ont des règles riches, 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 zone 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 enp0s3, Si nous devons vérifier notre zone dans laquelle l’interface est délimitée, nous pouvons utiliser la commande ci-dessous.
# firewall-cmd --get-zone-of-interface=enp0s3
7. 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 d’icmp pris en charge, nous pouvons utiliser la commande ci-dessous.
# firewall-cmd --get-icmptypes
Étape 4: Création de vos propres services dans Firewalld
8. Les services sont un ensemble de règles avec des ports et des options qui sont utilisés par Firewalld. Les services activés seront automatiquement chargés lorsque le Pare-feu service 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 1935, faites d’abord une copie de l’un des services.
# cd /etc/firewalld/services/ # cp /usr/lib/firewalld/services/ssh.xml /etc/firewalld/services/
Et puis, accédez à l’emplacement où notre fichier de service a été copié, puis renommez le fichier ‘ssh.xml‘ à ‘rtmp.xml‘comme indiqué dans l’image ci-dessous.
# cd /etc/firewalld/services/
11. Ensuite, ouvrez et modifiez le fichier comme En-tête, description, protocole et numéro de port, que nous devons utiliser pour le service RTMP 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 le service est ajouté ou non, exécutez la commande ci-dessous pour obtenir une liste des services disponibles.
# firewall-cmd --get-services
Étape 5: attribution de services aux zones Firewalld
14. Ici, nous allons voir comment gérer le pare-feu en utilisant le 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 pour l’interface enp0s3, c’est l’interface par défaut, qui est définie dans /etc/firewalld/firewalld.conf classer comme DefaultZone = public.
Pour lister tous les services disponibles dans cette zone d’interface par défaut.
# firewall-cmd --get-service
Étape 6: Ajout de services aux zones Firewalld
16. Dans les exemples ci-dessus, nous avons vu comment créer nos propres services en créant le rtmp service, nous verrons ici comment ajouter le rtmp service à la zone aussi.
# firewall-cmd --add-service=rtmp
17. Pour supprimer la zone ajoutée, saisissez.
# 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 riches pour la plage de réseaux
19. Si je veux autoriser les services tels que http, https, vnc-server, PostgreSQL, vous utilisez les règles suivantes. Tout d’abord, ajoutez la règle et rendez-la permanente, rechargez les règles et vérifiez le statut.
# 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 toutes les règles, mais nous devons définir la règle et vérifier avec l’accès client après cela, 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 lister les règles en utilisant:
# firewall-cmd --reload # firewall-cmd --list-all
Pour en savoir plus sur Firewalld.
# man firewalld
Voilà, nous avons vu comment mettre en place un filtre réseau à l’aide de Firewalld dans RHEL / CentOS et Feutre.
Conclusion
Net-filter est le cadre d’un pare-feu pour chaque distribution Linux. De retour dans chaque RHEL et CentOS éditions, 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.
.