Сервер в кармане, или просто о сложном!

главная - Статьи - Mikrotik



Настройка VPN IPSec/L2TP сервера Mikrotik

Дата обновления: 19.10.2023

Теги: Mikrotik VPN VPN сервер

(актуальность статьи: 19.10.2023) Иногда мне кажется, что создатели Mikrotik намеренно лишают себя прибыли, не создавая однозначных пошаговых руководств по настройке своих детищ. Почти 100% потребителей этих роутеров пытаются настроить VPN, использовать два или более WAN одновременно или в качестве резервных. Именно это ищут по всей сети (и часто вне рунета) счастливые владельцы этих замечательных устройств. Представьте, на сколько бы увеличилась армия владельцев, если бы для настройки этих функций было два-три визарда в веб-интерфейсе. А сейчас.. сейчас именно благодаря сложности настройки (и, соотв., меньшему количеству желающих купить) мы имеем недорогое, малокапризное для несложных задач устройство, которое надо заставить работать 24х7х365. Например, в качестве VPN-сервера. Поехали!

В данной статье речь идет про VPN-сервер с аутентификацией по паролям. Это достаточно удобный способ, например, можно на короткое время предоставить кому-то доступ (для удаленной работы инженера, к примеру), а потом быстро этот доступ снять, причем не отключая пользователя, а просто поменяв пароль. Но есть и минусы, как минимум, безопасность. Возможность получения доступа путем перебора паролей - это уязвимое место в системе безопасности - надо мониторить логи на предмет попыток входа. Хотя можно и реагировать на попытки подбора пароля, занося злоумышленника в бан. Также среди минусов - невозможность передать маршрут клиенту. Т.е. без донастройки клиента весь трафик клиента идет через канал VPN. Есть другой способ настройки VPN сервера Mikrotik - на ключах, IKEv2. Этот способ описан в отдельной статье "Настройка VPN IKEv2 сервера Mikrotik".

Протокол L2TP обеспечивает канал передачи данных, туннель.

IPSec обеспечивает защиту данных от просмотра.

Настраивать мы будем тоже по частям - сначала туннель, потом - защита данных.

Примечание 1 (Winbox):
Я не очень люблю текстовые команды с кучей ключей при настройке вещей, которые достаточно много где описаны, но описаны каждый раз с незаметными опечатками, где-то что-то не скопировалось при написании (или при копировании с другого сайта, что случается чаще всего) или просто съелось текстовым редактором CMS сайта. Настройка VPN как раз такой случай. Поэтому я специально каждый шаг прописал для GUI Mikrotik - Winbox, тем более что не так уж тут и много всего надо сделать.
Примечание 2 (до версии 6.18):
До версии 6.18 в прошивке есть баг, из-за которого всегда применяется default policy template, поэтому обновите прошивку до последней стабильной. Не обновляйте прошивку до самой последней, но нестабильной версии, если вы настраиваете VPN.

Итак, имеем роутер Mikrotik с прошивкой 6.46.2 (февраль 2020) c LAN 192.168.88.0/24 (сеть по-умолчанию). WAN не важен, например, 1.2.3.4.

 

Настройка туннелирования (L2TP)

1. IP - Pool / Определям диапазон адресов VPN-пользователей

Name: vpn_pool
Addresses: 192.168.112.1-192.168.112.10
Next pool: none

Лучше для клиентов vpn использовать отдельную адресацию. Так проще отделять одних от других. И вообще, бест практис.

2. PPP - Profiles / Профиль для нашего конкретного туннеля

General:
Name: l2tp_profile
Local address: vpn_pool (а можно указать 192.168.88.1, сами смотрите, как вам больше нравится)
Remote address: vpn_pool
Change TCP MSS: yes

Protocols:
all to default:
Use MPLS: default
Use compression: default (ставил также yes)
Use Encryption: default (можно ставить no, т.к. ppp-шифрование мы использовать не будем, на это нам IPSec есть, на незагруженном микротике разницы никакой не заметил)

(примечание: сейчас я ставлю use encryption: yes, use compression: no, разницы реально никакой не чувствую).

Если в сети, куда вы подключаетесь, есть ресурсы по внутренним доменным именам, а не только по IP, можете указать DNS Server этой сети, например, 192.168.88.1 (или какой вам нужен).

Limits:
Only one: default

3. PPP - Secrets / Готовим пользователя VPN

Name: vpn_user1
Password: bla-bla-bla
Service: l2tp
Profile: l2tp_profile

4. PPP - Interface - клик на L2TP Server / Включаем сервер L2TP

Enabled - yes
MTU / MRU - 1450
Keepalive Timeout - 30
Default profile - l2tp_profile
Authentication - mschap2
Use IPSec - yes
IPSec Secret: tumba-yumba-setebryaki (это не пароль пользователя, а предварительный ключ, который надо будет указывать на клиентах в дополнение к логину/паролю)

При этом в IP-IPSec-Peers будет создан динамический пир с именем l2tp-in-server.

 



Настройка шифрования данных в "туннеле" (IPSec)

На предыдущем этапе мы создали туннель для передачи данных и включили IPSec. В этом разделе мы настроим параметры IPSec.

5. IP - IPSec - Groups

Статья эта уже прошла немало редакций с 2015 года, и тогда была велика вероятность появления ошибки соединения с сервером из-за дефолтной группы, что лечилось удалением и пересозданием ее. Например, с именем "policy_group1". Также можно просто удалить эту группу, но через веб-интерфейс будут показываться ошибки. В последней редакции с дефолтной группой все работает нормально, но все же имейте ввиду.

6. IP - IPSec - Peers

В старых редакциях нужно было создавать пир (спойлер).

Address: 0.0.0.0/0
Port: 500
Auth method: pre shared key
Passive: yes (set)
Secret: tumba-yumba-setebryaki (это не пароль пользователя!)

Policy template group: policy_group1
Exchange mode: main l2tp
Send Initial Contact: yes (set)
NAT Traversal: yes (set)
My id: auto
Proposal check: obey
Hash algorithm: sha1
Encryption Algorithm: 3des aes-128 aes-256

DH Group: modp 1024
Generate policy: port override
Lifitime: 1d 00:00:00
DPD Interval: 120
DPD Maximum failures: 5

Сейчас пир создается автоматически при включении L2TP-сервера с Use IPSec. А если у вас он был создан ранее, то после обновления прошивки микротика будет два пира - автоматически созданый и ваш старый, над которым будет красная надпись: This entry is unreachable. Так что идем дальше.

7. IP - IPSec - Proposals / "Предложения".

Что-то вроде "что мы можем вам предложить". Другими словами, задаем опции подключения, которые смогут пытаться использовать удаленные клиенты.

Name: default
Auth algorithms: sha1
Enrc. algorithms: aes-256 cbc, aes-256 ctr
Life time: 00:30:00
PFS Group: mod 1024

Этот пункт очень важен, здесь указываются не просто алгоритмы шифрования, но поддерживаемые удаленными клиентами алгоритмы шифрования. Что толку, что вы выставите крутые настройки на сервере, а клиенты их "не умеют"? Задача - выдержать баланс.

 

Firewall

Давайте уж к консоли, что-ли для разнообразия:

/ip firewall filter
add chain=input action=accept protocol=udp port=1701,500,4500
add chain=input action=accept protocol=ipsec-esp

Если у вас по-умолчанию политика forward установлена в drop (последнее правило для forward "chain=forward action=drop"), вам может быть необходимым разрешить forward с ip-адресов vpn_pool в локальную сеть:

add chain=forward action=accept src-address=192.168.112.0/24 in-interface=!ether1 out-interface=bridge-local comment="allow vpn to lan" log=no log-prefix=""

Вот теперь с сервером все.

 

Подключение удаленного клиента

Пробуем подключить Windows 7:

Панель управленияСеть и ИнтернетЦентр управления сетями и общим доступом:
    Настройка нового подключения или сети
        Подключение к рабочему месту
            Создать новое подключение
                Использовать мое подключение к интернету (VPN)
                    Интернет-адрес: ip или имя роутера в сети
                        Пользователь и пароль из PPP->Secrets. В нашем случае это vpn_user1 и его пароль.
                        
Пытаемся подключиться.

