Sziasztok!
Van két hálózatom: 10.99.0.0/16 és 192.168.1.0/24. A gateway-em a 10.99.1.1-en (eth0), 10.99.5.5-ön (eth0:1) és a 192.168.1.1-en (eth1) van. (továbbítja a csomagokat a két hálózat között) Van két gépem a két oldalon: 10.99.5.6-en és a 192.168.1.234-en. Hogy lehet azt megoldani iptables-el, hogyha a 192.168.1.234-ről küldött csomagot a 10.99.5.6-ra küldje, de úgy mintha a 10.99.5.5-ről jött volna. Ha viszont a 10.99.5.6 küld csomagot a 10.99.5.5-re, akkor az továbbküldje a 192.168.1.234-re. Ez ha jól sejtem IP hamisítás, de mégis használnom kell, mert csak így tudom megoldani, hogy a kliens-szerver között ide-oda lehessen kommunikálni pontosan az adott géppel.
Előre is köszönöm a segítséget!
- 1549 megtekintés
Hozzászólások
Egy rajz sokat segítene.
-
budacsik
- A hozzászóláshoz be kell jelentkezni
Jogos! :)
Viszont mivel ide nem tudok képet küldeni, ezért megpróbálom karakteresen lerajzolni:
--------------------------
| 192.168.1.234 (kliens) |
--------------------------
|
-----------------
| 192.168.1.1 |
| (eth1) |
| |
| (tűzfal) |
| |
| 10.99.5.5 |
| (eth0:1) |
| 10.99.1.1 |
| (eth0) |
-----------------
|
-----------------------
| 10.99.5.6 (szerver) |
-----------------------
Bocsi a csúnya rajzért. Elvileg az a cél, hogy a gépek (kliens-szerver) ne lássák hogy egy tűzfalon mennek keresztül, hanem a 10.99.5.6-os szerver azt higyje, hogy a kliens a 10.99.5.5-ről jön. (holott az a 192.168.1.234-en figyel) Ezt persze meg lehetne úgy oldani, hogy az eth0-ára felveszem a 10.99.5.5-öt és az eth0:1-re a 10.99.1.1-et, viszont mivel több ilyen klienssel is kell tartanom a kapcsolatot (például a 192.168.1.235-el, amire azt szeretném hogy mondjuk a 10.99.5.4-nek lássa a szerver), ezért ez nem jó megoldás.
Remélem most már kicsivel érthetőbb, de nyugodtan kérdezz, ha nem érted a problémát, mert nem hétköznapi, az biztos...
- A hozzászóláshoz be kell jelentkezni
Áhh, szétesett... Szóval van 3 doboz (gép), aminek a közepén a tűzfal van...
---------------------------
|192.168.1.234(kliens)|
---------------------------
|
|
|
----------------
|192.168.1.1
|(eth1)
|
|(tűzfal)
|
|10.99.5.5
|(eth0:1)
|10.99.1.1
|(eth0)
----------------
|
|
|
-----------------------
|10.99.5.6 (szerver)|
-----------------------
- A hozzászóláshoz be kell jelentkezni
Ha a kérés nem csak az egyes csomagokra vonatkozik, hanem működő kétirányú kapcsolat kell, akkor SNAT/DNAT. Illetve ha az az megfelelő értelmezése a "a 192.168.1.234-ről küldött csomagot a 10.99.5.6-ra küldje"-nek, hogy a 192.168.1.234-ről a 10.99.5.5-nek küldött csomagot a 10.99.5.6-ra küldje, valamint a "192.168.1.234-ről küldött csomagot a 10.99.5.6-ra küldje" helyett 192.168.1.234-ről a 10.99.5.6 felé küldött csomagot a 10.99.5.6-ra küldje. Körülbelül valami ilyesmi lehet:
Az eth0->eth1 irány egy source NAT:
iptables -o eth0 -t nat -A POSTROUTING -s 192.168.1.234 -d 10.99.5.6 -j SNAT --to-source 10.99.5.5
Az eth1->eth0 irány pedig egy destination NAT:
iptables -i eth1 -t nat -A PREROUTING -s 10.99.5.6 -d 10.99.5.5 -j DNAT --to-destination 192.168.1.234
- A hozzászóláshoz be kell jelentkezni
Szuper!
Szerintem erre gondoltam! Este kipróbálom. Ha mégsem jó, akkor írok, mindenesetre köszönöm szépen!
- A hozzászóláshoz be kell jelentkezni
Kipróbáltam és valami nem okés. Megpróbálom leírni a csomagok
útvonalát, hátha úgy érthetőbb a kérdésem.
A 192.168.1.234-en fut egy kliens. (mondjuk egy Linux, ami-n fut egy FTP szerver) A 10.99.5.6-on fut mondjuk egy SSH szerver, amit szeretne elérni, viszont közöttük van egy gateway tűzfal, aminek az eth1-én a 192.168.1.1, míg az eth0-n a 10.99.1.1 az elsődleges ip-je. Emellett van még a tűzfal-nak 2 további IP-je, mondjuk a 192.168.1.5 az eth1:1-en és a 10.99.5.5 az eth0:1-en.
Tehát a 192.168.1.234-en beírja ezt: ssh 192.168.1.5, akkor ez a 10.99.5.6-os szerverhez fog megérkezni, de úgy, hogy azt hiszi, hogy a 10.99.5.5 küldte. Ezután beírja a 10.99.5.6-os szerverre valaki hogy ftp 10.99.5.5, akkor az megérkezik a 192.168.1.234-eshez, de úgy hogy azt hiszi, hogy a 192.168.1.5-ösön lévő szerver küldte. Így nem látják hogy a tűzfalon át mentek a csomagok...
Remélem így egy kicsivel világosabb lesz a problémám.
Előre is köszi a segítséget!
- A hozzászóláshoz be kell jelentkezni
Szerintem azt stra írt az jó, csak az irányokat írta rosszul.
Én is SNAT/DNAT-ra gondoltam.
[törölve]
-
budacsik
- A hozzászóláshoz be kell jelentkezni
Így teljesen tiszta a kép. Mindkét irányba kell source és destination NAT is. A protokollra és portra vonatkozó feltételek természetesen elhagyhatóak.
iptables -i eth1 -t nat -A PREROUTING -p tcp -s 192.168.1.234 -d 192.168.1.5 --destination-port 22 -j DNAT --to-destination 10.99.5.6
iptables -o eth0 -t nat -A POSTROUTING -p tcp -s 192.168.1.234 -d 10.99.5.6 --destination-port 22 -j SNAT --to-source 10.99.5.5
iptables -i eth0 -t nat -A PREROUTING -p tcp -s 10.99.5.6 -d 10.99.5.5 --destination-port 21 -j DNAT --to-destination 192.168.1.234
iptables -o eth1 -t nat -A POSTROUTING -p tcp -s 10.99.5.6 -d 192.168.1.234 --destination-port 21 -j SNAT --to-source 192.168.1.5
- A hozzászóláshoz be kell jelentkezni
Köszönöm stra!
Szerintem jó lesz. Holnap ki is próbálom. Ha mégsem lenne jó, akkor írok, de szerintem most már működnie kell majd.
Köszi újra!
Üdv:
marhasok
- A hozzászóláshoz be kell jelentkezni