Настройка IPSEC VPN с использованием StrongSwan в Ubuntu 18.04 – Information Security Squad
Настройка IPSEC VPN с использованием StrongSwan в Ubuntu 18.04

В этом руководстве мы узнаем, как настроить IPSEC VPN с помощью StrongSwan в Ubuntu 18.04.

Итак, основная цель VPN – создать зашифрованный безопасный туннель между двумя или более удаленными сетями.

Это гарантирует, что связь, происходящая через небезопасную сеть, в данном случае Интернет, защищена.

IPSEC является одной из реализаций VPN, которая предоставляет услуги шифрования и аутентификации на уровне IP (Интернет-протокола).

Хотя его реализация является обязательной для стеков IPv6, она является необязательной для стеков IPv4.

StrongSwan – это программное обеспечение VPN с открытым исходным кодом для Linux, которое реализует IPSec.

Он поддерживает различные протоколы и расширения IPsec, такие как IKE, цифровые сертификаты X.509, прохождение NAT …

Настройте IPSEC VPN, используя OpenSwan в Ubuntu 18.04

Установите strongSwan на Ubuntu 18.04

К счастью, strongSwan доступен в репозиториях Ubuntu 18.04 по умолчанию и поэтому может быть просто установлен с помощью команды, приведенной ниже;

apt install strongswan

Настройка CA с помощью инструмента PKS strongSwan

Чтобы VPN-клиент мог проверить подлинность VPN-сервера, необходимо сгенерировать сертификат и ключ VPN-сервера.

Прежде чем вы сможете сгенерировать сертификат сервера и ключ, вы должны создать локальный ЦС для их подписания. stronSwan предоставляет утилиту PKI, которая облегчает этот процесс.

Однако вам нужно установить эту утилиту, выполнив команду ниже;

apt install strongswan-pki

После завершения установки перейдите к созданию центра сертификации.

Для начала сгенерируйте закрытый ключ для самоподписанного сертификата CA.

ipsec pki --gen --size 4096 --type rsa --outform pem > vpn-ca.key.pem

Убедитесь, что вы предоставляете этому ключу абсолютную конфиденциальность, которую он заслуживает.

Сгенерируйте VPN-сервер CA и выполните самостоятельную подпись с помощью ключа, сгенерированного выше.

ipsec pki --self --in vpn-ca.key.pem --type rsa --dn "CN=VPN Server root CA" --ca --lifetime 3650 --outform pem > vpn-ca.cert.pem

Затем сгенерируйте закрытый ключ VPN-сервера и выдайте соответствующий сертификат с помощью CA, созданного выше.

ipsec pki --gen --size 4096 --type rsa --outform pem > vpn-server.key.pem

Как только у вас есть ключ сервера, создайте сертификат сервера, выполнив команду ниже. Обязательно замените DN и SAN соответственно.

ipsec pki --pub --in vpn-server.key.pem --type rsa \ |
ipsec pki --issue --lifetime 2750 \
--cacert vpn-ca.cert.pem \
--cakey vpn-ca.key.pem \
--dn "CN=vpnsvpnsvr.example.com" \
--san="vpnsvr.example.com" \
--flag serverAuth --flag ikeIntermediate --outform pem > vpn-server.cert.pem

Установите сертификаты

Теперь, когда вы получили все сертификаты, вы можете установить их, переместив их в соответствующие каталоги сертификатов IPSec в /etc/ipsec.d.

mv vpn-ca.cert.pem /etc/ipsec.d/cacerts/
mv vpn-server.cert.pem /etc/ipsec.d/certs/
mv {vpn-ca.key.pem,vpn-server.key.pem} /etc/ipsec.d/private/

Настройте StrongSwan в Ubuntu 18.04

Файл конфигурации /etc/ipsec.conf содержит большую часть информации о конфигурации и управлении для подсистемы IPS strongSwan.

Он состоит из трех различных типов разделов:

CONFIG SECTIONS (настройка конфигурации)
– определяет общие параметры конфигурации
CONN SECTIONS  (conn <имя>)
– Раздел conn содержит спецификацию соединения, определяющую сетевое соединение, которое будет выполнено с использованием IPsec.
CA SECTION (ca <имя>)
– Он определяет центр сертификации.

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

cp /etc/ipsec.conf /etc/ipsec.conf.bak
vim /etc/ipsec.conf

Определить параметры CONFIGURATION;

config setup
        charondebug="ike 2, knl 2, cfg 2, net 2, esp 2, dmn 2, mgr 2"
        strictcrlpolicy=no
        uniqueids=yes
        cachecrls=no

