Protokół IPSec - asobcz.kis.p.lodz.plasobcz.kis.p.lodz.pl/IPSec_Racoon.pdf · Dopisujemy...

4
Protokół IPSec Implementacja z uŜyciem pakietu ‘racoon’ IPSec jest zbiorem protokołów słuŜących do: Implementacji bezpiecznych połączeń, Wymiany kluczy szyfrowania pomiędzy komputerami. Protokoły tej grupy mogą być wykorzystywane do tworzenia Wirtualnej Sieci Prywatnej (ang. ‘VPN’). VPN oparta na IPSec składa się z dwóch kanałów komunikacyjnych między połączonymi hostami lub bramami VPN: Kanał wymiany kluczy, przez który przekazywane są dane związane z uwierzytelnianiem oraz kodowaniem (klucze). Pracuje ze standardowym protokołem UDP na porcie 500. Kanał transportowy (jeden lub więcej), który transmituje pakiety przez sieć prywatną. Jest on oparty są na protokole ESP (port numer 50). Instalacja oprogramowania Instalacja oprogramowania moŜe odbyć się za pomocą poniŜszej komendy lub menedŜera pakietów ‘Synaptic’: aptitude install ipsec-tools racoon ipsec-tool oprogramowanie obsługujące protokoły IPSec (ESP, AH), racoon – oprogramowanie serwera wymiany kluczy IKE (ang. ‘IPSec key exchange’) Konfiguracja oprogramowania Polecenia konfiguracyjne wykonujemy „ręcznie” jako administrator ‘root’ (sudo’ lub ‘sudo su’). Konfiguracja tunelu IPSec składa się z konfiguracji statycznej i dynamicznej. W tym celu warto wykorzystać skrypty pomocnicze. Umownie oznaczamy komputery w sieci jako serwer i klient. Konfiguracja statyczna tunelu IPsec Skrypt ipsec-trans.sh tworzący tunel, umieszczamy w katalogu /etc i nadajemy mu prawa do wykonywania: chmod +x /etc/ipsec-trans.sh

Transcript of Protokół IPSec - asobcz.kis.p.lodz.plasobcz.kis.p.lodz.pl/IPSec_Racoon.pdf · Dopisujemy...

Page 1: Protokół IPSec - asobcz.kis.p.lodz.plasobcz.kis.p.lodz.pl/IPSec_Racoon.pdf · Dopisujemy zawartość skryptu ipsec-trans.sh do pliku /etc/ipsec-tools.conf Komentujemy linie zaczynające

Protokół IPSec

Implementacja z uŜyciem pakietu ‘racoon’

IPSec jest zbiorem protokołów słuŜących do:

• Implementacji bezpiecznych połączeń,

• Wymiany kluczy szyfrowania pomiędzy komputerami.

Protokoły tej grupy mogą być wykorzystywane do tworzenia Wirtualnej Sieci Prywatnej

(ang. ‘VPN’). VPN oparta na IPSec składa się z dwóch kanałów komunikacyjnych między

połączonymi hostami lub bramami VPN:

• Kanał wymiany kluczy, przez który przekazywane są dane związane z

uwierzytelnianiem oraz kodowaniem (klucze). Pracuje ze standardowym

protokołem UDP na porcie 500.

• Kanał transportowy (jeden lub więcej), który transmituje pakiety przez sieć

prywatną. Jest on oparty są na protokole ESP (port numer 50).

Instalacja oprogramowania

Instalacja oprogramowania moŜe odbyć się za pomocą poniŜszej komendy lub menedŜera

pakietów ‘Synaptic’:

aptitude install ipsec-tools racoon

ipsec-tool – oprogramowanie obsługujące protokoły IPSec (ESP, AH),

racoon – oprogramowanie serwera wymiany kluczy IKE (ang. ‘IPSec key exchange’)

Konfiguracja oprogramowania

Polecenia konfiguracyjne wykonujemy „ręcznie” jako administrator ‘root’ (‘sudo’ lub

‘sudo su’). Konfiguracja tunelu IPSec składa się z konfiguracji statycznej i dynamicznej.

W tym celu warto wykorzystać skrypty pomocnicze. Umownie oznaczamy komputery w

sieci jako serwer i klient.

Konfiguracja statyczna tunelu IPsec

Skrypt ipsec-trans.sh tworzący tunel, umieszczamy w katalogu /etc i nadajemy mu

prawa do wykonywania:

chmod +x /etc/ipsec-trans.sh

Page 2: Protokół IPSec - asobcz.kis.p.lodz.plasobcz.kis.p.lodz.pl/IPSec_Racoon.pdf · Dopisujemy zawartość skryptu ipsec-trans.sh do pliku /etc/ipsec-tools.conf Komentujemy linie zaczynające

a następnie edytujemy w nim odpowiednie adresy IP:

#!/usr/sbin/setkey -f flush; spdflush; # ESP add IP_serwera IP_klienta esp 15701 -E 3des-cbc "123456789012345678901234"; add IP_klienta IP_serwera esp 24501 -E rijndael-cbc "987654321098765432109876"; spdadd IP_serwera IP_klienta any -P out ipsec esp/transport//require; spdadd IP_klienta IP_serwera any -P in ipsec esp/transport//require; #ESP - to protokół transportowy dla IPSec; działa n a porcie 50, wi ęc trzeba go udost ępni ć. #3des-cbc oraz rijndael-cbc - algorytmy szyfrowania #123456789012345678901234 – przykładowy klucz szyfr owania #IP_serwera oraz IP_klienta - adresy umownie oznacz onych stacji #spdadd – polecenie okre śla reguł ę dla danych wej ściowych i wyj ściowych w zale Ŝności od stacji, na której wprowadzamy ustawienia.