Если не выходит, или просто надо настроить созданное подключение:

Вкладка Безопасность:

Тип VPN: L2TP IPSec VPN

Дополнительные параметры: для проверки подлинности использовать предварительный ключ. В нашем случае это "tumba-yumba-setebryaki" (IP - IPSec - Peers):

Здесь же, в группе "Проверка подлинности", оставляем только CHAP v2. Жмем ОК и пытаемся подключиться. Должно получиться.

Если нет, загляните на страницу ошибок при настройке VPN.

 

Update 1: часто люди интересуются, как несколько (больше одного) клиентов из одной локальной сети (за nat) могут подключаться к одному удаленному vpn-серверу микротик.  Не знаю, как в L2TP/IPSec связке это обеспечить. Можно назвать это багом реализации. Я не нашел простого объяснения и решения проблемы.

Update 2: в начале 2022 года массовую проблему принесли обновления Windows 10, которые затронули работу VPN-клиента Windows. Проблема заключается в том, что если у вас установлено обновление KB5009543, то вам, очень вероятно, не удастся установить VPN-соединение с сервером, даже если пароли верные и настроено все правильно.

Попытка L2TP подключения не удалась из-за ошибки

Решением будет удалить обновление KB5009543, например, так (в командной строке Windows, с правами администратора):

if (get-hotfix -id KB5009543) { wusa /uninstall /kb:5009543 }

После этого компьютер надо перезагрузить.



18.07.2016 19:29 Птррр
Наконец добавили комментарии :) Спасибо за статью. Пару раз помогло.
09.08.2016 10:00 Mapc
Все настройки производил строго следуя статье, все включилось. Но с машины за VPN не пингуется ни один внутренний ip адрес. =( но интернет идет именно через VPN канал.
19.08.2016 17:35 Vertall
Спасибо! Все получилось. Может подскажете, после подключения Vpn вижу удаленную сеть за микротиком, могу заходить на компы. Но на моем компе пропадает интернет. Если в свойствах vpn подключения убрать галку "использовать основной шлюз в удаленной сети" то интернет появляется, но тогда не вижу других компов за микротиком(
Спасибо!
10.09.2016 23:29 Nikpo
Ответ на комменты выше.
http://bozza.ru/art-247.html

Proxy-arp на внутреннем бридже

При подключении по VPN вы можете неприятно удивиться, почему вы можете открыть страницу логина в роутер, 192.168.88.1 (если у вас такой), но не сможете открыть ни один внутренний ресурс. Штука в том, что надо включить proxy-arp на внутреннем интерфейсе, за которым есть нужный вам ресурс. У меня proxy-arp включен на весь bridge-local. Этот параметр позволяет взаимодействовать хостам, находящимся в разных сегментах сети, между друг другом.
Меню Interfaces -> открываете bridge-local, в пункте ARP выбираете proxy-arp.
02.10.2016 15:28 Anatoly
Здравстуйте. Настраивал L2TP/IPSec по вашей инструкции. Возможно я где-то ошибся, но не могу подключиться к VPN серверу удалённо, подключение создаётся только если я пытаюсь подключиться по локальной сети.

Реализована следующая схема в сети:
Терминал провайдера(Eltex NTP-RG-1402G-W), IP в локальной сети: 192.168.1.1. Внешний IP адрес белый.
Mikrotik, виден терминалу провайдера как 192.168.1.30. Локальная подсеть за микротиком: 192.168.10.0/24. На микротике поднят L2TP/IPSec VPN сервер. С локальной сети я могу подключиться к VPN серверу на микротике.
Подключиться к VPN с внешней сети не могу, есть подозрения что оптический терминал просто не пропускает пакеты до микротика.
Пробовал пробросить порты 500,1701, 4500 через NAT->VirtualServers, не помогает. Подумал что возможно firewall на оптическом терминале блокирует соединения, создал правило в Security->IPFiltering->Incoming: protocol(tcp or udp), port 500,1701,4500, проблему не решило.
Пробовал выставить Mikrotik как DMZ Host на оптическом терминале, так же никакого результата.
Для теста выключал Firewall на mikrotik, так же не даёт эффекта. Но и не должно было: в логах микротика попытка соединения даже не отражается, т.е. пакеты до него не доходят.
18.10.2016 12:39 Daimos
Анатолий, у меня аналогичная задача. Но она похоже не решается пока - проблема в самом Микротике.
http://wiki.mikrotik.com/wiki/Manual:IP/IPsec#Ipsec.2FL2TP_behind_NAT

Warning: Only one L2TP/IpSec connection can be established through the NAT. Which means that only one client can connect to the sever located behind the same router.

Внутри сети VPN поднимается, снаружи через Cisco NAT - нет. Виндовый сервер L2TP/IPSec - нормально внутри сети работает. То есть на Cisco все правильно настроено.
19.10.2016 01:02 Бумер
Анатолий, mikrotik по-любому должен регистрировать пакеты. Если их нет, значит, терминал режет/неправильно настроен. Встречал ситуации, типа фокусов с proxy-arp, но никогда не было такого, чтобы пакеты не регистрировались бы. Хотя бы счетчик пакетов input для соотв. правил должен увеличиваться.
19.10.2016 01:05 Бумер
Daimos, а что значит "виндовый внутри сети нормально работает"?
19.10.2016 01:16 Бумер
Ммм, я бы предположил, что проблема не только/не столько в самом vpn, сколько в том, куда (т.е. кому микротик ответит на vpn-запрос). Грубо говоря: удаленный клиент обращается к внешнему IP Cisco, которая nat-тит запросы на микротик. Ок. Микротик получает запрос - от кого? От Cisco или сохраняется ip удаленного внешнего клиента? Ситуация может быть подобна тому, как если есть проброс того же почтового (например, 25 порт) с внешнего ip микротика на локальный сервер: внешние клиенты могут коннектиться к 25 порту микротика и получают в ответ приглашение внутреннего сервера, а те же клиенты, но из локальной сети микротика, к внешнему ip микротика на 25 порт не присоединятся, пока не настроишь соотв. dst-address.
19.10.2016 09:34 Daimos
Бумер, в локальной сети поднят Windows Remote and Routing Server, на нем настроен L2TP/IPSec
На Cisco сделан проброс портов UDP 500, 1701, 4500 с внешнего интерфейса на локальный адрес внутри сети на IP Windows RRAS. Клиенты подключаются по L2TP/IPSec, в том числе c mac OS 10.12 Sierra, в которой больше нет pptp клиента - только IKEv2, Cisco и L2TP/IPsec.
Если поменять IP в пробросе портов c Windows сервера на IP MikroTik - то по логам видно, что IPSec поднимается, а L2TP - нет, и через 30 сек - соединение обрывается.
На Cisco c НАТом боролся ооочень грамотный специалист по цискам, пробовали и полностью IP прокинуть, а не только 3 порта UDP. Не поднимается на микротике L2TP.
Написал на форуме микротика - пока молчат.
19.10.2016 10:07 Daimos
Непонятная жэсть с дублированием постов :)
20.10.2016 12:54 bzzz
Daimos, да, забавно. Я удалил два дубликата вашего поста 19.10.2016 09:34. Вы первый с этой проблемой. Постараюсь разобраться, что это было.
20.10.2016 13:04 bzzz
Насчет микротика и vpn... У микротика порой бывают непонятные и неприятные глюки. Например, с отваливанием wifi-клиента ipad2. Проблема не актуальна сейчас, но два года назад пришлось из-за этого другое оборудование ставить. Причем общение с дистрибьютором подтвердило, что это несоотв. реализации чего-то там у Apple. Микротик вернули в магазин и получили деньги назад, хоть и срок манибека истёк.
22.10.2016 13:44 Hippomsk
Как часто говорится в импортном кино, дерьмо случается...
С новым апдейтом Apple извёл на корню PPTP. В связи с этим настраиваю L2TP/IPSec. Настроил по мануалу и по этой статье и плясал с бубном несколько дней. Результат - из Windows XP и Windows 7 захожу свободно с любым шифрованием.
Windows 8.1, Android 5.1, iOS 8.x и Mac OS X 10.6.8 и старше - ни в какую не заходит ни при каком раскладе.
Mikrotik RouterOS v6.37.1 находится в DMZ за роутером МГТС GPON. Выкинуть GPON или превратить в мост невозможно в связи с использованием специализированной прошивки МГТС для телефонии и работы с оптоволокном.
Я уже сдался. Не понимаю что может быть не так. Со стороны клиента Mac OS X в логе надпись такая:

Thu Oct 20 12:41:06 2016 : L2TP connecting to server '95.165.x.x' (95.165.x.x)..
Thu Oct 20 12:41:06 2016 : IPSec connection started
Thu Oct 20 12:41:06 2016 : IPSec phase 1 client started
Thu Oct 20 12:41:06 2016 : IPSec phase 1 server replied
Thu Oct 20 12:41:07 2016 : IPSec phase 2 started
Thu Oct 20 12:41:07 2016 : IPSec phase 2 established
Thu Oct 20 12:41:07 2016 : IPSec connection established
Thu Oct 20 12:41:07 2016 : L2TP sent SCCRQ
Thu Oct 20 12:41:27 2016 : L2TP cannot connect to the server
24.10.2016 00:01 bzzz
> находится в DMZ за роутером МГТС GPON
Вполне возможно, что дело в этом. Daimos выше тоже жаловался, что не подключиться к Микротику через еще один роутер. nat через nat - и полный абзац.

> L2TP cannot connect to the server
ваш мак пытается подключиться к роутеру МГТС. Ок. Это сообщение может быть по нескольким причинам:
1. сервер в самом деле недоступен (не ваш случай, вроде бы);
2. ошибка роутинга трафика между роутером МГТС и микротиком.
Трафик снифали на предмет того, кого микротик считает "источником" (т.е. vpn-клиентом)?
Может быть, vpn сервер микротика отвечает не клиенту, а роутеру МГТС? А тот ничего такого не ожидает и отбрасывает пакет от микрота.
клиент (src: 1.2.3.4) -> роутер (5.5.5.5, 192.168.1.1) -> mikrotik (192.168.1.2, 192.168.88.1)
к микротику приходит запрос, что удаленный клиент с IP 192.168.1.1 (или 5.5.5.5) запрашивает VPN-соединение. Микрот что-то там колдует и готовит соотв. ответ. А этот ответ не устраивает роутер!
Ну х.з. почему.
Или какая-то фигня с ttl?
В общем, тут траф смотреть надо, кто кому куда отвечает.
24.10.2016 00:04 bzzz
Еще вариант - вдруг на opennet вам подскажут? Там такие маньяки порой встречаются, что любо-дорого! В любом случае, если будет возможность, напишите, что к чему, как решили вопрос.
24.10.2016 00:11 bzzz
Еще мысль возникла - а если просто L2TP канал сделать, без шифрования? Понятное дело, в режиме "только проверить". Чтобы ясно стало, где глюк микротика - в IPSec или в L2TP?
24.10.2016 10:35 Daimos
L2TP/IPsec Микротике и Результат - из Windows XP и Windows 7 захожу свободно с любым шифрованием. ?
Как-то сомнительно. Покажите скриншот :)
А вообще видели вот это?

