GNU/Linux >> Tutoriels Linux >  >> Cent OS

Comment configurer FirewallD dans RHEL, CentOS et Fedora

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 6 nous utilisons iptables en tant que démon pour le framework de filtrage de paquets. Dans RHEL /CentOS 7/8 et Fedora iptables l'interface est remplacée par firewalld .

Il est recommandé de commencer à utiliser Firewalld au lieu 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 conserver Firewalld et iptables les deux dans le même système, ce qui peut entraîner des conflits.

Dans iptables , nous avions l'habitude de configurer comme CHAÎNES D'ENTRÉE, DE SORTIE ET ​​DE TRANSFERT mais ici dans Firewalld , le concept utilise des 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 à une zone publique et zone privée . 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 à firewalld.

Par défaut, de nombreux services sont disponibles, l'une des meilleures fonctionnalités de firewalld 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 séparée d'exécution et permanente dans firewalld.

Commençons par travailler avec les zones et créer nos propres services et une utilisation bien plus intéressante du pare-feu.

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 :Installer Firewalld dans CentOS

1. Pare-feu Le package est installé par défaut dans RHEL/CentOS 7/8 et Fedora . 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 service iptables avec les commandes ci-dessous.

# systemctl status iptables
# systemctl stop iptables
# systemctl mask iptables

Étape 2 :Discuter des composants du pare-feu

3. Avant de passer à la configuration du pare-feu, j'aimerais 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 est au niveau de l'interface pour obtenir une connexion. Une zone peut contenir des services et des ports.

Ici, nous allons décrire chaque zone disponible dans Firewalld.

  • Zone de dépôt :Tous les paquets entrants sont supprimé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.
  • 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.
  • 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 des options de routeur avec le masquage activé, les autres connexions seront abandonnées et ne seront pas acceptées, seule la connexion spécifiée sera autorisée.
  • 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 fonctionnalité de n'accepter que les connexions entrantes sélectionnées.
  • Zone de travail :dans cette zone, nous ne pouvons définir que 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 chaque zone. 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, 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

Remarque :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 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 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 Firewalld. Les services activés seront automatiquement chargés lorsque le Firewalld 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, rendez-vous dans le répertoire suivant, ici vous obtiendrez la liste des services.

# cd /usr/lib/firewalld/services/

10. 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 en tant que 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 :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 enp0s3 , il 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 service à la zone également.

# 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 :Ajouter des règles enrichies pour la plage de réseau

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, 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 plage réseau 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 en utilisant :

# firewall-cmd --reload
# firewall-cmd --list-all

Pour en savoir plus sur Firewalld.

# man firewalld

Voilà, nous avons vu comment configurer un net-filter en utilisant Firewalld dans RHEL/CentOS et Fedora .

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 Firewalld . Il est plus facile de comprendre et d'utiliser firewalld. J'espère que vous avez apprécié la rédaction.


Cent OS
  1. Comment installer et configurer Fail2Ban sur CentOS 8 et Fedora 33

  2. Comment installer Python 3.5 sur CentOS/RHEL et Fedora

  3. Comment installer, configurer et exécuter WordPress 3.8 sur RHEL/CentOS/Fedora

  4. CentOS / RHEL 7 :Comment installer et configurer telnet

  5. Comment configurer la journalisation du pare-feu dans CentOS/RHEL 8

Comment installer et configurer Checkmk sur CentOS 8 / RHEL 8

Comment installer et configurer Nagios Core sur CentOS 8 / RHEL 8

Comment installer et configurer le serveur VNC dans CentOS 7 / RHEL 7

Comment installer et utiliser Firewalld dans CentOS / RHEL

Comment installer et configurer Jenkins sur CentOS 8 / RHEL 8

Comment installer Wine 5.0 sur CentOS, RHEL et Fedora