Поиск по сайту:

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


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

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

В этой статье вы узнаете, как настроить VPN-шлюзы IPsec типа «сеть-сеть» с помощью strongSwan на серверах CentOS/RHEL 8. Это позволяет одноранговым узлам аутентифицировать друг друга с помощью надежного предварительного общего ключа (PSK). Настройка типа «сеть-сеть» означает, что за каждым шлюзом безопасности имеется подсеть.

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

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

Шлюз Зоны 1
Public IP: 192.168.56.7
Private IP: 10.10.1.1/24
Private Subnet: 10.10.1.0/24
Шлюз Зоны 2
Public IP:  192.168.56.6
Private IP: 10.20.1.1/24
Private Subnet: 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) и starter. Strong> (или 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.confstrongswan.

Настройка профиля подключения сайта 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

Кратко опишем каждый из параметров конфигурации выше:

  • настройка конфигурации – определяет общую информацию о конфигурации IPSec, которая применяется ко всем соединениям.
  • charondebug – указывает, сколько выходных данных отладки Charon должно регистрироваться.
  • uniqueids – определяет, должен ли конкретный идентификатор участника оставаться уникальным.
  • conngateway1-to-gateway2 – используется для установки имени соединения.
  • type – определяет тип соединения.
  • Авто — используется для объявления того, как обрабатывать соединение при запуске или перезапуске IPSec.
  • keyexchange – объявляет используемую версию протокола IKE.
  • authby – указывает, как одноранговые узлы должны аутентифицировать друг друга.
  • left — объявляет IP-адрес общедоступного сетевого интерфейса левого участника.
  • leftsubnet — объявляет частную подсеть за левым участником.
  • right — объявляет IP-адрес общедоступного сетевого интерфейса нужного участника.
  • rightsubnet – объявляет частную подсеть за левым участником.
  • ike — используется для объявления списка используемых алгоритмов шифрования/аутентификации IKE/ISAKMP SA. Обратите внимание, что это может быть список, разделенный запятыми.
  • esp — указывает список алгоритмов шифрования/аутентификации ESP, которые будут использоваться для соединения.
  • агрессивный — определяет, использовать ли агрессивный или основной режим.
  • keyingtries – объявляет количество попыток, которые необходимо предпринять для согласования соединения.
  • ikelifetime — указывает, как долго должен действовать ключевой канал соединения, прежде чем будет проведено повторное согласование.
  • время жизни – указывает, как долго должен длиться конкретный экземпляр соединения, от успешного согласования до истечения срока действия.
  • dpddelay – объявляет временной интервал, с которым сообщения R_U_THERE/информационные обмены отправляются партнеру.
  • dpdtimeout — используется для объявления интервала таймаута, по истечении которого все соединения с одноранговым узлом удаляются в случае неактивности.
  • dpdaction – указывает, как использовать протокол обнаружения мертвых узлов (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

На данный момент это все! Чтобы поделиться с нами своими мыслями или задать вопросы, свяжитесь с нами через форму обратной связи ниже. А чтобы узнать больше о новой утилите swanctl и новой, более гибкой структуре конфигурации, см. документацию пользователя StrongSwan.