IKEv2 туннель между MikroTik и StrongSwan: EAP ms-chapv2 и доступ к сайтам

01a340be51bec638270f524cd13df830.png

Введение

Идея статьи возникла из желания пропускать определенные сайты через VPN-туннель напрямую через маршрутизатор, так как дома большое количество устройств, а пускать весь трафик через VPN неудобно в связи с низкой пропускной способностью туннеля. Статья написана сразу после создания конфигурации. Настройка будет проходить в Winbox MikroTik.

Конфигурация StrongSwan

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

/etc/ipsec.conf

config setup
   charondebug="ike 2, knl 2, cfg 2, net 2, esp 2, dmn 2,  mgr 2"
   uniqueids=never

conn ikev2-vpn
   auto=add
   compress=no
   type=tunnel
   keyexchange=ikev2
   fragmentation=yes
   forceencaps=yes
   dpdaction=clear
   dpddelay=300s
   rekey=no
   left=%any
   leftid=
   leftcert=server-cert.pem
   leftsendcert=always
   leftsubnet=0.0.0.0/0
   right=%any
   rightid=%any
   rightauth=eap-mschapv2
   rightsourceip=10.10.10.0/24
   rightdns=8.8.8.8,8.8.4.4
   rightsendcert=never
   eap_identity=%identity

/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.

# this file is managed with debconf and will contain the automatically created $
include /var/lib/strongswan/ipsec.secrets.inc

: RSA "server-key.pem"
user1 : EAP "password1"
user2 : EAP "password2"

iptables на VPS

-A FORWARD -s 10.10.10.0/24 -o eth0 -p tcp -m policy --dir in --pol ipsec -m tcp --tcp-flags SYN,RST SYN -m tcpmss --mss 1361:1536 -j TCPMSS --set-mss 1360

-A POSTROUTING -s 10.10.10.0/24 -o eth0 -m policy --dir out --pol ipsec -j ACCEPT
-A POSTROUTING -s 10.10.10.0/24 -o eth0 -j MASQUERADE

-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -p tcp -m tcp --dport 22 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 443 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 80 -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -p udp -m udp --dport 500 -j ACCEPT
-A INPUT -p udp -m udp --dport 4500 -j ACCEPT
-A INPUT -j DROP
-A FORWARD -s 10.10.10.0/24 -m policy --dir in --pol ipsec --proto esp -j ACCEPT
-A FORWARD -d 10.10.10.0/24 -m policy --dir out --pol ipsec --proto esp -j ACCEPT
-A FORWARD -j DROP

Импорт сертификатов и настройка IPSec MikroTik

Импорт сертификатов

Для добавления сертификатов, необходимо перенести их в память вашего MikroTik в раздел Files.

2f0f5eb6f4e3d76e19a84ab071a78691.png

System → Certificates

Импортируем открытый ключ корневого сертификата вашего центра сертификации на VPS на котором установлен StrongSwan.

0273045c6fc0b9afc0e2ceb11c21730b.png

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

44646952b42ce0523be9460d920fc379.pngfc4ddd316a1699de629a1f03f49a4be1.png

Настройка клиента IPsec

IP → IPsec

Импортируем закрытый ключ авторизации StrongSwan, для использования в клиенте.

5056d97a8a535a6e5519d239ccfd2682.png

Далее, последовательно настраиваем профиль VPN-клиента.

8521f6a555c4cf03be831ae8cc91f119.png42ca5f7fbcea9820609b2136c04d16ee.pnge562f5c2b55907151be81a51d2774885.pnge71ed27855dcf4b7f92640e5d1967b46.png

Вместо «VPS IP» указываем адрес вашего сервера, где развернут StrongSwan.

6e45c152426843648d3f5cadc289faf7.png

В разделе IPsec Idenity настраиваем профиль авторизации, указываем учётные данные и сертификат импортированный ранее.

0f105564d8854ec717256f6ff4a868ad.png

После выполнения этого шага туннель между MikroTik и StrongSwan будет поднят автоматически.

Вывод в разделе Log при успешной авторизацииВывод в разделе Log при успешной авторизации

В разделе IP → Addresses при успешной авторизации, появится IP адрес выданный StrongSwan.

bf8269195847807018e0f538977cfc7e.png

Настройка маршрутизации трафика и списка ресурсов

IP → Firewall

В разделе NAT создаем правило перенаправления трафика.

ea7d554378d77727a002740e8d110c61.png

В данном случае я использовал списки адресов.

local — подсеть маршрутизатора.

List1 — список сайтов.

05269a348a42cf0fcc9ec17e1fc03aa3.png

Перенаправляем трафик на шлюз (IP адрес выданный StrongSwan)

5dc5a306e0260de45a0525d28dd58b73.png

Настройка списков

IP → Firewall

В разделе Address Lists необходимо добавить следующие списки:

local — подсеть маршрутизатора, в моем случае 192.168.1.0/24

List1 — список сайтов. Например habr.com, можно добавить сайт по fqdn, ip адрес будет определён автоматически.

d74c19172181fc7520c93b4f7ddf5aba.png

List1 — список сайтов. Например habr.com, можно добавить сайт по fqdn, ip адрес будет определён автоматически.

06b44ad749078200e2053e9b5514c1fa.png

Заключение

В данной статье я постарался подробно описать настройку туннеля между MicroTik и StrongSwan. Очень жду фидбека и вашей конструктивной критики.

© Habrahabr.ru