Подключение производится по следующей схеме:
Далее будут рассмотрены настройки серверов Linux и UserGate для настройки IPsec-туннеля между сетями 172.16.0.0/24 и 10.0.5.0/24.
Настройка Linux-сервера
Для реализации IPsec на Linux-сервере использовалось ПО LibreSwan (ПО и подробная информация о нём доступны по следующей ссылке: https://libreswan.org/).
-
Установить ПО LibreSwan.
sudo apt update
sudo apt install -y -q libreswan
После установки LibreSwan будет доступна команда ipsec.
Файлы конфигурации для настройки политики подключения:
-
создание политик подключения: / etc/ ipsec. conf и файлы / etc/ ipsec. d/* conf.
-
хранение PSK: / etc/ ipsec. secrets` и файлы / etc/ ipsec. d/*. secrets.
-
Сгенерировать Pre-shared key.
Для генерации PSK была использована команда (в привилегированном режиме):
# openssl rand -base64 18
Был сгенерирован ключ: WXj72QDymXs1inggnYVSBuox
Сохраните общий ключ в файл / etc/ ipsec.secrets. Общий формат файлов *. secrets следующий:
-
для конкретного Peer-to-Peer соединения:
<Source_IP> <Destination_IP> : PSK <PSK>
-
для любых подключений, которые не попадают в заданные правила:
: PSK <PSK>
# cat /etc/ipsec.secrets
: PSK "WXj72QDymXs1inggnYVSBuox"
include /etc/ipsec.d/*.secrets
-
Создать файл конфигурации VPN-подключения.
Файл необходимо создать в каталоге / etc/ ipsec.d/ vpn.conf. Подробное описание конфигурационных параметров доступно по ссылке: https://libreswan.org/man/ipsec.conf.5.html.
Далее представлена базовая конфигурация:
config setup
logfile=/var/log/pluto.log
Дайте название подключению, например vpn:
conn vpn
Укажите IP-адрес удалённого пира (UserGate):
right=192.168.2.168
или укажите «%any» для автоматического заполнения этого параметра в процессе установки сессии:
right=%any
Укажите адрес подсети, подключённой к удалённому пиру:
rightsubnet=172.16.0.0/24
Укажите адрес пира - Linux-сервера и подсети, подключённой к нему:
left=172.17.1.73
leftsubnet=10.0.5.0/24
Задайте способ аутентификации - Общий ключ:
authby=secret
В текущих версиях UserGate не поддерживается PFS (Perfect Forward Secrecy) и IKEv2:
pfs=no
ikev2=no
rekey=yes
keyingtries=3
Тип подключения туннельный (значение по умолчанию)
type=tunnel auto=start
Далее задайте алгоритмы, которые будут использоваться на первой и второй фазах согласования:
ike=aes256-sha1-modp1536,aes128-sha1-modp1536,3des-sha1-modp1536,aes128-sha1;modp1536,aes128-sha1;modp1536
esp=aes256-sha256,aes256-sha1,3des-sha1
nat-ikev1-method=none
-
Запустить IPsec:
# ipsec start
-
Создайте правило SNAT (Source Network Address Translation), для корректного прохождения трафика, предназначенного для сети, расположенной за удалённым пиром:
# iptables -t nat -A POSTROUTING -d 172.16.0.0/24 -j SNAT --to-source 10.0.5.1
Настройка UserGate.
-
Настройка сетевых интерфейсов.
Особенностью данной настройки является необходимость создания виртуального туннельного VPN интерфейса. Интерфейс необходим для инкапсуляции трафика в модуль VPN (при активации подключения создаётся маршрут в указанную сеть за удаленным пиром через туннельный VPN интерфейс).
Для добавления интерфейса перейдите в раздел Сеть --> Интерфейсы, нажмите Добавить и выберите Добавить VPN. Далее укажите:
-
отметьте чекбокс Включено;
-
порядковый номер, использующийся в названии интерфейса;
-
Описание (опционально);
-
Зона, которой принадлежит интерфейс;
-
IP-адрес туннельного интерфейса должен находиться в сети, которая будет согласована в рамках туннельного подключения (в данном примере: 172.16.0.0/24).
-
Настроить профиль безопасности VPN.
Настройка профилей безопасности производится в разделе VPN --> Профили безопасности VPN веб-интерфейса UserGate. Настройка профиля безопасности необходима для согласования следующих параметров:
-
режим IKE;
-
общий ключ;
-
алгоритмы шифрования, проверки целостности и обмена ключами первой фазы;
-
алгоритмы шифрования, проверки целостности второй фазы.
Алгоритмы шифрования и авторизации, указанные на сервере Linux и UserGate, должны совпадать. Можно задать несколько комбинаций алгоритмов, из совпадающих вариантов хосты выберут наиболее защищённую комбинацию.
Для данного примера профиль безопасности VPN имеет следующие настройки:
-
Создать клиентское правило VPN.
Чтобы добавить правило перейдите в раздел VPN --> Клиентские правила, нажмите Добавить и укажите:
-
отметьте чекбокс Включено;
-
Название правила;
-
Описание (опционально);
-
Профиль безопасности, настроенный ранее;
-
Интерфейс, созданный в пункте 1;
-
Адрес сервера: адрес интерфейса Linux-сервера, через который происходит подключение;
-
Протокол VPN: IPsec туннель;
-
согласовать сети с каждой стороны туннеля (rightsubnet и leftsubnet).
В случае успешного подключения напротив правила отобразится зелёный индикатор.
Новый маршрут отобразится в таблице маршрутизации системы (вкладка Диагностика и мониторинг раздел Мониторинг --> Маршруты):