Sziasztok!
Sok archivum, meg google után...
Túl régen iptables-eztem már... :(
Az összes howto és a józan ész szerint ez így működik:
(Lejjeb van a topológia, remélem sikerült érthetően leírnom)
iptables -t nat -F
iptables -t nat -A PREROUTING -p tcp --dport 81 -j LOG --log-prefix 'natPREd '
iptables -t nat -A PREROUTING -p tcp --dport 81 -j DNAT --to-destination 192.168.77.81:81
iptables -t nat -A POSTROUTING -p tcp -s 192.168.77.81 -j LOG --log-prefix 'natPOST '
iptables -t nat -A POSTROUTING -p tcp -s 192.168.77.81 -j MASQUERADE
iptables -F
iptables -A FORWARD -p tcp --dport 81 -j LOG --log-prefix 'FORWARD '
iptables -A FORWARD -p tcp --dport 81 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -p tcp -s 192.168.77.81 -j ACCEPT
A Topológia kicsit nyakatekert, de a hálózatot nem én adminolom és nem dűlőzök a rendszergazdával, ezért kell így megoldanom:
ISP->router(10.0.2.11)->Linux(10.0.2.15)
továbbá van még egy gw(10.0.2.1) ami a 192.168.77.0/24-et kezeli a "túloldalán"
A 10.0.2.11-ben van route szabály, ami a 192.168.77.0/24-et a 10.0.2.1 felé irányítja.
A Linux-on a route:
10.0.0.0 * 255.255.0.0 U 0 0 0 eth0
default 10.0.2.11 0.0.0.0 UG 0 0 0 eth0
és így a Linux-on a
nc -v 192.168.77.81 81
a két gw-n keresztül tökéletesen működik (ami nem is csoda) :)
Nos kívülről a 81 es port a "külső" routeren(10.0.2.11) a Linux-ra(10.0.2.15) van forwardolva és utána jönne a fenti iptables-es forward a 192.168.77.81-re. (mert a routeren nem tudom megoldani)
De nem megy :(
Log:
Sep 10 09:35:17 srv1 kernel: natPREd IN=eth0 OUT= MAC=00:50:8d:7a:df:91:00:11:d8:81:64:2d:08:00 SRC=84.236.66.199 DST=10.0.2.15 LEN=60 TOS=0x00 PREC=0x00 TTL=61 ID=5995 DF PROTO=TCP SPT=51916 DPT=81 WINDOW=5840 RES=0x00 SYN URGP=0
Sep 10 09:35:17 srv1 kernel: FORWARD IN=eth0 OUT=eth0 SRC=84.236.66.199 DST=192.167.77.81 LEN=60 TOS=0x00 PREC=0x00 TTL=60 ID=5995 DF PROTO=TCP SPT=51916 DPT=81 WINDOW=5840 RES=0x00 SYN URGP=0
és a második sor ismétlődik, ahogy a kliens újrapróbálkozik.
Természetesen:
cat /proc/sys/net/ipv4/ip_forward
1
és
cat /proc/sys/net/ipv4/conf/eth0/accept_redirects
1
Mit néztem el?
Row
- 2572 megtekintés
Hozzászólások
DST=192.167.77.81
Ez szerintem nem jo. A masodik sorban van.
- A hozzászóláshoz be kell jelentkezni
igen. volt egy ilyen állapota is.
sajnos javíta sem volt jó.
korábbi logot vágtam be véletlenül.
row
- A hozzászóláshoz be kell jelentkezni
elso kerdes nincs type-o valamerre mert a logban (es gondolom a log a copy paste 192.167!! van).
masodik kerdes a 10.0.2.11-ben van-e szabaly arra, hogy ezeket a tovabbitott kereseket hogy kezelje?
Mert szerintem a 10.0.2.11 megprobalja rogton az eredeti forrasahoz kuldeni a csomagot de ez nem fogja fogadni mivel az abban a hitben van, hogy a linuxal kezdte el felvenni a kapcsolatot es tole varja a valaszt (termeszetesen).
- A hozzászóláshoz be kell jelentkezni
'...elso kerdes nincs type-o valamerre mert a logban (es gondolom a log a copy paste 192.167!! van)..."
Feljebb írtam, hogy véletlen egy korábbi log-szeletet vágtam be, ahol még el volt írva.
második kérdésre: ez a 10.0.2.11-számára nem mint egy új csomag jelentkezik? Ami 192.168.77.0/24 felé tart és arra van route szabálya. Vagy?
- A hozzászóláshoz be kell jelentkezni
Most akkor kezdek osszezavarodni:).
Lehetne akkor konkretizalni, hogy annak a gepnek (amirol most beszelunk) mi az IP cime.
eddig annyi van meg, hogy van egy 10.0.2.11-es gep ami az osszes 192.168.77.0/24-re erkezo kerest forwardol a 10.0.2.1-nek ami kezeli a halot.
hogy a kerdesre is valaszoljak
'második kérdésre: ez a 10.0.2.11-számára nem mint egy új csomag jelentkezik?'
Ez igaz de a problema nem is vele van hanem a forras geppel aki kezdemenyezi a kapcsolatot. O kicsit megvan zavarodva, mert elkuldi a kreset x-nek es a valasz y-tol jon holott o talan y-rol nem is tud es ezt a szituaciot nem tudja ertelmezni.
Azt hiszem, bar nemtudom, hogy hogy mukodik bizonyos csomagokat meg tudsz jelolni. Ha szerencsed van akkor esetleg hozaad valamit az egesz csomaghoz es a masik linuxos gepen tudod ezeket szurni.
- A hozzászóláshoz be kell jelentkezni
kiprobalhatod a
iptables -t nat -A PREROUTING -p tcp --dport 81 -j DNAT --to-destination 192.168.77.81:81
iptables -t nat -A PREROUTING -p tcp --dport 81 -j SNAT --to-source (linuxos gep ipcime)
nemtom, hogy ugyanarra a csomagra alkalmazhatsz-e ket szabalyt de szerintem nem.
- A hozzászóláshoz be kell jelentkezni
"...nemtom, hogy ugyanarra a csomagra alkalmazhatsz-e ket szabalyt de szerintem nem...."
Nem tudsz: Unknown error 4294967295
:(
Beletettem még logba:
iptables -A INPUT -p tcp --dport 81 -j LOG --log-prefix 'INPUT '
iptables -A OUTPUT -p tcp --dport 81 -j LOG --log-prefix 'OUTPUT '
az OUTPUT-ban látszani kéne, ha az iptables-ből "továbbhalad" nem?
Nem látszik... :(
Betett végre a rendszergazda egy másik if-et, remélem a klasszikus -i eth0 -o eth1 forward működni fog.
Row
- A hozzászóláshoz be kell jelentkezni
lehet, hogy a forwardban lesz mivel nem a gep a forrasa a csomagnak.
Az pedig erdekes lett volna, hogy hogy lehet megoldani:).
- A hozzászóláshoz be kell jelentkezni
Mea culpa!
1000000 elnézést.
Minden jól állt! Sokkal alapvetőbb:
modprobe iptable_nat
Még 1000 bocs. Régen volt már.
Mióta ezek a broadband routerek vannak elkényelmesedik az ember.
Row
- A hozzászóláshoz be kell jelentkezni
sebaj, pörgess egyet!
- A hozzászóláshoz be kell jelentkezni
megtudnad nezni, hogy a visszajovo forgalom atmegy-e a te gepeden?
Sokat segitenel.
- A hozzászóláshoz be kell jelentkezni
Átmegy, de már kaptam eth1-et, szóval nem releváns...
Ha megy 1 if-el akkor is átmegy
Row
- A hozzászóláshoz be kell jelentkezni
ja bocsi. Azt olvastam, hogy megoldottad.
Csak ha megtundad nezni, hogy a valaszok igy (a jelenlegi mukodo allaptoban) atmennek-e a DNAT-ot vegzo gepen vagy rogton a forrasgephez mennek. Ez segitene megerteni ezt az egesz nat/forwardingot.
- A hozzászóláshoz be kell jelentkezni
hello!
van 2 router, különböző helyen de egy hálózaton és azt szeretném csinálni hogy a hálózatba kötött gépek a router1 en csak http,https,neptun,chat ot használhassák, a többi portot (dc++,torrent,ftp,p2p...stb) meg át akarom irányítani a router2 re.
próbáltam nat-tal de nem működik:
iptables -t nat -A PREROUTING -i eth1 -p tcp --sport 21 -d 192.168.1.1
--dport 3389 -j DNAT --to-destination 192.168.1.2:21--dport 3389 -j DNAT
--to-destination 192.168.1.2:21
router1= (eth1)192.168.1.1/255.255.255.0
router2= (eth1)192.168.1.2/255.255.255.0
Van rá valami megoldás?
- A hozzászóláshoz be kell jelentkezni
Először is: man ip
Ezzel meg tudod oldani.
Vázlat, 99%, hogy nem megy :)
iptables -t mangle -A PREROUTING -s belső háló -m multiport --mport http,https,neptun,chat -j set-mark 0x01 ... ip route add 0.0.0.0/0 table 4 via másik_router ip rule add fwmark 0x01 table 4
- A hozzászóláshoz be kell jelentkezni