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

strongSwan — это многоплатформенное, современное и готое VPN-решение на базе IPsec для Linux с открытым исходным кодом, обеспечивающее полную поддержку обмена ключами в Интернете (IKEv1 и IKEv2) для установления ассоциаций безопасности (SA) между двумя узлами.

Это полнофункциональный инструмент с модульным дизайном, который предлагает десятки плагинов, которые расширяют основные функциональные возможности.

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

В этой статье вы узнаете, как настроить межсетевые шлюзы IPsec VPN с использованием strongSwan на серверах CentOS / RHEL 8.

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

Настройка «site 2 site» означает, что у каждого шлюза безопасности есть подсеть.

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

Не забудьте использовать свои реальные IP-адреса во время настройки, следуя  этому руководству.

Шлюз 1

Паблик IP: 192.168.56.7
Приватный IP: 10.10.1.1/24
Приватная подсеть: 10.10.1.0/24

Шлюз  2

Паблик IP:  192.168.56.6
Приватный IP: 10.20.1.1/24
Приватная подсеть: 10.20.1.0/24

Шаг 1: Включение переадресации IP в ядре CentOS 8

1. Начните с включения функции пересылки IP в ядре в файле конфигурации /etc/sysctl.conf на обоих VPN-шлюзах.

# vi /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. После сохранения изменений в файле выполните следующую команду, чтобы загрузить новые параметры ядра во время выполнения.
# sysctl -p
3. Затем создайте постоянный статический маршрут в файле /etc/sysconfig/network-scripts/route-eth0 на обоих шлюзах безопасности.
# vi /etc/sysconfig/network-scripts/route-eth0

Добавьте следующую строку в файл.

#Site 1 Gateway
10.20.1.0/24  via 192.168.56.7

#Site 2 Gateway
10.10.1.0/24 via 192.168.56.6

4. Затем перезапустите диспетчер сети, чтобы применить новые изменения.

# systemctl restart NetworkManager

Шаг 2: Установка strongSwan на CentOS 8

5. Пакет strongswan предоставляется в репозитории EPEL.

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

# dnf install epel-release
# dnf install strongswan

6. Чтобы проверить версию strongswan, установленную на обоих шлюзах, выполните следующую команду.

# strongswan version

7. Затем запустите службу strongswan и включите автоматический запуск при загрузке системы.

Затем проверьте состояние на обоих шлюзах безопасности.

# systemctl start strongswan 
# systemctl enable strongswan
# systemctl status strongswan
Примечание: последняя версия strongswan в CentOS / REHL 8 поставляется с поддержкой swanctl (новая портативная утилита командной строки, представленная в strongSwan 5.2.0, используемая для настройки, управления и мониторинга демона IKE Charon с помощью плагина vici) и утилита запуска (или ipsec), использующая устаревший плагин Stroke.
8. Основным каталогом конфигурации является /etc/strongswan/, который содержит файлы конфигурации для обоих плагинов:
# ls /etc/strongswan/
Для этого руководства мы будем использовать утилиту IPsec, которая вызывается с помощью команды strongswan и интерфейса stroke.
Поэтому мы будем использовать следующие файлы конфигурации:
  • /etc/strongswan/ipsec.conf — файл конфигурации для подсистемы strongSwan IPsec.
  • /etc/strongswan/ipsec.secrets — файл секретов.

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

9. На этом шаге необходимо настроить профили подключения на каждом шлюзе безопасности для каждой стороны с помощью файла конфигурации /etc/strongswan/ipsec.conf

Настройка профиля подключения стороны 1
# cp /etc/strongswan/ipsec.conf /etc/strongswan/ipsec.conf.orig
# vi /etc/strongswan/ipsec.conf

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

config setup
        charondebug="all"
        uniqueids=yes
