L'autre jour, j'ai écrit un article Autoriser ssh uniquement pour des adresses IP spécifiques avec firewalld, mais en utilisant l'option -add-rich-rule La correspondance par la règle spéciale de Gorigori a été capturée. Firewalld est une bibliothèque relativement nouvelle qui succède à iptables, et il devrait y avoir un moyen plus sophistiqué et meilleur de le faire.
À la suite de diverses enquêtes, il y en avait. Son nom est la fonction ** multi-zone **. En utilisant cette fonction, j'ai trouvé qu'elle pouvait être définie de manière assez flexible et efficace, je voudrais donc partager ce que j'ai étudié cette fois.
Tout d'abord, passons en revue les avantages de Firewalld. Selon la référence [1], les avantages du pare-feu par rapport aux iptables sont:
En effet, il semble important de bien utiliser les ** zones **. Au fait, mon dernier article a forcé l'ajout d'une règle à la zone publique.
Ensuite, regardons la zone. Encore une fois, la référence [1] montre que ** Intarface ** et ** Source ** sont des concepts importants pour comprendre les zones.
Interface --Intaface est le nom système des cartes matérielles et réseau virtuelles. --Tous les Intafaces actifs sont affectés à la zone par défaut ou à la zone spécifiée par l'utilisateur. --Intaface ne peut pas être affecté à plusieurs zones **.
Source
--Source est la plage d'adresses IP source, qui peut également être attribuée à une zone. --La source ne peut pas être attribuée à plusieurs zones **. En effet, une fois que cela est fait, il n'est pas possible de savoir quelle règle doit être appliquée à cette source. --Il n'y a pas toujours une zone avec une source qui correspond à une source. Dans ce cas, il est traité selon une certaine priorité, mais les détails seront décrits ultérieurement.
Je n'ai pas expliqué la zone elle-même, mais l'avez-vous comprise d'une manière ou d'une autre?
Multi-Zone est un terme utilisé dans Reference [1], mais en bref, il est bon d'utiliser ** plusieurs zones actives ** au lieu d'une seule zone. ** Pensez-y comme un moyen de définir des règles.
Souvent prises en compte, selon la référence [1], les règles d'application de Firewalld dans le cas d'une multi-zone sont à peu près les suivantes. (Note) Il est écrit un peu, donc si vous voulez le comprendre strictement, consultez la référence [1] ou le manuel de Firewalld.
L'important est que la zone Source prime sur la zone Interface. Par conséquent, un modèle de conception courant pour les configurations multizones consiste à autoriser une adresse IP spécifique à accéder à un service spécifique dans la zone source et à restreindre l'accès à tous les autres utilisateurs de la zone d'interface. devenir.
Essayons-le en nous basant sur un exemple du suivant.
Cette fois, je souhaite procéder à cette configuration.
Laissez-moi vous donner un aperçu.
Donc, si vous l'écrivez en phrases, ce sera ambigu, alors faisons un tableau des règles qui autorisent les paquets sur le serveur WEB.
expéditeur | protocole | Nom de zone | Rôle de zone |
---|---|---|---|
ANY | https, http | public | Zone d'interface |
192.168.11.24 | mysql, nfs | share | Zone source |
192.168.11.29 | ssh | mainte | Zone source |
C'est une règle de tout rejeter sauf ce qui précède. De plus, il y a déjà des colonnes "nom de zone" et "rôle de zone" dans le tableau, et il y a des descriptions de zones avec des noms tels que public, share, mainte, mais à partir de maintenant, ** ces multi-zones ** appliqueront effectivement les règles ci-dessus. Définissons-le.
La zone publique donne l'impression de modifier celle par défaut.
firewall-cmd --permanent --zone=public --remove-service=dhcpv6-client
firewall-cmd --permanent --zone=public --remove-service=cockpit
firewall-cmd --permanent --zone=public --remove-service=ssh
firewall-cmd --permanent --zone=public --add-service=http
firewall-cmd --permanent --zone=public --add-service=https
firewall-cmd --permanent --zone=public --set-target=DROP
firewall-cmd --reload
Étant donné que la zone de maintenance n'existe pas à l'origine, créez-la nouvellement et définissez-la.
firewall-cmd --permanent --new-zone=mainte
firewall-cmd --permanent --zone=mainte --add-service=ssh
firewall-cmd --permanent --zone=mainte --add-source=192.168.11.29
firewall-cmd --reload
La deuxième ligne spécifie ssh comme service autorisé, et la troisième ligne spécifie l'adresse IP du terminal de maintenance comme IP source autorisée.
Étant donné que la zone de partage n'existe pas à l'origine, elle est définie après en avoir créé une nouvelle.
firewall-cmd --permanent --new-zone=share
firewall-cmd --permanent --zone=share --add-port=2049/tcp
firewall-cmd --permanent --zone=share --add-port=3306/tcp
firewall-cmd --permanent --zone=share --add-source=192.168.11.24
firewall-cmd --reload
Les ports nfs et mysql sont spécifiés comme ports autorisés dans les 2e et 3e lignes, et l'adresse IP du serveur de sauvegarde est spécifiée comme IP source autorisée sur la 4e ligne.
Tout d'abord, exécutons nmap depuis le terminal de maintenance.
[kimisyo@localhost ~]$ nmap 192.168.11.26
Starting Nmap 7.70 ( https://nmap.org ) at 2020-10-25 20:59 JST
Nmap scan report for 192.168.11.26
Host is up (0.00063s latency).
Not shown: 997 filtered ports
PORT STATE SERVICE
22/tcp open ssh
80/tcp open http
443/tcp open https
Vous pouvez certainement voir ssh en plus du port http / https. (Au contraire, nfs et mysql ne sont pas visibles)
Ensuite, exécutons nmap à partir du serveur de sauvegarde.
(base) kimisyo@ubuntu20:~$ nmap 192.168.11.26
Starting Nmap 7.80 ( https://nmap.org ) at 2020-10-25 11:59 UTC
Nmap scan report for 192.168.11.26
Host is up (0.0011s latency).
Not shown: 996 filtered ports
PORT STATE SERVICE
80/tcp open http
443/tcp open https
2049/tcp open nfs
3306/tcp open mysql
En plus du port http / https, vous pouvez voir 2049 / tcp et 3306 / tcp. (Au contraire, ssh n'est pas visible)
Enfin, je vais résumer les mérites du multi-zone que j'ai réellement ressentis.
firewall-cmd --permanent --zone = mainte --add-source = 192.168.11.19 '' C'est assez.Recommended Posts