GNU/Linux >> Tutoriels Linux >  >> Linux

Qu'est-ce que FirewallD et comment l'implémenter sous Linux

Qu'est-ce que le pare-feu ?

Firewalld est une solution de gestion de pare-feu pour de nombreuses distributions Linux, notamment Ubuntu, Debian, CentOS, RHEL et Fedora. Il agit comme une interface pour le système de filtrage iptables fourni par le noyau Linux. Il est indépendant du protocole, ce qui signifie qu'il prend en charge IPv4, IPv6, les ponts Ethernet et les ensembles IP.

Concept de base du pare-feu

FirewallD utilise des zones et des services au lieu de la chaîne et des règles iptables. Les zones sont un ensemble de règles qui spécifient quel trafic doit être autorisé en fonction du niveau de confiance que vous avez dans un réseau auquel vos ordinateurs sont connectés. Les interfaces réseau ont attribué une zone pour dicter un comportement que le pare-feu doit autoriser.

Le firewalld est géré à l'aide de l'outil de ligne de commande firewall-cmd. Il fournit une interface pour gérer l'exécution et la configuration permanente.

Zones de pare-feu

Il existe 9 zones prédéfinies dans le Firewalld en fonction du niveau de confiance par ordre croissant.
Une brève explication de chaque zone est expliquée ci-dessous :

  • Déposer : Cette zone a le niveau de confiance le plus bas et est utilisée pour supprimer tout le trafic entrant sans envoyer d'accusé de réception à l'expéditeur.
  • Bloquer : Cette zone est très similaire à la Drop zone, le trafic entrant est rejeté et l'expéditeur reçoit un message.
  • Public : Autorise le trafic depuis certains réseaux publics.
  • Externe : Cette zone est utilisée lorsque votre système agit comme une passerelle ou un routeur.
  • Interne : Ensemble de règles qui s'appliquent aux ordinateurs de votre réseau interne privé.
  • DMZ : Cette zone est un patch isolé d'ordinateurs de votre réseau interne qui ne peut pas accéder à d'autres ressources internes.
  • Travail : Cette zone est utilisée pour les machines de travail. Le niveau de confiance est élevé.
  • Accueil : La plupart des ordinateurs de cette zone se font confiance. Le niveau de confiance est supérieur au travail.
  • Fiable : Cette zone a le niveau de confiance le plus élevé. Tous les ordinateurs du réseau sont approuvés.

Étape 1 - Installation du pare-feu

Par défaut, Firewalld est préinstallé sur la plupart des systèmes d'exploitation. Mais une partie de l'installation minimale du système d'exploitation n'inclut pas fiSi elle n'est pas installée, vous pouvez l'installer avec la commande suivante :

sudo yum install firewalld        # CentOS/RHEL 8/7/6 
sudo dnf install firewalld        # Fedora and CentOS/RHEL 8 
sudo apt install firewalld        # Ubuntu and Debian  

Après avoir installé firewalld, vous devrez le démarrer et l'activer après le redémarrage du système.

sudo systemctl start firewalld
sudo systemctl enable firewalld

Exécutez la commande suivante pour vérifier l'état de firewalld

systemctl status firewalld
[OR] 
firewall-cmd --state

Étape 2 :Travailler avec les zones et les services

Par défaut, public est la zone par défaut dans firewalld et toutes les interfaces réseau sont configurées avec une zone publique. Vous pouvez lister la zone par défaut avec la commande suivante :

firewall-cmd --get-default-zone

Sortie :

public

Ensuite, exécutez la commande suivante pour obtenir une liste des zones actives :

firewall-cmd --get-active-zones

Vous devriez obtenir le résultat suivant :

public
  interfaces: eth0 eth1

Pour obtenir une liste de toutes les zones disponibles, exécutez la commande suivante :

firewall-cmd --get-zones

Vous devriez obtenir le résultat suivant :

block dmz drop external home internal public trusted work

Vous pouvez lister tous les services associés à une zone publique avec la commande suivante :

