Fórum Root.cz
Hlavní témata => Sítě => Téma založeno: tuxmartin 16. 10. 2016, 17:56:12
-
Ahoj, mam problem napsat DNAT pravidla.
Pokud delam DNAT na stejny port, funguje mi:
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.
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?
-
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
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.
-
Diky, funguje.
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