Portál AbcLinuxu, 12. května 2025 15:41
Ahoj vsichni.
mam takovy problem. Vse mi funguje v nastaveni iptables akorat port forwarding ne. Muze se nekdo na to mrknout co mam zle?
Dekuji.
Tibor
# Retezec FORWARD
# Navazovani spojeni ala Microsoft -
# Paket navazuje spojeni, ale nema nastaveny priznak SYN, pryc s nim
$IPTABLES -v -A FORWARD -p tcp ! --syn -m state --state NEW -j DROP
# Rezervovane adresy na internetovem rozhrani
$IPTABLES -A FORWARD -i $INET1_IFACE -j IN_FW
# Routing zevnitr site ven
$IPTABLES -v -A FORWARD -o $INET1_IFACE -j ACCEPT
# Port forwarding
$IPTABLES -v -t nat -A PREROUTING -p tcp -i $INET1_IFACE --dport 3389 -j DNAT --to 192.168.5.92:3389
$IPTABLES -v -A FORWARD -i $INET1_IFACE -o $LAN1_IFACE -p tcp -d 192.168.5.92 --dport 3389 -j ACCEPT
$IPTABLES -v -t nat -A PREROUTING -p tcp -i $INET1_IFACE --dport 27015 -j DNAT --to 192.168.5.92:27015
$IPTABLES -v -A FORWARD -i $INET1_IFACE -p tcp -d 192.168.5.92 --dport 27015 -j ACCEPT
$IPTABLES -v -t nat -A PREROUTING -p tcp -i $INET1_IFACE --dport 54000 -j DNAT --to 192.168.5.92:54000
$IPTABLES -v -A FORWARD -i $INET1_IFACE -p tcp -d 192.168.5.92 --dport 54000 -j ACCEPT
$IPTABLES -v -t nat -A PREROUTING -p tcp -i $INET1_IFACE --dport 3390 -j DNAT --to 192.168.5.94:3390
$IPTABLES -v -A FORWARD -i $INET1_IFACE -p tcp -d 192.168.5.94 --dport 3390 -j ACCEPT
# Routing zvenku dovnitr pouze pro navazana spojeni (stavovy firewall)
$IPTABLES -v -A FORWARD -i $INET1_IFACE -o $LAN1_IFACE -m state --state ESTABLISHED,RELATED -j ACCEPT
# Ostatni pakety budou zahozeny, tak je budeme logovat (12 x 5 pkt/hod)
$IPTABLES -A FORWARD -j LOG --log-prefix "forward: "
$IPTABLES -A FORWARD -m limit --limit 12/h -j LOG --log-prefix "forward drop: "
Zapis vypada vcelku dobre, nicmene zkusil bych "rozepsat" --to (parametr DNAT) na cely tvar --to-destination
$IPTABLES -v -t nat -A PREROUTING -p tcp -i $INET1_IFACE --dport 3389 -j DNAT --to-destination 192.168.5.92:3389
Dej vedet
-i
by nemělo vadit, spíš naopak; -d
by tam samozřejmě mělo být, a pak v tom forward accept by možná měla být tatáž adresa co v preroutingu u -d
.
Není náhodou potřeba i zpětný překlad zdrojové adresy pomocí SNAT v POSTROUTINGu ?
To by jiz nemelo byt potreba. Bez toho by to jiz melo slapat...
jinak diky Kozzi, to jsem prehledl, souhlasim s tvou poznamkou...
Dej si tam do zacatku cistej forward a zjisti, jestli ti to vubec korektne natuje:
iptables -A FOWARD -j ACCEPT
NN
Pripadne muzes zkusit nejmene restriktivni zapis s tim, aby to delalo to co chces, tedy
$IPTABLES -t nat -A PREROUTING -p tcp --dport 3389 -j DNAT --to-destination 192.168.5.92:3389
Pokud to bude slapat, muzes zacit pridavat dalsi upresneni, co ma byt presmerovano
Diky za odpovedi
Zajimave je ze forward na port 54000 funguje. A kdyz dam iptables -a forward -j accept na zacatek tak jede aj port 3389 ale nefunguje 27015.
A kdyz ktomu pridam -d tak nejede ani jeden.
dost matouci. Nevim co stim.
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.