Mikrotik. IPSEC vpn за NAT как клиент

в 13:31, , рубрики: ipsec, mikrotik, routeros, vpn, Сетевые технологии

Доброго всем дня!

Так уж сложилось, что в нашей компании в течении последних двух лет мы потихоньку переходим на микротики. Основные узлы построены на CCR1072, а локальные точки подключения компов на устройствах попроще. Само собой существует и объединение сетей по IPSEC tunnel, в данном случае настройка достаточно проста и не вызывает никаких трудностей, благо есть множество материалов в сети. А вот с мобильным подключением клиентов есть определенные трудности, вики производителя подсказывает, как использовать Shrew soft VPN client (по этой настройке все вроде понятно) и именно этот клиент использует 99% пользователей удаленного доступа, а 1% это я, мне стало просто лень каждый раз вводить логин и пароль в клиент и захотелось ленивого расположения на диване и удобного подключения к рабочим сетям. Инструкций по настройки Микротика для ситуаций, когда он находится даже не за серым адресом, а совсем за черным и может быть даже несколькими NAT в сети я не нашел. Потому пришлось импровизировать, а потому предлагаю посмотреть на результат.

Имеется:

  1. CCR1072 как основное устройство. версия 6.44.1
  2. CAP ac как домашняя точка подключения. версия 6.44.1

Главная особенность настройки в том, что ПК и микротик должны находиться в одной сети с одной адресацией, что и выдается основым 1072.

Переходим к настройке:

1. Конечно включаем Fasttrack, но так как с впн fasttrack не совместим, то приходится вырезать его трафик.

/ip firewall mangle
add action=mark-connection chain=forward comment="ipsec in" ipsec-policy=
    in,ipsec new-connection-mark=ipsec passthrough=yes
add action=mark-connection chain=forward comment="ipsec out" ipsec-policy=
    out,ipsec new-connection-mark=ipsec passthrough=yes
/ip firewall filter add action=fasttrack-connection chain=forward connection-mark=!ipsec

2. Добавляем пробросы сетей из/в домашнюю и рабочую

/ip firewall raw
add action=accept chain=prerouting dst-address=192.168.33.0/24 src-address=
    10.7.76.0/24
add action=accept chain=prerouting dst-address=192.168.33.0/24 src-address=
    10.7.98.0/24
add action=accept chain=prerouting dst-address=10.7.76.0/24 src-address=
    192.168.33.0/24
add action=accept chain=prerouting dst-address=10.7.77.0/24 src-address=
    192.168.33.0/24
add action=accept chain=prerouting dst-address=10.7.98.0/24 src-address=
    192.168.33.0/24
add action=accept chain=prerouting dst-address=192.168.33.0/24 src-address=
    10.7.77.0/24

3. Создаем описание подключения пользователя

/ip ipsec identity
add auth-method=pre-shared-key-xauth notrack-chain=prerouting peer=CO secret=
    общий ключ xauth-login=username xauth-password=password

4. Создаем IPSEC Proposal

/ip ipsec proposal
add enc-algorithms=3des lifetime=5m name="prop1" pfs-group=none

5. Создаем IPSEC Policy

/ip ipsec policy
add dst-address=10.7.76.0/24 level=unique proposal="prop1" 
    sa-dst-address=<white IP 1072> sa-src-address=0.0.0.0 src-address=
    192.168.33.0/24 tunnel=yes
add dst-address=10.7.77.0/24 level=unique proposal="prop1" 
    sa-dst-address=<white IP 1072> sa-src-address=0.0.0.0 src-address=
    192.168.33.0/24 tunnel=yes

6. Создаем IPSEC profile

/ip ipsec profile
set [ find default=yes ] dpd-interval=disable-dpd enc-algorithm=
    aes-192,aes-128,3des nat-traversal=no
add dh-group=modp1024 enc-algorithm=aes-192,aes-128,3des name=profile_1
add name=profile_88
add dh-group=modp1024 lifetime=4h name=profile246

7. Создаем IPSEC peer

/ip ipsec peer
add address=<white IP 1072>/32 local-address=<ваш адрес роутера> name=CO profile=
    profile_88

А теперь немного простой магии. Так как мне не очень хотелось менять настройки на всех устройствах в домашней сети, то надо было как-то повесить DHCP на туже сеть, но разумно, что Микротик не позволяет повесить более одного адресного пула на один bridge, потому нашел обходной вариант, а именно для ноутбука просто создал DHCP Lease с ручным указанием параметров, а так как netmask, gateway & dns также имеют номера опций в DHCP, то и их указал вручную.

1. DHCP Option

/ip dhcp-server option
add code=3 name=option3-gateway value="'192.168.33.1'"
add code=1 name=option1-netmask value="'255.255.255.0'"
add code=6 name=option6-dns value="'8.8.8.8'"

2. DHCP Lease

/ip dhcp-server lease
add address=192.168.33.4 dhcp-option=
    option1-netmask,option3-gateway,option6-dns mac-address=<MAC адрес ноутбука>

При этом настройка 1072 является практически базовой, только при выдаче IP адреса клиенту в настройках указывается, что выдавать ему IP адрес введенный вручную, а не из пула. Для обычных клиентов с персональных компьютеров подсеть такая же, как в конфигурации с Wiki 192.168.55.0/24.

И немного добавлю, на основном сервере подключения 1072 необходимо также добавить в IP-Firewall-RAW правила для симметричного проброса сетей. При добавлении нового проброса сети необходимо добавить правила в IPSEC-Policy на клиенте, сервере, а также на сервере IP-Firewall-RAW и список вырезки из NAT.

Подобная настройка позволяет на ПК не подключаться через сторонний софт, а туннель сам поднимается роутером по мере необходимости. Нагрузка клиентского CAP ac практически минимальная, 8-11% при скорости 9-10МБ/с в туннеле.

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

Автор: kisyabrus

Источник


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js