Найдите и выделите следующий подраздел реестра:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\PolicyAgent

В меню Правка выберите пункт Создать и затем щелкните значение DWORD (32 бита).
Введите AssumeUDPEncapsulationContextOnSendRule и нажмите клавишу ВВОД.
Щелкните правой кнопкой мыши AssumeUDPEncapsulationContextOnSendRule и выберите команду Изменить.

В поле Значение введите введите одно из следующих значений:
0
Значение 0 (ноль) настраивает Windows таким образом, чтобы ОС не могла установить сопоставления безопасности с серверами, расположенными за устройством NAT.
1
Значение 1 настраивает Windows так, что ОС поддерживает сопоставления безопасности с серверами, расположенным за устройствами NAT.
2
Значение 2 настраивает Windows таким образом, что ОС может устанавливать сопоставления безопасности, когда и сервер, и клиентский компьютер VPN под управлением Windows Vista или Windows Server 2008 находятся за устройствами NAT.
24.10.2016 14:41 bzzz
Ваш компьютер, Daimos, живет своей жизнью! 10:35 и 11:08 - одинаковые посты :)
Стер один. Плагин, что-ли, написать, для вас ;)
24.10.2016 14:46 bzzz
Т.к. Windows это может, то значит, и другие могут. Может, все же, винда отправляет какой-то заголовок, чуток другой (инкапсулирует все в поле данных, например). Надо смотреть пакеты при использовании Mac и Win и сравнивать.
25.10.2016 08:41 Daimos
Это какой-то прикол - Опера блокирует какой-то плагин и при попытке обновления страницы - пост как-то дублируется.
25.10.2016 08:51 Daimos
По поводу старой Windows - не удивлюсь, что подключилось по протоколу PPTP :)
25.10.2016 16:51 bzzz
Кстати, да. В https://bozza.ru/art-248.html#44, где я предлагал вариант без шифрования, была дурная мысль "посоветовать" попробовать PPTP (этот анахронизм описан здесь https://bozza.ru/art-188.html). Но рука не поднялась :)
25.10.2016 21:20 Hippomsk
PPTP там уже несколько лет работает. И я по нему захожу без проблем.
Подскажите по поводу снифа - куда смотреть в микротике.
25.10.2016 21:26 Hippomsk
И, кстати, на opennet молчат, как рыбы.
Как будто я единственный человек с такой проблемой.
25.10.2016 22:33 bzzz
Tools -> Packet Sniffer.
Все это дело - в файл. Файл потом в wireshark.

Если на вкладке Streaming выставить галочку "Streaming Enabled" и указать ip-адрес компа с запущенным wireshark-ом (на порте 37008 upd, если не ошибаюсь - где-то видел), то можно траф прямо потоком лить с микротика в него.

Ну и проще можно, без анализа, просто наставить в firewall правил на логирование или просто подсчет определенных пакетов и поставить все это дело первым номером в firewall. И смотреть логи. На любом правиле firewall вкладка Action - галка "Log".

За такие приколы я микротик просто обожаю! Даже несмотря на все его "милые особенности". Вон в последних роутерах Asus до сих пор VNP - PPTP (!!!), судя по интерфейсу. PPTP, Карл! За сравнимые деньги, и год уже 2016...

И да, opennet я для примера взял. Форумов кучи.
01.11.2016 15:49 Andrewww
Добрый день!
Подскажите где может быть ошибка?
Настроил сервер l2tp/IPSec, на интерфейсе lan в ARP выставлено proxy-ARP.
Подключение VPN с Win7 проходит, выдается ip адрес из пула vpn-l2tp, пинг проходит только на ip адрес сервера l2tp.
Пинги на внутренние адреса локальной сети не проходят, подключиться по rdp к локальному хосту не получается.
02.11.2016 08:58 bzzz
Andrewww, а ваш клиент Windows вообще знает маршрут до внутренней сети микротика? Однажды с таким столкнулся. Например, "route print" выдает вам что-то вроде:
0.0.0.0 0.0.0.0 On-link 192.168.112.5 11
где 192.168.112.5 (в моем случае) это ip, выданный микротиком (виден также по ipconfig на клиенте Windows или в IP->Pool на микротике)?
02.11.2016 09:05 bzzz
Микротик нигде не режет входящие/исходящие пакеты из пула vpn-l2tp?
02.11.2016 13:11 Andrewww
На Win7 "route print"
192.168.90.0 255.255.255.0 192.168.90.1 192.168.90.30 26
192.168.90.30 255.255.255.255 On-link 192.168.90.30 281
192.168.90.30 - ip выданный микротиком 192.168.90.1 - l2tp server
На Win7 (файервол отключен) ping проходит только до 192.168.90.1. Локальный интерфейс микротика 192.168.60.1 не пингует.
С миктотика также пингуется только 192.168.90.1 адрес l2tp сервера.
В файерволе микротика выключал все блокирующие правила, результата нет.
03.11.2016 14:19 bzzz
По таким маршрутам ваш Win не поймет, что локальная сеть "за микротиком" 192.168.60.0 вообще существует. Шлюз по-умолчанию должен быть. Если не ошибаюсь, на Win в cmd:
route ADD 192.168.60.0 MASK 255.255.255.0 192.168.90.1

