Версия: Linux 2.6.22-vs2.2.0.7, ipsec-tools-0.7.1.
Допустим, у нас есть две подсети: 192.168.1.0/24 и 192.168.2.0/24. Шлюзы в них 192.168.1.1 и 192.168.2.1 соответственно. Допустим также, что маршрутизация между ними настроена.
Задачу поставим создать IPsec-туннель между этими сетями.
/etc/ipsec.conf:
#!/usr/sbin/setkey -f
flush;
spdflush;
spdadd 192.168.1.0/24 192.168.2.0/24 any -P out ipsec
esp/transport/192.168.1.1-192.168.2.1/require;
spdadd 192.168.2.0/24 192.168.1.0/24 any -P in ipsec
esp/transport/192.168.2.1-192.168.1.1/require;
/etc/racoon/racoon.conf:
log warning;
path pre_shared_key "/etc/racoon/psk.txt";
padding
{
maximum_length 20;
randomize off;
strict_check off;
exclusive_tail off;
}
listen
{
isakmp 192.168.1.1 [500];
}
timer
{
counter 5;
interval 20 sec;
persend 1;
phase1 90sec;
phase2 90sec;
}
remote 192.168.2.1
{
my_identifier address 192.168.1.1;
exchange_mode main;
initial_contact off;
lifetime time 28800 sec;
proposal {
encryption_algorithm des;
hash_algorithm md5;
authentication_method pre_shared_key;
dh_group 1;
}
}
sainfo address 192.168.1.0/24 any address 192.168.2.0/24 any
{
pfs_group 1;
ecnryption_algorithm des;
authentication_algorithm hmac_md5;
lifetime time 28800 sec;
compression_algorithm deflate;
}
/etc/racoon/psk.txt:
192.168.2.1 <укажите_здесь_выбранный_выми_пароль>
На втором сервере насройки почти такие же - меняются местами только адреса сетей: там, где указано 192.168.1.0 надо заменить на 192.168.2.0, и наоборот, 192.168.2.0 заменить на 192.168.1.0.
N.B. На обоих шлюзах должно быть разрешение соединяться другому шлюзу на 500 порт TCP.