Website-Suche

So führen Sie Paketfilterung und Netzwerkadressübersetzung durch und legen Kernel-Laufzeitparameter fest – Teil 2


Wie in Teil 1 („Statisches Netzwerk-Routing einrichten“) versprochen, beginnen wir in diesem Artikel (Teil 2 der RHCE-Reihe) mit einer Einführung Sie lernen die Prinzipien der Paketfilterung und Netzwerkadressübersetzung (NAT) in Red Hat Enterprise Linux 7 kennen, bevor Sie sich mit dem Festlegen von Laufzeitkernelparametern befassen, um das Verhalten eines laufenden Kernels zu ändern, wenn sich bestimmte Bedingungen ändern oder Anforderungen auftreten.

Netzwerkpaketfilterung in RHEL 7

Wenn wir von Paketfilterung sprechen, beziehen wir uns auf einen von einer Firewall durchgeführten Prozess, bei dem sie den Header jedes Datenpakets liest, das versucht, sie zu passieren. Anschließend filtert es das Paket, indem es die erforderlichen Maßnahmen auf der Grundlage von zuvor vom Systemadministrator definierten Regeln ergreift.

Wie Sie wahrscheinlich wissen, ist firewalld ab RHEL 7 der Standarddienst, der Firewall-Regeln verwaltet. Wie iptables kommuniziert es mit dem Netfilter-Modul im Linux-Kernel, um Netzwerkpakete zu untersuchen und zu manipulieren. Im Gegensatz zu iptables können Updates sofort wirksam werden, ohne dass aktive Verbindungen unterbrochen werden – Sie müssen den Dienst nicht einmal neu starten.

Ein weiterer Vorteil von firewalld besteht darin, dass wir damit Regeln basierend auf vorkonfigurierten Dienstnamen definieren können (mehr dazu gleich).

In Teil 1 haben wir das folgende Szenario verwendet:

Sie werden sich jedoch erinnern, dass wir zur Vereinfachung des Beispiels die Firewall auf Router Nr. 2 deaktiviert haben, da wir die Paketfilterung noch nicht behandelt haben. Sehen wir uns nun an, wie wir eingehende Pakete aktivieren können, die für einen bestimmten Dienst oder Port im Ziel bestimmt sind.

Fügen wir zunächst eine permanente Regel hinzu, um eingehenden Datenverkehr in enp0s3 (192.168.0.19) bis enp0s8 (10.0.0.18 ) zuzulassen. ):

firewall-cmd --permanent --direct --add-rule ipv4 filter FORWARD 0 -i enp0s3 -o enp0s8 -j ACCEPT

Der obige Befehl speichert die Regel in /etc/firewalld/direct.xml:

cat /etc/firewalld/direct.xml

Aktivieren Sie dann die Regel, damit sie sofort wirksam wird:

firewall-cmd --direct --add-rule ipv4 filter FORWARD 0 -i enp0s3 -o enp0s8 -j ACCEPT

Jetzt können Sie von der RHEL 7-Box aus eine Telnet-Verbindung zum Webserver herstellen und tcpdump erneut ausführen, um den TCP-Verkehr zwischen den beiden Maschinen zu überwachen, dieses Mal mit der Firewall in Router Nr. 2 ermöglicht.

telnet 10.0.0.20 80
tcpdump -qnnvvv -i enp0s3 host 10.0.0.20

Was ist, wenn Sie nur eingehende Verbindungen zum Webserver (Port 80) von 192.168.0.18 zulassen und Verbindungen von anderen Quellen im 192.168.0.0/ blockieren möchten? 24 Netzwerk?

Fügen Sie in der Firewall des Webservers die folgenden Regeln hinzu:

firewall-cmd --add-rich-rule 'rule family="ipv4" source address="192.168.0.18/24" service name="http" accept'
firewall-cmd --add-rich-rule 'rule family="ipv4" source address="192.168.0.18/24" service name="http" accept' --permanent
firewall-cmd --add-rich-rule 'rule family="ipv4" source address="192.168.0.0/24" service name="http" drop'
firewall-cmd --add-rich-rule 'rule family="ipv4" source address="192.168.0.0/24" service name="http" drop' --permanent

Jetzt können Sie HTTP-Anfragen an den Webserver stellen, von 192.168.0.18 und von einem anderen Computer in 192.168.0.0/24. Im ersten Fall sollte die Verbindung erfolgreich hergestellt werden, im zweiten Fall kommt es irgendwann zu einer Zeitüberschreitung.

Dazu reicht jeder der folgenden Befehle aus:

telnet 10.0.0.20 80
wget 10.0.0.20

Ich empfehle Ihnen dringend, sich die Firewalld Rich Language-Dokumentation im Fedora-Projekt-Wiki anzusehen, um weitere Einzelheiten zu Rich-Regeln zu erfahren.

Netzwerkadressübersetzung in RHEL 7

Unter Network Address Translation (NAT) versteht man den Prozess, bei dem einer Gruppe von Computern (es kann auch nur einer davon sein) in einem privaten Netzwerk eine eindeutige öffentliche IP-Adresse zugewiesen wird. Dadurch sind sie innerhalb des Netzwerks immer noch eindeutig über ihre eigene private IP-Adresse identifiziert, nach außen „scheinen“ sie jedoch alle gleich.