Если firewall отключен на Win, то из локалки микротика (из 192.168.60.0) можно пингануть 192.168.90.30?
09.11.2016 11:12 Kowalsky
подскажите настроил согласно статье все работает с одни НО. Если по VPN начинать передавать большой объем то VPN отключается примерно на 200 мб. Второй минус на Win 10 почему то отключается при неиспользовании VPN в течении 30 сек.
24.11.2016 09:48 Yevgenys
Настроил по статье, внутрянку пингую, отваливается инет у внешнего клиента потому как пакеты шлются через шлюз микротика. Можно конечно разрешить ему в NATе ходить через интернет пользователя но это не правильно. Если снять галочку в настроке VPN клиента "использовать основной шлюз в удаленной сети" то инет остается но во внутрянку не попадаю. Как сделать так чтоб инет у внешнего пользователя не отваливался при подключении VPN?
24.11.2016 09:50 Yevgenys
* Можно конечно разрешить ему в NATе ходить через интернет ОФИСА
05.12.2016 18:53 Serge
Хороший мануал для чайников (как я). Спасибо!
С Win7 коннектится без проблем. А вот с микротика на микротик никак. Точнее содинение устанавливается, а вот дальше дело не идет.
Имею: Тик1 - (сервер) - поднят на виртуалке на удаленном сервере.
Тик2 - (клиент) - железяка.
Задача: поднять VPN между ними, чтобы ходить через Тик1 в его локалку
Сейчас подключен в инет через Тик2 с динамическим внешним IP.
Локалка настроена по умолчанию: 192.168.88.0
Предполагаю, что дело в какой-то мелочи, но знаний не хватает.
Куда копать? Ткните носом.
06.12.2016 15:53 bzzz
Боюсь ошибиться, т.к. никогда микротики не соединял, но вполне может оказаться, что именно одинаковые локальные сети вам мешают.

За Тик1 сеть 192.168.88.0.
За Тик2 сеть 192.168.88.0.

Спрашивается, будет знать клиент за Тик1, что такая же адресация сети еще и за Тик2? Плюс возможны коллизии адресов. Плюс как самим микротикам понимать, где "их" локалка, а где "удаленная"? Может, просто надо изменить сеть за одним из Тиков? Например, на 192.168.89.0?

Ну и почти все проблемы с VPN-ми - это маршрутизация или firewall (nat, src-nat, dst-nat, iptables и т.п.). Или сервер не знает, где искать клиента, или firewall что-то блокирует не из той сети. Ну кроме специфических нюансов, конечно.

Повторюсь, я никогда сам это не делал, хотя идея один из них в виртуалке поднять - стоящая. Спасибо :)
06.12.2016 23:26 Serge
За Тик1 сеть 192.168.63.0
за Тик2 сеть 192.168.88.0
VPN между ними поднялся с адресацией 172.16.0.0
С тик2 на тик1 пинг на 172.16.0.1 проходит, а с компа который подключен к тику2 нет.
Очевидно, что нужно добавить маршрут из 192.168.88.Х сети в 172.16.0.Х
Ну так они динамически и добавляются. Или я чего-то недопонимаю. (повторюсь, я чайник и ногами не пинайте ;))
06.12.2016 23:31 Serge
P.S. Идея Микротика в виртуалке не нова и не моя, но всегда пожалуйста ))
Правда не совсем легальная, т.к. RouterOS варезный, но я обещаю удалить после изучения )))
07.12.2016 14:38 bzzz
Не могу точно сказать, где именно у вас все останавливается. Возможно, что отправляется пинг с Тик2 верно, а вот Тик1, получив входящий пакет от Тик2, будет знать, куда отправить ответ? Я только гадать могу, к сожалению.
01.02.2017 09:53 Сергей
прошивка 38.1.
Все сделал как в этой инструкции, все работает. Но если два пользователя находятся за одинаковым натом (1 внешний ip на двоих). То при подключении второго пользователя- первый вылетает.
ставил ip-ipsec-peer-generate-policy: port-strict
не помогло как быть.
03.02.2017 11:38 bzzz
Проверил - вылетает. Дело не в бабине явно. С ходу не скажу даже, просто не сталкивался с этим до сих пор. Посмотрю - напишу, вопрос вообще-то важный.
03.02.2017 12:01 bzzz
Не удобно разбираться с этим удаленно :) через раз выбрасывает :) Вот что нашел, мне кажется, надо в эту сторону копать: http://forum.mikrotik.com/viewtopic.php?t=107333

I have replaced our Cisco router with a MikroTik and I encountered the same issue...

It is a bug. The automatically generated config specifies "port strict" as the rule for generate policy.
This means the IPsec policy will be generated with explicit portnumbers. 1701 for the local port, and
usually also 1701 for the remote port.
However, this is done incorrectly. It puts the port number of the NAT-T layer in the policy instead of the
port number of the L2TP session. So you see local port 1701 and remote port some different number.
However, when looking in a packet trace it is clear that the remote port for the L2TP traffic is 1701.

I could work around it by removing the "Use IPsec" in the L2TP server and creating an IPsec Peer
definition manually, with address ::/0 port 500 auth pre-shared-key, the secret, but with the setting
Generate Policy set to "port override".
28.03.2017 14:34 AHTOH
большое спасибо за статью. Все работает. Теперь у меня на телефоне 2 типа vpn.
04.04.2017 17:38 duckpower
Здравствуйте!

Во-первых хочу поблагодарить Вас за проделанный труд, очень полезная инструкция! У меня возникла потребность поднять VPN в компании для соединения туннелем между двумя офисами, а также организации удаленного доступа для сотрудников (например, из дома). Делал все по инструкции (за исключением адресов, они, разумеется, используются свои), но столкнулся с двумя проблемами:
1) При подключении iPhone к VPN, он видит адрес Микротика и есть возможность подключиться к веб-морде устройства, но с адресами из локальной сети связи нет. (proxy-arp в bridge выставлял, не помогает);
2) При подключении через нативный VPN клиент в Windows нет ответа даже от шлюза, через который можно подключиться к веб-морде. Т.е. вообще ничего;
Постараюсь наиболее информативно описать вводные, благо их немного:
* два выделенных IP от провайдера. Один идет кабелем в роутер Циски, от нее в свою очередь идет еще один в коммутатор Циски, в котором уже организована локальная сеть. Второй идет в Микротик, от которого также идет подключение к вышеупомяннотому свитчу
* в адресах Микротика указаны 1 адрес от провайдера на 1-й интерфейс (ether1) и заданный мной адрес из локальной сети (интерфейс установлен bridge);
* созданы 2 пула. Один не используется, второй в другой подсети, отличной от локальной (как советуется в инструкции);
* в остальном все так, как описано. Но в профайле PPP в качестве Local Address указан адрес шлюза Микротика из локальной сети, а не пул.

