GNU/Linux >> Tutoriels Linux >  >> Linux

Utiliser firewalld sur les distributions basées sur RedHat

Firewalld a remplacé iptables comme pare-feu pour les distributions basées sur RHEL. La syntaxe utilisée par firewalld est plus conviviale. Cet article vous montre comment vous assurer que firewalld est en cours d'exécution et démarre au démarrage de votre serveur. Il vous montre également comment créer des règles de pare-feu persistantes et flexibles.

Remarque  :Red Hat®, CentOS®, Alma Linux®, Rocky Linux® utilisent également firewalld, donc toutes les commandes de cet article fonctionnent également dans les images basées sur RHEL dont Rackspace dispose.

Concepts de base du pare-feu

Firewalld utilise des zones pour gérer des groupes de règles. Les zones sont attachées aux interfaces réseau et déterminent quel trafic est autorisé sur un réseau spécifique et quel trafic est refusé.

Cette fonctionnalité peut être utile si vous souhaitez établir un pare-feu très strict sur votre interface publique et un pare-feu plus souple sur votre interface CloudNetwork. Se familiariser avec les zones prédéfinies par le pare-feu est utile. Firewalld possède les zones prédéfinies suivantes, dans l'ordre de la moins fiable à la plus fiable :

  • drop :Cette zone n'autorise que les connexions sortantes. Il abandonne les connexions entrantes sans réponse.
  • block  :Bien que similaire à drop , cette zone rejette les requêtes entrantes avec un icmp-host-prohibited ou icmp6-adm-prohibited message.
  • public :Utilisez cette zone pour les réseaux publics ou lorsque vous ne faites confiance à aucun autre ordinateur du réseau. Cette zone accepte les connexions entrantes au cas par cas.
  • external :Utilisez cette zone sur les réseaux externes où le pare-feu fait office de passerelle. Cette zone est configurée pour le masquage NAT (Network Address Translation) afin que votre réseau interne soit privé mais accessible.
  • internal  :Utilisez cette zone pour la partie interne d'une passerelle, où les autres ordinateurs sont raisonnablement dignes de confiance.
  • dmz :utilisez cette zone pour les ordinateurs isolés situés dans une zone démilitarisée (DMZ). Cette zone autorise uniquement Secure Shell (SSH) et Internet Control Message Protocol (ICMP).
  • work  :Utilisez cette zone pour les ordinateurs professionnels.
  • home  :Utilisez cette zone pour les environnements domestiques.
  • trusted  :Utilisez cette zone lorsque vous faites confiance à tous les ordinateurs du réseau.

Pour utiliser le pare-feu, vous créez des règles et modifiez les propriétés de vos zones, puis affectez vos interfaces réseau aux zones les plus appropriées pour votre réseau.

Démarrer le pare-feu et l'activer au démarrage

Par défaut, firewalld doit être activé, redémarrez le serveur, puis démarrez atboot.

Vous pouvez facilement vérifier si le pare-feu est en cours d'exécution en utilisant le --state flag,comme illustré dans l'exemple suivant :

    [user@server ~]$ sudo firewall-cmd --state
    Finding out about your zones

Si firewalld n'est pas en cours d'exécution, vous pouvez l'activer et le démarrer en exécutant les commandes suivantes :

    [user@server ~]$ sudo systemctl enable firewalld
    [user@server ~]$ sudo systemctl start firewalld

Vous pouvez voir quelle zone est actuellement la zone par défaut en exécutant la commande suivante :

    [user@server ~]$ sudo firewall-cmd --get-default-zone

Vous pouvez voir quelles interfaces réseau sont affectées à quelles zones en exécutant la commande suivante :

    [user@server ~]$ sudo firewall-cmd --get-active-zones

Remarque  :La valeur par défaut affecte toutes les interfaces réseau à la zone publique.

Vous pouvez également trouver les règles associées à la zone publique en exécutant la commande suivante :

    [user@server ~]$ sudo firewall-cmd --list-all --zone=public

Le résultat devrait ressembler à l'exemple suivant :

    public (default, active)

    interfaces: eth0 eth1

    sources:

    services: dhcpv6-client http https ssh

    ports: 1025/tcp

    masquerade: no

    forward-ports:

    icmp-blocks:

    rich rules:

La sortie montre que la zone publique est la zone par défaut et possède les interfaces réseau eth0 et eth1. Protocole de configuration d'hôte dynamique (DHCP)(dhcpv6-client ), SSH, le trafic HTTP (Hypertext Transfer Protocol) et HTTP sécurisé (HTTPS) sont autorisés, ainsi que le trafic TCP (Transmission Control Protocol) sur le port 1025 .

Pour obtenir une liste des zones disponibles, exécutez la commande suivante :

    [user@server ~]$ sudo firewall-cmd --get-zones

Configurer vos zones

