IPSec pomiędzy FreeBSD i Netscreen
Konfiguracja IPSEC pomiędzy firewall’em Netscreen a FreeBSD.
Celem niniejszego artykułu jest skonfigurowanie tunelu IPSec (VPN) pomiędzy serwerem FreeBSD a firewall’em Netscreen. W tym przypadku zastosowano technikę host<->lan. Artykuł nie opisuje autoryzacji typu Extended Auth., jest to typowe zestawienie połączenia przy poprawnych polisach oraz użyciu PassPhrase (PSK) po stronie firewall’a Netscreen.
- Konfiguracja kernela FreeBSD
Sam proces pobierania źrodeł, konfigracji, kompilacji i instalacji jądra jak i ’swiata’ w FreeBSD można znaleźć w Handbook’u. Ważna rzeczą jest aby w pliku konfiguracyjnym dodać opcje:
options IPSEC options IPSEC_ESP
- Instalacja racoon (ipsec-tools)
Analogicznie jak wszystkie porty, instalujemy poprzez wejście do katalogu /usr/ports/security/ipsec-tools/ i wydaniu komend:
make config install clean
- Konfiguracja setkey
Tworzymy plik /etc/ipsec.conf gdzie:
flush; spdflush; spdadd NASZ_ADRES_IPV4/32[any] SIEC_LAN_DO_KTOREJ_SIE_LACZYMY/24[any] any -P out ipsec esp/tunnel/NASZ_ADRES_IPV4-NETSCREEN_ADRES_IPV4/require; spdadd SIEC_LAN_DO_KTOREJ_SIE_LACZYMY/24[any] NASZ_ADRES_IPV4/32[any] any -P in ipsec esp/tunnel/NETSCREEN_ADRES_IPV4-NASZ_ADRES_IPV4/require;
następnie wczytujemy plik konfiguracyjny:
setkey -f /etc/ipsec.conf
WAŻNE: Należy dobrze ustawić uprawnienia do tego pliku żeby niepowołana osoba nie mogła tego odczytać!
- Konfiguracja racoon (ipsec-tools)
W katalogu /usr/local/etc/racoon tworzymy dwa pliki, racoon.conf oraz psk.txt
racoon.conf
WAŻNE: Należy dobrze ustawić uprawnienia do tego pliku zeby niepowołana osoba nie mogla tego odczytać!
path include "/usr/local/etc/racoon";
path pre_shared_key "/usr/local/etc/racoon/psk.txt";
path certificate "/usr/local/etc/racoon/cert";
padding
{
maximum_length 20; # maximum padding length.
randomize off; # enable randomize length.
strict_check off; # enable strict check.
exclusive_tail off; # extract last one octet.
}
listen
{
#isakmp ::1 [7000];
#isakmp 202.249.11.124 [500];
#admin [7002]; # administrative port for racoonctl.
#strict_address; # requires that all addresses must be bound.
}
timer
{
# These value can be changed per remote node.
counter 5; # maximum trying count to send.
interval 2 sec; # maximum interval to resend.
persend 1; # the number of packets per send.
# maximum time to wait for completing each phase.
phase1 10 sec;
phase2 5 sec;
}
remote anonymous
{
exchange_mode main;
doi ipsec_doi;
situation identity_only;
nonce_size 16;
initial_contact on;
proposal_check obey; # obey, strict, or claim
proposal {
encryption_algorithm 3des;
hash_algorithm sha1;
authentication_method pre_shared_key;
dh_group 2;
}
}
sainfo anonymous
{
#pfs_group 2;
encryption_algorithm 3des;
authentication_algorithm hmac_sha1;
compression_algorithm deflate;
}
psk.txt
WAŻNE: Należy dobrze ustawić uprawnienia do tego pliku zeby niepowołana osoba nie mogla tego odczytać!
NETSCREEN_ADRES_IPV4 haslo_psk
- Konfiguracja skryptów startowych
Teraz do wyboru, albo modyfikujemy plik /usr/local/etc/rc.d/racoon.sh albo dopisujemy poniższą linię do /etc/rc.conf
racoon_enable="YES"
- Sprawdzenie poprawności działania
Uruchamiamy racoon (ipsec-tools) komendą:
/usr/local/etc/rc.d/racoon.sh start
powiniśmy otrzymać coś podobnego do:
fido# /usr/local/etc/rc.d/racoon.sh start Starting racoon.
Sprawdzamy regułki ipsec poprzez polecenie
setkey -D
powiniśmy otrzymać coć podobnego do:
fido# setkey -D NASZ_ADRES_IPV4 NETSCREEN_ADRES_IPV4 esp mode=tunnel spi=xxxxxxxxxx(0xxxxxxxx) reqid=0(0x00000000) E: 3des-cbc xxxxxxxx xxxxxxx xxxxxxx xxxxxxx xxxxxxx xxxxxxx A: hmac-sha1 xxxxxxxx xxxxxxx xxxxxxx xxxxxxx xxxxxxx seq=0x0000000x replay=x flags=0x00000000 state=mature created: Feb 18 17:28:51 2006 current: Feb 18 17:29:02 2006 diff: xx(s) hard: xxxxx(s) soft: xxxxx(s) last: Feb 18 17:28:58 2006 hard: 0(s) soft: 0(s) current: xxx(bytes) hard: 0(bytes) soft: 0(bytes) allocated: x hard: 0 soft: 0 sadb_seq=x pid=xxxxx refcnt=x NETSCREEN_ADRES_IPV4 NASZ_ADRES_IPV4 esp mode=tunnel spi=xxxxxxxxx(0xxxxxxxxx) reqid=0(0x00000000) E: 3des-cbc xxxxxxxx xxxxxxx xxxxxxx xxxxxxx xxxxxxx xxxxxxx A: hmac-sha1 xxxxxxxx xxxxxxx xxxxxxx xxxxxxx xxxxxxx seq=0x0000000x replay=x flags=0x00000000 state=mature created: Feb 18 17:28:51 2006 current: Feb 18 17:29:02 2006 diff: xx(s) hard: xxxxx(s) soft: xxxxx(s) last: Feb 18 17:28:58 2006 hard: 0(s) soft: 0(s) current: x(bytes) hard: 0(bytes) soft: 0(bytes) allocated: x hard: 0 soft: 0 sadb_seq=x pid=xxxxx refcnt=1
Jeżeli widzimy status “mature” to znaczy ze wszystko działa. Teraz juz możemy się łączyc do naszego LAN’u po drugiej stronie tunelu
Jak już nam się znudzi, wyłączamy tunel poleceniem:
fido# /usr/local/etc/rc.d/racoon.sh stop Stopping racoon. Waiting for PIDS: xxxxx.
Wpis “IPSec pomiędzy FreeBSD i Netscreen” skomentowano 2 razy
Dodaj komentarz



2008-11-07 o godz. 00:53
Pytanie, do racoon.conf dodany został wpis:
path certificate “/usr/local/etc/racoon/cert”;
To trzeba generowac osobne certyfikaty do racoona?
2008-11-07 o godz. 23:08
Nie używałem certyfikatów do IPsec. Autoryzacja szła przez preshared-key