Apprendre Linux

Gérer la sécurité du réseau avec Firewalld à l'aide de lignes de commande

Gérer la sécurité du réseau avec Firewalld à l'aide de lignes de commande

Le maintien de la sécurité du réseau est essentiel pour les administrateurs système et la configuration du pare-feu via la ligne de commande est une compétence essentielle à apprendre. L'article mettra en évidence comment gérer le pare-feu avec firewall-cmd dans la ligne de commande Linux.

Un pare-feu est essentiellement un logiciel que vous pouvez configurer pour contrôler le trafic réseau entrant et sortant. Les pare-feu peuvent empêcher d'autres utilisateurs d'utiliser les services réseau sur un système que vous exécutez. La plupart des systèmes Linux sont livrés avec un pare-feu par défaut. Les versions antérieures des systèmes Linux utilisaient iptables comme démon pour le filtrage des paquets. Les nouvelles versions de Fedora, RHEL/CentOS, openSUSE sont livrées avec Firewalld comme démon de pare-feu par défaut. Vous pouvez également installer Firewalld dans les distributions Debian et Ubuntu.


Je vous recommande d'utiliser Firewalld au lieu d'iptables. Ne me croyez pas sur parole. Apprenez-en plus dans notre guide complet sur les pare-feu open source disponibles pour votre système Linux.

Firewalld est un démon dynamique pour gérer les pare-feu avec prise en charge des zones réseau ou pare-feu. Les zones de pare-feu définissent les niveaux de confiance de sécurité réseau des interfaces réseau, des services ou des connexions. Les administrateurs du système de sécurité réseau ont trouvé que Firewalld fonctionnait parfaitement avec IPv4, IPv6, les ensembles IP et les ponts Ethernet. Pour gérer Firewalld, vous pouvez utiliser la commande de terminal firewall-cmd ou l'outil de configuration GUI firewall-config.

Ce guide utilisera les pare-feu-cmd commande pour gérer la sécurité du réseau, et notre environnement de test sera Fedora Workstation 33.

Avant d'aborder toutes les questions techniques, apprenons quelques notions de base sur le réseau.

Bases du réseau

Un ordinateur connecté à un réseau se voit attribuer une adresse IP qui est utilisée pour le routage des données. Les ordinateurs ont également des ports dans la plage 0-65535, qui agissent comme des points de connexion à l'adresse IP. Les applications peuvent réserver des ports spécifiques. Les serveurs Web réservent généralement le port 80 pour les communications HTTP sécurisées. Essentiellement, les plages de ports 0 - 1024 sont réservées à des fins bien connues et le système.

Les deux principaux protocoles de transfert de données Internet (TCP et UDP) utilisent ces ports lors de la communication réseau. Un ordinateur hôte établit une connexion entre une adresse IP et un port source (port 80 pour HTTP non sécurisé) et l'adresse et le port de destination.

Pour gérer la sécurité du réseau, un logiciel de pare-feu peut autoriser ou bloquer le transfert de données ou la communication en fonction de règles telles que les ports ou les adresses IP.

Installation de Firewalld

Fedora, RHEL/CentOS 7/8, openSUSE

Firewalld est installé par défaut dans Fedora, RHEL/CentOS 7/8 et openSUSE. Sinon, vous pouvez l'installer à l'aide de la commande suivante :

# miam install firewalld -y
OU ALORS
#dnf install firewalld -y

Debian/Ubuntu

Les systèmes Ubuntu sont livrés avec le pare-feu simple par défaut. Pour utiliser firewalld, vous devez activer le référentiel d'univers et désactiver le pare-feu simple.

univers sudo add-apt-repository
sudo apt installer firewalld

Désactiver le pare-feu simple :

sudo systemctl désactiver ufw

Activez firewalld au démarrage :

sudo systemctl enable -now firewalld

Vérifiez que Firewalld est en cours d'exécution :

sudo firewall-cmd -state
fonctionnement

Zones de pare-feu

Firewalld simplifie la configuration de votre pare-feu en établissant des zones par défaut. Les zones sont un ensemble de règles qui répondent aux besoins quotidiens de la plupart des administrateurs Linux. Une zone de pare-feu peut définir des niveaux approuvés ou refusés pour les services et les ports.

Exemple de zones par défaut définies par le poste Fedora 33

cat /usr/lib/firewalld/zones/FedoraWorkstation.xml


