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