firewall-cmd --list-all

Vous devriez obtenir le résultat suivant :

public (active)
  target: default
  icmp-block-inversion: no
  interfaces: eth0 eth1
  sources: 
  services: cockpit dhcpv6-client ssh
  ports: 
  protocols: 
  masquerade: no
  forward-ports: 
  source-ports: 
  icmp-blocks: 
  rich rules: 

Pour modifier la zone par défaut de public à work, exécutez la commande suivante :

firewall-cmd --set-default-zone=work

Vous pouvez maintenant vérifier votre zone par défaut avec la commande suivante :

firewall-cmd --get-default-zone

Sortie :

work

Vous pouvez obtenir une liste de tous les services disponibles dans votre système avec la commande suivante :

firewall-cmd --get-services

Vous devriez obtenir le résultat suivant :

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 distcc dns dns-over-tls docker-registry docker-swarm dropbox-lansync elasticsearch etcd-client etcd-server finger freeipa-4 freeipa-ldap freeipa-ldaps freeipa-replication freeipa-trust ftp ganglia-client ganglia-master git grafana gre high-availability http https imap imaps ipp ipp-client ipsec irc ircs iscsi-target isns jenkins kadmin kdeconnect kerberos kibana klogin kpasswd kprop kshell ldap ldaps libvirt libvirt-tls lightning-network llmnr managesieve matrix mdns memcache minidlna mongodb mosh mountd mqtt mqtt-tls ms-wbt mssql murmur mysql nfs nfs3 nmea-0183 nrpe ntp nut openvpn ovirt-imageio ovirt-storageconsole ovirt-vmconsole plex pmcd pmproxy pmwebapi pmwebapis pop3 pop3s postgresql privoxy prometheus proxy-dhcp ptp pulseaudio puppetmaster quassel radius rdp redis redis-sentinel rpc-bind rsh rsyncd rtsp salt-master samba samba-client samba-dc sane sip sips slp smtp smtp-submission smtps snmp snmptrap spideroak-lansync spotify-sync squid ssdp ssh steam-streaming svdrp svn syncthing syncthing-gui synergy syslog syslog-tls telnet tentacle tftp tftp-client tile38 tinc tor-socks transmission-client upnp-client vdsm vnc-server wbem-http wbem-https wsman wsmans xdmcp xmpp-bosh xmpp-client xmpp-local xmpp-server zabbix-agent zabbix-server

Étape 3 :Autoriser et refuser les services dans le pare-feu

Vous pouvez autoriser et refuser le trafic entrant en fonction de services prédéfinis dans firewalld.

Par exemple, pour autoriser tout le trafic entrant pour le service http dans la zone publique, exécutez la commande suivante :

firewall-cmd --zone=public --add-service=http

Sortie :

success

Pour autoriser le trafic entrant pour le service ftp dans la zone publique, exécutez la commande suivante :

firewall-cmd --zone=public --add-service=ftp

Sortie :

success

La commande ci-dessus ajoutera un service http et ftp temporaire et il n'est pas persistant lors des redémarrages. Vous devrez utiliser le --permanent possibilité de les rendre permanents comme indiqué ci-dessous :

firewall-cmd --permanent --zone=public --add-service=http
firewall-cmd --permanent --zone=public --add-service=ftp

Ensuite, exécutez la commande suivante pour mettre en œuvre les modifications :

firewall-cmd --reload

Vous pouvez maintenant obtenir une liste des services ajoutés avec la commande suivante :

firewall-cmd --permanent --zone=public --list-services

Vous devriez voir le résultat suivant :

cockpit dhcpv6-client ftp http ssh

Vous pouvez également vérifier les informations détaillées sur la zone publique avec la commande suivante :

firewall-cmd --info-zone public

Sortie :

public (active)
  target: default
  icmp-block-inversion: no
  interfaces: eth0 eth1
  sources: 
  services: cockpit dhcpv6-client ftp http ssh
  ports: 
  protocols: 
  masquerade: no
  forward-ports: 
  source-ports: 
  icmp-blocks: 
  rich rules: 

