Hozzászólások
a következőt szeretném megoldani:
van egy linuxos átjáróm, és több windowsos kliens. internet megosztás működik, tehát a wines kliensekről elérem a webet frankón. de ezen felül kéne egy olyan lehetőség is, hogy a linuxos gép szolgáltatásaként jelenjen meg néhány, a windowsos klienseken futó szolgáltatás.
pl. windowsos gépen fut egy webszerver 80-as porton, és azt szeretném, hogy ez a szerveren elérhető legyen a 8001-es porton
ez megoldható? ha igen, akkor hogyan? iptables-el próbálkoztam, de nem igazán akar sikerülni, nem értek hozzá nagyon... az alábbi parancsig jutottam, sajnos nem megy:
[code:1:ebaa15d820]iptables -A FORWARD -p tcp --sport 8001 --dport 80 -d 10.0.0.2 -j ACCEPT[/code:1:ebaa15d820]
(/proc/sys/net/ipv4/ip_forward tartalma 1)
- A hozzászóláshoz be kell jelentkezni
[code:1:056fb1d76a]iptables -A FORWARD -p tcp --sport 8001 --dport 80 -d 10.0.0.2 -j ACCEPT[/code:1:056fb1d76a]
Ez keves, mert a kulso gep nem a 10.0.0.2-es IP-re kuldi a kerest!
[code:1:056fb1d76a]
iptables -t nat -A PREROUTING -p tcp --dport 80 -j DNAT --to-destination 10.0.0.2 [/code:1:056fb1d76a]
Ez kell neked!
- A hozzászóláshoz be kell jelentkezni
sajnos így sem akar menni...
[code:1:f05d184d53]devel:~# iptables -t nat -A PREROUTING -p tcp --dport 80 -j DNAT --to-destination 10.0.0.2 -v
DNAT tcp opt -- in * out * 0.0.0.0/0 -> 0.0.0.0/0 tcp dpt:80 to:10.0.0.2
devel:~# iptables -L PREROUTING
iptables: Table does not exist (do you need to insmod?)[/code:1:f05d184d53]
- A hozzászóláshoz be kell jelentkezni
hello!
en igy szoktam:
[code:1:3a0afa1f8f]
EZ_A_PORT_LACCIK_KIVULROL=8001
EZ_A_KULSO_IP=111.111.111.111
EZ_A_BELSO_IP=10.0.0.2
EZ_A_BELSO_PORT=80
iptables -t nat -A PREROUTING -p tcp -d $EZ_A_KULSO_IP --dport $EZ_A_PORT_LACCIK_KIVULROL -j DNAT --to-destination $EZ_A_BELSO_IP:$EZ_A_BELSO_PORT
[/code:1:3a0afa1f8f]
Az iptables sor 1 sor :!:
Vagyis a kulso ip x portjara erkezo tcp csomagokat, dnat-olja a belso ip y portjara.
- A hozzászóláshoz be kell jelentkezni
[quote:1e61796575="Phanatic"]sajnos így sem akar menni...
[code:1:1e61796575]devel:~# iptables -t nat -A PREROUTING -p tcp --dport 80 -j DNAT --to-destination 10.0.0.2 -v
DNAT tcp opt -- in * out * 0.0.0.0/0 -> 0.0.0.0/0 tcp dpt:80 to:10.0.0.2
devel:~# iptables -L PREROUTING
iptables: Table does not exist (do you need to insmod?)[/code:1:1e61796575]
Mert ez a tűzfalra a 80-as porton beeső kéréseket küldi tovább, nem a 8001-es porton levőket. Próbáld meg így:
[code:1:1e61796575]iptables -t nat -A PREROUTING -p tcp --dport 8001 -j DNAT --to-destination 10.0.0.2:80[/code:1:1e61796575]
- A hozzászóláshoz be kell jelentkezni
köszi a tippet, de még mindig semmi :( egy "szűz" iptables-re nyomattam most rá:
[code:1:2cf35f2361]devel:~# iptables -t nat -A PREROUTING -p tcp --dport 8001 -j DNAT --to-destination 10.0.0.2:9000
devel:~# iptables -L
Chain INPUT (policy ACCEPT)
target prot opt source destination
Chain FORWARD (policy ACCEPT)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination[/code:1:2cf35f2361]
- A hozzászóláshoz be kell jelentkezni
[quote:901455c260="Phanatic"]sajnos így sem akar menni...
[code:1:901455c260]devel:~# iptables -t nat -A PREROUTING -p tcp --dport 80 -j DNAT --to-destination 10.0.0.2 -v
DNAT tcp opt -- in * out * 0.0.0.0/0 -> 0.0.0.0/0 tcp dpt:80 to:10.0.0.2
devel:~# iptables -L PREROUTING
iptables: Table does not exist (do you need to insmod?)[/code:1:901455c260]
Sajnos kicsit remeg a kezem, a dport ele csak 1 db minuszjel kell.
Tovabba, nem art megadni, hogy csah a kulso halot kezelo device-rol, jovo csomagokat iranyitsa at. Kulonben a bentrol kifele meno HTTPO kereseket is visszadobna a 10.0.0.2-re.
Tehat:
[code:1:901455c260] iptables -t nat -A PREROUTING -i eth0 -p tcp -dport 80 -j DNAT --to-destination 10.0.0.2[/code:1:901455c260]
- A hozzászóláshoz be kell jelentkezni
[quote:ecdab12f00="miq"]Sajnos kicsit remeg a kezem, a dport ele csak 1 db minuszjel kell.
nem ez a probléma, a két mínuszjel a helyes... de továbbra sem működik :(
- A hozzászóláshoz be kell jelentkezni
"iptables -t nat -L" paranccsal probald listazni a szabajokat. Mert ahogy lattam mindenutt csak a -L kapcsolot hasznaltad, ami ez esetben onmagaban nem eleg, mert a szabalyt a nat tablaba irtad.
- A hozzászóláshoz be kell jelentkezni
[quote:f6d777d6e9="miq"][quote:f6d777d6e9="Phanatic"]sajnos így sem akar menni...
[code:1:f6d777d6e9]devel:~# iptables -t nat -A PREROUTING -p tcp --dport 80 -j DNAT --to-destination 10.0.0.2 -v
DNAT tcp opt -- in * out * 0.0.0.0/0 -> 0.0.0.0/0 tcp dpt:80 to:10.0.0.2
devel:~# iptables -L PREROUTING
iptables: Table does not exist (do you need to insmod?)[/code:1:f6d777d6e9]
Sajnos kicsit remeg a kezem, a dport ele csak 1 db minuszjel kell.
Tovabba, nem art megadni, hogy csah a kulso halot kezelo device-rol, jovo csomagokat iranyitsa at. Kulonben a bentrol kifele meno HTTPO kereseket is visszadobna a 10.0.0.2-re.
Tehat:
[code:1:f6d777d6e9] iptables -t nat -A PREROUTING -i eth0 -p tcp -dport 80 -j DNAT --to-destination 10.0.0.2[/code:1:f6d777d6e9]
Nincsen NAT támogatás a kernelben, így nincsen NAT tábla se. Vagy töltsd fel a NAT modult, vagy fodíts új kernelt. Benne NAT támogatással.
[code:1:f6d777d6e9]
IP tables support (required for filtering/masq/NAT)
CONFIG_IP_NF_IPTABLES
-> y/m
Full NAT (Network Address Translation)
CONFIG_IP_NF_NAT
-> y/m
[/code:1:f6d777d6e9]
Hogy a modulnak mi a neve, azt nem tudom, mert mindig bele fordítom.
Utána menni fognak a miq/Elbandi által elmondottak.
Üdv,
Dw.
- A hozzászóláshoz be kell jelentkezni
szerintem ha rendesen működik a netmegosztás, akkor a NAT modul be van töltve... és jelen esetben ez a helyzet... (tehát a 10.0.0.2-ről ki tudok menni a netre a 10.0.0.1-en keresztül)
- A hozzászóláshoz be kell jelentkezni
Szerintem benne van neki a kernelbe a nat, mert ha nem lenne, akkor az szerintem kiirta volna mar akkor, amikor kiadja a
iptables -t nat -A PREROUTING -p tcp --dport 80 -j DNAT --to-destination 10.0.0.2 -v DNAT tcp opt -- in * out * 0.0.0.0/0 -> 0.0.0.0/0 tcp dpt:80 to:10.0.0.2
parancsot.
Viszont a iptables -L PREROUTING parancs -t nat nelkul akkor is ezt irja ki: Table does not exist (do you need to insmod?) ha a nat rendesen be van toltve. (probald ki!)
Egyszoval mindenkepp kell a -t nat -L kapcsolo melle.
- A hozzászóláshoz be kell jelentkezni
[quote:0752bbf02f="Phanatic"]szerintem ha rendesen működik a netmegosztás, akkor a NAT modul be van töltve... és jelen esetben ez a helyzet... (tehát a 10.0.0.2-ről ki tudok menni a netre a 10.0.0.1-en keresztül)
Dumbass vagyok? Lehet.
MASQ-olod a gépeket? Ha igen, akkor benne kell lenni a NAT támogatásnak is.
Csak mi okozza ezt:
iptables: Table does not exist (do you need to insmod?)
Üdv,
Dw.
- A hozzászóláshoz be kell jelentkezni
[quote:3b88ec3284="garuda"]Egyszoval mindenkepp kell a -t nat -L kapcsolo melle.
oh yeah, így tényleg látszik már minden :) ettől függetlenül nem akar menni... :(
- A hozzászóláshoz be kell jelentkezni
[quote:df4171c587="Dwokfur"]
Csak mi okozza ezt:
iptables: Table does not exist (do you need to insmod?)
Az hogy -t nat is kell a parnacsba:
iptables -t nat -L
Mostmar tobbe nem irom le.
- A hozzászóláshoz be kell jelentkezni
Hi!
Egyik ismerosom irt egy kenyelmes scriptet, ami ezt tok jol megoldja.
Megkerdezem tole, hogy publikus-e, es ha igen, akkor bepostolom.
By(t)e
TBS::Antiemes
- A hozzászóláshoz be kell jelentkezni
[quote:6897991eef="antiemes"]Megkerdezem tole, hogy publikus-e, es ha igen, akkor bepostolom.
az nagyon jól jönne, köszi...
- A hozzászóláshoz be kell jelentkezni
A kovetkezo modon lehet megoldani a problemadat. Itt most lehet, hogy lesz par ostobasag, mert en is csak otletekbol, "IQ"-bol, doksi olvasgatas nelkul jottem ra egy baratommal:
1. prerouting (befele)
Kivulrol fogadja a szerver a kereseket. Cel IP cim atalakitas. Input kulso interface
2. postrouting(befele)
A forras cimet at kell irni, kulonben a belso gep, ugy veszi, mintha lokal cimet, kivulrol megcelozta volna valaki, es nem valaszol. Ouput belso interface.
3. forward(visszafele)
interface-k kapcsolodasa belso->kulso
pl:
1
iptables -t nat -I PREROUTING -i ppp0 -p tcp -s xx.xx.251.157 -d xxx.dyndns.org --dport 1521 -j DNAT --to-destination 192.168.16.2
2.
iptables -t nat -I POSTROUTING -o eth0 -p tcp -s xx.xx.251.157 -d 192.168.16.2 --dport 1521 -j SNAT --to-source 192.168.16.250
3.
iptables -A FORWARD -i eth0 -o ppp0 -p tcp --sport 1521 -j ACCEPT
A fenti harom szabaly segitsegevel az egy adott cimrol a ppp0 interface-re es 1521-es porton keresztul engedek be egy gepet a belso halon csucsoulon oracle szerverre. Illetve a belso gep ki tud kommunikalni a kulso gephez.
Alakitsd neked megfeleloen.
Hasznos segitseg a tcpdump. Vizsgald meg a kulonbozo interface-ken, hogy halad at csomogad, illetve vissza.
Sok sikert !
udv. Gabor
- A hozzászóláshoz be kell jelentkezni
[code:1:31f7743925]iptables -A FORWARD -j ACCEPT -p tcp --dport 8001
iptables -t nat -A PREROUTING -i ppp0 -p tcp --dport 8001 -j DNAT --to 10.0.0.2:80
iptables -A FORWARD -j ACCEPT -p udp --dport 8001
iptables -t nat -A PREROUTING -i ppp0 -p udp --dport 8001 -j DNAT --to 10.0.0.2:80
[/code:1:31f7743925]
- A hozzászóláshoz be kell jelentkezni
Az udps sorokra nem hiszem, hogy szükség van.
- A hozzászóláshoz be kell jelentkezni
az, hogy kell-e snat, csak azon múlik, hogy az (intelligens switchek) a gépek között megeszik-e a nem helyi hálós ip címet (vlan konfig, etc), ill a célgép szúr-e ip-re. Ha egyik sem kell, akkor egy sima célcsere (DNAT) elég, és akkor tkp dmz*ó-ben lesz a belső gép. Ha a fentiek bármelyike kell, akkor viszont át kell írni a forráscímet is + logolni a kapcsolatot (hiszen csak így állapítható meg, honnan jött a kérés) a külső gépen.
- A hozzászóláshoz be kell jelentkezni
Hi!
A scriptet nem en irtam!!! Ne nekem koszonjetek :)
A portforward script:
///// /etc/init.d/portforward
#!/bin/bash
#
# Portforwarding service with iptables v0.2.0
#
# (c)Copyright Attee
#
CONFIG=/etc/portforward.conf
IPTABLES=/sbin/iptables
if !( source $CONFIG ) ; then
echo "Cannot find config file $CONFIG"
echo "Please check!"
exit 0
fi
source $CONFIG
# echo ${HOSTS[*]} ${PORTTO[*]} ${PORTIN[*]}
PID=/var/run/portforward.pid
# test -x $IPTABLES || exit 0
# echo "Portforward script v0.2.0 - (c)Copyright Attee 2003"
if ( test ${#PORTTO[*]} -ne ${#PORTIN[*]} || test ${#PORTIN[*]} -ne ${#HOSTS[*]} ) ; then
echo "Config file $CONFIG is checked. Status: ERROR"
echo "Please check the number of hosts/ports."
exit
fi
case "$1" in
start)
if [ ! -e $PID ] ; then
echo -n "Starting portforwarding (iptables): "
for (( i=0; i<${#HOSTS[*]}; i++)); do
$IPTABLES -A PREROUTING -t nat -p tcp -d $SERVER --dport ${PORTIN[$i]} -j DNAT --to ${HOSTS[i]}:${PORTTO[$i]}
$IPTABLES -A PREROUTING -t nat -p udp -d $SERVER --dport ${PORTIN[$i]} -j DNAT --to ${HOSTS[$i]}:${PORTTO[$i]}
done
cp $CONFIG $PID
echo "done"
else
echo "Portforwarding is already running! "
fi
;;
stop)
if [ -e $PID ] ; then
source $PID
echo -n "Stopping portforwarding (iptables): "
for (( i=0; i<${#HOSTS[*]}; i++)); do
$IPTABLES -D PREROUTING -t nat -p tcp -d $SERVER --dport ${PORTIN[$i]} -j DNAT --to ${HOSTS[$i]}:${PORTTO[$i]}
$IPTABLES -D PREROUTING -t nat -p udp -d $SERVER --dport ${PORTIN[$i]} -j DNAT --to ${HOSTS[$i]}:${PORTTO[$i]}
done
rm $PID
echo "done"
else
echo "Portforwarding is not running! Cannot stop it!"
fi
;;
restart)
$0 stop
$0 start
;;
show)
if [ -e $PID ] ; then
source $PID
echo "Portforwarding is currently running."
echo -e "From: \t\t\tTo:"
for (( i=0; i<${#HOSTS[*]}; i++)); do
echo -e "$SERVER:${PORTIN[i]}\t${HOSTS[i]}:${PORTTO[i]}"
done
else
echo "Portforwarding is currently not running."
fi
;;
*)
echo "Config file $CONFIG is checked. Status: OK"
echo "Usage: $0 {start|stop|restart|show}"
esac
/////// /etc/portforward.conf:
# Portforward config file
# Default location is /etc/portforward.conf
# Please set the variables properly
# SERVER is the IP address of the server you proveide the service on
SERVER=193.6.32.225
# HOSTS is the array variable af host you provide the service to
# For example HOSTS=(10.0.0.203 10.0.0.24 10.0.0.204)
HOSTS=(10.0.0.203 10.0.0.203 10.0.0.203 10.0.0.203 10.0.0.203 10.0.0.203 10.0.0.203 10.0.0.139 10.0.0.92 10.0.0.92 10.0.0.127 10.0.0.129 10.0.0.203 10.0.0.97 10.0.0.97 10.0.0.92 10.0.0.92)
PORTTO=(6001 5901 9177 9176 9192 22 80 12203 80 22 5347 80 2121 80 3306 3306 6881)
PORTIN=(6001 5901 9177 9176 9192 2222 2080 12203 60080 60022 5347 30080 2121 50080 33306 43306 6881)
By(t)e
TBS::Antiemes
- A hozzászóláshoz be kell jelentkezni
Ez gagyi. Akkor mar tanulja meg normalisan a csomagszurest.
asd
- A hozzászóláshoz be kell jelentkezni
Hi!
Mi vele a bajod?
By(t)e
TBS::Antiemes
- A hozzászóláshoz be kell jelentkezni
Tobbek kozt az, hogy ebbol a zsonglorkodesbol az user egyaltalan nem tanul.
asd
- A hozzászóláshoz be kell jelentkezni
Hi!
Ebben maximalisan igazad van. Viszont ha mar egyszer van egy ilyen cucc, akkor gondoltam, beteszem ide. Egyebkent, be kell valljam oszinten, az iptables-hez nem ertek.
By(t)e
TSB::Antiemes
- A hozzászóláshoz be kell jelentkezni
Hi!
A fenti script eleg sokaig midnenfele hiba nelkul mukodott, de egy ideje nem akar menni. Azt irja ki:
[code:1:6a3a274928]Bad argument `1234:'
Try `iptables -h' or 'iptables --help' for more information.
Bad argument `1234:'
Try `iptables -h' or 'iptables --help' for more information.
Bad argument `50080:'
Try `iptables -h' or 'iptables --help' for more information.
Bad argument `50080:'
Try `iptables -h' or 'iptables --help' for more information.
Bad argument `30080:'
Try `iptables -h' or 'iptables --help' for more information.
Bad argument `30080:'
Try `iptables -h' or 'iptables --help' for more information.
[/code:1:6a3a274928]
Gondolom az a problema, hogy frissult az iptables, es max a szintaxisa; a --dport valahogy maskepp mukodik. Mit kell mashogy megadni neki?
Elore is koszi.
By(t)e
TBS::Antiemes
- A hozzászóláshoz be kell jelentkezni