🖧 Как настроить VPN на основе IPsec с помощью Strongswan в Debian и Ubuntu — Information Security Squad
🖧 Как настроить VPN на основе IPsec с помощью Strongswan в Debian и Ubuntu

strongSwan — это кроссплатформенная, полнофункциональная и широко используемая реализация VPN (виртуальная частная сеть) с открытым исходным кодом, работающая на Linux, FreeBSD, OS X, Windows, Android и iOS.

Это прежде всего демон управления ключами, который поддерживает протоколы обмена ключами в Интернете (IKEv1 и IKEv2) для установления ассоциаций безопасности (SA) между двумя узлами.

В этой статье описывается, как настроить межсетевые шлюзы IPSec VPN с использованием strongSwan на серверах Ubuntu и Debian.

Под сайтом мы подразумеваем, что у каждого шлюза безопасности есть подсеть.

Кроме того, одноранговые узлы будут аутентифицировать друг друга, используя предварительный общий ключ (PSK).

Тестовая среда

Не забудьте заменить следующие IP-адреса реальными IP-адресами для настройки среды.

Шлюз сайта 1 (itsecforu-devgateway)

OS 1: Debian or Ubuntu
Public IP: 10.20.20.1
Private IP: 192.168.0.101/24
Private Subnet: 192.168.0.0/24

Шлюз сайта 2 (itsecforu-prodgateway)

OS 2: Debian or Ubuntu
Public IP:  10.20.20.3
Private IP: 10.0.2.15/24
Private Subnet: 10.0.2.0/24

Шаг 1. Включение пересылки пакетов

1. Во-первых, вам нужно настроить ядро для включения пересылки пакетов, добавив соответствующие системные переменные в файл конфигурации /etc/sysctl.conf на обоих шлюзах безопасности.

$ sudo vim /etc/sysctl.conf

Найдите следующие строки, раскомментируйте их и установите их значения, как показано ниже (для получения дополнительной информации прочитайте комментарии в файле).

net.ipv4.ip_forward = 1 
net.ipv6.conf.all.forwarding = 1 
net.ipv4.conf.all.accept_redirects = 0 
net.ipv4.conf.all.send_redirects = 0
2. Затем примените новые настройки, выполнив следующую команду.
$ sudo sysctl -p

3. Если у вас включена служба  UFW, вам нужно добавить следующие правила в файл конфигурации /etc/ufw/before.rules непосредственно перед правилами фильтрации в любом из шлюзов безопасности.

Шлюз сайта 1 (itsecforu-devgateway)

*nat
:POSTROUTING ACCEPT [0:0]
-A POSTROUTING -s 10.0.2.0/24  -d 192.168.0.0/24 -j MASQUERADE
COMMIT

Шлюз сайта 2 (itsecforu-prodgateway)

*nat
:POSTROUTING ACCEPT [0:0]
-A POSTROUTING  -s 192.168.0.0/24 -d 10.0.2.0/24 -j MASQUERADE
COMMIT
4. После добавления правил брандмауэра примените новые изменения, перезапустив UFW, как показано на далее:
$ sudo ufw disable 
$ sudo ufw enable

Шаг 2: Установка strongSwan на Debian и Ubuntu

5. Обновите кэш пакетов на обоих шлюзах безопасности и установите пакет strongswan с помощью диспетчера пакетов APT.

$ sudo apt update
$ sudo apt install strongswan
6. После завершения установки скрипт установщика запустит службу strongswan и включит ее автоматический запуск при загрузке системы.
Вы можете проверить его статус и узнать, включен ли он, используя следующую команду.
$ sudo systemctl status strongswan.service
$ sudo systemctl is-enabled strongswan.service

Шаг 3: Настройка шлюзов безопасности

7. Далее необходимо настроить шлюзы безопасности с помощью файла конфигурации /etc/ipsec.conf.

Шлюз сайта 1 (itsecforu-devgateway)

$ sudo cp /etc/ipsec.conf /etc/ipsec.conf.orig
$ sudo nano /etc/ipsec.conf

Скопируйте и вставьте следующую конфигурацию в файл.

config setup
        charondebug="all"
        uniqueids=yes
conn devgateway-to-prodgateway
        type=tunnel
        auto=start
        keyexchange=ikev2
        authby=secret
        left=10.20.20.1
        leftsubnet=192.168.0.101/24
        right=10.20.20.3
        rightsubnet=10.0.2.15/24
        ike=aes256-sha1-modp1024!
        esp=aes256-sha1!
        aggressive=no
        keyingtries=%forever
        ikelifetime=28800s
        lifetime=3600s
        dpddelay=30s
        dpdtimeout=120s
        dpdaction=restart

