Comment installer, configurer et utiliser Firewalld dans Centos et Ubuntu

Comment installer, configurer et utiliser Firewalld dans Centos et Ubuntu

Firewalld (démon de pare-feu) est une alternative à la iptables Service, pour gérer dynamiquement un pare-feu d'un système avec la prise en charge des zones de réseau (ou pare-feu) et fournit une interface D-BUS pour gérer les configurations. Il est facile à utiliser et à configurer, et c'est maintenant l'outil de gestion du pare-feu par défaut sur Rhel / centos, Feutre et plusieurs autres distributions Linux.

Dans cet article, nous discuterons de la façon de configurer le pare-feu système avec pare-feu et implémenter le filtrage de paquets de base dans Centos / Rhel 7 et Ubuntu.

Les bases sur le pare-feu

Pare-feu comprend trois couches, qui sont: le::

  • couche de base: responsable de la gestion de la configuration et des fins arrière (énumérées ci-dessous).
  • Interface D-Bus: le principal moyen de modifier et de créer la configuration du pare-feu.
  • backends: pour interagir avec NetFilter (le module du noyau natif utilisé pour le pare-feu). Ils incluent les iptables, ip6tables, ebtables, ipset, nft, linnftables; gestionnaire de réseau; et modules.

Il gère les règles du pare-feu en mettant en œuvre des zones de réseau / pare-feu qui définissent le niveau de confiance des connexions ou des interfaces réseau. Les autres fonctionnalités du pare-feu privilégiées incluent les services, la configuration directe (utilisée pour passer directement la syntaxe iptables brutes), les IPSET ainsi que les types ICMP.

Deux types d'environnements de configuration sont pris en charge par Firewalld:

  • Configuration de l'exécution qui n'est efficace que jusqu'à ce que la machine ait été redémarrée ou que le service Firewalld ait été redémarré
  • Configuration permanente qui est enregistrée et fonctionne de manière persistante.

L'outil de ligne de commande de pare-feu-CMD est utilisé pour gérer la configuration d'exécution et permanente. Alternativement, vous pouvez utiliser l'outil de configuration de l'interface utilisateur graphique (GUI) du pare-feu pour interagir avec le démon.

En outre, pare-feu Offre une interface bien définie pour d'autres services ou applications locaux pour demander directement des modifications aux règles du pare-feu, s'ils fonctionnent avec des privilèges racine.

Le fichier de configuration global de Firewalld est situé à / etc / Firewalld / Firewalld.confli et les fonctionnalités du pare-feu sont configurées au format XML.

Comprendre les fonctionnalités importantes de tout le monde

La caractéristique centrale de Firewalld est les zones de réseau / pare-feu. Toutes les autres fonctionnalités sont délimitées dans une zone. Une zone de pare-feu décrit le niveau de confiance d'une connexion, d'une connexion ou d'une liaison d'adresse source.

La configuration par défaut est livrée avec un certain nombre de zones prédéfinies triées en fonction du niveau de confiance par défaut des zones de non-confiance à la confiance: Drop, Block, Public, externe, DMZ, travail, maison, interne et fiable. Ils sont définis dans des fichiers stockés sous le / usr / lib / feux de feu / zones annuaire.

Vous pouvez configurer ou ajouter vos zones personnalisées à l'aide du client CLI ou simplement créer ou copier un fichier de zone dans / etc / Firewalld / Zones à partir des fichiers existants et modifiez-le.

Un autre concept important dans le monde du feu est les services. Un service est défini à l'aide de ports et de protocoles; Ces définitions représentent un service réseau donné tel qu'un serveur Web ou un service d'accès à distance. Les services sont définis dans des fichiers stockés sous le / usr / lib / foyeralld / services / ou / etc / Firewalld / Services / annuaire.

Si vous connaissez les concepts de base iptables / ip6tables / ebtables, vous pouvez également utiliser l'interface (ou la configuration) directe pour accéder directement au pare-feu. Mais, pour ceux qui n'ont aucune connaissance iptable, vous pouvez utiliser la langue riche pour créer des règles de pare-feu plus complexes pour IPv4 et IPv6.

Comment installer le package Firewalld dans Linux

Sur Centos 7, le pare-feu Le package est préinstallé et vous pouvez vérifier en utilisant la commande suivante.

$ RPM -QA Firewalld 

Sur Ubuntu 16.04 et 18.04, vous pouvez l'installer en utilisant le gestionnaire de package par défaut comme indiqué.

$ sudo apt installer le pare-feu 

Comment gérer le service dealld à Linux

Pare-feu est un service systemd régulier qui peut être géré via la commande SystemCTL.

 $ sudo systemctl start Firewalld #Start le service pour le temps moyen $ sudo systemctl activer le feu de feu #Enable le service à démarrer automatique 