Skrypt uruchamiamy poleceniem:

/etc/ipsec-trans.sh Generowanie kluczy publicznych i prywatnych zaangaŜowanych stron (opcja) Edytujemy skrypt cert.sh, generujący klucze publiczny i prywatny (o ile nie zrobiliśmy tego wcześniej), wstawiając odpowiednie nazwy komputerów w zaleŜności od umownej roli jaką będą pełnić (klient/serwer): #!/bin/bash nazwa="umowna nazwa hosta" openssl req -new -nodes -newkey rsa:1024 -sha1 -key form PEM -keyout ${nazwa}.private -outform PEM -out request.pem openssl x509 -req -in request.pem -signkey ${nazwa} .private -out ${nazwa}.public #skrypt wykonuje polecenia biblioteki openssl. Twor zy klucze prywatne oraz publiczne dla danej stacji. #w polu nazwa="" definijemy umown ą nazw ę komputera Podczas generowania kluczy odpowiadamy na pytania (kraj, region, nazwa hosta etc. – vide instrukcja do narzędzia OpenSSL) a wygenerowane pliki kopiujemy do katalogu /etc/racoon. Za pomocą polecenia scp (moŜemy uŜyć usługi FTP ale równieŜ skorzystać z Samby lub innej bezpiecznej metody transferu) plik klucza publicznego (‘klient.public’) naleŜy dostarczyć na stację zdalną – tak, aby obie strony szyfrowanego połączenia dysponowały kluczem publicznym partnera, np.:

Page 3: Protokół IPSec - asobcz.kis.p.lodz.plasobcz.kis.p.lodz.pl/IPSec_Racoon.pdf · Dopisujemy zawartość skryptu ipsec-trans.sh do pliku /etc/ipsec-tools.conf Komentujemy linie zaczynające

scp klient.public kowalski@domena:/home/ko walski/

a następnie, jako administrator zdalnej stacji (kowalski@domena) przekopiować plik do

katalogu z plikami konfiguracyjnymi:

cp klient.public /etc/racoon/

Konfiguracja dynamicznego tunelu IPSec

W lokalizacji /etc/racoon tworzymy plik konfiguracyjny ‘racoon.conf’ i wstawiamy do niego odpowiednie nazwy kluczy oraz adres IP zdalnego hosta (miejsca zaznaczone pogrubieniem):

path certificate "/etc/racoon/"; sainfo anonymous { pfs_group 1; lifetime time 20 sec; encryption_algorithm 3des ; authentication_algorithm hmac_sha1; compression_algorithm deflate ; } remote adres_zdalnego_hosta { exchange_mode aggressive,main; my_identifier asn1dn; peers_identifier asn1dn; certificate_type x509 "klient.public" "klient.priv ate"; peers_certfile x509 "server.public"; proposal { encryption_algorithm 3des; hash_algorithm sha1; authentication_method rsasig; dh_group 2 ; } }

Wiersz rozpoczynający się od: certificate_type wskazuje pliki stanowiące własne klucz publiczny i prywatny. Natomiast linia zaczynająca się peers_certfile wskazuje na plik, który jest kluczem publicznym zdalnego hosta.

Uruchomienie tunelu IPSec

Dopisujemy zawartość skryptu ipsec-trans.sh do pliku /etc/ipsec-tools.conf Komentujemy linie zaczynające się od poleceń add (definiują tzw. asocjacje, które juŜ wcześniej zostały stworzone przez uruchomienie skryptu). Następnie za pomocą polecenia:

Page 4: Protokół IPSec - asobcz.kis.p.lodz.plasobcz.kis.p.lodz.pl/IPSec_Racoon.pdf · Dopisujemy zawartość skryptu ipsec-trans.sh do pliku /etc/ipsec-tools.conf Komentujemy linie zaczynające

/etc/init.d/racoon restart

restartujemy demona IKE. Konfiguracja i uruchomienie stacji zdalnej na drugim końcu kanału wygląda analogicznie.

Weryfikacja poprawności działania tunelu IPSec

Weryfikacji działania tunelu IPSec moŜna dokonać za pomocą polecenia ‘ping’ lub

programu ‘wireshark’. W oknie konsoli moŜna takŜe otworzyć plik ‘syslog’, który będzie

zawierał ewentualne błędy (komenda ‘tail’ – pokazuje końcowe wpisy w logu, parametr

‘-f’ pozwala podglądać najświeŜsze zdarzenia systemowe):

tail –f /var/log/syslog

Z kolei aktywność samego procesu ‘racoon’ i to, którym plikiem został on zainicjowany, moŜna zweryfikować poleceniem:

ps –ef |grep racoon

w którym: ‘ps’, to komenda wyświetlająca aktywne procesy, ‘-ef’ to parametr

definiujący sposób formatowania listowanych procesów, symbol ‘|’ przekazuje wyjście

jednego programu na wejście kolejnego (w tym wypadku ‘grep’). Program ‘grep’ w tym

przypadku filtruje wiersze zawierające ciąg ‘racoon’. W przypadku błędów naleŜy

ponownie uruchomić skonfigurować demona IPSec za pomocą skryptu ‘ipsec-trans.sh’

oraz restartować demona IKE (‘racoon’).