Poste de travail Fedora
Les paquets réseau entrants non sollicités sont rejetés du port 1 à 1024, à l'exception de certains services réseau. [firewall ] Les paquets entrants liés aux connexions réseau sortantes sont acceptés. Les connexions réseau sortantes sont autorisées.





Obtenez votre zone actuelle :
Vous pouvez utiliser le - - get-active-zones flag pour vérifier les zones actuellement actives dans votre système.

sudo firewall-cmd --get-active-zones
[sudo] mot de passe pour tuts :
FedoraWorkstation
interfaces : wlp3s0
libvirt
interfaces : virbr0

La zone par défaut sur Fedora Workstation 33 dans la zone FedoraWorkstation

Obtenez la zone par défaut et toutes les zones définies :

sudo firewall-cmd --get-default-zone
[sudo] mot de passe pour tuts :
FedoraWorkstation
[tuts@fosslinux ~]$ sudo firewall-cmd --get-zones
FedoraServer Fedora Workstation block dmz drop externe home interne libvirt nm-shared public trusted work

Liste des services :

Vous pouvez obtenir les services auxquels le pare-feu permet à d'autres systèmes d'accéder en utilisant le  - -liste-services drapeau.

[tuts@fosslinux ~]$ sudo firewall-cmd --list-services
dhcpv6-client mdns samba-client ssh

Sur Fedora Linux 33, le pare-feu permet d'accéder à quatre services (dhcpv6-client mdns samba-client ssh) avec des numéros de port bien connus.

Répertoriez les paramètres du port du pare-feu :
Vous pouvez utiliser le - -liste-ports indicateur pour voir les autres paramètres de port dans n'importe quelle zone.

tuts@fosslinux ~]$ sudo firewall-cmd --list-ports --zone=FedoraWorkstation
[sudo] mot de passe pour tuts :
1025-65535/udp 1025-65535/tcp

Nous avons spécifié la zone à vérifier en utilisant l'option - -zone=FedoraWorkstaion.

Gestion des zones, des ports et des services

Les configurations de pare-feu peuvent être configurées en tant qu'exécution ou permanente. Toutes les actions firewall-cmd ne persistent que jusqu'au redémarrage de l'ordinateur ou du pare-feu. Vous devez créer des paramètres permanents avec l'indicateur -permanent.

Créer une zone

Pour créer une zone, vous devez utiliser le - -nouvelle-zone drapeau.
Exemple:
Créez une nouvelle zone permanente appelée fosscorp :

[tuts@fosslinux ~]$ sudo firewall-cmd --new-zone fosscorp --permanent
[sudo] mot de passe pour tuts :
Succès

Rechargez les règles de pare-feu pour activer la nouvelle zone :

[tuts@fosslinux ~]$ sudo firewall-cmd --reload

Ajoutez le service ssh à la zone fosscorp pour pouvoir y accéder à distance :

[tuts@fosslinux ~]$ sudo firewall-cmd --zone fosscorp --add-service ssh --permanent
[sudo] mot de passe pour tuts :
Succès

Confirmez que votre nouvelle zone 'fosscorp' est active :

[tuts@fosslinux ~]$ sudo firewall-cmd --get-zones
FedoraServer FedoraWorkstation bloc dmz drop externe fosscorp accueil interne libvirt nm-shared public trusted work

Votre nouvelle zone fosscorp est maintenant active et rejette toutes les connexions entrantes à l'exception du trafic SSH.

Utilisez le - -changer-interface flag pour faire de la zone fosscorp la zone active et par défaut pour une interface réseau (wlp3s0) que vous souhaitez protéger :

[tuts@fosslinux ~]$ sudo firewall-cmd --change-interface wlp3s0 \
> --zone fosscorp --permanent
L'interface est sous le contrôle [ pare-feu ] de NetworkManager, en définissant la zone sur 'fosscorp'.
Succès

Si vous souhaitez définir fosscorp comme zone par défaut et principale, exécutez la commande suivante :

[tuts@fosslinux ~]$ sudo firewall-cmd --set-default fosscorp
Succès

Visualisez les zones actuellement affectées à chaque interface à l'aide de la - -get-active-zones drapeau:

[tuts@fosslinux ~]$ sudo firewall-cmd --get-active-zones
fosscorp
interfaces : wlp3s0

Ajouter et supprimer des services :

Un moyen rapide d'autoriser le trafic à travers votre pare-feu consiste à ajouter un service prédéfini.

Liste des services prédéfinis disponibles :