conn ateway1-to-gateway2
        type=tunnel
        auto=start
        keyexchange=ikev2
        authby=secret
        left=192.168.56.7
        leftsubnet=10.10.1.1/24
        right=192.168.56.6
        rightsubnet=10.20.1.1/24
        ike=aes256-sha1-modp1024!
        esp=aes256-sha1!
        aggressive=no
        keyingtries=%forever
        ikelifetime=28800s
        lifetime=3600s
        dpddelay=30s
        dpdtimeout=120s
        dpdaction=restart
Настройка профиля подключения стороны 2
# cp /etc/strongswan/ipsec.conf /etc/strongswan/ipsec.conf.orig
# vi /etc/strongswan/ipsec.conf

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

config setup
        charondebug="all"
        uniqueids=yes
conn 2gateway-to-gateway1
        type=tunnel
        auto=start
        keyexchange=ikev2
        authby=secret
        left=192.168.56.6
        leftsubnet=10.20.1.1/24
        right=192.168.56.7
        rightsubnet=10.10.1.1/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 gateway1-to-gateway2 — используется для установки имени соединения.
  •     type — определяет тип соединения.
  •     auto — используется для объявления того, как обрабатывать соединение при запуске или перезапуске IPSec.
  •     keyexchange — объявляет версию протокола IKE для использования.
  •     authby — указывает, как одноранговые узлы должны аутентифицировать друг друга.
  •     left — объявляет IP-адрес интерфейса публичной сети левого участника.
  •     leftsubnet — объявляет личную подсеть позади левого участника.
  •     right — объявляет IP-адрес общедоступного сетевого интерфейса правого участника.
  •     rightsubnet — объявляет личную подсеть позади левого участника.
  •     ike — используется для объявления списка используемых алгоритмов шифрования / аутентификации IKE / ISAKMP SA. Обратите внимание, что это может быть список через запятую.
  •     esp — указывает список алгоритмов шифрования / аутентификации ESP, которые будут использоваться для соединения.
  •     agressive — указывает, использовать ли агрессивный или основной режим.
  •     keyingtries — объявляет количество попыток согласования соединения.
  •     ikelifetime — указывает, как долго должен длиться канал ключей соединения перед повторным согласованием.
  •     lifetime — указывает, как долго должен длиться конкретный экземпляр соединения, от успешного согласования до истечения срока действия.
  •     dpddelay — объявляет временной интервал, с которым сообщения отправляются на одноранговый узел.
  •     dpdtimeout — используется для объявления интервала времени ожидания, после которого все соединения с одноранговым узлом удаляются в случае неактивности.
  •     dpdaction — указывает, как использовать протокол Dead Peer Detection (DPD) для управления соединением.
Вы можете найти описание всех параметров конфигурации подсистемы strongSwan IPsec, прочитав справочную страницу ipsec.conf.

# man ipsec.conf

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

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

# head -c 24 /dev/urandom | base64
11. Добавьте PSK в файл /etc/strongswan/ipsec.conf на обоих шлюзах безопасности.

# vi /etc/strongswan/ipsec.secrets
Введите следующую строку в файле.

#Site 1 Gateway
192.168.56.7  192.168.56.6 : PSK "0GE0dIEA0IOSYS2o22wYdicj/lN4WoCL"

#Site 1 Gateway
192.168.56.6  192.168.56.7 : PSK "0GE0dIEA0IOSYS2o22wYdicj/lN4WoCL"
12. Затем запустите службу strongsan и проверьте состояние подключений.

# systemctl restart strongswan
# strongswan status

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

# ping 10.20.1.1
# ping 10.10.1.1

14. И последнее, но не менее важное: чтобы узнать больше о командах strongswan для ручного установления / отключения соединений и многое другое, см. Страницу справки strongswan.

# strongswan --help

 

1 комментария на “🖧 Как настроить VPN на основе IPsec с помощью Strongswan на CentOS / RHEL 8

  1. С версии strongswan 5.8 данный конфиг нерабочий.
    Хэш sha1 лет 10 уже не считается безопасным.
    Какой-то туториал древнючий с сайта на сайт кочует

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

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