IPsec, FreesWan a Masquerade

Zdenek Kaminski xkaminsk na fi.muni.cz
Čtvrtek Červen 6 15:57:04 CEST 2002


On Thu, 6 Jun 2002, Ing. Pavel PaJaSoft Janousek wrote:

> 	Pres iptables to neumim, proto se omlouvam za rypavy dotaz, ale jste si
> jist, ze Vam provoz skutecne prochazi sifrovanym kanalem a ne 'bokem'?

Co znamena bokem?

Kdyz posloucham tcpdump -i ipsec0 -n na serveru A a
pingam z vnitrni site za serverem B na jak vnitrni IP adresu serveru
tak na pocitac za vnitrnim serverem A a nebo ze serveru B na vnitrni IP
serveru A ci do jeho vnitrni site, tak proste vidim icmp pakety na
zarizeni ipsec0. Kdyz ale dam tcpdump -i eth1 -n tak vidim pouze ESP
pakety....
A takztez na serveru B, vidim na vnejsim eth pouze ESP pakety a na ipsec0
icmp pakety a na vnitrni eth mi lezou taky icmp pakety...

Takze bych rekl, ze to chodi tunelem. 

> Mne se Ty Vase pravidla prilis nezdaji a uvedu Vam duvod - tunel mate
> zrejme definovan pouze na lokalnich sitich, proto nevidim duvod, proc by
> se packet se zdrojovou adresou (dusledek MASQUERADE) realne IP na vstupu
> do rozhodovani, zda-li pujde IPsec kanalem nebo ne, mel timto kanalem
> poslat, kdyz dle definice kanalu tam nema co delat...

No, ono kdyz se podivate do vypisu route -n na stroji _left_, tak uvidite,
ze tam je
Adresat:      Brana:          Maska......... Rozhrani
_rightsubnet_ _leftnetxthost_                ipsec0

A za predpokladu, ze tam je nadefinovan jen tunel mezi vzdalenymi sitemi
(ja tam vsak mam i tunel mezi routery a to s verejnymi IP adresami, jak
bych tam narval ty vnitrni to veru nevim, snad je to hloupost..) a tento
tunel je ustaven, tak pokud ze stroje _left_ udelat ping do _rightsubnet_
a budete-li poslouchat na _left_ tcpdump -i ipsec0 -n, tak tam uvidite
icmp pakety, avsak se zdrojovou VEREJNOU IP adresou stroje _left_. 

Rekl bych, ze to bude vlastnost jadra, jakou IP adresu da jako zdrojovou,
kdyz chce nekam paket poslat. A na stroji _right_ (a to je ted muj pocit,
ze to tak bylo, a zkouset to veru nebudu..), kdyz budete poslouchat na
ipsec0, tak neuvidite nic, prave proto, ze tam ten paket nema co delat,
protoze proste takovy tunel nadefinovan neni.

Pokud vsak udelate

ip route del _rightsubnet_
ip route add _rightsubnet_ src _vase_vnitrni_ip_adresa_ dev ipsec0 \
         via _leftnexthop_
 
a obdobne na druhe strane, tak ten icmp paket bude mit vnitrni zdrojovou
adresu z one site, co je definovana v tunelu a hura, uz nam to jede...

Ale jak znova dodavam, nejsem zadny odbornik, ale z toho co jsem napsal
(odpozoroval), tak bych rekl, ze mi to funguje tak jak ma :-)


<HRUBA SPEKULACE>
Rekl bych, ze to probehne takto:
prijde paket z vnitrni site a dst je v siti na druhe strane tunelu.
jadro paket vezme, a v pravidlech tabulky nat vidi, ze to ma
zamaskaradovat a zamaskaraduje to na svou adresu.

 A tady spekulace nejhrubsiho zrna: Jak se tady jadro rozhodne, kterou
adresu pouzije pro maskaradovani? No nevim, ale kdyz jsem provedl vyse
uvedene dva ip route.. prikazy, tak se rozhodl pro svou vnitrni ip adresu.
Tohle by mi mohl nekdo osvetlit, pac zdrojaky cist nebudu. Verim, ze kdyz
bych misto MASQUERADE pouzil SNAT a tam napsal, jakou ze adresu to ma
pouzit, tak nespekuluji a vyse uvedene prikazy ip route by mozna byly
zbytecne. Zase, jestli mohu SNATovat na cokoliv, na co se mi
zachce, je druha otazka...

No a pote co ma jadro paket upraveny maskaradou, tak v routovaci tabulce
zjisti, ze to ma jit do ipsec0 a tak ho tam posle. A pak to prevezme ipsec
a zjisti, ze to je paket jako delany do jeho definovaneho tunelu,
protoze ma spravnou src a dst ip adresu a tak ho "tam" taky posle.

No a na stroji _right_ prijde ESP paket, vezme si ho na starost ipsec,
zjisti, ze to je to prave orechove a pak uz to jadro podle routovaci
tabulky posila do te vnitrni site, kam to melo dojit...
</HRUBA SPEKULACE>

Prosim, muze mi toto nekdo sveta znaly vysvetlit, jestli se nekde mylim?
Znova zduraznuji, ze o jadre nevim vubec nic a je to cira domenka, kterou
mi vsak nikdo nevyvratil, resp. me do oblasti nezasvetil. Toto jsme totiz
s Yenyou v seminari neprobirali :-(

Prosim, nekamenujte mne nikdo za mou hrubou spekulaci. Pac je to domenka,
tak v mem pripade to bude urcite spatne. Rad se poucim, to mi verte.


---------------------------------------------------------------------------
Bc. Zdenek Kaminski <xkaminsk at fi.muni.cz>

homepage: http://www.fi.muni.cz/~xkaminsk/
IPv6 router homepage: http://merlot.ics.muni.cz/






Další informace o konferenci Linux