firewalld, erlaubt nur SSH von einer bestimmten IP, die Teil einer anderen Zone ist

1188
scaarup

Mein Ziel ist es, ldap an jedem Client am 172.26.143.0/24 bereitzustellen, SSH muss jedoch nur für 172.26.143.3 verfügbar sein. Ich habe folgendes probiert:

# This is where eth0 is and no services/ports are assigned to this zone: firewall-cmd --set-default-zone=drop firewall-cmd --zone=internal --add-source=172.26.143.0/24 --permanent firewall-cmd --zone=internal --add-service=ldap --permanent firewall-cmd --zone=trusted --add-source=172.26.143.3 --permanent firewall-cmd --zone=trusted --add-service=ssh --permanent firewall-cmd --reload 

Mit dieser Konfiguration kann 172.26.143.3 kein SSH zu diesem Host hergestellt werden. Nur wenn ich den ssh-Service zu zone = internal hinzufüge, was ich nicht will. Wie kann ich das erreichen?

0
Klingt, als sollten Sie Ihre vertrauenswürdige Zone in ein separates Subnetz verschieben. Dann haben Sie ein administratives Subnetz, wenn Sie mehr als einen administrativen PC benötigen, anstatt sich auf eine einzige magische IP-Adresse zu verlassen. Dies würde auch Ihr sofortiges Zoning-Problem lösen. Aeyoun vor 7 Jahren 0

1 Antwort auf die Frage

1
scttfrdmn

Die spezifische Antwort ist, eine Rich-Regel zu erstellen (eine direkte Regel würde auch funktionieren), da beide vor Quellen und Schnittstellen ausgewertet werden.

firewall-cmd --permanent --zone=trusted --add-rich-rule='rule family=ipv4 source address=172.26.143.3 accept' 

Warum es nicht funktioniert, liegt daran, dass sich die Quelldefinitionen in den internen und vertrauenswürdigen Zonen überlappen. Dies ist eine Schwäche / Ärger / Fehler (?) Der Firewall, bei der Quellenüberlappungen nicht wirklich zulässig sind. Es funktioniert, aber es ist abhängig von der Reihenfolge, in der firewalld die Zonen auswertet, wenn eine solche Überlappung vorliegt. Ich habe mir den Code nicht angesehen, aber einige Erklärungen besagen, dass die Zonen bei Überschneidungen alphabetisch ausgewertet werden und an anderen Stellen auf der Reihenfolge basieren, in der die Regeln definiert wurden. Wie auch immer, in Ihrem Beispiel nimmt die interne Zone den SSH-Verkehr auf und verwirft ihn.