Настройка 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 обеспечивает защиту данных от просмотра.
Настраивать мы будем тоже по частям - сначала туннель, потом - защита данных.
Итак, имеем роутер 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-соединение с сервером, даже если пароли верные и настроено все правильно.
Решением будет удалить обновление KB5009543, например, так (в командной строке Windows, с правами администратора):
if (get-hotfix -id KB5009543) { wusa /uninstall /kb:5009543 }
После этого компьютер надо перезагрузить.
Спасибо!
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.
Реализована следующая схема в сети:
Терминал провайдера(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, так же не даёт эффекта. Но и не должно было: в логах микротика попытка соединения даже не отражается, т.е. пакеты до него не доходят.
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 все правильно настроено.
На 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.
Написал на форуме микротика - пока молчат.
С новым апдейтом 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
Вполне возможно, что дело в этом. 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?
В общем, тут траф смотреть надо, кто кому куда отвечает.
Как-то сомнительно. Покажите скриншот :)
А вообще видели вот это?
Найдите и выделите следующий подраздел реестра:
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.
Стер один. Плагин, что-ли, написать, для вас ;)
Подскажите по поводу снифа - куда смотреть в микротике.
Как будто я единственный человек с такой проблемой.
Все это дело - в файл. Файл потом в wireshark.
Если на вкладке Streaming выставить галочку "Streaming Enabled" и указать ip-адрес компа с запущенным wireshark-ом (на порте 37008 upd, если не ошибаюсь - где-то видел), то можно траф прямо потоком лить с микротика в него.
Ну и проще можно, без анализа, просто наставить в firewall правил на логирование или просто подсчет определенных пакетов и поставить все это дело первым номером в firewall. И смотреть логи. На любом правиле firewall вкладка Action - галка "Log".
За такие приколы я микротик просто обожаю! Даже несмотря на все его "милые особенности". Вон в последних роутерах Asus до сих пор VNP - PPTP (!!!), судя по интерфейсу. PPTP, Карл! За сравнимые деньги, и год уже 2016...
И да, opennet я для примера взял. Форумов кучи.
Подскажите где может быть ошибка?
Настроил сервер l2tp/IPSec, на интерфейсе lan в ARP выставлено proxy-ARP.
Подключение VPN с Win7 проходит, выдается ip адрес из пула vpn-l2tp, пинг проходит только на ip адрес сервера l2tp.
Пинги на внутренние адреса локальной сети не проходят, подключиться по rdp к локальному хосту не получается.
0.0.0.0 0.0.0.0 On-link 192.168.112.5 11
где 192.168.112.5 (в моем случае) это ip, выданный микротиком (виден также по ipconfig на клиенте Windows или в IP->Pool на микротике)?
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 сервера.
В файерволе микротика выключал все блокирующие правила, результата нет.
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?
С Win7 коннектится без проблем. А вот с микротика на микротик никак. Точнее содинение устанавливается, а вот дальше дело не идет.
Имею: Тик1 - (сервер) - поднят на виртуалке на удаленном сервере.
Тик2 - (клиент) - железяка.
Задача: поднять VPN между ними, чтобы ходить через Тик1 в его локалку
Сейчас подключен в инет через Тик2 с динамическим внешним IP.
Локалка настроена по умолчанию: 192.168.88.0
Предполагаю, что дело в какой-то мелочи, но знаний не хватает.
Куда копать? Ткните носом.
За Тик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 что-то блокирует не из той сети. Ну кроме специфических нюансов, конечно.
Повторюсь, я никогда сам это не делал, хотя идея один из них в виртуалке поднять - стоящая. Спасибо :)
за Тик2 сеть 192.168.88.0
VPN между ними поднялся с адресацией 172.16.0.0
С тик2 на тик1 пинг на 172.16.0.1 проходит, а с компа который подключен к тику2 нет.
Очевидно, что нужно добавить маршрут из 192.168.88.Х сети в 172.16.0.Х
Ну так они динамически и добавляются. Или я чего-то недопонимаю. (повторюсь, я чайник и ногами не пинайте ;))
Правда не совсем легальная, т.к. RouterOS варезный, но я обещаю удалить после изучения )))
Все сделал как в этой инструкции, все работает. Но если два пользователя находятся за одинаковым натом (1 внешний ip на двоих). То при подключении второго пользователя- первый вылетает.
ставил ip-ipsec-peer-generate-policy: port-strict
не помогло как быть.
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".
Во-первых хочу поблагодарить Вас за проделанный труд, очень полезная инструкция! У меня возникла потребность поднять VPN в компании для соединения туннелем между двумя офисами, а также организации удаленного доступа для сотрудников (например, из дома). Делал все по инструкции (за исключением адресов, они, разумеется, используются свои), но столкнулся с двумя проблемами:
1) При подключении iPhone к VPN, он видит адрес Микротика и есть возможность подключиться к веб-морде устройства, но с адресами из локальной сети связи нет. (proxy-arp в bridge выставлял, не помогает);
2) При подключении через нативный VPN клиент в Windows нет ответа даже от шлюза, через который можно подключиться к веб-морде. Т.е. вообще ничего;
Постараюсь наиболее информативно описать вводные, благо их немного:
* два выделенных IP от провайдера. Один идет кабелем в роутер Циски, от нее в свою очередь идет еще один в коммутатор Циски, в котором уже организована локальная сеть. Второй идет в Микротик, от которого также идет подключение к вышеупомяннотому свитчу
* в адресах Микротика указаны 1 адрес от провайдера на 1-й интерфейс (ether1) и заданный мной адрес из локальной сети (интерфейс установлен bridge);
* созданы 2 пула. Один не используется, второй в другой подсети, отличной от локальной (как советуется в инструкции);
* в остальном все так, как описано. Но в профайле PPP в качестве Local Address указан адрес шлюза Микротика из локальной сети, а не пул.
Буду очень признателен за помощь :-) Если информации мало, что очень может быть, напишу что нужно
сейчас столкнулся с такой проблемой. В Одном из удаленных офисов один пользователь подключаться к микротику по ВПН, все работает. все видно все пингуется и подключается. Пользователь из другога офиса тоже успешно подключается. а вот как только второй пользователь и первого офиса подключается в первого пользователя из первого офиса разрывается ВПН.. т.е. при этом пользователь из второго офиса спокойно работает. Насколько я понял проблему так как оба пользователя подключены к интернету через NAT, то для Микротика они едины и он воспринимает как одно и тоже подключение...
Вопрос как исправить эту ситуацию? если это вообще возможно??
Задача: установить Микротик 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
===========================================================================
Постоянные маршруты:
Отсутствует
В чем проблема? В Кривых ручках, в прошивке? Что за
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. . . . . . . . : Включен
route -p add 192.168.45.0 mask 255.255.255.0 10.0.20.82
Действительно удаленнная сеть (192.168.1.0/24) начинает пинговаться после прописывания постоянного маршрута с указанием в шлюзе ip маршрутизатора (ситуативно из l2tp-pool 192.168.100.0/24)
Один вопрос, почему маршрут не прописывается автоматом, или как сделать, чтобы таковой прописывался на подключающейся машине.
peer sent packet for dead phase2
В чём дело?
С телефона android есть подключение. Спасибо!
Существует следующая схема на 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=""
################################################################################################
Если клиент виндовый, cmd как админ. route print, потом route /? потом route add ...
Проверял не раз, работает. А потом разбирайтесь, почему маршрут не прописался при подключении к VPN.
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.
Я думаю, это можно решить, при создании PPP профиля изменив параметр Limits / Only One.
l2tp, info --- first L2TP UDP packet received from RemoteIP
l2tp, ppp, info --- <username>: terminating... -hungup
https://forum.mikrotik.com/viewtopic.php?t=132823
"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 просто не соединяется).
Поэтому это решение все равно не полноценное, к сожалению.
Совершенно другая картина: https://habrastorage.org/webt/a2/pt/ny/a2ptnypmifo05bwtn2d-yzthqz8.png
Соединение устанавливаю, ип получаю, но не могу пропинговать внутренние ресурсы, в т.ч. сам роутер.
В фв отключил все дропы, не помогло.
Из статьи правила применены.
ответ именно на этот вопрос в самом низу в последних строках
расскажу свой случай целиком, может кому-то пригодится
кроме меня мой 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
А вот описание решения проблемы множественных подключений с одного адреса:
https://forum.mikrotik.com/viewtopic.php?t=132823
Все с первого раза пошло...
Пять копеек...
Use-ipsec=required принудит vpn клиента к обязательному использованию IpSec;
Use-ipsec=yes(по умолчанию) проставляет выбор vpn клиенту в использовании IpSec, т.е. может не использоваться.
Такой своеобразный vpn для друга из-за границы
Подскажите. подключение с ПК все работает все ок. Делал по вашей мурзилке.
Но при подключении с Ведроида (смартфон) происходит следующее.
В телефоне висит подключение (не подключено), на микроте вижу что тонель подключился (на телефоне все еще подключение) некоторое время все еще подключение и потом отваливается
Лог такой
respond new phase 1 (Identity Protection): 85.234.11.11[500]<=>217.118.95.111[34429]
ISAKMP-SA established 85.234.11.11[4500]-217.118.95.111[50780] spi:fe18249f7d99c285:2c6fa14a8f443f13
first L2TP UDP packet received from 217.118.95.111
ppp_cb logged in, 10.0.100.7 from
l2tp-in_ppp_cb: authenticated
l2tp-in_ppp_cb: connected
purging ISAKMP-SA 85.234.11.11[4500]<=>217.118.95.111[50780] spi=fe18249f7d99c285:2c6fa14a8f443f13.
ISAKMP-SA deleted 85.234.11.11[4500]-217.118.95.111[50780] spi:fe18249f7d99c285:2c6fa14a8f443f13 rekey:1
l2tp-in_ppp_cb: terminating... - peer is not responding
ppp_cb logged out, 65 97 68 5 5 from
l2tp-in_ppp_cb: disconnected
Авторизуйтесь для добавления комментариев!