Параметрc harondebug = <debug list> определяет журнал отладки charon, в котором список отладки может быть dmn, mgr, ike, chd, job, cfg, knl, net, asn, enc, lib, esp, tls, tnc, imc, imv оч. Уровни журналирования могут быть один из -1, 0, 1, 2, 3, 4 (для без вывода сообщений, аудита, контроля, контроля, необработанного, частного). По умолчанию уровень установлен на 1 для всех типов. Описание списков отладки можно найти в разделе «КОНФИГУРАЦИЯ ЛОГЕРА» на сайте strongswan.conf (5).
Параметр strictcrlpolicy определяет, должен ли быть доступен новый CRL для успешной одноранговой аутентификации на основе сигнатур RSA.
uniqueids определяет, должен ли конкретный идентификатор участника оставаться уникальным
cachecrls определяет, следует ли кэшировать списки отзыва сертификатов (CRL), полученные по HTTP или LDAP.

Определите параметры CONNECTION ;

conn ipsec-ikev2-vpn
      auto=add
      compress=no
      type=tunnel  # defines the type of connection, tunnel.
      keyexchange=ikev2
      fragmentation=yes
      forceencaps=yes
      dpdaction=clear
      dpddelay=300s
      rekey=no
      left=%any
      leftid=@vpnsvr.example.com    # if using IP, define it without the @ sign
      leftcert=vpn-server.cert.pem  # reads the VPN server cert in /etc/ipsec.d/certs
      leftsendcert=always
      leftsubnet=0.0.0.0/0
      right=%any
      rightid=%any
      rightauth=eap-mschapv2
      rightsourceip=10.10.7.0/24  # IP address Pool to be assigned to the clients
      rightdns=8.8.8.8  # DNS to be assigned to clients
      rightsendcert=never
      eap_identity=%identity  # defines the identity the client uses to reply to an EAP Identity request.

Чтобы увидеть подробное описание параметров подключения и значений, использованных в приведенной выше конфигурации, смотрите man ipsec.conf.

Далее необходимо настроить учетные данные аутентификации клиент-сервер.

Учетные данные для аутентификации задаются в файле конфигурации /etc/ipsec.secrets.

Таким образом, откройте этот файл и определите закрытые ключи RSA для аутентификации.

Вы также можете настроить учетные данные пользователя EAP, указав случайное имя пользователя и его пароль.

Обратите внимание на интервал.

vim /etc/ipsec.secrets
# This file holds shared secrets or RSA private keys for authentication.
  
# RSA private key for this host, authenticating it to any other host
# which knows the public part.
: RSA vpn-server.key.pem   # VPN server key generated above
# <user id> : EAP <secret>
vpnsecure : EAP "P@sSw0Rd"   # Random

Сохраните файл конфигурации и перезапустите strongSwan, чтобы изменения вступили в силу.

systemctl restart strongswan

Чтобы убедиться, что strongSwan имеет закрытый ключ, выполните команду ниже;

ipsec listcerts
List of X.509 End Entity Certificates

  subject:  "CN=vpnsvpnsvr.example.com"
  issuer:   "CN=VPN Server root CA"
  validity:  not before Feb 09 20:27:18 2019, ok
             not after  Aug 21 20:27:18 2026, ok (expires in 2749 days)
  serial:    56:e5:08:a6:db:f6:6b:d0
  altNames:  vpnsvr.example.com
  flags:     serverAuth ikeIntermediate 
  authkeyId: 68:40:92:5b:53:c4:99:18:3e:7e:cb:6b:5b:32:d5:05:f7:de:88:74
  subjkeyId: 09:2f:bd:61:bd:47:1b:c8:13:e0:2f:65:c0:9f:12:7b:0e:e8:c4:9b
  pubkey:    RSA 4096 bits, has private key
  keyid:     75:72:19:89:62:97:27:55:a0:4f:68:be:6a:c9:14:98:04:87:be:a3
  subjkey:   09:2f:bd:61:bd:47:1b:c8:13:e0:2f:65:c0:9f:12:7b:0e:e8:c4:9b

Настройте брандмауэр и маршрутизацию

Установите UFW для разрешения и пересылки трафика VPN.

Чтобы IPsec работал через брандмауэр, вам нужно открыть UDP-порты 500 и 4500.

ufw allow 500/udp      # Allows Internet Security Association and Key Management Protocol (ISAKMP) traffic to be forwarded
ufw allow 4500/udp # Allows handling of IPsec between natted devices

Затем отредактируйте /etc/ufw/before.rules так, чтобы ваша конфигурация выглядела ниже.

Замените пул IP и интерфейс маршрута по умолчанию соответственно.

Смотрите выделенные строки, добавленные непосредственно до и после фильтра *.

 

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

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