Категорії
Linux Solaris

IPSec: Solaris <--> Linux

Тестовый стенд: Solaris 11.1, Debian Linux 6 (kernel 3.2), ipsec transport mode with preshared keys

Настройка IPSec состоит из 2-х частей: настройка IPSec’a и непосредственно настройка обмена ключами (ike).

Имеем самую обычную схему Solaris (10.5.5.219) <—> (10.5.5.78) Linux

В данной статье подразумевается настройка полностью с нуля.

Solaris

1) Настройка IPSec’a.

Приводим содержимое файла /etc/inet/ipsecinit.conf к такому виду:

{laddr 10.5.5.219 raddr 10.5.5.220} ipsec {encr_algs 3des encr_auth_algs md5 sa shared}

Здесь мы указываем для каких хостов будет действовать правило, а так же указываем соответственно какие алгоритмы шифрования использовать при собственно шифровании и аутентификации.

После этого проверяем конфиг на ошибки:

# ipsecconf -f -c /etc/inet/ipsecinit.conf
IPsec configuration does not contain any errors.
IPsec policy was not modified.

и только после этого (если есть ошибки — исправляем) перечитываем конфиг черезsvcadm (и если не запущен — запустим его):

# svcadm refresh svc:/network/ipsec/policy:default
# svcadm enable svc:/network/ipsec/policy:default

Налету политики можно добавить так:

# ipsecconf -a /etc/inet/ipsecinit.conf

Текущие политики можно посмотреть так:

# ipsecconf
#INDEX 154
{laddr 10.5.5.219 raddr 10.5.5.220} ipsec {encr_algs 3des encr_auth_algs md5 sa shared}

2) Настройка ike

Приводим содержимое файла /etc/inet/ike/config к такому виду:

p1_lifetime_secs 14400
p1_nonce_len 40
p1_xform
{ auth_method preshared oakley_group 5 auth_alg sha encr_alg des }
p2_pfs 5
{ label "10.5.5.219-10.5.5.220"
local_addr 10.5.5.219
remote_addr 10.5.5.220
p1_xform
{ auth_method preshared oakley_group 2 auth_alg md5 encr_alg 3des }
p2_pfs 5
}

Проверяем синтаксис:

# /usr/lib/inet/in.iked -c -f /etc/inet/ike/config
in.iked: Configuration file /etc/inet/ike/config syntactically checks out.

Теперь переходим у указанию ключевой фразы — preshared key. Приводим файл/etc/inet/security/ike.preshared к такому виду:

{
localidtype IP
localid 10.5.5.219
remoteidtype IP
remoteid 10.5.5.220
key "Very-Very-Secret-Key-1234567890"
}

Ключ у нас в НЕ зашифрованном виде.

Теперь перечитываем конфиг ike и запускаем его:

# svcadm refresh svc:/network/ipsec/ike:default
# svcadm enable svc:/network/ipsec/ike:default

Linux

Ставим racoon:

# apt-get install racoon

После установки будет задан вопрос о том, что использовать: direct или ipsec-tools:

Configuration mode for racoon IKE daemon.

Выбираем direct

После это можно переопределить, выполнив команду:

# dpkg-reconfigure racoon

После установки приводим файл /etc/ipsec-tools.conf к такому виду (это исполняемый скрипт)

#!/usr/sbin/setkey -f
flush;
spdflush;
spdadd 10.5.5.78 10.5.5.219 any -P out ipsec esp/transport//require;
spdadd 10.5.5.219 10.5.5.78 any -P in ipsec esp/transport//require;

Вписываем парольную фразу в файл /etc/racoon/pks.txt:

10.5.5.219 Very-Very-Secret-Key-1234567890

Обязательно ставим права на файл psk.txt 0600 и владельца root. Без этого соединение не установиться, а racoon будет ругаться.

Приводим главный файл /etc/raccon.conf к такому виду:

path include "/etc/racoon";
path pre_shared_key "/etc/racoon/psk.txt";
log debug;

remote 10.5.5.219 {
        exchange_mode main;
        proposal {
                encryption_algorithm 3des;
                hash_algorithm md5;
                authentication_method pre_shared_key;
                dh_group 2;
                lifetime time 8 hour;
        }
}

sainfo anonymous{
        pfs_group 5;
        lifetime time 8 hour;
        encryption_algorithm 3des;
        authentication_algorithm hmac_md5;
        compression_algorithm deflate;
}

Почему-то у меня не стартовал racoon через стартовые скрипты, поэтому пришлось добавлять в /etc/rc.local такие строки.

/etc/init.d/setkey start
/etc/init.d/racoon start

После успешного поднятия IPSec’a посмотрим статистику обмена:

# setkey -D
10.5.5.78 10.5.5.219 
        esp mode=transport spi=2870989852(0xab1fd41c) reqid=0(0x00000000)
        E: 3des-cbc  1d51101d 703954e3 855f6877 8bb5f44d 6d163841 fdc9c119
        A: hmac-md5  dc2d1faf 4f190125 c641e65c c6a25a4c
        seq=0x00000000 replay=4 flags=0x00000000 state=mature 
        created: Dec 16 07:05:38 2013   current: Dec 16 07:08:04 2013
        diff: 146(s)    hard: 28800(s)  soft: 23040(s)
        last: Dec 16 07:05:39 2013      hard: 0(s)      soft: 0(s)
        current: 9280(bytes)    hard: 0(bytes)  soft: 0(bytes)
        allocated: 145  hard: 0 soft: 0
        sadb_seq=1 pid=2131 refcnt=0
10.5.5.219 10.5.5.78 
        esp mode=transport spi=21730685(0x014b957d) reqid=0(0x00000000)
        E: 3des-cbc  aa59d451 4e11c9f1 e68952aa 6082fd81 ce0701ab a4b56784
        A: hmac-md5  58e2404d 3fdfbda7 f87b52ae b37a48f0
        seq=0x00000000 replay=4 flags=0x00000000 state=mature 
        created: Dec 16 07:05:38 2013   current: Dec 16 07:08:04 2013
        diff: 146(s)    hard: 28800(s)  soft: 23040(s)
        last: Dec 16 07:05:39 2013      hard: 0(s)      soft: 0(s)
        current: 9280(bytes)    hard: 0(bytes)  soft: 0(bytes)
        allocated: 145  hard: 0 soft: 0
        sadb_seq=0 pid=2131 refcnt=0

И традиционно проверить через snoop, что всё шифруется:

snoop -d net0 host 10.5.5.78
  10.5.5.219 -> 10.5.5.78    ESP SPI=0x14b957d Replay=157
   10.5.5.78 -> 10.5.5.219   ESP SPI=0xab1fd41c Replay=156
  10.5.5.219 -> 10.5.5.78    ESP SPI=0x14b957d Replay=158
   10.5.5.78 -> 10.5.5.219   ESP SPI=0xab1fd41c Replay=157

Залишити відповідь

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *

Домашняя страничка Andy
Записки молодого админа
Самостоятельная подготовка к Cisco CCNA
Самостоятельная подготовка к Cisco CCNP
Powered by Muff