Главная > 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 – вроде и без него все работает. Вернуться назад |