Website-Suche

Wie man Paketfilterung, Network Address Translation und Set von Kernel-Laufzeitparametern durchführt - Teil 2


Wie in Teil 1 ("Setup Static Network Routing") versprochen, werden wir in diesem Artikel (Teil 2 der RHCE-Serie) zunächst die Prinzipien der Paketfilterung und der Network Address Translation (NAT) in Red Hat Enterprise Linux 7 vorstellen, bevor wir uns mit dem Festlegen von Laufzeit-Kernel-Parametern befassen, um das Verhalten eines laufenden Kernels zu ändern, wenn sich bestimmte Bedingungen ändern oder Bedarf auftritt.

Filtern von Netzwerkpaketen in RHEL 7

Wenn wir von Paketfilterung sprechen, beziehen wir uns auf einen Prozess, der von einer Firewall ausgeführt wird, bei dem sie den Header jedes Datenpakets liest, das versucht, sie zu passieren. Anschließend filtert es das Paket, indem es die erforderliche Aktion auf der Grundlage von Regeln ausführt, die zuvor vom Systemadministrator definiert wurden.

Wie Sie wahrscheinlich wissen, ist ab RHEL 7 der Standarddienst, der Firewallregeln verwaltet, firewalld. 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 ist, dass es uns ermöglicht, Regeln basierend auf vorkonfigurierten Servicenamen zu definieren (mehr dazu in einer Minute).

In Teil 1 haben wir das folgende Szenario verwendet:

Sie werden sich jedoch daran erinnern, dass wir die Firewall auf Router #2 deaktiviert haben, um das Beispiel zu vereinfachen, da wir die Paketfilterung noch nicht behandelt hatten. Sehen wir uns nun an, wie wir eingehende Pakete aktivieren können, die für einen bestimmten Dienst oder Port im Ziel bestimmt sind.

Zuerst fügen wir 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 über das RHEL 7-Feld eine Telnet-Verbindung zum Webserver herstellen und tcpdump erneut ausführen, um den TCP-Datenverkehr zwischen den beiden Computern zu überwachen, diesmal mit aktivierter Firewall in Router #2.

# 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 Netzwerk 192.168.0.0/24 blockieren möchten?

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 Rechner in 192.168.0.0/24. Im ersten Fall sollte die Verbindung erfolgreich abgeschlossen werden, während im zweiten Fall eine Zeitüberschreitung auftritt.

Um dies zu tun, reicht einer der folgenden Befehle aus:

# telnet 10.0.0.20 80
wget 10.0.0.20

Ich empfehle Ihnen dringend, die Firewalld Rich Language-Dokumentation im Fedora-Projekt-Wiki zu lesen, um weitere Details zu Rich-Regeln zu erhalten.

Übersetzung von Netzwerkadressen in RHEL 7

Network Address Translation (NAT) ist der Prozess, bei dem einer Gruppe von Computern (es kann auch nur einer von ihnen sein) in einem privaten Netzwerk eine eindeutige öffentliche IP-Adresse zugewiesen wird. Infolgedessen werden sie innerhalb des Netzwerks immer noch eindeutig durch ihre eigene private IP-Adresse identifiziert, aber nach außen hin "scheinen" sie alle gleich zu sein.

Verwandte Artikel: