Port forward

Fórumok

Sziasztok!

Lenne egy port forward kérdésem:
Adott egy debian woody(tudom régi) 2 hálókártyával. Eth0-on jön az ADSl eth1 osztja szét. Az ADSL fix IP-s
szeretném megoldani, hogy a 80 port egy belső IP-re mutasson:
Az alábbival probálkoztam:
iptables -A FORWARD -d 10.0.0.242 -p tcp --dport 80 -j ACCEPT
iptables -t nat -A POSTROUTING -o eth0 -j SNAT --to $kulsoip

Sajnos nem akar menni. Mit rontok el???

Hozzászólások

sysctl -w net.ipv4.ip_forward=1
iptables -t nat -A POSTROUTING -s $kulsoip -o eth0 -j SNAT --to-destination $kulsoip
Bár csak tipp

----
올드보이
http://molnaristvan.eu/

A sysctl bekapcsolja az ip forwardingot, a --to-destination -t meg elírtam, az helyesen --to-source.

Nade muti már a többi rulet is!
iptables-save -el pl.

Lehet még az is, hogy a FORWARD láncon nincs engedve a port a net felől.

Esetleg olvasd el ezt:
http://molnaristvan.eu/2011/01/16/az-en-tuzfal-scriptem/

----
올드보이
http://molnaristvan.eu/

"a --to-destination -t meg elírtam, az helyesen --to-source."
Leginkább nem. Abból ez lenne:

iptables -t nat -A POSTROUTING -s $kulsoip -o eth0 -j SNAT --to-source $kulsoip

Így ugyanarra az IP-re source natolnál, mint ami az eredeti forráscím volt. Tehát az egyik a belső IP kellene hogy legyen. Valamint a kérdező kívülről szeretne bejönni, és nem bentről kimenni. Tehát minden fordítva.

A natolással nincs gond, a DNAT szépen kezeli. Amelyik kapcsolatot beengedte, azt vissza is engedi. Viszont a filter táblában a FORWARD-ban csak egy irányt írtál:

iptables -A FORWARD -d 10.0.0.242 -p tcp --dport 80 -j ACCEPT

Ehhez még kell ennek a fordítottja is:

iptables -A FORWARD -s 10.0.0.242 -p tcp --sport 80 -j ACCEPT

Persze ez egy kicsit "csúnya" megoldás, meg lehet írni a state modul használatával is:

iptables -A FORWARD -p tcp -d 10.0.0.242 --dport 80 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A FORWARD -p tcp -s 10.0.0.242 --sport 80 -m state --state ESTABLISHED -j ACCEPT

Lehet még cifrázni sokféleképpen.

Amit mondtam értve azalatt, hogy a nat tablában is megvan a megfelelő rész, meg általában az esetek 90%-ban a forward szabályban ki szokták engedni a teljes belső tartományt, nem port alapján szűrve, illetve state alapján. A kimenőbe azért raknék meg egy relatedet is amúgy, ha már. Bár nem értek hozzá.

Azért különösen érdekes ez a tűzfalkérdés, mert egy-egy szabályt kevés esetben lehet önmagában értelmezni, a megelőzőek, valamint az egyéb követelmények ismerete nélkül. Én most csak erre az egy FORWARD-os szabályra reagáltam, és azért, hogy csak ezt a részt kiemelve is működőképes legyen. A saját tűzfalszabály-rendszeredben a kontextusba helyezés rád vár, te ismered. Amit a RELATED-ről írsz, jogos, a port alapú szűrés illetve az állapot kérdése pedig feleadat- és megítélésfüggő dolog. Csak nem akartam litániát írni arról, hogy mi lehet a szerepe a RELATED-nek, milyen összefüggés lehet a már meglévő szabályaiddal. A FORWARD kérdését túlragoztuk, a NAT pedig remélem megy.

Sziasztok!

Alább az iptables -L lista. Továbbra sem érem el kintről a 10.0.0.242-es gépet. Valaki megtenné, hogy összefoglalná mit rontok el igazán?

iptables -L

Chain INPUT (policy ACCEPT)
target prot opt source destination
ACCEPT all -- anywhere anywhere
DROP tcp -- anywhere anywhere tcp dpt:ssh
DROP udp -- anywhere anywhere udp dpt:ssh
ACCEPT tcp -- localnet/24 anywhere tcp dpt:netbios-ssn
ACCEPT udp -- localnet/24 anywhere udp dpt:netbios-ssn
DROP tcp -- anywhere anywhere tcp dpt:netbios-ssn
DROP udp -- anywhere anywhere udp dpt:netbios-ssn
DROP tcp -- anywhere anywhere tcp dpt:telnet
DROP udp -- anywhere anywhere udp dpt:23
ACCEPT tcp -- localnet/24 anywhere tcp dpt:nntps
ACCEPT udp -- localnet/24 anywhere udp dpt:nntps
ACCEPT tcp -- host-212-92-20-152.wave-net.hu anywhere tcp dpt:nntps
ACCEPT udp -- host-212-92-20-152.wave-net.hu anywhere udp dpt:nntps
ACCEPT tcp -- almos.vein.hu anywhere tcp dpt:nntps
ACCEPT udp -- almos.vein.hu anywhere udp dpt:nntps
ACCEPT tcp -- host-94-248-135-131.kabelnet.hu anywhere tcp dpt:nntps
ACCEPT udp -- host-94-248-135-131.kabelnet.hu anywhere udp dpt:nntps
DROP tcp -- anywhere anywhere tcp dpt:nntps
DROP udp -- anywhere anywhere udp dpt:nntps

Chain FORWARD (policy ACCEPT)
target prot opt source destination
ACCEPT tcp -- anywhere 10.0.0.242 tcp dpt:www
ACCEPT tcp -- 10.0.0.242 anywhere tcp spt:www

Chain OUTPUT (policy ACCEPT)
target prot opt source destination
ACCEPT all -- anywhere anywhere
ACCEPT icmp -- anywhere anywhere

iptables -t nat -nvL:

Chain PREROUTING (policy ACCEPT 47852 packets, 3264K bytes)
pkts bytes target prot opt in out source destination
0 0 DNAT all -- eth0 * 0.0.0.0/0 $kulsoip to:10.0.0.242

Chain POSTROUTING (policy ACCEPT 35946 packets, 2283K bytes)
pkts bytes target prot opt in out source destination
33105 1966K MASQUERADE all -- * * 10.0.0.0/24 0.0.0.0/0

Chain OUTPUT (policy ACCEPT 35949 packets, 2284K bytes)
pkts bytes target prot opt in out source destination

iptables -nvL FORWARD:
Chain FORWARD (policy ACCEPT 2257K packets, 1856M bytes)
pkts bytes target prot opt in out source destination
0 0 ACCEPT tcp -- * * 0.0.0.0/0 10.0.0.242 tcp dpt:80
0 0 ACCEPT tcp -- * * 10.0.0.242 0.0.0.0/0 tcp spt:80

Köszi előre is

0 0 DNAT all -- eth0 * 0.0.0.0/0 $kulsoip to:10.0.0.242

"Eth0-on jön az ADSl"
Routered van? Ha nincs, akkor a ppp0-on kellene ezt megejteni, nem a fizikai interfészen.

Továbbá előzőleg lemaradt a NAT mögül a protokoll és a port:

iptables -t nat -A PREROUTING -i ppp0 -p tcp -d $kulsoip --dport 80 -j DNAT --to-destination 10.0.0.242