Fórum Root.cz

Hlavní témata => Sítě => Téma založeno: tuxmartin 16. 10. 2016, 17:56:12

Název: DNAT na jiný port
Přispěvatel: tuxmartin 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?
Název: Re:DNAT na jiny port
Přispěvatel: Filip Jirsák 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.
Název: Re:DNAT na jiny port
Přispěvatel: tuxmartin 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