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

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

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

Имеется:

  • CCR1072 как основное устройство. версия 6.44.1
  • 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 disabled=yes dst-address=192.168.55.0/24
    src-address=10.7.78.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 disabled=yes dst-address=10.7.78.0/24
    src-address=192.168.55.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.

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

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

    Оставить комментарий