Konfigurieren Sie das NAT-Filterverhalten mit iptables

Konfigurieren Sie das NAT-Filterverhalten mit iptables

Ich verwende diese Regel, um SNAT zu konfigurieren:

iptables -t nat -A POSTROUTING -o eth1 -j SNAT --to-source 193.49.142.107:4000

Ich möchte eine Regel festlegen, um Pakete herauszufiltern, die nicht an die interne Adresse und den Port gerichtet sind, die die Sitzung initiiert haben. Um Pakete von einem bestimmten externen Endpunkt zu empfangen, muss der interne Endpunkt außerdem zuerst Pakete an die IP-Adresse dieses bestimmten externen Endpunkts senden. (NAT-adressabhängiges Filtern)

Beispiel:

Eine Maschine mit interner IP und Port (X:x), die sich hinter dem NAT befindet, öffnet eine Verbindung zu einem Server mit IP Y. Mit der Regel muss ich also in der Lage sein, nur Verbindungen zuzulassen, die von der IP-Adresse Y kommen und an (X:x) gerichtet sind. Alle anderen Verbindungen werden getrennt.

Antwort1

iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADE
iptables -P FORWARD -j DROP
iptables -A FORWARD -o eth1 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A FORWARD -i eth1 -m state --state ESTABLISHED -j ACCEPT

Was bewirken diese Regeln?

  1. -A POSTROUTING -o eth1 -j MASQUERADEverbirgt Ihre internen IPs, wenn Pakete Ihr Netzwerk verlassen
  2. -P FORWARD -j DROPlegt die Standardrichtlinie für Ihre FORWARD-Kette auf DROP fest
  3. -A FORWARD -o eth1 -m state --state NEW,ESTABLISHED -j ACCEPTermöglicht neue und bestehende weitergeleitete Verbindungen
  4. -A FORWARD -i eth1 -m state --state ESTABLISHED -j ACCEPTerlaubt nur etablierte weitergeleitete Verbindungen in

Die oben genannten Regeln gehen davon aus, dass Sie diese Box als Gateway/Firewall verwenden und eth1mit Ihrem WAN und eth0Ihrem LAN verbunden sind.

Zusätzliche Lektüre:Postrouting und IP-Masquerading

BEARBEITEN

So konfigurieren Sie eine „bedingte“ Portweiterleitung:

Nach Quellport

iptables -A PREROUTING -t nat -i eth1 -p tcp --sport [trusted_source_port] --dport [external_port] -j DNAT --to [internal_ip]:[internal_port]
iptables -A FORWARD -p tcp -d [internal_ip] --dport [internal_port] -j ACCEPT

Nach Quell-IP

iptables -A PREROUTING -t nat -i eth1 -p tcp -s [trusted_source_ip] --dport [external_port] -j DNAT --to [internal_ip]:[internal_port]
iptables -A FORWARD -p tcp -d [internal_ip] --dport [internal_port] -j ACCEPT

verwandte Informationen