Portál AbcLinuxu, 12. května 2025 15:41

Dotaz: Nefunguje port forwarding v iptables

21.8.2009 13:34 Tibor
Nefunguje port forwarding v iptables
Přečteno: 1084×
Odpovědět | Admin

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: "

Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

21.8.2009 13:39 Zdenek
Rozbalit Rozbalit vše Re: Nefunguje port forwarding v iptables
Odpovědět | | Sbalit | Link | Blokovat | Admin
sysctl net.ipv4.ip_forward=1 ?
21.8.2009 14:40 Tibor
Rozbalit Rozbalit vše Re: Nefunguje port forwarding v iptables

jo to mam zaple

 

# Zapneme routovani paketu
  echo "1" > /proc/sys/net/ipv4/ip_forward
 

21.8.2009 15:17 cz-helper | skóre: 5
Rozbalit Rozbalit vše Re: Nefunguje port forwarding v iptables
Odpovědět | | Sbalit | Link | Blokovat | Admin

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 ;-)

21.8.2009 15:25 Tibor
Rozbalit Rozbalit vše Re: Nefunguje port forwarding v iptables

zkusil jsem, stale nic. :-(

uz nad tim maturuju 4dni.

je nejaka alterantiva na iptables pro presmerovani portu?

kozzi avatar 21.8.2009 15:31 kozzi | skóre: 55 | blog: vse_o_vsem | Pacman (Bratrušov)
Rozbalit Rozbalit vše Re: Nefunguje port forwarding v iptables
Odpovědět | | Sbalit | Link | Blokovat | Admin
no to -i $INET1_IFACE tam nedavej a jeste bys tam mel dat -d adresa_ktera_ma_byt_prelozena
Linux je jako mušketýři "jeden za všechny, všichni za jednoho"
22.8.2009 09:35 pht | skóre: 48 | blog: pht
Rozbalit Rozbalit vše Re: Nefunguje port forwarding v iptables
To -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.
In Ada the typical infinite loop would normally be terminated by detonation.
21.8.2009 16:35 MMichal | skóre: 21
Rozbalit Rozbalit vše Re: Nefunguje port forwarding v iptables
Odpovědět | | Sbalit | Link | Blokovat | Admin

Není náhodou potřeba i zpětný překlad zdrojové adresy pomocí SNAT v POSTROUTINGu ?

21.8.2009 16:48 cz-helper | skóre: 5
Rozbalit Rozbalit vše Re: Nefunguje port forwarding v iptables

To by jiz nemelo byt potreba. Bez toho by to jiz melo slapat...

jinak diky Kozzi, to jsem prehledl, souhlasim s tvou poznamkou...

21.8.2009 23:53 NN
Rozbalit Rozbalit vše Re: Nefunguje port forwarding v iptables

Dej si tam do zacatku cistej forward a zjisti, jestli ti to vubec korektne natuje:

iptables -A FOWARD -j ACCEPT

NN

22.8.2009 09:58 cz-helper | skóre: 5
Rozbalit Rozbalit vše Re: Nefunguje port forwarding v iptables

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

22.8.2009 19:49 Tibor
Rozbalit Rozbalit vše Re: Nefunguje port forwarding v iptables
Odpovědět | | Sbalit | Link | Blokovat | Admin

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.

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.