Главная > Linux > Создание ipsec VPN-туннеля между двумя сетями

Создание ipsec VPN-туннеля между двумя сетями


4 февраля 2009. Разместил: dimon
Есть две сети с серверами на CentOS. Каждый из северов имеет внутренний интерфейс для локальной сети офиса и внешний интерфейс со статичным ip-адресом и служит в качестве прокси-сервера. Необходимо создать VPN-туннель между двумя сетями.

Cеть выглядит так:

( office_1 ) -- [ linux ] ~~ internet ~~ [ linux ] -- ( office_2 )


сети и интерфейсы :

сеть office_1 - 10.0.0.0/24
сеть office_2 - 192.168.0.0/24

office_1_int - 10.0.0.1/24 (внутренний интерфейс, office_1)
office_1_ext - 84.84.84.1 (внешний интерфейс)

office_2_ext - 84.84.84.2 (внешний интерфейс)
office_2_int - 192.168.0.1/24 (внутренний интерфейс, office_2)

Следующие шаги выполняем на сервере office_2:

1. создаем /etc/sysconfig/network-scripts/ifcfg-ipsec0 на сервере office_2


TYPE=IPSEC # тип соединения
ONBOOT=yes # запускать при включении сервера
IKE_METHOD=PSK # тип ключа
SRCGW=192.168.0.1 # шлюз источника, т.е. шлюз сети office_2
DSTGW=10.0.0.1 # шлюз получателя, т.е. шлюз сети office_1
SRCNET=192.168.0.0/24 # сеть источника - сеть office_2
DSTNET=10.0.0.0/9 # сеть получателя - сеть office_1
DST=84.84.84.1 # внешний IP-адрес получателя - сети office_1



2. Создаем /etc/sysconfig/network-scripts/keys-ipsec0 на сервере office_2


IKE_PSK=superpass



где superpass – ключ, одинаковый для обоих серверов

3. Чтобы ограничить доступ к файлу keys-ipsec0, позволив читать и изменять его только пользователю root, выполните после создания файла следующее на сервере office_2
chmod 600 /etc/sysconfig/network-scripts/keys-ipsec0

4. Правим/создаем /etc/racoon/racoon.conf:


# Racoon IKE daemon configuration file.
# See 'man racoon.conf' for a description of the format and entries.

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 ;
}



где:
sainfo anonymous - отмечает, что SA может автоматически инициализировать соединение с любым партнёром при совпадении учётных сведений IPsec.
pfs_group 2 - определяет протокол обмена ключами Диффи-Хелмана, задающий алгоритм, по которому узлы IPsec устанавливают общий временный ключ сеанса для второй фазы соединения IPsec.
lifetime time 1 hour - этот параметр задаёт срок жизни SA и может быть определяться временем или объёмом данных в байтах.
encryption_algorithm 3des, blowfish 448, rijndael -указывает поддерживаемые алгоритмы шифрования для фазы 2.
authentication_algorithm hmac_sha1, hmac_md5 - перечисляет поддерживаемые алгоритмы хэша для проверке подлинности. Поддерживаются режимы sha1 и md5 хэшированных кодов проверки подлинности сообщения (Hashed Message Authentication Codes, HMAC).
compression_algorithm deflate - определяет алгоритм сжатия Deflate для поддержки сжатия IP-заголовков (IP Payload Compression, IPCOMP), что может увеличить скорость передачи IP-датаграм по медленным соединениям.

5. Отредактируем /etc/sysctl.conf и зададим net.ipv4.ip_forward равным 1
Чтобы изменение вступило в силу, выполним команду:
sysctl -p /etc/sysctl.conf
или тупо перезагрузим сервер

6. Запускаем интерфейс ifup ipsec0



Аналогично настраиваем сервер office_1. Только меняем везде ipsec0 на ipsec1 (что в принципе не обязательно – можно на обоих настроить ipsec0) и в конфигурационных файлах меняем везде местами ip источника и получателя.

Проверка работоспособности – с машины офиса office_1 пингуем шлюз сети office_2, а потом какой-нибудь компьютер сети office_2. Так же пингуем в обратном направление.

На время настройки я посоветовал бы отключить iptables на обоих серверах.

PS: я так и не понял обязательно ли ключ прописывать в /etc/racoon/psk.txt – вроде и без него все работает.

Вернуться назад