Strona 1 z 1

tunel w oparciu o ipsec - jak zbudować?

: 06 kwietnia 2009, 10:11
autor: fedon
Witam,
od dwóch dni staram się postawić tunel w oparciu o ipsec. Próbowałem już kilku różnych konfiguracji, ale żadna nie zadziałała, może dlatego że nie do końca je rozumiem. Jeśli ktokolwiek korzysta z tego rozwiązania to bardzo proszę o pomoc.

Tunel powinien wyglądać tak:

Kod: Zaznacz cały

siec1--192.168.1.1(komp1)x.x.x.x---internet---y.y.y.y(komp2)192.168.2.1--siec2
Poniżej najprostsza konfiguracja jaką testowałem (bez użycia racoona).

(komp1) ipsec-tools.conf:

Kod: Zaznacz cały

#!/usr/sbin/setkey -f
flush;
spdflush;
add y.y.y.y x.x.x.x esp 501 -m tunnel -E 3des-cbc "123456789012123456789012";
add x.x.x.x y.y.y.y esp 502 -m tunnel -E 3des-cbc "123456789012123456789012";
spdadd 192.168.2.0/24 192.168.1.0/24 any -P in ipsec esp/tunnel/y.y.y.y-x.x.x.x/require;
spdadd 192.168.1.0/24 192.168.2.0/24 any -P out ipsec esp/tunnel/x.x.x.x-y.y.y.y/require;
(komp2) ipsec-tools.conf:

Kod: Zaznacz cały

#!/usr/sbin/setkey -f
flush;
spdflush;
add y.y.y.y x.x.x.x esp 501 -m tunnel -E 3des-cbc "123456789012123456789012";
add x.x.x.x y.y.y.y esp 502 -m tunnel -E 3des-cbc "123456789012123456789012";
spdadd 192.168.2.0/24 192.168.1.0/24 any -P out ipsec esp/tunnel/y.y.y.y-x.x.x.x/require;
spdadd 192.168.1.0/24 192.168.2.0/24 any -P in ipsec esp/tunnel/x.x.x.x-y.y.y.y/require;
Po wydaniu polecenia

Kod: Zaznacz cały

/etc/init.d/setkey start
system nie pokazuje żadnych błędów

Kod: Zaznacz cały

Loading IPsec SA/SP database from /etc/ipsec-tools.conf: done.
ale tunel nie działa.

Na pewno coś źle zrozumiałem, ale nie mam pojęcia co... Wszelkie uwagi mile widziane.

: 06 kwietnia 2009, 12:03
autor: mariaczi
Sam tunel Ci sie zestawił?
Zerknij na to HowTo. Możliwe, że brakuje Ci konfiguracji routingu, coby sieci się widziały.

: 06 kwietnia 2009, 13:04
autor: fedon
Z tego HowTo też korzystałem, tylko że akurat o tunelowaniu jest trochę dalej, bo w rozdziale 7.3. Ale nie widzę tu nic o konfiguracji routingu.
Zresztą, może ja źle rozumiem idee, ale na bramce dokonywana jest enkapsulacja, więc chyba nie ma potrzeby ustawiania routingu do drugiej sieci? Jeśli jestem w błędzie to proszę o wyjaśnienia.

: 06 kwietnia 2009, 15:19
autor: mariaczi
Ponawiam pytanie, czy sam tunel się zestawił?
W przytoczonym HowTo tunel zbudowany jest w oparciu o IP z jednej klasy. Ty natomiast budujesz z IP w dwóch podklasach. Czy po uruchomieniu tunelu (nadal nie napisałeś czy się zestawia) widzisz dodatkowe interfejsy? Maszyny widzą się wzajemnie?

Tak na marginesie to nie zestawiałem IPSeca. Uruchamiałem natomiast p-t-p (GRE) i tam wskazanie trasy było wymagane (łączyłem dwie różne klasy sieci).

: 07 kwietnia 2009, 08:30
autor: fedon
Przepraszam, chyba moja odpowiedź nie była dość dobitna.
Ja dotąd korzystałem z ppp po ssh i tam faktycznie zestawiało się połączenie p2p, w związku z czym powstawały dodatkowe interfejsy na które przekierowywało się ruch który miał trafić do drugiej sieci. Ale w przypadku ipseca (jeśli dobrze rozumiem) wygląda to trochę inaczej i tunelu się nie zestawia. Nie ma w tym przypadku żadnych dodatkowych interfejsów, a tunelowanie jest uzyskiwane poprzez enkapsulację. Kernel na podstawie reguł z pliku ipces-tools.conf decyduje które pakiety należy przetwarzać, następnie zgodnie z tymi regułami wykonywane jest szyfrowanie i dodawane są kolejne nagłówki, a parametr tunel (w przeciwieństwie do transport) powoduje, że w kolejnym nagłówku zmieniane są adresy, w związku z tym nie ma potrzeby modyfikacji tablicy routingu.
Tak jak pisałem nie jestem pewien czy dobrze to rozumiem, w dodatku konfiguracja tego wbrew pozorom jest trochę pokomplikowana, więc całkiem możliwe, że wszystko pokręciłem :) . A może jest ktoś kto zjadł zęby na konfigurowaniu ipseca i jedno spojrzenie mu wystarczy, żeby stwierdzić, że powinno to być całkiem inaczej ustawione :) .