Iptables-Filterung und NAT mit sekundärer IP-Adresse

Iptables-Filterung und NAT mit sekundärer IP-Adresse

Ich habe zwei IP-Adressen auf meiner physischen ETH-Schnittstelle. Sagen wir 192.168.10.7 (eth0:0) und 192.168.0.7 (eth0). Es funktioniert also. Aber ich verwende eine Anwendung, die nur mit einer dieser Adressen auf Port 12000 arbeitet. Sie ist intern so eingerichtet, dass sie mit der Adresse 192.168.0.7 funktioniert. Ich habe die Anwendung so eingerichtet, dass sie auch mit der Adresse 192.168.10.7 funktioniert, indem ich iptables verwende, und zwar folgendermaßen:

iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
iptables -t nat -A PREROUTING -p tcp -d 192.168.10.7 --dport 12000 -j DNAT --to 192.168.0.7:12000

Jetzt möchte ich den gesamten eingehenden Datenverkehr zur IP-Adresse 192.168.10.7 (Schnittstelle eth0:0) mit Ausnahme von Port 12000 blockieren. Der gesamte restliche Datenverkehr muss unverändert bleiben. Ich bin kein iptables-Experte. Kann mir jemand helfen?

Antwort1

vorausgesetzt, Ihre iptables-Regel funktioniert auf derselben Maschine wie Ihre Anwendung, müssen Sie eine Regel definieren, um eingehende und ausgehende Pakete an die Adresse und den Anwendungsport zu akzeptieren, dann lassen Sie einfach alles andere fallen, es sieht so aus:

iptables -A INPUT -p tcp -d 192.168.10.7 --dport 12000 -j AKZEPTIEREN
iptables -A OUTPUT -p tcp -s 192.168.10.7 --sport 12000 -j AKZEPTIEREN

iptables -A INPUT -j DROP
iptables -A OUTPUT -j DROP

verwandte Informationen