adott egy gép, két hálókarival.
eth1 - külső IP (77.xx.xx.xx)
eth2 - belső IP (192.xx.xx.xx)
átirányítás lenne:
-----------
#!/bin/sh
echo 1 > /proc/sys/net/ipv4/ip_forward
modprobe ip_conntrack_ftp
modprobe ip_nat_ftp
iptables -t nat -F
iptables -P INPUT ACCEPT
iptables -F INPUT
iptables -P OUTPUT ACCEPT
iptables -F OUTPUT
iptables -P FORWARD ACCEPT
iptables -F FORWARD
iptables -t nat -A PREROUTING -p tcp --destination-port 80 -i eth1 -j DNAT --to-destination 192.xx.xx.xx:8080
-----------
Azonban nem muxik!
De ha egy harmadik hálózatba irányítom, akkor megy.
iptables -t nat -A PREROUTING -p tcp --destination-port 80 -i eth1 -j DNAT --to-destination 88.xx.xx.xx:8080
A default gw: 77.xx.xx.yy
Mit hagytam figyelmen kívül?
- 2362 megtekintés
Hozzászólások
postrouting-ba egy masquerade vagy snat
- A hozzászóláshoz be kell jelentkezni
Ez azért így nem pontos, csak akkor kellene, ha a 192.xx.xx.xx külön gép, és a default route-ja nem efelé mutat.
- A hozzászóláshoz be kell jelentkezni
a kérdés az volt, hogy mit hagyott figyelmen kívül
továbbá, ejsze erre a "kolléga" is rájön, ha már a "linux-haladó" fórumba írt...
- A hozzászóláshoz be kell jelentkezni
+1
iptables -t nat -A POSTROUTING -s 192.168.111.0/255.255.255.0 ! -d 192.168.111.0/255.255.255.0 -j MASQUERADE
- A hozzászóláshoz be kell jelentkezni
Elfelejtettem írni, ez van még benne a szkriptben:
iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADE
ezzel sem megy, meg azzal sem, amit írtál.
a TCPDUMP azt dobja ki, hogy az eth1-re bejön ugyan a kérés, de mintha nem továbbítaná
az eth2-es hálózat felé.
- A hozzászóláshoz be kell jelentkezni
bocsanat, igen, az me'g akartam irni hogy a dnat szabalyban is legyen src/dst alapjan szelekcio. azaz a nat tablaban valami ilyesmi:
-A PREROUTING -s ! 192.168.111.0/255.255.255.0 -d 77.88.99.11 -i eth1 -p tcp -m tcp --dport 80 -j DNAT --to-destination 192.168.111.222:8080
-A POSTROUTING -s 192.168.111.0/255.255.255.0 ! -d 192.168.111.0/255.255.255.0 -j MASQUERADE
de a legtisztabb, szerintem, ha egyreszt ide egy `iptables-save` kimenetet masolsz be masreszt te is egy `iptables-restore`-val alakitod ki a szabalyaidat es nem `iptables` egyesevel vett hasznalataval.
- A hozzászóláshoz be kell jelentkezni
Ez sem megy, de legalabb mar van valasz a 77.xx.xx.xx-ről az internetes kérő gépnek, méghozzá az, hogy "nem lehet csatlakozni". Eddig nem volt válasz, időtúllépés volt.
- A hozzászóláshoz be kell jelentkezni
"méghozzá az, hogy "nem lehet csatlakozni"
A kérdés, hogy mi ez (ICMP Unreachable vagy TCP reset), és mi a forrása (a speciális eszköz, vagy a ez a gép, esetleg ennek a gépnek a tűzfala). Tcpdump.
- A hozzászóláshoz be kell jelentkezni
16:06:15.282283 IP 89.132.193.xx.64691 > 77.xx.xx.xx.80: S 3066131633:3066131633(0) win 16384
16:06:15.282695 IP 77.xx.xx.xx.80> 89.132.193.xx.64691: R 0:0(0) ack 3066131634 win 0
16:06:21.821274 IP 89.132.193.xx.64691 > 77.xx.xx.xx.80: S 3066131633:3066131633(0) win 16384
16:06:21.821459 IP 77.xx.xx.xx.80 > 89.132.193.xx.64691: R 0:0(0) ack 1 win 0
Reset, Ack-ot ad vissza, néghozzá a publikus IP-ről.
- A hozzászóláshoz be kell jelentkezni
"eth2 - belső IP (192.xx.xx.xx)"
"iptables -t nat -A PREROUTING -p tcp --destination-port 80 -i eth1 -j DNAT --to-destination 192.xx.xx.xx:8080"
Tehát a TCP/8080 ugyanezen a gépen van, mint ahova ezt a szabályt beírtad?
Ha igen, akkor ez így elég lenne, amennyiben tényleg van a 8080-on valami.
Ha nem, és másik gép, akkor kérdés, hogy azon a gépen a default route merre mutat, valamint nincs-e ott szűrve tűzfallal, és hallgat-e a 8080-as porton.
Egy-egy tcpdump ilyenkor sokat segíthet.
- A hozzászóláshoz be kell jelentkezni
A 8080-as gép az eth2 hálózatában való másik gép.
a ket halokartyas geprol be lehet telnetelni ra...azon pedig nem tudok log-ot nezni, mert speciális eszköz.
- A hozzászóláshoz be kell jelentkezni
A 8080-as gép default route-ja hova mutat? A DNAT-oló gépre?
- A hozzászóláshoz be kell jelentkezni
Ezt sajna nem látom most, mert nem érem el a 8080-as gépet itthonról. Gondolom a eth2 IP címe lesz a default gw-je. Azt a gépet nem én konfiguráltam, de a telnet 192.xx.xx.xx 8080 működik rá a két hálókaris gépről.
- A hozzászóláshoz be kell jelentkezni
A két hálózati kártyás gépről eléred, mert onnan telnetelni is tudsz rá. Ha telneten, SSH-n vagy weben elérhető a felülete, akkor nyert ügy távolról is.
- A hozzászóláshoz be kell jelentkezni
Csak webes felülete van, azt meg sajna konzolon nem tudom használni (lynx-sel sem). Csak akkor érném el, ha az itthoni gépem abban a hálóban lenne, pont azt szeretném, hogy PREROUTING-gal itthonról is elérjem weben.
- A hozzászóláshoz be kell jelentkezni
"az eth1-re bejön ugyan a kérés, de mintha nem továbbítaná az eth2-es hálózat felé."
Na jó, akkor menjünk sorba! Konkrét kérdések:
Ezen a két hálózati kártyás gépen (ahol 192.xx.xx.xx a speciális eszköz címe):
ping -I eth1 -c 5 192.xx.xx.xx
telnet -b 77.xx.xx.xx 192.xx.xx.xx 8080
iptables -nvL FORWARD; iptables -t nat -nvL
tcpdump -i eth2 -nvvvs 0 host 192.xx.xx.xx
ifconfig eth2
vagy
ip addr show eth2
A tcpdump közben kívülről próba. A ping és telnet közben is lehet tcpdumpolni,
"nem tudok log-ot nezni, mert speciális eszköz"
De a hálózati beállításait minden bizonnyal meg tudod nézni. Mi az IP, maszk és a default gateway?
- A hozzászóláshoz be kell jelentkezni
A speciális gép a 192.168.10.53 (egy másik gép) és a "kéthálókaris gép" eth2 IP címe 192.168.10.1
eth2 Link encap:Ethernet HWaddr 00:02:44:AD:xx:xx
inet addr:192.168.10.1 Bcast:192.168.10.255 Mask:255.255.255.0
ping -I eth1 192.168.10.53........nem megy
ping -I eth2 192.168.10.53........megy
telnet -b 77.xx.xx.xx 192.168.10.53 8080.......nem megy
telnet 192.168.10.53 8080.......megy
tcpdump -i eth2 -nvvvs 0 host 192.xx.xx.xx esetre semmi sem jelenik meg "kívülről próbakor".
Jelenlegi szabály:
-A PREROUTING -s ! 192.168.10.0/255.255.255.0 -d 77.xx.xx.xx -i eth1 -p tcp -m tcp --dport 80 -j DNAT --to-destination 192.168.10.53:8080
-A POSTROUTING -s 192.168.10.0/255.255.255.0 ! -d 192.168.10.0/255.255.255.0 -j MASQUERADE
Mivel a 77.x.x.x gép is egy "belső gép" publikus IP-vel, emiatt egy tűzfal van még előtte, ez a 77.y.x.x, ezen a gépen a FORWARD szabályon van átengedve a 77.x.x.x IP-hez a 80-as port.
- A hozzászóláshoz be kell jelentkezni
telnet -b 77.xx.xx.xx 192.168.10.53 8080.......nem megy
telnet 192.168.10.53 8080.......megy
Ez lesz a gond.
Most vagy nem ide mutat a .10.53-n a default router, azaz ha a 77-es címedről próbálsz bejutni rá, akkor máshova küldi a válasz csomagokat, vagy van rajta tűzfal, és eleve be sem enged másik forráscímről, vagy a harmadik eset lehetne, ha a két hálókártyás gépeden lenne valami tűzfalazás (ami nem engedi vissza a válaszokat a .10.53-ról - de ezt korábban írtad, hogy most minden tűzfalszabály ACCEPT ezen a gépen).
Tehát az első kettő opció valamelyike van. Azaz vagy tűzfal/security beállítások miatt csak a 192.168.10.x-es hálózatról tudod megnézni a .10.53-at, vagy a default routere valahova máshova mutat.
Mind a két problémán lehet segíteni azzal, ha egy
-A POSTROUTING ! -s 192.168.10.0/255.255.255.0 -d 192.168.10.53 -j MASQUERADE
szabályt is beraksz, igaz, innentől kezdve a .10.53-n nem fogod látni, hogy ki nézegeti őt távolról, mert a két hálókártyás gép IP címével fog rajta megjelenni az összes kliens.
- A hozzászóláshoz be kell jelentkezni
Bingó! kösz az ötleteket.
- A hozzászóláshoz be kell jelentkezni
---
- A hozzászóláshoz be kell jelentkezni
- A hozzászóláshoz be kell jelentkezni