Шлюз сайта 1 (itsecforu-prodgateway)

$ sudo cp /etc/ipsec.conf /etc/ipsec.conf.orig
$ sudo cp /etc/ipsec.conf

Скопируйте и вставьте следующую конфигурацию в файл.

config setup
        charondebug="all"
        uniqueids=yes
conn prodgateway-to-devgateway
        type=tunnel
        auto=start
        keyexchange=ikev2
        authby=secret
        left=10.20.20.3
        leftsubnet=10.0.2.15/24
        right=10.20.20.1
        rightsubnet=192.168.0.101/24 
        ike=aes256-sha1-modp1024!
        esp=aes256-sha1!
        aggressive=no
        keyingtries=%forever
        ikelifetime=28800s
        lifetime=3600s
        dpddelay=30s
        dpdtimeout=120s
        dpdaction=restart
Вот значение каждого параметра конфигурации:
  • config setup — указывает общую информацию о конфигурации для IPSec, которая применяется ко всем соединениям.
  • charondebug — определяет, сколько выходных данных отладки Charon должно быть зарегистрировано.
  • uniqueids — указывает, должен ли конкретный идентификатор участника оставаться уникальным.
  • conn prodgateway-to-devgateway — определяет имя соединения.
  • type — определяет тип соединения.
  • auto — как обрабатывать соединение при запуске или перезапуске IPSec.
  • keyexchange — определяет версию протокола IKE
  • authby — определяет, как одноранговые узлы должны аутентифицировать друг друга.
  • left — определяет IP-адрес интерфейса публичной сети левого участника.
  • leftsubnet — указывает частную подсеть позади левого участника.
  • right — указывает IP-адрес общедоступного сетевого интерфейса правого участника.
  • rightsubnet — указывает частную подсеть позади левого участника.
  • ike — определяет список используемых алгоритмов шифрования / аутентификации IKE / ISAKMP SA. Вы можете добавить список через запятую.
  • esp — определяет список алгоритмов шифрования / аутентификации ESP, которые будут использоваться для соединения. Вы можете добавить список через запятую.
  • aggressive — указывает, использовать  агрессивный или основной режим.
  • keyingtries — указывает количество попыток согласования соединения.
  • ikelifetime — указывает, как долго должен длиться канал ключей соединения до повторного согласования.
  • lifetime определяет, как долго должен длиться конкретный экземпляр соединения, от успешного согласования до истечения срока действия.
  • dpddelay — указывает временной интервал, с которым сообщения R_U_THERE / обмены INFORMATIONAL отправляются одноранговому узлу.
  • dpdtimeout — указывает интервал времени ожидания, после которого все соединения с одноранговым узлом удаляются в случае неактивности.
  • dpdaction — определяет, как использовать протокол Dead Peer Detection (DPD) для управления соединением.
Для получения дополнительной информации о вышеуказанных параметрах конфигурации прочитайте справочную страницу ipsec.conf, выполнив команду.
$ man ipsec.conf

Шаг 4. Настройка PSK для одноранговой аутентификации

8. После настройки обоих шлюзов безопасности создайте безопасный PSK, который будет использоваться узлами с помощью следующей команды.

$ head -c 24 /dev/urandom | base64
9. Затем добавьте PSK в файл /etc/ipsec.secrets на обоих шлюзах.

$ sudo vim /etc/ipsec.secrets

Скопируйте и вставьте следующую строку.

------- Сторона 1 (itsecforu-devgateway) ------- 

10.20.20.1 10.20.20.3 : PSK "qLGLTVQOfqvGLsWP75FEtLGtwN3Hu0ku6C5HItKo6ac="

------- Сторона 2 (itsecforu-prodgateway) -------

10.20.20.3  10.20.20.1 : PSK "qLGLTVQOfqvGLsWP75FEtLGtwN3Hu0ku6C5HItKo6ac="
10. Перезапустите программу IPSec и проверьте ее состояние для просмотра подключений.

$ sudo ipsec restart
$ sudo ipsec status

11. Наконец, убедитесь, что вы можете получить доступ к частным подсетям с любого шлюза безопасности, выполнив команду ping.

$ ping 192.168.0.101
$ ping 10.0.2.15
12. Кроме того, вы можете остановить и запустить IPSec, как показано ниже:

$ sudo ipsec stop
$ sudo ipsec start
13. Чтобы узнать больше о командах IPSec для ручного установления соединений и многое другое, см. Страницу справки IPSec.

$ ipsec --help

 

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

5e7fa976b0640d40