IPsec, FreesWan a Masquerade
Ladislav Kepsta
kepsta na btlnet.com
Čtvrtek Červen 6 16:39:06 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...
IMHO mozte, ale co na to vasa GW ? Takze vysledok je ...
> 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.
Pokial viem SNAT sa vykona az po dokonceni routovania.
> 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.
--
Ladislav Kepsta
Další informace o konferenci Linux