Буду очень признателен за помощь :-) Если информации мало, что очень может быть, напишу что нужно
01.06.2017 16:50 akantemir
Добрый день коллеги. прежде всего огромное спасибо за инструкцию! очень помогла!
сейчас столкнулся с такой проблемой. В Одном из удаленных офисов один пользователь подключаться к микротику по ВПН, все работает. все видно все пингуется и подключается. Пользователь из другога офиса тоже успешно подключается. а вот как только второй пользователь и первого офиса подключается в первого пользователя из первого офиса разрывается ВПН.. т.е. при этом пользователь из второго офиса спокойно работает. Насколько я понял проблему так как оба пользователя подключены к интернету через NAT, то для Микротика они едины и он воспринимает как одно и тоже подключение...
Вопрос как исправить эту ситуацию? если это вообще возможно??
26.06.2017 19:56 bzzz
akantemir, стотысячмиллионов простите, был в отпуске! Специально в конце статьи (перед комментариями), но видимо, не заметно совсем, написал Update1. Нет, насколько я знаю, не может в этой конфигурации Mikrotik дать двум пользователям из-за одного NAT работать. К сожалению. Ну или расскажите, как. Я не знаю.
21.07.2017 09:05 Andrewww
Добрый день! Прошу помощи с проблемой подключения по VPN.
Задача: установить Микротик RB951G-2HnD в роли прокси и VPN сервера, подключаться по L2TP/IPsec будут около 5-6 пользователей. На первом этапе wi-fi выключен (bridge не используется). На мастере Ether2 - proxy-arp. Тестовая среда: подсети LAN 192.168.45.0/24, VPN 10.0.20.0/24. Все настройки проведены в точности по инструкции. Проблем с подключением по L2TP/IPsec что с клиентов Windows7, с iphone, с MAC Book нет, но на этом счастье заканчивается, подключиться по RDP не могут. Клиенты Windows7 не видят локальную сеть 192.168.45.0/24, нет пингов ни на шлюз 192.168.45.1, ни далее….. , с MAC Book такая же история, только c iphone все проходит нормально и есть подключение по RDP.
Если пинговать VPN клиентов bp локальной сети, то пинг идет только на адрес из l2tp_pool PPP-Profiles “Local Address” (этот адрес подтягивается почему-то в ДНС VPN клиента), а “Remote Address” молчит.
Попробовал изменить адресацию l2tp_pool из той же подсети что и LAN (192.168.45.0/24), все клиенты подключаются по VPN и видят локальную сеть, есть подключение по RDP.
После изменений адресации на l2tp_poolе туда сюдя ( то из подсети 192.168.45.0/24, то из подсети 10.0.20.0/24) и попыток подключения, один клиент Windows7 (который раньше не мог подключаться по RDP) начал подключаться, видит локальную подсеть .
Привожу route print с рабочего и проблемных подключений.
С Рабочего:
IPv4 таблица маршрута
===========================================================================
Активные маршруты:
Сетевой адрес Маска сети Адрес шлюза Интерфейс Метрика
0.0.0.0 0.0.0.0 172.20.10.1 172.20.10.3 4250
0.0.0.0 0.0.0.0 On-link 10.0.20.82 26
10.0.20.82 255.255.255.255 On-link 10.0.20.82 281
ХХХХХХХХХ 255.255.255.255 172.20.10.1 172.20.10.3 4251
127.0.0.0 255.0.0.0 On-link 127.0.0.1 4531
127.0.0.1 255.255.255.255 On-link 127.0.0.1 4531
127.255.255.255 255.255.255.255 On-link 127.0.0.1 4531
172.20.10.0 255.255.255.240 On-link 172.20.10.3 4506
172.20.10.3 255.255.255.255 On-link 172.20.10.3 4506
172.20.10.15 255.255.255.255 On-link 172.20.10.3 4506
224.0.0.0 240.0.0.0 On-link 127.0.0.1 4531
224.0.0.0 240.0.0.0 On-link 172.20.10.3 4508
224.0.0.0 240.0.0.0 On-link 10.0.20.82 26
255.255.255.255 255.255.255.255 On-link 127.0.0.1 4531
255.255.255.255 255.255.255.255 On-link 172.20.10.3 4506
255.255.255.255 255.255.255.255 On-link 10.0.20.82 281
===========================================================================
Постоянные маршруты:
Отсутствует

С проблемных:
IPv4 таблица маршрута
===========================================================================
Активные маршруты:
Сетевой адрес Маска сети Адрес шлюза Интерфейс Метрика
0.0.0.0 0.0.0.0 172.20.10.1 172.20.10.4 25
10.0.0.0 255.0.0.0 10.0.20.60 10.0.20.59 26
10.0.20.59 255.255.255.255 On-link 10.0.20.59 281
89.255.65.29 255.255.255.255 172.20.10.1 172.20.10.4 26
127.0.0.0 255.0.0.0 On-link 127.0.0.1 306
127.0.0.1 255.255.255.255 On-link 127.0.0.1 306
127.255.255.255 255.255.255.255 On-link 127.0.0.1 306
172.20.10.0 255.255.255.240 On-link 172.20.10.4 281
172.20.10.4 255.255.255.255 On-link 172.20.10.4 281
172.20.10.15 255.255.255.255 On-link 172.20.10.4 281
224.0.0.0 240.0.0.0 On-link 127.0.0.1 306
224.0.0.0 240.0.0.0 On-link 172.20.10.4 281
255.255.255.255 255.255.255.255 On-link 127.0.0.1 306
255.255.255.255 255.255.255.255 On-link 172.20.10.4 281
255.255.255.255 255.255.255.255 On-link 10.0.20.59 281
===========================================================================
Постоянные маршруты:
Отсутствует

В чем проблема? В Кривых ручках, в прошивке? Что за
21.07.2017 09:06 Andrewww
Или эти железки не могут стабильно работать и выполнять такие задачи?
21.07.2017 09:24 Andrewww
ipconfig /all
C Рабочего:
Адаптер PPP l2tp_new:

DNS-суффикс подключения . . . . . :
Описание. . . . . . . . . . . . . : l2tp_new
Физический адрес. . . . . . . . . :
DHCP включен. . . . . . . . . . . : Нет
Автонастройка включена. . . . . . : Да
IPv4-адрес. . . . . . . . . . . . : 10.0.20.58(Основной)
Маска подсети . . . . . . . . . . : 255.255.255.255
Основной шлюз. . . . . . . . . : 0.0.0.0
DNS-серверы. . . . . . . . . . . : 10.0.20.62
ХХХХХХХХХХ
NetBios через TCP/IP. . . . . . . . : Включен

С проблемных:

Адаптер PPP microtiktest:

DNS-суффикс подключения . . . . . :
Описание. . . . . . . . . . . . . : microtiktest
Физический адрес. . . . . . . . . :
DHCP включен. . . . . . . . . . . : Нет
Автонастройка включена. . . . . . : Да
IPv4-адрес. . . . . . . . . . . . : 10.0.20.57(Основной)
Маска подсети . . . . . . . . . . : 255.255.255.255
Основной шлюз. . . . . . . . . :
DNS-серверы. . . . . . . . . . . : 10.0.20.59
ХХХХХХХХХХ
NetBios через TCP/IP. . . . . . . . : Включен

22.10.2017 19:59 Maxval.rus
Andrewww, попробуйте на виндовой машине (у которой ип впн сети 10.0.20.82) добавить постоянный маршрут:
route -p add 192.168.45.0 mask 255.255.255.0 10.0.20.82
24.10.2017 18:44 Visceroid
Здравствуйте, спасибо за годный мануал.
Действительно удаленнная сеть (192.168.1.0/24) начинает пинговаться после прописывания постоянного маршрута с указанием в шлюзе ip маршрутизатора (ситуативно из l2tp-pool 192.168.100.0/24)
Один вопрос, почему маршрут не прописывается автоматом, или как сделать, чтобы таковой прописывался на подключающейся машине.
06.12.2017 20:07 Worlding
Сделал всё, как в статье, однако, подключаясь с android 7, получаю ошибку:
peer sent packet for dead phase2
В чём дело?
06.12.2017 20:13 Worlding
А с windows 10 ругается: failed to pre-process ph2 packet
07.12.2017 19:02 Worlding
Повторил настройки более внимательно, но правила в firewall сделал не в консоли (правила цепочки "input" однял на самый верх, а правило для NAT делал на вкладке "NAT"), всё получилось.
С телефона android есть подключение. Спасибо!
10.12.2017 23:58 Sergio
Парни, ай нид хелп!

Существует следующая схема на RB3011:

2 провайдера по выделенным  белым IP, настроена балансировка и резервирование каналов;
Включен L2TP Server с авторизацией через RADIUS в AD Windows Server

Локальная сеть: 192.168.100.0/23
VPN pool: 172.16.50.2 - 172.16.50.253

Авторизация происходит нормально, соединение поднимается.

Проблема заключается в том что пользователь подключившийся через VPN (172.16.50.253) не видит локальную сеть (192.168.100.0/23)

Интерфейс локальной сети добавлен в бридж (LocalBridge), на локальном интерфейсе и на LocalBridge включен proxy-arp.

На клиентской машине отмечен чек-бокс "Использовать шлюз в удаленной сети"

Пробовал на Windows, Mac OS, iPhone - результат везде одинаковый. Локальная сеть не пингуется, ресурсы не доступны. На пропинговываемых машинах отключал антивирус и файервол, ничего не изменилось.

