
Ich habe einen WAN-Router, der über ein WAN-Subnetz mit dem ISP verbunden ist /30
. Er dient aber auch als Router für ein /29
lokales öffentliches WAN-Subnetz, das mit einigen meiner Server verbunden ist. Der Datenverkehr /29
wird über das Subnetz zum ISP geleitet /30
. Aus kabelgebundenen Gründen möchte ich die Schnittstelle mit der /30
IP maskieren (NAT). Die Schnittstelle mit /30
der IP sollte also für mein Netzwerk als maskiert erscheinen 192.168.1.0/24
und auch als normaler Nicht-NAT-Router für mein öffentliches WAN-Subnetz fungieren /29
. Kann dies mit iptables auf einem Linux-Rechner gemacht werden?
BEARBEITEN1: So sind meine Firewall-Regeln derzeit:
iptables -F
iptables -X
iptables -t nat -F
iptables -t nat -X
iptables -P INPUT ACCEPT
iptables -P OUTPUT ACCEPT
iptables -P FORWARD ACCEPT
#WAN Security
iptables -A INPUT -d 1.2.3.3 -m state --state INVALID -j DROP
iptables -A INPUT -d 1.2.3.3 -m state --state ESTABLISHED,RELATED -j ACCEPT
#NAT
iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -o eth0 -j SNAT --to-source 1.2.3.3
#FORWARD
iptables -A FORWARD -i eth1 -o eth0 -j ACCEPT
iptables -A FORWARD -i eth0 -o eth1 -j ACCEPT
iptables -A INPUT -d 1.2.3.3 -j DROP
Antwort1
Ja, das funktioniert einwandfrei. Richten Sie Ihre Paketfilterung und Ihr Routing so ein, als ob Sie überhaupt kein NAT verwenden würden, und fügen Sie dann etwas wie Folgendes hinzu:
iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -o eth0 -j SNAT --to-source 1.2.3.3
(Vorausgesetzt, Ihr ISP ist mit eth0 verbunden und Ihre öffentliche IP ist 1.2.3.3.)
Dadurch wird NAT nur auf Pakete angewendet, die aus Ihrem LAN mit privaten IP-Adressen kommen.