Logique et priorité de zones de pare-feu Linux

J'essaie de comprendre la logique derrière les zones Linux et la manière dont elles sont évaluées.

  1. À ma connaissance, une zone est définie comme une list d'interfaces et de plages IP, qui autorisent / refusent les règles peuvent être appliquées. Est-ce correct? Pour une zone qui comprend une interface et une plage IP supplémentaire. Les services autorisés pour cette zone seront-ils autorisés pour la plage IP, même si le trafic atteindra la machine à partir de l'IP dans cette plage, mais par une interface différente?

  2. Dans quel ordre les zones sont-elles évaluées? Qu'arrivera-t-il avec le trafic entrant qui correspond à deux zones (éventuellement contradictoires)? Par exemple, la zone Z1 qui permet à nfs d'accéder à la machine à partir d'une interface donnée et la zone Z2 qui refuse tout trafic entrant d'une IP. Que se passera-t-il à un trafic NFS qui atteint la machine via l'interface définie dans Z1 mais à partir de l'IP définie dans z2?

  1. Zone est juste une couche d'abstraction basée sur netfilter. Dans le langage des règles de netfilter, son set de strings vous donne ce sentiment d'user final de firewalld que vos packages sont dans une "zone". Vous pouvez toujours vérifier le comportement exact de la zone en cours d'exécution:

    iptables -L

  2. Commande dans laquelle les packages correspondants firewalld sont:

    • règles directes
    • routing vers des zones basées sur la source ip
    • le routing vers les zones en fonction des packages d'interface provient

Cela signifie essentiellement que si la destination finale des packages n'est pas décidée par des règles directes, elles entreront dans une zone. Le premier firewalld essaie de les apather en fonction de l'ip source. S'il n'y a pas de correspondance, firewalld tentera de les apather en fonction de l'interface qu'ils ont entré. Si cela échoue également, ils entrent dans la zone par défaut. Dans le cas où vous avez plus de zones configurées avec ip source et ces zones de chevauchement des zones IP, quelle règle source a été ajoutée car la première sera gagnée parce que sa règle sera vérifiée pour la correspondance.

Exemples:

Nous avons un système avec des interfaces:

  • eth0 avec adresse ip 192.168.0.1/24
  • eth1 avec adresse ip 192.168.100.1/24

Paramètre Firewalld 1:

firewall-cmd --zone=home --add-interface=eth0 firewall-cmd --zone=internal --add-source=192.168.0.0/16 

Les packages provenant de l'adresse 192.168.0.2 via eth0 seront apathés vers la zone interne.

Paramètre Firewalld 2:

 firewall-cmd --zone=internal --add-source=192.168.0.0/16 firewall-cmd --zone=home --add-source=192.168.0.2/32 

Les packages provenant de 192.168.0.2 seront à nouveau transmis à la zone interne. Cela fonctionne de cette façon, car firewalld ajoute des règles source pour les zones de routing une par une afin que nous exécutons des commands associées.