Пинг идет только на 192.168.100.1 и на 172.16.50.1 IP-адреса самого микротика.

Парни, как все таки добиться доступности ресурсов локальной сети через VPN-соединение?
Уже третий день голову ломаю, но пока ничего так и не добился. Прошу коллективной помощи побороть проблему!

На всякий случай принт файервола и ната микротика:

################################################################################################
/ip firewall filter print
Flags: X - disabled, I - invalid, D - dynamic
0 ;;; drop invalid connections
chain=input action=drop connection-state=invalid log=no log-prefix=""

1 ;;; record ssh brute forcers
chain=input action=add-src-to-address-list protocol=tcp address-list=ssh_blacklist
address-list-timeout=23h59m59s dst-port=22 log=yes log-prefix=" --- SSH ATTEMPT --- "

2 ;;; allow remote ssh for local network
chain=input action=accept protocol=tcp in-interface=Bridge-Local dst-port=22 log=no log-prefix=""

3 ;;; allow remote ssh for Sergio network
chain=input action=accept protocol=tcp src-address-list=sergio_network dst-port=22 log=no log-prefix=""

4 ;;; drop ssh brute forcers
chain=input action=drop protocol=tcp src-address-list=ssh_blacklist log=no log-prefix=""

5 ;;; allow established connections
chain=input action=accept connection-state=established

6 ;;; allow related connections
chain=input action=accept connection-state=related

7 ;;; allow vpn l2tp
chain=input action=accept protocol=udp port=1701,500,4500 log=no log-prefix=""

8 chain=input action=accept protocol=ipsec-esp log=no log-prefix=""

9 ;;; allow from internet
chain=input action=accept src-address=192.168.100.0/23 in-interface=!Bridge-ISP1 log=no log-prefix=""

10 chain=input action=accept src-address=192.168.100.0/23 in-interface=!Bridge-ISP2

11 ;;; allow internet in vpn
chain=input action=accept src-address=172.16.50.0/24 in-interface=!Bridge-ISP1 log=no log-prefix=""

12 chain=input action=accept src-address=172.16.50.0/24 in-interface=!Bridge-ISP2 log=no log-prefix=""

13 ;;; drop everything else
chain=input action=drop log=no log-prefix=""

14 ;;; accept everything to internet
chain=output action=accept out-interface=Bridge-ISP1

15 chain=output action=accept out-interface=Bridge-ISP2 log=no log-prefix=""

16 ;;; accept everything to non internet
chain=output action=accept out-interface=!Bridge-ISP1

17 chain=output action=accept out-interface=!Bridge-ISP2 log=no log-prefix=""

18 ;;; accept everything
chain=output action=accept

19 ;;; drop invalid connections
chain=forward action=drop connection-state=invalid log=no log-prefix=""

20 ;;; allow already established connections
chain=forward action=accept connection-state=established

21 ;;; allow related connections
chain=forward action=accept connection-state=related

22 X ;;; forward port
chain=forward action=accept protocol=tcp dst-port=21 log=no log-prefix=""

23 chain=forward action=accept protocol=tcp dst-port=25 log=no log-prefix=""

24 chain=forward action=accept protocol=tcp dst-port=80 log=no log-prefix=""

25 chain=forward action=accept protocol=tcp dst-port=443 log=no log-prefix=""

26 chain=forward action=accept protocol=tcp dst-port=1723 log=no log-prefix=""

27 chain=forward action=accept protocol=tcp dst-port=3389

28 ;;; allow vpn to lan
chain=forward action=accept src-address=172.16.50.0/24 in-interface=!Bridge-ISP1 out-interface=Bridge-ISP1
log=no log-prefix=""

29 X chain=forward action=accept in-interface=!all-ppp out-interface=all-ppp log=no log-prefix=""

30 chain=forward action=drop src-address=0.0.0.0/8 log=no log-prefix=""

31 chain=forward action=drop dst-address=0.0.0.0/8 log=no log-prefix=""

32 chain=forward action=drop src-address=127.0.0.0/8 log=no log-prefix=""

33 chain=forward action=drop dst-address=127.0.0.0/8 log=no log-prefix=""

34 chain=forward action=drop src-address=224.0.0.0/3 log=no log-prefix=""

35 chain=forward action=drop dst-address=224.0.0.0/3 log=no log-prefix=""

36 chain=forward action=jump jump-target=tcp protocol=tcp log=no log-prefix=""

37 chain=forward action=jump jump-target=udp protocol=udp log=no log-prefix=""

38 chain=forward action=jump jump-target=icmp protocol=icmp

39 X ;;; Deny From Data
chain=forward action=drop src-address=172.16.30.0/24 dst-address=172.16.10.0/24 log=no log-prefix=""

40 X chain=forward action=drop src-address=172.16.30.0/24 dst-address=172.16.40.0/24 log=no log-prefix=""

41 X chain=forward action=drop src-address=172.16.30.0/24 dst-address=172.16.60.0/24 log=no log-prefix=""

42 X chain=forward action=drop src-address=172.16.30.0/24 dst-address=172.16.70.0/24 log=no log-prefix=""

43 X ;;; Deny From VoIP
chain=forward action=drop src-address=172.16.40.0/24 dst-address=172.16.10.0/24 log=no log-prefix=""

44 X chain=forward action=drop src-address=172.16.40.0/24 dst-address=172.16.20.0/24 log=no log-prefix=""

45 X chain=forward action=drop src-address=172.16.40.0/24 dst-address=172.16.30.0/24 log=no log-prefix=""

46 X chain=forward action=drop src-address=172.16.40.0/24 dst-address=172.16.50.0/24 log=no log-prefix=""

47 X chain=forward action=drop src-address=172.16.40.0/24 dst-address=172.16.60.0/24 log=no log-prefix=""

48 X chain=forward action=drop src-address=172.16.40.0/24 dst-address=172.16.70.0/24 log=no log-prefix=""

49 X ;;; Deny From VPN
chain=forward action=drop src-address=172.16.50.0/24 dst-address=172.16.10.0/24 log=no log-prefix=""

50 X chain=forward action=drop src-address=172.16.50.0/24 dst-address=172.16.30.0/24 log=no log-prefix=""

51 X chain=forward action=drop src-address=172.16.50.0/24 dst-address=172.16.40.0/24 log=no log-prefix=""

52 X chain=forward action=drop src-address=172.16.50.0/24 dst-address=172.16.60.0/24 log=no log-prefix=""

53 X chain=forward action=drop src-address=172.16.50.0/24 dst-address=172.16.70.0/24 log=no log-prefix=""

54 X ;;; Deny From WiFi
chain=forward action=drop src-address=172.16.60.0/24 dst-address=172.16.10.0/24 log=no log-prefix=""

55 X chain=forward action=drop src-address=172.16.60.0/24 dst-address=172.16.40.0/24 log=no log-prefix=""

56 X chain=forward action=drop src-address=172.16.60.0/24 dst-address=172.16.50.0/24 log=no log-prefix=""

57 X chain=forward action=drop src-address=172.16.60.0/24 dst-address=172.16.70.0/24 log=no log-prefix=""

58 X ;;; Deny From WiFi Free
chain=forward action=drop src-address=172.16.70.0/24 dst-address=172.16.10.0/24 log=no log-prefix=""

59 X chain=forward action=drop src-address=172.16.70.0/24 dst-address=172.16.20.0/24 log=no log-prefix=""

60 X chain=forward action=drop src-address=172.16.70.0/24 dst-address=172.16.30.0/24 log=no log-prefix=""

61 X chain=forward action=drop src-address=172.16.70.0/24 dst-address=172.16.40.0/24 log=no log-prefix=""

62 X chain=forward action=drop src-address=172.16.70.0/24 dst-address=172.16.50.0/24 log=no log-prefix=""

63 X chain=forward action=drop src-address=172.16.70.0/24 dst-address=172.16.60.0/24 log=no log-prefix=""

64 ;;; accept from local to internet
chain=forward action=accept src-address=192.168.100.0/23 in-interface=!Bridge-ISP1 out-interface=Bridge-ISP1
log=no log-prefix=""

65 chain=forward action=accept src-address=172.16.10.0/24 in-interface=!Bridge-ISP1 out-interface=Bridge-ISP1