Si vous souhaitez supprimer/refuser les services ci-dessus du pare-feu, utilisez le --remove-service choix :

firewall-cmd --permanent --zone=public --remove-service=http
firewall-cmd --permanent --zone=public --remove-service=ftp

Ensuite, exécutez la commande suivante pour appliquer les modifications :

firewall-cmd --reload

Étape 4 :Autoriser et refuser les ports dans le pare-feu

Vous pouvez également autoriser et refuser le trafic entrant en fonction du port dans firewalld.

Par exemple, autorisez tout le trafic entrant sur les ports 8080 et 443, exécutez la commande suivante :

firewall-cmd --permanent --zone=public --add-port=443/tcp
firewall-cmd --permanent --zone=public --add-port=8080/tcp

Ensuite, exécutez la commande suivante pour appliquer les modifications :

firewall-cmd --reload

Ensuite, vérifiez les ports ajoutés avec la commande suivante :

firewall-cmd --permanent --zone=public --list-ports

Sortie :

443/tcp 8080/tcp

De même, supprimez / refusez les ports ci-dessus du pare-feu, utilisez l'option –remove-port :

firewall-cmd --permanent --zone=public --remove-port=443/tcp
firewall-cmd --permanent --zone=public --remove-port=8080/tcp

Ensuite, exécutez la commande suivante pour appliquer les modifications :

firewall-cmd --reload

Étape 5 - Redirection de port avec pare-feu

La redirection de port est le processus qui redirige la demande de la combinaison IP/port et la redirige vers une adresse IP et/ou un port différent. Cette technique permet aux machines distantes de se connecter à un service spécifique au sein d'un réseau privé.

Avant de configurer la redirection de port, vous devez activer le masquage dans la zone souhaitée. Vous pouvez l'activer en utilisant le --add-masquerade choix :

firewall-cmd --zone=public --add-masquerade

Ensuite, pour transférer le trafic du port 80 vers le port 8080 sur le même serveur, exécutez la commande suivante :

firewall-cmd --permanent --zone=public --add-forward-port=port=80:proto=tcp:toport=8080

Si vous souhaitez transférer le trafic du port local 80 vers le port 8080 sur un serveur distant avec l'adresse IP 192.168.1.200, exécutez la commande suivante :

firewall-cmd --permanent --zone=public --add-forward-port=port=80:proto=tcp:toport=8080:toaddr=192.168.1.200

Ensuite, exécutez la commande suivante pour appliquer les modifications :

firewall-cmd --reload

Si vous souhaitez supprimer les règles ci-dessus, remplacez –add par –remove comme indiqué ci-dessous :

firewall-cmd --permanent --zone=public --remove-forward-port=port=80:proto=tcp:toport=8080:toaddr=192.168.1.200
firewall-cmd --permanent --zone=public --remove-forward-port=port=80:proto=tcp:toport=8080

Conclusion

Dans le guide ci-dessus, vous avez appris le concept de base de Firewalld et comment l'implémenter sur le système d'exploitation Linux. J'espère que vous pourrez désormais limiter le trafic entrant inutile avec firewalld.


Linux
  1. Qu'est-ce qu'une commande Chown sous Linux et comment l'utiliser

  2. Comment installer et configurer Fail2ban sur Alma Linux 8

  3. Flatpak sur Linux :qu'est-ce que c'est et comment installer des applications avec ?

  4. Guide du débutant sur le pare-feu sous Linux

  5. Qu'est-ce que NFS et comment l'installer sous Linux

Comment installer et utiliser Firewalld sur Almalinux 8

Comment installer et utiliser Firewalld sur Rocky Linux 8

Comment configurer FirewallD dans RHEL, CentOS et Fedora

Qu'est-ce que PPA dans Ubuntu Linux et comment les utiliser

Qu'est-ce que la commande source sous Linux et comment ça marche ?

Comment changer la date, l'heure et le fuseau horaire dans Linux Mint 20