Прямые руки → Настраиваем VPN сервер L2TP и IPsec на Mikrotik RouterOS

а) Использование тоннеля передачи данных (тунелирование).
б) Защита передаваемых данных с помощью 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
33 комментария
Так как не у всех есть Windows, для настройки через WinBox
нужно будет подумать, на худой конец, можно зайти через WEB интерфейс…
Для консольщиков можно в конце приводить настройки, экспортировав конфигурацию следующим образом:
Сохранить конфигурацию в файл:
/export compact file=myconfig
При этом конфигурация микротика сохраняется в понятном текстовом виде.
По такой же аналогии используем команды import
/export file=[filename] — экспорт конфигурации роутера в файл
/import file-name=[filename] — импорт конфигурации роутера из файла
/export compact
ipsec, error key length mismatched, mine:256 peer:128
При отключении шифрования коннектится отлично. Понимаю что проблема в ipsec, но перерыл настройки, но так и не нашел в чем затык, поможете?
А IPsec Secret вы одинаковый на сервере и на клиенте указали?
Как победить отвал VPN если клиенты клиенты находятся за NAT-ом? Например подключатся к роуоутеру из гостиницы, где у всех у всех один внешний IP адрес.
Как для L2TP победить я не знаю, возможно имеет смысл посмотреть в сторону openvpn
Microtic RouterBoard 1100 AHx2 v.6.39.1
В логах микротика: 172.16.172.48 failed to preprocess ph2 packet.
Как побороть?
Если делать как в статье, то интернет получаем от удаленного офиса и вся сеть за mikrotik удаленного офиса видна(По dns и по IP).
Если убрать галку использовать шлюз в удаленной сети, то ресурсы за mikrotik Не доступны.
Надо добавлять маршрут route add 192.168.X.0 mask 255.255.255.0 192.168.10.1
НО при это dns не работают, приходится добавлять вручную через hosts или на домашний mikrotik в Static
Есть ли решение без добавления ручного маршрута? Не хочу чтобы клиенты пользовались интернетом из офиса
Тут 2 варианта
1) Вы настраиваете подключение и VPN сервер будет у вас шлюзом по умолчанию
2) Вы настраиваете подключение но шлюзом по умолчанию оно не является, вам надо прописать DNS севера в настройках VPN подключения
Я писал выше, шлюзом оно «не является», только тогда галку снимешь. И потом надо маршрут пистаь.
Как это сделать без убирания галки «использовать шлюз в удаленной сети»
Вы настраиваете подключение но шлюзом по умолчанию оно не является
Как оно может не являться? или есть галка или ее нету. Если нету, то нету маршрута до удаленной сети.
в openvpn На Linux прекрасно сделано. Когда соединяешься по vpn он не перебивает основной маршрут
Пример:
Клиент VPN получает IP 192.168.10.10, а адреса ДНС серверов 192.168.10.2 и 192.168.10.3
У меня VPN клиент получает адреса:
20.20.20.X
ДНС автоматом прописывается 192.168.X.254 (локальный адрес шлюза).
При это сеть 192.168.X.0/24 не пингуется пока не добавишь маршрут.
Как передать маршрут клиенту?
НАДО прозрачно ходить в сеть офиса без добавления маршрута и чтобы интернет был свой(домашний)
Помогите разобраться, подключение проходит, я даже могу подключиться со своего компьютера к web консоли нашей атс, НО со сторонф МикроТика пропадает инте, т.е. ТимВьювер отваливается, как только делаю отключение от ВПН все работает. Така я же беда была при соединении по PPPtP 2х микртоиков, в чем собственно и заключается задача, объединить 2 сети. Только в обоих случаях инет отваливается.
А что с загрузкой процессора а маршрутизаторе?
Загрузка на минимуме.
Рекомендую попробовать выполнить трассировку к IP адресу, когда интернет начинает тормозить, чтобы понять как идет трафик, а потом можно выполнить ping к этому адресу и посмотреть какая задержка у пакетов.
После этого повторить операцию, но уже с отключенным VPN клиентом, думаю разница будет видна, даже по маршрутизации.