66 chain=forward action=accept src-address=172.16.20.0/24 in-interface=!Bridge-ISP1 out-interface=Bridge-ISP1

67 chain=forward action=accept src-address=172.16.30.0/24 in-interface=!Bridge-ISP1 out-interface=Bridge-ISP1

68 chain=forward action=accept src-address=172.16.40.0/24 in-interface=!Bridge-ISP1 out-interface=Bridge-ISP1

69 chain=forward action=accept src-address=172.16.60.0/24 in-interface=!Bridge-ISP1 out-interface=Bridge-ISP1

70 chain=forward action=accept src-address=172.16.70.0/24 in-interface=!Bridge-ISP1 out-interface=Bridge-ISP1

71 ;;; accept from local to internet
chain=forward action=accept src-address=192.168.100.0/23 in-interface=!Bridge-ISP2 out-interface=Bridge-ISP2
log=no log-prefix=""

72 chain=forward action=accept src-address=172.16.10.0/24 in-interface=!Bridge-ISP2 out-interface=Bridge-ISP2

73 chain=forward action=accept src-address=172.16.20.0/24 in-interface=!Bridge-ISP2 out-interface=Bridge-ISP2

74 chain=forward action=accept src-address=172.16.30.0/24 in-interface=!Bridge-ISP2 out-interface=Bridge-ISP2

75 chain=forward action=accept src-address=172.16.40.0/24 in-interface=!Bridge-ISP2 out-interface=Bridge-ISP2

76 chain=forward action=accept src-address=172.16.60.0/24 in-interface=!Bridge-ISP2 out-interface=Bridge-ISP2

77 chain=forward action=accept src-address=172.16.70.0/24 in-interface=!Bridge-ISP2 out-interface=Bridge-ISP2

78 ;;; drop everything else
chain=forward action=drop log=no log-prefix=""

79 ;;; deny TFTP
chain=tcp action=drop protocol=tcp dst-port=69

80 ;;; deny RPC portmapper
chain=tcp action=drop protocol=tcp dst-port=111

81 ;;; deny RPC portmapper
chain=tcp action=drop protocol=tcp dst-port=135

82 ;;; deny NBT
chain=tcp action=drop protocol=tcp dst-port=137-139

83 ;;; deny cifs
chain=tcp action=drop protocol=tcp dst-port=445

84 ;;; deny NFS
chain=tcp action=drop protocol=tcp dst-port=2049

85 ;;; deny NetBus
chain=tcp action=drop protocol=tcp dst-port=12345-12346

86 ;;; deny NetBus
chain=tcp action=drop protocol=tcp dst-port=20034

87 ;;; deny BackOriffice
chain=tcp action=drop protocol=tcp dst-port=3133

88 ;;; deny DHCP
chain=tcp action=drop protocol=tcp dst-port=67-68

89 ;;; deny TFTP
chain=udp action=drop protocol=udp dst-port=69

90 ;;; deny PRC portmapper
chain=udp action=drop protocol=udp dst-port=111

91 ;;; deny PRC portmapper
chain=udp action=drop protocol=udp dst-port=135

92 ;;; deny NBT
chain=udp action=drop protocol=udp dst-port=137-139

93 ;;; deny NFS
chain=udp action=drop protocol=udp dst-port=2049

94 ;;; deny BackOriffice
chain=udp action=drop protocol=udp dst-port=3133

95 ;;; echo reply
chain=icmp action=accept protocol=icmp icmp-options=0:0

96 ;;; net unreachable
chain=icmp action=accept protocol=icmp icmp-options=3:0

97 ;;; host unreachable
chain=icmp action=accept protocol=icmp icmp-options=3:1

98 ;;; host unreachable fragmentation required
chain=icmp action=accept protocol=icmp icmp-options=3:4

99 ;;; allow source quench
chain=icmp action=accept protocol=icmp icmp-options=4:0

100 ;;; allow echo request
chain=icmp action=accept protocol=icmp icmp-options=8:0 log=no log-prefix=""

101 ;;; allow time exceed
chain=icmp action=accept protocol=icmp icmp-options=11:0

102 ;;; allow parameter bad
chain=icmp action=accept protocol=icmp icmp-options=12:0

103 ;;; deny all other types
chain=icmp action=drop

104 ;;; drop (2) everything else
chain=forward action=drop log=no log-prefix=""

################################################################################################
/ip firewall nat print all
Flags: X - disabled, I - invalid, D - dynamic
0 chain=srcnat action=masquerade src-address=172.16.50.0/24 out-interface=Bridge-ISP1 log=no log-prefix=""

1 chain=srcnat action=masquerade src-address=172.16.50.0/24 out-interface=Bridge-ISP2 log=no log-prefix=""

2 chain=srcnat action=masquerade src-address=192.168.100.0/23 out-interface=Bridge-ISP1 log=no log-prefix=""

3 chain=srcnat action=masquerade src-address=192.168.100.0/23 out-interface=Bridge-ISP2 log=no log-prefix=""

4 ;;; VPN ISP1
chain=dstnat action=netmap to-addresses=192.168.100.1 to-ports=1723 protocol=tcp in-interface=Bridge-ISP1
dst-port=1723 log=no log-prefix=""

5 ;;; SMTP ISP1
chain=dstnat action=netmap to-addresses=192.168.100.2 to-ports=25 protocol=tcp in-interface=Bridge-ISP1
dst-port=25 log=no log-prefix=""

6 ;;; Terminal ISP1
chain=dstnat action=netmap to-addresses=192.168.101.235 to-ports=3389 protocol=tcp in-interface=Bridge-ISP1
dst-port=3389 log=no log-prefix=""

7 ;;; HTTPS ISP1
chain=dstnat action=netmap to-addresses=192.168.100.2 to-ports=443 protocol=tcp in-interface=Bridge-ISP1
dst-port=443 log=no log-prefix=""

8 ;;; FTP ISP1
chain=dstnat action=netmap to-addresses=192.168.100.3 to-ports=21 protocol=tcp in-interface=Bridge-ISP1
dst-port=21 log=no log-prefix=""

9 ;;; VPN ISP2
chain=dstnat action=netmap to-addresses=192.168.100.1 to-ports=1723 protocol=tcp in-interface=Bridge-ISP2
dst-port=1723 log=no log-prefix=""

10 ;;; SMTP ISP2
chain=dstnat action=netmap to-addresses=192.168.100.2 to-ports=25 protocol=tcp in-interface=Bridge-ISP2
dst-port=25 log=no log-prefix=""

11 ;;; Terminal ISP2
chain=dstnat action=netmap to-addresses=192.168.101.235 to-ports=3389 protocol=tcp in-interface=Bridge-ISP2
dst-port=3389 log=no log-prefix=""

12 ;;; HTTPS ISP2
chain=dstnat action=netmap to-addresses=192.168.100.2 to-ports=443 protocol=tcp in-interface=Bridge-ISP2
dst-port=443 log=no log-prefix=""

13 ;;; FTP ISP2
chain=dstnat action=netmap to-addresses=192.168.100.3 to-ports=21 protocol=tcp in-interface=Bridge-ISP2
dst-port=21 log=no log-prefix=""

14 ;;; Web ISP1
chain=dstnat action=netmap to-addresses=192.168.101.6 to-ports=80 protocol=tcp dst-address=XXX.XXX.XXX.XXX
dst-port=80 log=no log-prefix=""



################################################################################################
02.03.2018 16:17 bzzz
Не только вам, но и всем остальным. Если есть проблемы с пингом локалки за VPN, всегда проверяйте таблицу маршрутизации на клиенте! Вы можете быть подключенным к VPN, но не будет маршрута или он будет не по-умолчанию, всяко бывает.

Если клиент виндовый, cmd как админ. route print, потом route /? потом route add ...

Проверял не раз, работает. А потом разбирайтесь, почему маршрут не прописался при подключении к VPN.
02.03.2018 16:23 bzzz
Например, часть route print:
IPv4 таблица маршрута

Активные маршруты:
Сетевой адрес Маска сети Адрес шлюза Интерфейс Метрика
0.0.0.0 0.0.0.0 192.168.5.61 192.168.5.111 4235
0.0.0.0 0.0.0.0 192.168.1.1 192.168.1.158 4250
0.0.0.0 0.0.0.0 On-link 192.168.100.9 11