Vous pouvez déplacer les interfaces entre les zones au cours de votre session en utilisant le --change-interface= argument et le --zone dispute. Si le pare-feu redémarre, l'interface revient à la zone par défaut.

    [user@server ~]$ sudo firewall-cmd --zone=internal --change-interface=eth1

Pour définir une zone permanente pour une interface, ouvrez le fichier de configuration de l'interface et ajoutez les lignes suivantes :

    ...
    ONBOOT=yes
    ZOME=internal

Enregistrez et fermez le fichier, puis exécutez les commandes suivantes pour redémarrer le réseau et le pare-feu et forcer les modifications à prendre effet :

    [user@server ~]$ sudo systemctl restart network
    [user@server ~]$ sudo systemctl restart firewalld

Configurer les règles

Firewalld est livré avec des services prédéfinis qui vous permettent d'ajouter uniquement le service, plutôt que le numéro de port et le type de protocole. Par exemple, ils vous permettent d'autoriser http plutôt que tcp port 80 .

Vous pouvez obtenir une liste de ces services en utilisant la commande suivante :

    [user@server ~]$ sudo firewall-cmd --get-services

Ensuite, utilisez l'exemple de commande suivant pour ajouter un service :

    [user@server ~]$ sudo firewall-cmd --add-service=http

La configuration prend effet immédiatement, mais ne survit pas aux redémarrages. Pour permettre à ces types de configurations de service de redémarrer lorsque le serveur redémarre, vous devez ajouter le --permanent dispute. Nous vous recommandons d'exécuter ces deux commandes dans l'ordre afin que la configuration prenne effet immédiatement et que les services redémarrent également, comme illustré dans l'exemple suivant :

    [user@server ~]$ sudo firewall-cmd --add-service=http
    firewall-cmd --permanent --add-service=http

Vous pouvez obtenir des détails supplémentaires sur les règles prédéfinies de firewalld en accédant à /usr/lib/firewalld/services/ répertoire et lecture des fichiers.

Configurer des règles enrichies

Règles enrichies sont la façon dont vous définissez les conditions dans firewalld. Le cas d'utilisation le plus courant des règles enrichies consiste à autoriser l'accès à partir d'une adresse IP ou d'une plage d'adresses IP particulière. Les commandes suivantes activent l'accès au port TCP 80 à partir de n'importe quelle adresse IP du réseau 192.168.0.0 et rendent la règle permanente :

    [user@server ~]$ sudo firewall-cmd --add-rich-rule 'rule family="ipv4" source address="192.168.0.0/24" service name="http" accept'
    [user@server ~]$ sudo firewall-cmd --add-rich-rule 'rule family="ipv4" source address="192.168.0.0/24" service name="http" accept' --permanent

Pour des exemples de règles enrichies, consultez le Fedora®Wiki.

Définir les services

Vous pouvez créer votre propre service et vous y référer lorsque vous créez des règles en plaçant un fichier dans /usr/lib/firewalld/services/ annuaire. Le moyen le plus simple d'effectuer cette tâche en copiant un fichier .xml existant fichier dans ce répertoire, puis en modifiant les détails.

L'exemple de commande suivant copie un fichier existant dans un nouveau fichier :

    [user@server ~]$ sudo cp /usr/lib/firewalld/services/http.xml /usr/lib/firewalld/services/myservice.xml

La commande suivante ouvre le nouveau fichier pour modification :

    [user@server ~]$ sudo vim /usr/lib/firewalld/services/myserver.xml

Le fichier doit ressembler à l'exemple suivant :

    <!--?xml version="1.0" encoding="utf-8"?-->
    <service>
      <short>My Custom Service</short>
      <description>A brief description of the service. This rule allows port 1134 on TCP for my application.</description>
      <port protocol="tcp" port="1134"></port>
    </service>

Pour appliquer vos modifications, utilisez les commandes suivantes avec le nom du fichier, moins le .xml extension de fichier :

    [user@server ~]$ sudo firewall-cmd --add-service=myservice
    [user@server ~]$ sudo firewall-cmd --permanent --add-service=myservice

Utilisez l'onglet Commentaires pour faire des commentaires ou poser des questions. Vous pouvez également démarrer une conversation avec nous.


Linux
  1. Comment activer et utiliser firewalld sur CentOS 7

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

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

  4. Gestion de base du pare-feu et du pare-feu

  5. Installer une pile LAMP sur les distributions basées sur RHEL 7

6 distributions Linux à usage éducatif

Comment utiliser IPTables au lieu de firewalld pour Fedora 30-31-32

Comment installer et utiliser PHP Composer sur les distributions Linux

Comment installer et utiliser GNU Emacs sur les distributions Linux

Comment installer et utiliser Ruby sur les distributions Linux

KVM - Quelle gestion basée sur le Web utiliser ?