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

Введение

Идея статьи возникла из желания пропускать определенные сайты через 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.

System -> Certificates

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

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

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

IP -> IPsec

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

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

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

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

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

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

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

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

IP -> Firewall

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

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

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

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

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

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

IP -> Firewall

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

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

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

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

Заключение

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

Let’s block ads! (Why?)

Read More

Recent Posts

Apple возобновила переговоры с OpenAI и Google для интеграции ИИ в iPhone

Apple возобновила переговоры с OpenAI о возможности внедрения ИИ-технологий в iOS 18, на основе данной операционной системы будут работать новые…

1 день ago

Российская «дочка» Google подготовила 23 иска к крупнейшим игрокам рекламного рынка

Конкурсный управляющий российской «дочки» Google подготовил 23 иска к участникам рекламного рынка. Общая сумма исков составляет 16 млрд рублей –…

2 дня ago

Google завершил обновление основного алгоритма March 2024 Core Update

Google завершил обновление основного алгоритма March 2024 Core Update. Раскатка обновлений была завершена 19 апреля, но сообщил об этом поисковик…

2 дня ago

Нейросети будут писать тексты объявления за продавцов на Авито

У частных продавцов на Авито появилась возможность составлять текст объявлений с помощью нейросети. Новый функционал доступен в категории «Обувь, одежда,…

2 дня ago

Объявлены победители международной премии Workspace Digital Awards-2024

24 апреля 2024 года в Москве состоялась церемония вручения наград международного конкурса Workspace Digital Awards. В этом году участниками стали…

2 дня ago

Яндекс проведет гик-фестиваль Young Con

27 июня Яндекс проведет гик-фестиваль Young Con для студентов и молодых специалистов, которые интересуются технологиями и хотят работать в IT.…

3 дня ago