GNU/Linux >> Tutoriels Linux >  >> Linux

Une introduction aux règles et scénarios de pare-feu

Un pare-feu est similaire à un gatekeeper qui empêche le trafic indésirable du réseau extérieur d'atteindre votre système. Les règles de pare-feu déterminent le trafic à autoriser en entrée ou en sortie. Dans les pare-feu Linux, il existe un concept appelé zones . Les administrateurs système peuvent configurer chaque zone avec ses propres règles de pare-feu, qui autorisent ou refusent le trafic entrant dans le système. Imaginez un système de sécurité domestique indiquant quelle personne doit être autorisée à visiter quelles pièces de votre maison.

[ Vous pourriez également aimer : Un guide du débutant sur le pare-feu sous Linux ]

Diagramme via :Premiers pas avec firewalld (Portail client Red Hat)

firewalld est un service de pare-feu qui fournit un pare-feu personnalisable basé sur l'hôte via le D-bus interface. Comme mentionné ci-dessus, les pare-feu utilisent des zones avec un ensemble prédéfini de règles, et chaque service utilise des ports . Nous pouvons autoriser/bloquer tout trafic entrant vers un service particulier en fonction de son port. Par exemple, si vous ne voulez pas que quelqu'un se connecte en SSH à votre système, vous pouvez bloquer le port 22, ce qui garantit que personne ne peut accéder à votre système de l'extérieur via SSH.

Zones

Le firewalld service utilise un concept de zones. Nous pouvons attribuer des interfaces réseau à ces zones et décider quel type de trafic peut entrer dans ce réseau. Nous pouvons utiliser Network Manager pour attribuer des interfaces à des zones particulières à l'aide de firewall-cmd command, un outil de ligne de commande largement connu. Les zones par défaut sont stockées sous le /usr/lib/firewalld/zones/ annuaire. Découvrons maintenant certaines des zones prédéfinies disponibles dans firewalld .

  • Bloquer :dans cette zone, toutes les connexions entrantes sont rejetées avec un icmp-host-prohibited message, et seules les connexions initiées depuis le système sont autorisées.
  • DMZ :pour les systèmes nécessitant des connexions réseau internes limitées, il accepte uniquement les connexions entrantes sélectionnées. Également appelée zone démilitarisée.
  • Abandon :les connexions sont abandonnées sans aucune notification. Les connexions sortantes sont possibles.
  • Public :cette zone est utilisée pour les appareils sur le réseau public non approuvé.
  • Approuvé :toutes les connexions réseau sont acceptées.

L'une de ces zones peut être définie par défaut selon les besoins de l'utilisateur. Après l'installation, le public la zone est définie par défaut, que vous pouvez modifier ultérieurement.

Règles de pare-feu dans Red Hat Enterprise Linux

Maintenant que nous connaissons les bases de firewalld , nous pouvons découvrir comment utiliser les commandes pour ajouter ou supprimer différents services.

Pour voir si le pare-feu est en cours d'exécution, utilisez les commandes suivantes :

# systemctl status firewalld

firewalld.service - firewalld - dynamic firewall daemon
   Loaded: loaded (/usr/lib/systemd/system/firewalld.service; enabled; vendor preset: enabled)
   Active: active (running) since Fri 2020-11-13 18:19:05 CET; 4 months 4 days ago

Vous pouvez également saisir :

# firewall-cmd --state
running

Pour lister les informations sur la zone par défaut :

# firewall-cmd --list-all
public (active)
  target: default
  icmp-block-inversion: no
  interfaces: baremetal cni-podman0 eno1 eno2 eno3 provisioning
  sources:
  services: cockpit dhcpv6-client http ssh
  ports: 8080/tcp 80/tcp 80/udp 67/udp 68/udp   protocols:
  masquerade: no
  forward-ports:
  source-ports:
  icmp-blocks:
  rich rules:

Comme vous pouvez le voir ci-dessus, le public zone est définie par défaut. La sortie affiche les interfaces affectées à cette zone et quels services et ports sont activés/autorisés.

Sélectionnez une zone particulière :

