Соединяем два и более серверов linux по IPsec Здесь я расскажу как соединить два и больше серверов по IPsec туннелю на Linux. IP адрес сервера №1 192.168.1.218/24 (IP адрес в сети VPN 172.17.0.1/24) IP адрес сервера №2 192.168.1.181/24 (IP адрес в сети VPN 172.16.0.1/24) Начнем 1) Ставим необходимые пакеты # apt-get install racoon ipsec-tools 2) Добавляем виртуальный интерфейс eth0:1 для Ipsec тунеля # nano /etc/network/interfaces Аналогично и для сервера №2 и перезапускаем сеть # /etc/init.d/networking restart введем команду # ifconfig что бы убедиться что виртуальные интерфейсы подняты 3) Конфигурируем IPsec # nano /etc/racoon/racoon.conf и раскоментируем все что после строки path certificate "/etc/racoon/certs"; Настраиваем на сервере №1 находим строку remote 172.31.1.1 и заменяем на remote 192.168.1.181 то есть указываем здесь IP адрес сервера №2 Находим ниже строку sainfo address... и заменяем IP адреса на свои адреса VPN сетей в итоге строка будет выгладить так sainfo address 172.17.0.0/24 any address 172.16.0.0/24 any { первый IP адрес это адрес нашей VPN сети, второй соответственно IP адрес удаленной VPN сети которая находиться на сервере №2 Аналогично на сервере №2 4) Указываем ключ с помощью которого сервера будет взаимодействовать # nano /etc/racoon/psk.txt Все строки удаляем и вписываем IP адрес второго сервера и после него вписываем ключ 192.168.1.181 dhd7d9ka62ka И повторяем на втором сервер тоже самое, только вписываем IP адрес первого сервера и ключ тоже самый. 192.168.1.218 dhd7d9ka62ka 5) Продолжаем настройку IPsec, настраиваем политику безопасности. # nano /etc/ipsec-tools.conf нужно раскоментировать строки flush; spdflush; и строки которые идут после комментария ## Some sample SPDs for use racoon что бы файл выглядел так Настраиваем первым делом на первом сервере(192.168.1.218) находим строку spdadd 10.10.100.1 10.10.100.2 any -P out ipsec заменяем на spdadd 172.17.0.0/24 172.16.0.0/24 any -P out ipsec первая сеть это сеть VPN на сервер №1, вторая сеть это VPN сеть которая расположена на сервере №2 Далее находим esp/transport//require; заменяем на esp/tunnel/192.168.1.218-192.168.1.181/require; здесь думаю понятно, первый IP адрес это адрес сервера №1, второй IP адрес это адрес сервера №2 Находим ниже spdadd 10.10.100.2 10.10.100.1 any -P in ipsec esp/transport//require; здесь все так же само только наоборот, сначала адреса сервера №2, потом сервера №1 spdadd 172.16.0.0/24 172.17.0.0/24 any -P in ipsec esp/tunnel/192.168.1.181-192.168.1.218/require; Повторяем процедуру на втором сервере(192.168.1.181) spdadd 172.16.0.0/24 172.17.0.0/24 any -P out ipsec esp/tunnel/192.168.1.181-192.168.1.218/require; spdadd 172.17.0.0/24 172.16.0.0/24 any -P in ipsec esp/tunnel/192.168.1.218-192.168.1.181/require; 6) Перезапускаем службы на обох серверах. # /etc/init.d/setkey restart # /etc/init.d/racoon restart 7) Добавляем маршруты в таблицу маршрутизации. На первом сервере # ip route add to 172.16.0.0/24 via 172.17.0.1 src 172.17.0.1 На втором сервере # ip route add to 172.17.0.0/24 via 172.16.0.1 src 172.16.0.1 * Указываем какая сеть доступна, через какой интерфейс в нашем случае IP адрес. Результат выполнение команды route на сервере №1 №2 Что бы проверить результат пропингуйте IP адрес VPN интерфейса удаленного сервера, если пинг есть, настройка на этом завершена и IPsec работает, сервера общаются между собой по VPN. Результат сервер №1 Результат сервер №2