192.168.100.0/24 - сеть полученная от VPN на микротике. На метрику смотрите, чем она меньше, тем "весомее" интерфейс. В моем случае локалка 192.168.5.0 доступна напрямую, поэтому к ней запросы пойдут все равно не через VPN. А вот все остальное - через VPN.
19.03.2018 12:09 Gleb
Друзья привет! Помогите, поднял vpn л2тп\ipsec на миктотике, все хорошо работало, пока семейная пара не поехала вместе отдыхать, когда они уезжали я им настроил два ноута и два разных аккаунта впн (у них win10), они пытаются зайти вместе со своего номера в отеле и не могут, пока один сидит на впн и второй хочет подключится то первого выбивает с впнки, помогите что делать в такой ситуации, я так понял с одного айпишника надо разрешить несколько подключений, подскажите как ?) Спасибо за ранее!!
22.12.2018 14:06 Ilia
Цитата: "Update 1: часто люди интересуются, как несколько (больше одного) клиентов из одной локальной сети (за nat) могут подключаться к одному удаленному vpn-серверу микротик. Не знаю, как в L2TP/IPSec связке это обеспечить. Можно назвать это багом реализации. Я не нашел простого объяснения и решения проблемы."

Я думаю, это можно решить, при создании PPP профиля изменив параметр Limits / Only One.
10.01.2019 10:58 Ilya
Параметр Limits, к сожалению, это не исправляет. Ни yes, ни no, ни default. Похоже, что это сам сервер устанавливает соответствие RemoteIP - Port и если еще кто-то с такого же удаленного IP лезет, сервер устанавливает соединение уже с новой парой RemoteIP - Port.
10.01.2019 11:01 Ilya
В логе при подключении нового vpn юзера:
l2tp, info --- first L2TP UDP packet received from RemoteIP
l2tp, ppp, info --- <username>: terminating... -hungup
11.01.2019 07:12 kraskov
С множественным подключением по L2TP/IPSec с одного внешнего IP-адреса есть известный баг. Говорят на микротиках можно победить, но с риском расплавить мозг:)
https://forum.mikrotik.com/viewtopic.php?t=132823
11.01.2019 11:37 Ilya
Супер! Почти идеал, но... Эту мозголомательную схему реализовал, но, как там написано:
"And it is also not a solution for the Android embedded client which uses a random port for L2TP but doesn't restrict its IPsec policy to this port."
На iPhone и Windows работает, на Android - нет (Android просто не соединяется).
Поэтому это решение все равно не полноценное, к сожалению.
11.01.2019 12:02 Ilya
У встроенного клиента Android есть классная опция - всегда весь траф гнать через VPN (Always-on VPN в настройках подключения). Удобно очень - хоть в метро, хоть где. Очень жаль, что Android так не заработал. Вернул все на "как в статье изначально".
11.01.2019 13:39 kraskov
Мне пришлось уходить на IKEv2...
24.03.2019 18:48 balls
6. IP - IPSec - Peers

Совершенно другая картина: https://habrastorage.org/webt/a2/pt/ny/a2ptnypmifo05bwtn2d-yzthqz8.png
24.03.2019 19:23 balls
Разобрался, настроил. В новой прошивке эти параметры перекочевали в профили.
Соединение устанавливаю, ип получаю, но не могу пропинговать внутренние ресурсы, в т.ч. сам роутер.
В фв отключил все дропы, не помогло.
Из статьи правила применены.
11.07.2019 13:31 gffg
статья подустарела обновите хоть контент
18.06.2020 12:17 hdgtfy
>> не могу пропинговать внутренние ресурсы, в т.ч. сам роутер

ответ именно на этот вопрос в самом низу в последних строках

расскажу свой случай целиком, может кому-то пригодится

кроме меня мой vpn юзают друзья в европейских странах, где торрренты мягко говоря не приветствуются, но при этом им не нужен доступ к моим локальным ресурсам

я хз как это надо было реализовывать по всем правилам и методичкам, но себе сделал так и всё работает нормально (отступления про настройку для друзей пропускайте, если вам это не нужно):
- мой домашний DHCP сервер настроен выдавать адреса в диапазоне 192.168.1.201-192.168.1.250 (адреса 192.168.1.2-192.168.1.150 я оставил для присваивания вручную)
- на первом шаге я создал новый диапазон с подсетью (отличный от локальной подсети) для друзей vpn_pool2 (10.10.10.1-10.10.10.10), далее создал диапазон для себя vpn_pool1 (192.168.1.151-192.168.1.200)
- соответственно на втором шаге надо создавать два профиля, где в Local address и Remote address указываются vpn_pool1 или vpn_pool2 (в зависимости от того, к кому этот профиль относится)
ну а дальше все по методичке
можно ещё в фаерволе дропать форвард из 10.10.10.1-10.10.10.10 в 192.168.1.2-192.168.1.150, чтобы закрыть доступ в локальную сеть от знакомых полностью

теперь допустим, что локальные ресурсы расшарены правильно и доступны
- для доступа к этим локальным ресурсам (при условии использования для vpn-дипазона адресов из локальной подсети) надо всего лишь в настройках бриджа (bridge-local по умолчанию), на первой вкладке General, в строке ARP выбрать вариант proxy-arp
- если же надо дать доступ к локальным ресурсам какого-то компа и пользователям диапазона 10.10.10.1-10.10.10.10, то в фаерволе компа с расшаренной папкой/диской надо разрешить доступ к этой папке/диску из диапазона 10.10.10.1-10.10.10.10
22.11.2020 20:24 Konstantin
Спасибо за инструкцию!
А вот описание решения проблемы множественных подключений с одного адреса:
https://forum.mikrotik.com/viewtopic.php?t=132823
25.01.2021 00:01 kreotodr
Спасибо!
Все с первого раза пошло...

Пять копеек...

Use-ipsec=required принудит vpn клиента к обязательному использованию IpSec;

Use-ipsec=yes(по умолчанию) проставляет выбор vpn клиенту в использовании IpSec, т.е. может не использоваться.
02.02.2023 15:03 Lexx!
Здравствуйте. Подскажите, как настроить vpn сервер, чтобы клиент не смог попасть в локалку?
Такой своеобразный vpn для друга из-за границы
03.02.2023 14:52 bzzz
Самый простой вариант - firewall. Назначить вашему другу ip-адрес и запретить с помощью firewall трафик с этого ip к другим хостам.
03.02.2023 15:01 bzzz
В PPP - Profiles копируете общий профиль и делаете для друга отдельный. В Local и Remote address укажите для друга выделенный для него ip-адрес. Он когда будет подключаться, будет получать именно такой адрес. В firewall блокируйте весь трафик с этого ip в вашу сеть.
03.11.2023 10:17 Sergey
Доброе утро. Такая проблема. Стоял RouterBOARD 750G r3 система 6.48.6, через впн подключался зоопарк Windows 7, 10 , 11 и даже мак к терминалу по рдп. Поставил C52iG-5HaxD2HaxD система 7.11.2 Работают нормально только 7-е. 10 и 11 периодически каждую минуту перезаходят на сервере терминалов. Причину пишет отключение пользователем. Сам впн не отключается. Настраивал оба аналогично, по вашей статье.
03.11.2023 10:26 Sergey
Дополнение. Сервер Windows Server 2012 R2, поведение не зависит от нагрузки - могут и 10-15 работать нормально, а может и один глючить. На микротике ещё опен мпн с тремя клиентами - там никаких проблем
07.11.2023 16:00 bzzz
В логах должны быть какие-то ошибки. Есть что-то? И если удобно, пишите на почту, обменяемся telegram, можно будет проще понять, в чем причина.
15.02.2024 16:53 Rost
Доброго дня! Проблема как у некоторых людей в комментвриях,что при подключении по VPN вне со снятием галочки "использовать шлюз...." не работает RDP, в этом деле новичок можно подробно как исправить ситуацию. Ipconfig пользователя адаптер ppp 10.10.1.253 получен из пула, маска 255.255.255.255

Авторизуйтесь для добавления комментариев!


    забыли пароль?    новый пользователь?