DNAT na jiný port

DNAT na jiný port
« kdy: 16. 10. 2016, 17:56:12 »
Ahoj, mam problem napsat DNAT pravidla.
Pokud delam DNAT na stejny port, funguje mi:

Kód: [Vybrat]
iptables -t nat -A PREROUTING -p tcp -i $WAN --dport 51413 -j DNAT --to 10.123.1.11
iptables -A FORWARD -i $WAN -p tcp --dport 51413 -d 10.123.1.11 -j ACCEPT

Nyni ale potrebuji udelat DNAT verejnaIp:1020 -> 10.123.1.12:2030.

Kód: [Vybrat]
iptables -t nat -A PREROUTING -p tcp -i $WAN --dport 1020 -j DNAT --to 10.123.1.12:2030
#iptables -t nat -A PREROUTING -p tcp -i $WAN --dport 1020 -j REDIRECT --to-port 2030
iptables -A FORWARD -i $WAN -p tcp --dport 1020 -j ACCEPT

DNAT ani REDIRECT mi nefunguje. Netusite, co delam spatne?
« Poslední změna: 17. 10. 2016, 09:42:54 od Petr Krčmář »
"Kdo v zájmu bezpečí obětuje část své svobody, v konečném důsledku přijde o svobodu i svou bezpečnost."


Re:DNAT na jiny port
« Odpověď #1 kdy: 16. 10. 2016, 18:10:28 »
REDIRECT přesměrovává komunikaci na daný port na lokálním počítači, to vám fungovat nebude (předpokládám, že komunikaci chcete přesměrovat jinam, když uvádíte IP adresu a používáte řetězec FORWARD).

U DNATu se cíl uvádí v parametru --to-destination, a ve FORWARD musíte povolit ten změněný port (změna v PERROUTING se udělá před FORWARDem). Takže by to mělo být

Kód: [Vybrat]
iptables -t nat -A PREROUTING -p tcp -i $WAN --dport 1020 -j DNAT --to-destination 10.123.1.12:2030
iptables -A FORWARD -i $WAN -p tcp --dport 2030 -j ACCEPT

Ještě bych NAT i firewall omezil na konkrétní IP adresy, to, že paket přišel přes konkrétní rozhraní mi nepřipadá jako dostatečná identifikace.

Re:DNAT na jiny port
« Odpověď #2 kdy: 16. 10. 2016, 18:32:01 »
Diky, funguje.

Kód: [Vybrat]
iptables -t nat -A PREROUTING -p tcp -i $WAN --dport 1020 -j DNAT --to-destination 10.123.1.12:2030
iptables -A FORWARD -i $WAN -p tcp --dport 2030 -d 10.123.1.12 -j ACCEPT
"Kdo v zájmu bezpečí obětuje část své svobody, v konečném důsledku přijde o svobodu i svou bezpečnost."