Записки IT специалиста
Настройка PPTP или L2TP VPN-сервера на роутерах Mikrotik
- Автор: Уваров А.С.
- 11.01.2021
Продолжая актуальную сегодня тему удаленного доступа, сегодня мы рассмотрим настройку роутеров Mikrotik для использования из в качестве PPTP или L2TP VPN-серверов. С одной стороны тема эта, вроде бы простая, с другой, как обычно, имеет свои особенности, которые следует учитывать еще на стадии выбора решения. Ведь хороший специалист выбирает инструмент под задачу, а не пытается делать наоборот, признавая сильные и слабые стороны каждого решения.
Научиться настраивать MikroTik с нуля или систематизировать уже имеющиеся знания можно на углубленном курсе по администрированию MikroTik. Автор курса, сертифицированный тренер MikroTik Дмитрий Скоромнов, лично проверяет лабораторные работы и контролирует прогресс каждого своего студента. В три раза больше информации, чем в вендорской программе MTCNA, более 20 часов практики и доступ навсегда.
Перед тем, как браться за настройку VPN-сервера на базе Mikrotik мы рекомендуем вам ознакомиться с нашим материалом: Производительность младших моделей Mikrotik hEX и hAP. Экспресс-тестирование. Если коротко: на моделях без аппаратной поддержки AES вы не получите для соединений L2TP/IPsec скоростей более 25-30 МБит/с, на моделях с поддержкой AES скорость упирается в 35-50 МБит/с. В большинстве случаев для сценария удаленного доступа этого достаточно, но все-таки данный момент обязательно следует иметь ввиду, чтобы не получить потом претензию, что Mikrotik работает плохо и этому объективно будет нечего противопоставить.
Что касается PPTP, то здесь все достаточно хорошо, даже недорогие модели роутеров позволяют достигать скоростей около 100 МБит/с, но при этом следует помнить, что PPTP имеет слабое шифрование и не считается безопасным в современных реалиях. Однако он может быть неплохим выбором, если вы хотите завернуть в него изначально защищенные сервисы, например, при помощи SSL.
Предварительная настройка роутера
Прежде чем начинать настройку VPN-сервера нужно определиться со структурой сети и выделить для удаленных клиентов пул адресов. Если брать сценарий удаленного доступа, то здесь есть два основных варианта: Proxy ARP, когда клиенты получают адреса из диапазона локальной сети и имеют доступ к ней без дополнительных настроек и вариант с маршрутизацией, когда клиентам выдаются адреса из диапазона не пересекающегося с локальной сетью, а для доступа в сеть на клиентах добавляются необходимые маршруты. В современных Windows-системах это можно автоматизировать при помощи PowerShell.
После того, как вы определились со структурой сети, следует перейти в IP — Pool и создать новый пул адресов для выдачи удаленным клиентам. Количество адресов в пуле должно соответствовать количеству планируемых VPN-клиентов, либо превышать его.
Эти же действия в терминале:
Затем перейдем в PPP — Profiles и настроим профиль для нашего VPN-сервера, который будет содержать базовые настройки. Если вы настраиваете сразу и PPTP и L2TP-сервера, то можете использовать для них как общий профиль, так и создать отдельные. В случае с общим профилем они будут иметь общий адрес сервера и общий пул адресов. В данном разделе уже существуют два стандартных профиля default и default-encryption, поэтому при желании можете не создавать новые профили, а настроить имеющиеся.
На вкладке General задаем параметры: Local Address — локальный адрес сервера, должен принадлежать к тому же диапазону, что и пул адресов, который вы задали выше, Remote Address — адреса для выдачи удаленным клиентам, указываем в этом поле созданный пул.
Следящая вкладка — Protocols, здесь мы рекомендуем установить параметр Use Encryption в положение required, что будет требовать от клиента обязательного использования шифрования.
Чтобы добавить новый профиль в терминале выполните (в данном случае мы создаем профиль с именем vpn):
Чтобы изменить существующий default-encryption:
Для default вместо set *FFFFFFFE укажите set *0:
Остальные параметры оставляем без изменений, для удаленных клиентов они не применяются (в том числе сжатие) и работают только при соединении между устройствами с RouterOS. Отсутствие сжатия также следует учитывать, особенно если ваши клиенты используют медленные каналы подключения, скажем 3G-модемы.
Теперь добавим пользователей, для этого откроем PPP — Secrets и создадим новую учетную запись. Обязательно заполняем поля: Name и Password, а также Profile, где указываем созданный на предыдущем шаге профиль, если профили клиента и сервера не будут совпадать — подключение окажется невозможным. Поле Service позволяет ограничить действие учетных данных только одним сервисом, для этого нужно указать его явно, если же вы хотите использовать одни учетную запись для всех видов подключения — оставьте значение по умолчанию any.
В терминале:
При создании учетных данных уделите должное внимание политике паролей, особенно для PPTP.
Настройка PPTP-сервера
Настроить PPTP-сервер в RouterOS просто. Откройте PPP — Interface и нажмите кнопку PPTP Server, в открывшемся окне установите флаг Enabled, в поле Default Profile укажите созданный на подготовительном этапе профиль и в разделе Authentication оставьте только mschap2.
Это же действие в терминале:
Следующим шагом следует разрешить подключения к нашему VPN-серверу в брандмауэре, для этого следует разрешить входящие подключения для порта 1723 TCP. Открываем IP — Firewall и создаем новое правило: Chain — input, Protocol — tcp, Dst. Port — 1723, в поле In. Interface указываем внешний интерфейс роутера, в нашем случае ether1. Так как действие по умолчанию — accept то просто сохраняем правило.
В терминале создать правило можно командой:
На этом настройку PPTP-сервера можно считать законченной, он готов принимать подключения.
Настройка L2TP/IPsec -сервера
Точно также, как и при настройке PPTP-сервера переходим в PPP — Interface и нажмите кнопку L2TP Server. В открывшемся окне ставим флаг Enabled, в Default Profile указываем созданный ранее профиль, а в Authentication оставляем только mschap2. Затем включаем использование IPsec — Use IPsec — yes и в поле IPsec Secret вводим предварительный ключ соединения:
Для включения сервера с указанными настройками в терминале выполните:
Обычно на этом инструкции по настройке L2TP-сервера заканчиваются, но если оставить все как есть, то у сервера будут достаточно слабые настройки шифрования, поэтому подтянем их до современного уровня. Для этого нам потребуется изменить параметры IPsec, так как L2TP сервер безальтернативно использует параметры по умолчанию будем менять именно их.
Переходим в IP — IPsec — Proposal и приводим набор настроек default к следующему виду: Auth. Algorithms — sha1, sha256, Encr. Algorithms — aes-128-cbc, aes-192-cbc, aes-256-cbc, PFS Group — ecp384.
Данные настройки в терминале:
Затем откроем IP — IPsec — Profiles и изменим настройки профиля default: Encryption Algorithm — aes256, DH Group — modp2048, ecp256, ecp384.
В терминале:
Для окончания настройки разрешим подключения к L2TP-серверу в брандмауэре. Для этого нам понадобится создать два правила, первое должно разрешать подключения для протоколов L2TP (порт 1701 UDP), IKE (порт 500 UDP) и протокола NAT-T (порт 4500 UDP), второе для протокола 50 ESP (Encapsulating Security Payload). Переходим в IP — Firewall и создаем первое правило: Chain — input, Protocol — udp, Dst. Port — 500,1701,4500, в поле In. Interface указываем внешний интерфейс роутера, в нашем случае ether1. Затем второе: Chain — input, Protocol — ipsec-esp, In. Interface -внешний интерфейс (ether1). Так как действие по умолчанию accept достаточно просто сохранить правила.
Для терминала выполните следующие команды:
На этом настройка L2TP/IPsec-сервера закончена.
Научиться настраивать MikroTik с нуля или систематизировать уже имеющиеся знания можно на углубленном курсе по администрированию MikroTik. Автор курса, сертифицированный тренер MikroTik Дмитрий Скоромнов, лично проверяет лабораторные работы и контролирует прогресс каждого своего студента. В три раза больше информации, чем в вендорской программе MTCNA, более 20 часов практики и доступ навсегда.
Дополнительные материалы:
Mikrotik
The Dude
Помогла статья? Поддержи автора и новые статьи будут выходить чаще:
Или подпишись на наш Телеграм-канал:
Настройка VPN IPSec/L2TP сервера Mikrotik
Иногда мне кажется, что создатели 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 есть, на незагруженном микротике разницы никакой не заметил)
Если в сети, куда вы подключаетесь, есть ресурсы по внутренним доменным именам, а не только по 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. Жмем ОК и пытаемся подключиться. Должно получиться.
Update 1: часто люди интересуются, как несколько (больше одного) клиентов из одной локальной сети (за nat) могут подключаться к одному удаленному vpn-серверу микротик. Не знаю, как в L2TP/IPSec связке это обеспечить. Можно назвать это багом реализации. Я не нашел простого объяснения и решения проблемы.
Update 2: в начале 2022 года массовую проблему принесли обновления Windows 10, которые затронули работу VPN-клиента Windows. Проблема заключается в том, что если у вас установлено обновление KB5009543, то вам, очень вероятно, не удастся установить VPN-соединение с сервером, даже если пароли верные и настроено все правильно.
Решением будет удалить обновление KB5009543, например, так (в командной строке Windows, с правами администратора):
После этого компьютер надо перезагрузить.
Ответ на комменты выше.
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.
Здравстуйте. Настраивал 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, так же не даёт эффекта. Но и не должно было: в логах микротика попытка соединения даже не отражается, т.е. пакеты до него не доходят.
Анатолий, у меня аналогичная задача. Но она похоже не решается пока — проблема в самом Микротике.
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 все правильно настроено.
Как часто говорится в импортном кино, дерьмо случается.
С новым апдейтом 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
> находится в 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?
В общем, тут траф смотреть надо, кто кому куда отвечает.
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.
Tools -> Packet Sniffer.
Все это дело — в файл. Файл потом в wireshark.
Если на вкладке Streaming выставить галочку "Streaming Enabled" и указать ip-адрес компа с запущенным wireshark-ом (на порте 37008 upd, если не ошибаюсь — где-то видел), то можно траф прямо потоком лить с микротика в него.
Ну и проще можно, без анализа, просто наставить в firewall правил на логирование или просто подсчет определенных пакетов и поставить все это дело первым номером в firewall. И смотреть логи. На любом правиле firewall вкладка Action — галка "Log".
За такие приколы я микротик просто обожаю! Даже несмотря на все его "милые особенности". Вон в последних роутерах Asus до сих пор VNP — PPTP (. ), судя по интерфейсу. PPTP, Карл! За сравнимые деньги, и год уже 2016.
И да, opennet я для примера взял. Форумов кучи.
По таким маршрутам ваш 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?
Боюсь ошибиться, т.к. никогда микротики не соединял, но вполне может оказаться, что именно одинаковые локальные сети вам мешают.
За Тик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 что-то блокирует не из той сети. Ну кроме специфических нюансов, конечно.
Повторюсь, я никогда сам это не делал, хотя идея один из них в виртуалке поднять — стоящая. Спасибо 🙂
Не удобно разбираться с этим удаленно 🙂 через раз выбрасывает 🙂 Вот что нашел, мне кажется, надо в эту сторону копать: 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".
Во-первых хочу поблагодарить Вас за проделанный труд, очень полезная инструкция! У меня возникла потребность поднять VPN в компании для соединения туннелем между двумя офисами, а также организации удаленного доступа для сотрудников (например, из дома). Делал все по инструкции (за исключением адресов, они, разумеется, используются свои), но столкнулся с двумя проблемами:
1) При подключении iPhone к VPN, он видит адрес Микротика и есть возможность подключиться к веб-морде устройства, но с адресами из локальной сети связи нет. (proxy-arp в bridge выставлял, не помогает);
2) При подключении через нативный VPN клиент в Windows нет ответа даже от шлюза, через который можно подключиться к веб-морде. Т.е. вообще ничего;
Постараюсь наиболее информативно описать вводные, благо их немного:
* два выделенных IP от провайдера. Один идет кабелем в роутер Циски, от нее в свою очередь идет еще один в коммутатор Циски, в котором уже организована локальная сеть. Второй идет в Микротик, от которого также идет подключение к вышеупомяннотому свитчу
* в адресах Микротика указаны 1 адрес от провайдера на 1-й интерфейс (ether1) и заданный мной адрес из локальной сети (интерфейс установлен bridge);
* созданы 2 пула. Один не используется, второй в другой подсети, отличной от локальной (как советуется в инструкции);
* в остальном все так, как описано. Но в профайле PPP в качестве Local Address указан адрес шлюза Микротика из локальной сети, а не пул.
Буду очень признателен за помощь 🙂 Если информации мало, что очень может быть, напишу что нужно
Добрый день! Прошу помощи с проблемой подключения по 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
===========================================================================
Постоянные маршруты:
Отсутствует
В чем проблема? В Кривых ручках, в прошивке? Что за
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. . . . . . . . : Включен
Парни, ай нид хелп!
Существует следующая схема на 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=""
Не только вам, но и всем остальным. Если есть проблемы с пингом локалки за VPN, всегда проверяйте таблицу маршрутизации на клиенте! Вы можете быть подключенным к VPN, но не будет маршрута или он будет не по-умолчанию, всяко бывает.
Если клиент виндовый, cmd как админ. route print, потом route /? потом route add .
Проверял не раз, работает. А потом разбирайтесь, почему маршрут не прописался при подключении к VPN.
Например, часть 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.
Цитата: "Update 1: часто люди интересуются, как несколько (больше одного) клиентов из одной локальной сети (за nat) могут подключаться к одному удаленному vpn-серверу микротик. Не знаю, как в L2TP/IPSec связке это обеспечить. Можно назвать это багом реализации. Я не нашел простого объяснения и решения проблемы."
Я думаю, это можно решить, при создании PPP профиля изменив параметр Limits / Only One.
6. IP — IPSec — Peers
Совершенно другая картина: 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
Спасибо!
Все с первого раза пошло.
Use-ipsec=required принудит vpn клиента к обязательному использованию IpSec;
Use-ipsec=yes(по умолчанию) проставляет выбор vpn клиенту в использовании IpSec, т.е. может не использоваться.
Авторизуйтесь для добавления комментариев!
Почтовый сервер Шифрование Squid 3proxy VPN Mikrotik Настройка сервера Виртуальные машины kvm Защита почты Резервное копирование Групповые политики SELinux WDS IPFW OpenVPN firewalld systemd Mobile libvirt Samba WiFi Iptables NAT Lightsquid Remote desktop Postfix Dovecot Удаление данных Софт Безопасность Настройка прокси Winbox User agent Хостинг Передача данных Онлайн сервисы Privacy LetsEncrypt VPN сервер RRDTool sendmail Rsync Linux SSH Система Windows Синхронизация Облако fail2ban FreeBSD
Прямые руки → Настраиваем VPN сервер L2TP и IPsec на Mikrotik RouterOS
В этот раз я расскажу как настроить VPN L2TP сервер, т.к. он обеспечивает более высокий уровень безопасности но и более требователен к ресурсам системы, а также поддерживается не всем оборудованием, например, только самыми последними версиями Andriod на 100%, по крайней мере, мне не попадались современные телефоны которые его не поддерживают. Основной плюс данной стемы это:
а) Использование тоннеля передачи данных (тунелирование).
б) Защита передаваемых данных с помощью IPsec.
Чтобы было понятнее, мы создадим отдельную подсеть для клиентов подключающихся через L2TP, а оттуда уже настроим маршрутизацию туда куда нам нужно.
Для начала создадим диапазон IP адресов для подключающихся клиентов, мы не будем выдавать каждому пользователю персональный IP адрес, а автоматизируем этот процесс и будем выдавать из пула свободных адресов.
Переходим в IP -> Pool мы создадим пул на 20 IP адресов. Назовем его l2tp_pool чтобы было понятно за что он отвечает.
В результате у нас есть 2 пула адресов, первый используется, у меня, для локальной сети, а второй для L2TP клиентов.
Создаем профиль нашего L2TP сервера
переходим в PPP -> Profiles
В настройках профиля указываем:
Имя профиля: L2TP-server ( чтобы было понятно за что он отвечает)
Local adrdress: 192.168.10.1 начало диапазона IP адресов
Remote Address: l2tp_pool указываем название пула адресов который мы создали ранее
Change TCP MSS: yes
(Все что менялось выделено синим!)
Переходим в вкладку Protocols
Use MPLS: yes
Use Compressiaon: no
Use VJ Compressiaon: no
Use Encription: yes
(Все что менялось выделено синим!)
Переходим во вкладку Limits
Там все оставляем по умолчанию и в строке Only one оставляем default
Создаем пользователя, переходим в PPP -> Secrets
Где указываем имя пользователя, пароль, указываем сервис к которому этот пользователь будет применен L2TP, а также профиль с которым будет работать наш L2TP сервер, мы его создали ранее (L2TP-server)
нам остается включить L2TP сервер, переходим в PPP -> Interface нажимаем кнопку L2TP server
Все сто менялось выделено красным!
Где:
Включаем сам сервер L2TP (ставим галку)
Включаем профиль, который мы создали ранее L2TP-server
Убираем все протоколы, оставляем mschap2 (остальные протоколы уже давно и успешно взломаны!)
Ставим галку Use IPsec
Придумываем IPsec Secret: по сути это парольная фраза, которая едина для всех.
Нам с остается создать правила для фаерволла, чтобы мы могли достучаться до нашего L2TP сервера.
Переходим в IP -> Firewall -> Filter Rules
необходимо создать разрешающее правило для следующих портов и протоколов:
Протокол: UDP
Разрешаем порты: 1701,500,4500
В качестве In.Interface указываем тот что подключен к интернет
Также добавляем правило разрешающее ipcec
протокол: ipsec-esp
В качестве In.Interface указываем тот что подключен к интернет
Почти все готово, но если мы подключимся к нашему L2TP серверу, то не сможем выйти в интернет т.к. не создано разрешающее правило, переходим во вкладку NAT
Создаем новое правило
Chain: snat (т.к. NAT это у нас источник пакетов)
Src. Address: 192.168.10.0/24 (указываем подсеть которая у нас используется для выдачи IP адресов клиентам L2TP сервера)
Out.Inerface указываем интерфейс который у нас подключен к интернет.
переходим во вкладку Action и в строке Action указываем маскарадинг
Вот теперь все готово, нам осталось настроить VPN подключение, в Windows оно делается штатными средствами,
но есть нюанс.
Настраиваем соединение с vpn сервером
Создаем стандартное VPN подключение, в нем указываем протокол L2TP/IPsec, чтобы система не переберала все доступные протоколы, а подключалась сразу по нужному.
Указываем, разрешить следующие протоколы, ставим галку MS-CHAP v2
Нам необходимо нажать кнопку: Дополнительные параметры и там указываем парольную фразу, которую мы придумали при создании в строке IPsec Secret
Вот теперь точно все, подключаемся и пользуемся.
Дополнение
Если есть необходимость изменить настройки шифрования, то нам необходимо перейти в IP -> IPsec во вкладку Proposals и там выставить необходимые виды шифрования
Также в этом разделе можно добавлять свои ключи или сгенерировать, хотя я не готов гарантировать что роутер сможет обеспечить высокий уровень энтропии при генерации ключей, так что генерировать лучше на чем-то другом, а сюда их уже импортировать
В общем данный роутер, позволяет настроить систему довольно гибко исходя из ваших задач.
В процессе использования также выплыл один баг. Если вы подключены по L2TP то при попытке подключиться к маршрутизатору через Winbox система пишет что не правильный логин/пароль, а вот при подключении через PPTP такой проблемы не наблюдается. Как эту тему побороть, я пока не выяснил, если разберусь обязательно отпишусь.
О том что еще можно настроить на MikroTik