# firewall-cmd --list-all --zone=home
home
  target: default
  icmp-block-inversion: no
  interfaces:
  sources:
  services: cockpit dhcpv6-client mdns samba-client ssh

Activer/démarrer le firewalld service au démarrage du système :

# systemctl enable firewalld
# systemctl start firewalld

Désactiver/arrêter le firewalld service au démarrage du système :

# systemctl disable firewalld
# systemctl stop firewalld

Lister toutes les zones :

# firewall-cmd --list-all-zones

Ajouter des ports et des services aux zones et les rendre permanents

Ensuite, voyons quelques-unes des commandes pour ajouter de nouveaux services et ports à une zone particulière et les rendre permanents (restent même après le redémarrage du système).

Pour ouvrir ou bloquer des ports sur firewalld utiliser :

# firewall-cmd --list-ports        
# firewall-cmd --add-port <port-number/port-type> --permanent
# firewall-cmd --reload

Les ports sont des périphériques logiques qui permettent à un système d'exploitation de recevoir le trafic entrant et de le transmettre aux services système. Habituellement, ces services écoutent sur les ports standard. Par exemple, HTTP écoute sur le port 80 et HTTPS écoute sur le port 443.

Généralement port-type signifie tcp , udp ou sctp .

Voici un exemple qui ajoute le port 443 sur la zone par défaut de façon permanente :

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

Nous pouvons également supprimer le port en utilisant --remove-port option.

Règles riches dans firewalld

Nous pouvons également utiliser des règles enrichies , qui ont des capacités de filtrage avancées dans firewalld . La syntaxe de ceux-ci est ci-dessous. Ces règles riches sont utiles lorsque nous voulons bloquer ou autoriser une adresse IP ou une plage d'adresses particulière.

Utilisez la commande suivante pour afficher les paramètres de règle enrichis actuels :

# firewall-cmd --list-rich-rules

Nous pouvons contrôler une adresse IP particulière de l'hôte et des ports à l'aide de règles riches.

La règle suivante accepte les connexions SSH uniquement à partir de l'hôte avec l'IP 10.1.111.21 et abandonne les autres connexions :

# firewall-cmd --add-rich-rule='rule family=ipv4 source address=10.1.111.21/24 service name=ssh log prefix="SSH Logs" level="notice" accept'

Cet exemple rejette ping requêtes de tous les hôtes avec un message d'erreur :

# firewall-cmd --add-rich-rule='rule protocol value=icmp reject'

La règle suivante rejette les requêtes provenant de l'IP 172.92.10.90/32 port 21 et accepte toutes les autres connexions :

# firewall-cmd --add-rich-rule='rule family=ipv4 source address=172.92.10.90/32 port port=21 protocol=tcp  reject'

[ Vous pensez à la sécurité ? Consultez ce guide gratuit pour renforcer la sécurité du cloud hybride et protéger votre entreprise. ] 

Récapitulez

Activation de firewalld permet à l'utilisateur d'autoriser ou de restreindre les connexions entrantes et de sécuriser de manière sélective son système contre le trafic réseau indésirable. N'oubliez pas que les règles de pare-feu déterminent le trafic à autoriser à entrer ou à sortir d'un système. Vous pouvez configurer une zone avec ses propres règles de pare-feu, qui autorisent ou refusent le trafic entrant dans le système. Mais rappelez-vous également que l'autorisation de tout trafic ou port d'accès à votre système le rend vulnérable aux failles de sécurité et aux attaques potentielles.


Linux
  1. Introduction aux commandes Linux chgrp et newgrp

  2. Introduction et informations d'accès à cPanel

  3. Comment installer et configurer Fail2ban sur Alma Linux 8

  4. Problème d'ouverture d'un port Firewalld dans CentOS/RHEL 8

  5. Udev :renommer mon interface réseau

Une introduction aux métriques Prometheus et à la surveillance des performances

Une introduction au hachage et aux sommes de contrôle sous Linux

50 règles IPtables utiles et simples pour l'administrateur Linux

Comment :Introduction à la programmation - Variables, types et manipulation de données

Trois règles d'administration système que vous ne pouvez pas (et ne devriez pas) enfreindre

Présentation de la surveillance et du réglage des performances Linux