IPsec — Linux<->Linux

tux Соединение по ipsec двух серверов Linux RH, с другими не эксперементировал, ибо на серверах на 90% использую CentOS. На Debian-подобных дистрах, настройка несколько иная.

Будем делать ipsec по ключу.
Настройки для одной стороны, для второй все идентично.

vim /etc/sysconfig/network-scripts/ifcfg-ipsec0

DST=X.X.X.X
TYPE=IPSEC
ONBOOT=yes
IKE_METHOD=PSK

vim /etc/sysconfig/network-scripts/keys-ipsec0

IKE_PSK=VeryPipecKey

chmod 600 /etc/sysconfig/network-scripts/keys-ipsec0

далее, нас интересует:
/etc/racoon/racoon.conf
/etc/racoon/X.X.X.X.conf

vim /etc/racoon/X.X.X.X.conf

remote X.X.X.X
{
exchange_mode aggressive, main;
my_identifier address;
proposal {
encryption_algorithm 3des;
hash_algorithm sha1;
authentication_method pre_shared_key;
dh_group 2 ;
}
}

vim /etc/racoon/racoon.conf

path include «/etc/racoon»;
path pre_shared_key «/etc/racoon/psk.txt»;
path certificate «/etc/racoon/certs»;

sainfo anonymous
{
pfs_group 2;
lifetime time 1 hour ;
encryption_algorithm 3des, blowfish 448, rijndael ;
authentication_algorithm hmac_sha1, hmac_md5 ;
compression_algorithm deflate ;
}
include «/etc/racoon/X.X.X.X.conf»

На второй стороне делаем тоже самое и
/sbin/ifup ipsec0

теперь можем проверить, скажем, запустим пинг с одного узла на другой и
tcpdump -n -i eth0 host X.X.X.X
должны увидеть в заголовках AH и ESP, если видите, то все в порядке, весь траффик между узлами шифруется.

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

Теперь посложнее — необходимо объединить две сети по ipsec без поднятия тунеля, или например соединить сеть за Linux с сетью за Cisco ASA(не поддерживает GRE).

vim /etc/sysconfig/network-scripts/ifcfg-ipsec0

DST=X.X.X.X
TYPE=IPSEC
ONBOOT=yes
IKE_METHOD=PSK
SRCGW=192.168.10.1
DSTGW=192.168.20.1
SRCNET=192.168.10.0/24
DSTNET=192.168.20.0/24

надеюсь пояснения не нужны.
SRCGW — свой внутренний адрес
SRCNET — своя локальная сеть
DSTGW — внутренний адрес удаленного узла
DSTNET — локальная сеть удаленного узла

Удачи в настройках!

© shadow_alone