Après avoir commencé pare-feu Service, vous pouvez également vérifier si le démon fonctionne ou non, en utilisant le pare-feu-CMD Outil (au cas où il n'est pas actif, cette commande sortira «pas en cours d'exécution»).

$ sudo Firewall-CMD - State 
Vérifiez le statut de Firewalld

S'il vous arrive d'enregistrer des modifications en permanence, vous pouvez recharger Firewalld. Cela rechargera les règles du pare-feu et conservera les informations de l'État. La configuration permanente actuelle deviendra une nouvelle configuration d'exécution.

$ sudo Firewall-CMD - Reload 

Comment travailler avec des zones de pare-feu dans le pare-feu

Pour obtenir une liste de toutes les zones et services de pare-feu disponibles, exécutez ces commandes.

$ sudo Firewall-CMD - Oget-Zones $ sudo Firewall-CMD --get-Services 

La zone par défaut est la zone qui est utilisée pour chaque fonctionnalité de pare-feu qui n'est pas explicitement liée à une autre zone. Vous pouvez obtenir la zone par défaut définie pour les connexions réseau et les interfaces en exécutant.

$ sudo Firewall-CMD --get-default-zone 
Liste de la zone de pare-feu par défaut

Pour définir la zone par défaut, par exemple sur externe, utilisez la commande suivante. Notez que l'ajout de l'option --permanent Définit la configuration en permanence (ou permet la requête des informations de l'environnement de configuration permanente).

$ sudo Firewall-Cmd --set-default-zone = externe ou $ sudo Firewall-Cmd --set-default-zone = external --permanent $ sudo foyer-Cmd --reload 

Ensuite, regardons comment ajouter une interface à une zone. Cet exemple montre comment ajouter votre adaptateur réseau sans fil (WLP1S0) à Zone Home, qui est utilisée dans les zones d'origine.

$ sudo Firewall-Cmd --zone = home --add-interface = wlp1s0 
Ajouter une interface à Firewalld Zone

Une interface ne peut être ajoutée qu'à une seule zone. Pour le déplacer dans une autre zone, utilisez le --interface de changement Communiquez comme indiqué, ou retirez-le de la zone précédente à l'aide du -retirer l'interface Communiquez, puis ajoutez-le à la nouvelle zone.

En supposant que vous souhaitez vous connecter à un réseau Wi-Fi public, vous devez remettre votre interface sans fil dans la zone publique, comme ceci:

$ sudo Firewall-Cmd --zone = public --Add-Interface = WLP1S0 $ sudo Firewall-Cmd --zone = public --change-interface = WLP1S0 
Interface de zone de changement dans le pare-feu

Vous pouvez utiliser de nombreuses zones en même temps. Pour obtenir une liste de toutes les zones actives avec les fonctionnalités activées telles que les interfaces, les services, les ports, les protocoles, l'exécution:

$ sudo Firewall-CMD --get-active-zones 
Liste des zones actives dans Firewalld

En ce qui concerne le point précédent, si vous souhaitez trouver plus d'informations sur une zone particulière, je.E Tout a ajouté ou activé, utilisez l'une de ces commandes:

$ sudo Firewall-Cmd --zone = Home --List-all ou $ sudo Firewall-Cmd - Info-Zone public 
Trouver des informations sur la zone du pare-feu

Une autre option utile est --cible, qui vous montre la cible d'une zone permanente. Une cible est l'une des suivantes: par défaut, accepter, dépasser, rejeter. Vous pouvez vérifier la cible de différentes zones:

$ sudo Firewall-Cmd --permanent --zone = public --get-target $ sudo Firewall-cmd --permanent --zone = block --get-target $ sudo firewall-cmd --permanent --zone = dmz - -get-Target $ sudo Firewall-Cmd --permanent --zone = external --get-target $ sudo Firewall-cmd --permanent --zone = drop --get-target 

Comment ouvrir et bloquer les ports dans le pare-feu

Pour ouvrir un port (ou une combinaison de port / protocole) dans le pare-feu, ajoutez-le simplement dans une zone avec le --port complément option. Si vous ne spécifiez pas explicitement la zone, elle sera activée dans la zone par défaut.

L'exemple suivant montre comment ajouter le port 80 et 443 pour permettre le trafic Web lié via le Http et Https Protocoles, respectivement:

$ sudo Firewall-cmd --zone = public --permanent --add-port = 80 / tcp --add-port = 443 / tcp 

Ensuite, rechargez-vous et vérifiez les fonctionnalités activées dans la zone publique une fois de plus, vous devriez pouvoir voir les ports simplement ajoutés.

$ sudo Firewall-CMD - Reload $ sudo Firewall-CMD - Info-Zone Public 

Le blocage ou la fermeture d'un port dans le pare-feu est tout aussi facile, le retirer simplement d'une zone avec le --Retirer le port option. Par exemple, pour fermer les ports 80 et 443 dans la zone publique.

$ sudo Firewall-Cmd --zone = public --permanent --remove-port = 80 / tcp --remove-port = 443 / tcp 

Au lieu d'utiliser une combinaison de port ou port / protocole, vous pouvez utiliser le nom du service auquel un port est affecté comme expliqué dans la section suivante.

Comment ouvrir et bloquer les services dans le pare-feu

Pour ouvrir un service dans le pare-feu, permettez-le --addition option. Si la zone est omise, la zone par défaut sera utilisée.

La commande suivante permettra en permanence le service HTTP dans la zone publique.

$ sudo Firewall-cmd --zone = public --permanent --add-service = http $ sudo firewall-cmd --reload 

Le --enlever le service L'option peut être utilisée pour désactiver un service.

$ sudo Firewall-cmd --zone = public --permanent --remove-service = http $ sudo foyer-Cmd - Reload 

Comment activer et désactiver la mise en place de l'IP à l'aide de pare-feu

IP Masquerading (aussi connu sous le nom Ipmasq ou Masq) est un Nat (Traduction d'adresse réseau) Mécanisme dans Linux Networking qui permet à vos hôtes dans un réseau, avec des adresses IP privées pour communiquer avec Internet à l'aide de l'adresse IP publique de votre serveur Linux (IPMASQ Gateway).

C'est une cartographie un-à-plusieurs. Le trafic de vos hôtes invisibles apparaîtra vers d'autres ordinateurs sur Internet comme s'il provenait de votre serveur Linux.

Vous pouvez activer la mise en place IP dans une zone souhaitée, par exemple la zone publique. Mais avant de le faire, vérifiez d'abord si le masquage est actif ou non (un "Non" signifie que c'est handicapé et un "Oui" signifie autrement).

$ sudo Firewall-Cmd --zone = public --Query-masquerade $ sudo Firewall-Cmd --zone = public --add-masquerade 

Un cas d'utilisation typique pour la mascarading consiste à effectuer un transfert de port. En supposant que vous souhaitez SSH d'une machine distante à un hôte de votre réseau interne avec l'IP dix.20.1.3, sur lequel le démon sshd écoute sur le port 5000.

Vous pouvez transmettre toutes les connexions au port 22 sur votre serveur Linux vers le port prévu sur votre hôte cible en émettant:

$ sudo Firewall-cmd --zone = public --add-forward-port = port = 22 = proto = tcp: toport = 5000: toaddr = 10.20.1.3 

Pour désactiver la mascarade dans une zone, utilisez le --enlever la masquerade changer.

$ sudo Firewall-CMD --zone = public - Remove-Masquerade 

Comment activer et désactiver le message IMCP dans Firewalld

ICMP (Protocole de message de contrôle Internet) Les messages sont soit des demandes d'informations, soit des réponses aux demandes d'informations ou dans des conditions d'erreur.

Vous pouvez activer ou désactiver les messages ICMP dans le pare-feu, mais avant cette première liste, tous les types ICMP pris en charge.

$ sudo Firewall-CMD --get-ICMPTYPES 
Liste des types ICMP pris en charge dans Firewalld

Pour ajouter ou supprimer un type de bloc que vous souhaitez.

$ sudo Firewall-cmd --zone = home --add-icmp-block = echo-reply ou $ sudo firewall-cmd --zone = home --remove-icmp-block = echo reply 

Vous pouvez afficher tous les types ICMP ajoutés dans une zone en utilisant le --list-ICMP-blocs changer.

$ sudo Firewall-Cmd --zone = Home --List-ICMP-blocs 

Comment utiliser l'interface directe pour passer les commandes iptables brutes

Le pare-feu-CMD offre également des options directes (--direct) pour que vous ayez un accès plus direct au pare-feu. Ceci est utile pour ceux qui ont des connaissances de base des iptables.

Important: Vous ne devez utiliser les options directes que comme dernier recours lorsqu'il n'est pas possible d'utiliser le régulier pare-feu-CMD Options expliquées ci-dessus.

Voici un exemple de la façon de passer la règle des iptables bruts, en utilisant le --complexe changer. Vous pouvez facilement supprimer ces règles en remplaçant --complacer avec --enlever la règle:

$ sudo Firewall-Cmd --direct --Add-Rule IPv4 Filter in_public_Allow 0 -M TCP -P TCP --DPORT 80 -J Accepter 

Pour plus d'informations sur iptables, Voir ce guide: comment configurer un pare-feu iptables pour permettre l'accès à distance aux services à Linux.

Si vous n'êtes pas familier avec la syntaxe iptables, vous pouvez opter pour le Firewalld "langue riche”Pour créer des règles de pare-feu plus complexes d'une manière facile à comprendre comme expliqué ensuite.

Comment utiliser la langue riche en pare-feu

Le langue riche (aussi connu sous le nom règles riches) est utilisé pour ajouter des règles de pare-feu plus complexes pour Ipv4 et Ipv6 Sans connaissance de la syntaxe iptables.

Il étend les fonctionnalités de zone (service, port, bloc ICMP, mascarade et port avant) que nous avons couverts. Il prend en charge les adresses source et de destination, l'exploitation forestière, les actions et les limites pour les journaux et les actions.

Le --Add-Rich-Rule est utilisé pour ajouter des règles riches. Cet exemple montre comment permettre de nouveaux Ipv4 et Ipv6 Connexions pour le service http et journal 1 par minute à l'aide de l'audit:

$ sudo Firewall-Cmd --Add-Rich-Rule = 'Rule Service Name = "HTTP" Audit Limit Value = "1 / M" Accept' 

Pour supprimer la règle ajoutée, remplacez le --Add-Rich-Rule option avec --Retirer la richesse riche en richesse.

$ sudo Firewall-Cmd --Remove-Rich-Rule = 'Rule Service Name = "HTTP" Audit Limit Value = "1 / M" Accept' 

Cette fonctionnalité permet également de bloquer ou d'autoriser le trafic à partir d'une adresse IP spécifique. L'exemple suivant montre comment rejeter les connexions de l'IP dix.20.1.20.

$ sudo Firewall-cmd --zone = public --add-rich-rule = 'Rule Family = "ipv4" Source Address = "192.168.0.254 "rejeter" 

Comment activer et désactiver le mode panique dans le pare-feu

Mode panique est un mode spécial sous le ballon de feu où tous les paquets liés et les plus sortis sont supprimés, et les connexions actives expireront une fois activé.
Vous pouvez activer ce mode dans des situations d'urgence où une menace pour votre environnement réseau sort.

Pour interroger le mode panique, utilisez le --requête panique option.

$ sudo Firewall-CMD --Query-panic 

Pour activer le mode panique, utilisez le --panique option. Vous pouvez tester si cela fonctionne en utilisant la commande ping comme indiqué. Parce que le paquet est abandonné, le nom www.Google.com ne peut pas être résolu, d'où l'erreur affichée.

$ sudo Firewall-CMD - Panic-on $ Ping -C 2 www.Google.com 
Activer le mode panique dans le pare-feu

Pour désactiver le mode panique, utilisez le --panique option.

$ sudo Firewall-CMD - panic-off 

Comment verrouiller le pare-feu

N'oubliez pas que nous avons mentionné sous les bases sur le pare-feu que les applications ou services locaux sont en mesure de modifier la configuration du pare-feu s'ils fonctionnent avec des privilèges racines. Vous pouvez contrôler les applications en mesure de demander des modifications du pare-feu, en spécifiant alors dans une liste blanche de verrouillage.

Cette fonction est désactivée par défaut, vous pouvez l'activer ou le désactiver avec le --verrouillage ou --confinement changer de récepteur.

$ sudo Firewall-CMD - Lockdown-on ou $ sudo Firewall-CMD - Lockdown-Off 

Notez qu'il est recommandé d'activer ou de désactiver cette fonctionnalité en modifiant le fichier de configuration principal, car le pare-feu peut ne pas exister sur la liste blanche de verrouillage lorsque vous activez le verrouillage.

$ sudo vim / etc / Firewalld / Firewalld.confli 

Trouvez le paramètre Confinement et changer sa valeur par rapport Non (signifie éteint) pour Oui (signifie sur).

Lockdown = Oui 

Pour faire ce paramètre de rechargement permanent.

$ sudo Firewall-CMD - Reload 
Résumé

Pare-feu est un remplacement facile à utiliser pour le service iptables, qui utilise les iptables comme backend. Dans cet article, nous avons montré comment installer le package Firewalld, expliqué les fonctionnalités importantes de Firewalld et discuté de la façon de les configurer dans les environnements de configuration d'exécution et de configuration permanente.

Si vous avez des questions ou des commentaires, n'hésitez pas à nous joindre via le formulaire de commentaire ci-dessous. Vous pouvez vous référer à la page du manuel Firewalld (homme Firewalld) ou à la documentation Firewalld sur le site Web du projet, pour plus d'informations.