tuts@fosslinux ~]$ sudo firewall-cmd --get-services
[sudo] mot de passe pour tuts :
RH-Satellite-6 amanda-client amanda-k5-client amqp amqps apcupsd audit bacula bacula-client bb bgp bitcoin bitcoin-rpc
bitcoin-testnet bitcoin-testnet-rpc bittorrent-lsd ceph ceph-mon cfengine cockpit condor-collector ctdb dhcp dhcpv6 dhcpv6-client
[…]

Débloquer un service prédéfini

Vous pouvez autoriser le trafic HTTPS (ou tout autre service prédéfini) via votre pare-feu en utilisant le - -ajouter-service drapeau.

[tuts@fosslinux ~]$ sudo firewall-cmd --add-service https --permanent
Succès
[tuts@fosslinux ~]$ sudo firewall-cmd --reload

Vous pouvez également supprimer le service avec le - -supprimer-service drapeau:

[tuts@fosslinux ~]$ sudo firewall-cmd --remove-service https --permanent
Succès
[tuts@fosslinux ~]$ sudo firewall-cmd --reload

Ajouter et supprimer des ports

Vous pouvez également ajouter un numéro de port et un prototype directement avec le drapeau -add-port. L'ajout d'un numéro de port directement peut s'avérer utile lorsqu'un service prédéfini n'existe pas.

Exemple:
Vous pouvez ajouter le non standard port 1717 pour SSH à votre zone personnalisée à l'aide de la commande suivante :

[tuts@fosslinux ~]$ sudo firewall-cmd --add-port 1717/tcp --permanent
[sudo] mot de passe pour tuts :
Succès
[tuts@fosslinux ~]$ sudo firewall-cmd -reload

Supprimez le port à l'aide de l'option -remove-port flag :

[tuts@fosslinux ~]$ sudo firewall-cmd --remove-port 1717/tcp --permanent
Succès
[tuts@fosslinux ~]$ sudo firewall-cmd -reload

Vous pouvez également spécifier une zone pour ajouter ou supprimer un port en ajoutant l'indicateur -zone dans la commande :
Ajoutez le port 1718 pour la connexion TCP à la zone FedoraWorstation :

[tuts@fosslinux ~]$ sudo firewall-cmd --zone=FedoraWorkstation --permanent --add-port=1718/tcp
Succès
[tuts@fosslinux ~]$ sudo firewall-cmd --reload
Succès

Confirmez si les modifications ont pris effet :

[tuts@fosslinux ~]$ sudo firewall-cmd --list-all
FedoraWorkstation (actif)
cible : par défaut
icmp-block-inversion : non
interfaces : wlp3s0
sources:
services : dhcpv6-client mdns samba-client ssh
ports : 1025-65535/udp 1025-65535/tcp 1718/tcp
protocoles :
mascarade : non
ports avant :
ports-source :
blocs icmp :
règles riches :

Remarque : sous les ports, nous avons ajouté numéro de port 1718 pour autoriser le trafic TCP.

Vous pouvez supprimer port 1718/tcp en exécutant la commande suivante :

[tuts@fosslinux ~]$ sudo firewall-cmd --zone=FedoraWorkstation --permanent --remove-port=1718/tcp
Succès
[tuts@fosslinux ~]$ sudo firewall-cmd --reload
Succès

Remarque : Si vous souhaitez rendre vos modifications permanentes, vous devez ajouter le - -permanent drapeau à vos commandes.

résumer

Firewalld est un excellent utilitaire pour gérer la sécurité de votre réseau. La meilleure façon d'augmenter vos compétences d'administrateur système est d'acquérir une expérience pratique. Je recommande fortement d'installer Fedora dans votre machine virtuelle (VM) préférée ou dans Boxes pour expérimenter toutes les fonctions firewall-cmd disponibles. Vous pouvez en savoir plus sur les fonctions de firewall-cmd sur la page d'accueil officielle de Firewalld.

Le bouton de clic gauche de la souris ne fonctionne pas sous Windows 10
Si vous utilisez une souris dédiée avec votre ordinateur portable ou de bureau mais que le le clic gauche de la souris ne fonctionne pas sur Windows 1...
Le curseur saute ou se déplace de manière aléatoire lors de la saisie dans Windows 10
Si vous constatez que le curseur de votre souris saute ou se déplace tout seul, automatiquement, au hasard lors de la saisie sur un ordinateur portabl...
Comment inverser le sens de défilement de la souris et des pavés tactiles dans Windows 10
Souris et Pavé tactiles rendent non seulement l'informatique facile, mais plus efficace et moins chronophage. Nous ne pouvons pas imaginer une vie san...