GNU/Linux >> Tutoriels Linux >  >> Linux

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 expliquera 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 de 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 vous contentez pas de me croire sur parole. Apprenez-en plus grâce à notre guide complet sur les pare-feux 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 de réseau ou de pare-feu. Les zones de pare-feu définissent les niveaux de confiance de sécurité du 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 de l'interface graphique firewall-config.

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

Avant de parler de technique, apprenons quelques notions de base sur le réseau.

Principes de base 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 au 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 source et un port (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 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 du pare-feu

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 :

# yum install firewalld -y
OU
#dnf install firewalld -y

Debian/Ubuntu

Les systèmes Ubuntu sont livrés avec le pare-feu non compliqué 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 install firewalld

Désactiver le pare-feu simple :

sudo systemctl désactiver ufw

Activer le pare-feu au démarrage :

sudo systemctl enable –now firewalld

Vérifiez que le pare-feu est en cours d'exécution :

sudo firewall-cmd –state
en cours d'exécution

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 de confiance ou de refus pour les services et les ports.

  • Zone de confiance : Toutes les connexions réseau sont acceptées et utilisées uniquement dans des environnements de confiance, comme une maison familiale ou un laboratoire de test.
  • Zone publique : Vous pouvez définir des règles uniquement pour autoriser des ports spécifiques à ouvrir des connexions tandis que d'autres connexions seront abandonnées. Il peut être utilisé dans les espaces publics lorsque vous ne faites pas confiance aux autres hôtes du réseau.
  • Maison, Interne, Zones de travail : La plupart des connexions entrantes sont acceptées dans ces trois zones. Les connexions entrantes excluent le trafic sur les ports qui n'attendent aucune connexion ou activité. Vous pouvez l'appliquer dans les connexions domestiques où il existe une confiance générale des autres utilisateurs sur le réseau. Il n'autorise que les connexions entrantes sélectionnées.
  • Zone bloquée : Il s'agit d'un paramètre de pare-feu extrêmement paranoïaque où seules les connexions initiées depuis le réseau ou le serveur sont possibles. Toutes les connexions entrantes au réseau sont rejetées et un message ICMP-host-interdit est émis.
  • Zone DMZ : La zone démilitarisée peut être utilisée pour permettre l'accès à certains services au public. Seules les connexions sélectionnées sont acceptées. Il s'agit d'une option essentielle pour certains types de serveurs dans le réseau d'une organisation.
  • Zone externe : Lorsqu'elle est activée, cette zone agira comme un routeur et peut être utilisée dans des réseaux externes avec le masquage activé. L'adresse IP de votre réseau privé est mappée et cachée derrière une adresse IP publique. Seules les connexions entrantes sélectionnées sont acceptées, y compris SSH.
  • Zone de dépôt : Tous les paquets entrants sont rejetés sans réponse. Cette zone n'autorise que les connexions réseau sortantes.

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

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


Fedora Workstation
Les paquets réseau entrants non sollicités sont rejetés du port 1 à 1024, sauf pour 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.





Obtenir votre zone actuelle :
Vous pouvez utiliser les – – get-active-zones drapeau 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

Obtenir 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 external home internal libvirt nm-shared public trust work

Liste des services :

Vous pouvez obtenir les services auxquels le pare-feu permet à d'autres systèmes d'accéder à l'aide de   – -list-services drapeau.

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

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

Répertorier les paramètres de port du pare-feu :
Vous pouvez utiliser la commande – -list-ports drapeau 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.

Gérer les zones, les ports et les services

Les configurations de pare-feu peuvent être configurées en mode d'exécution ou permanent. 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 – -new-zone flag.
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 :
success

Rechargez les règles du 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 :
success

Confirmez que votre nouvelle zone "fosscorp" est active :

[tuts@fosslinux ~]$ sudo firewall-cmd --get-zones
FedoraServer FedoraWorkstation block dmz drop external fosscorp home interne libvirt nm-shared public trust work

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

Utilisez l' – -change-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 zone à 'fosscorp'.
réussite

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

Affichez les zones actuellement attribuées à chaque interface à l'aide de – -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.

Lister les 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) à travers votre pare-feu en utilisant le – -add-service drapeau.

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

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

[tuts@fosslinux ~]$ sudo firewall-cmd --remove-service https --permanent
success
[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 l'indicateur –add-port. L'ajout direct d'un numéro de port peut s'avérer utile lorsqu'un service prédéfini n'existe pas.

Exemple :
Vous pouvez ajouter le port 1717 non standard pour SSH vers 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 :
success
[tuts@fosslinux ~ ]$ sudo firewall-cmd –reload

Supprimez le port à l'aide de l'option d'indicateur –remove-port :

[tuts@fosslinux ~]$ sudo firewall-cmd --remove-port 1717/tcp --permanent
success
[tuts@fosslinux ~]$ sudo firewall-cmd –reload

Vous pouvez également spécifier une zone pour ajouter ou supprimer un port en ajoutant le drapeau –zone dans la commande :
Ajouter le port 1718 pour la connexion TCP à la zone FedoraWorstation :

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

Confirmez si les modifications ont pris effet :

[tuts@fosslinux ~]$ sudo firewall-cmd --list-all
FedoraWorkstation (active)
cible :par défaut
icmp-block-inversion :no
interfaces :wlp3s0
sources :
services :dhcpv6-client mdns samba-client ssh
ports :1025-65535/udp 1025-65535/tcp 1718/tcp
protocoles :
masquerade :non
forward-ports :
source-ports :
icmp-blocks :
rich rules :

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

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

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

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

Récapitulatif

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 sur votre machine virtuelle (VM) préférée ou dans des Box pour expérimenter toutes les fonctions de pare-feu-cmd disponibles. Vous pouvez en savoir plus sur les fonctions de firewall-cmd à partir de la page d'accueil officielle de Firewalld.


Linux
  1. Utilisation de la commande systemctl pour gérer les unités systemd

  2. Utilisation de Stratis pour gérer le stockage Linux à partir de la ligne de commande

  3. Utilisation de plusieurs modèles à la fois avec la commande Sed

  4. Utiliser Word Wrap avec Mc ?

  5. Utiliser –exclude avec la commande Du ?

Utilisation de la commande GREP sous Linux avec des exemples

Gérer les machines virtuelles KVM avec le programme Virsh

Surveiller la connexion du socket réseau à l'aide de la commande 10 'ss'

Utiliser Xdg-open pour accéder au réseau avec l'explorateur normal ?

Planifier des travaux sous Linux avec la commande 'at'

Utilisation de la commande tr sous Linux pour jouer avec des personnages