Skip to content

Поднимаем L2TP-сервер с ipsec на Mikrotik

Mikrotik довольно часто можно увидеть в маленьких и средних офисах в качестве роутера. Собственно, это одна из самых удачных ниш для него. Небольшая производительность (при богатых возможностях) и надежность (по сравнению с чисто аппаратными решениями от той же Cisco) не позволяет закрепиться ни в ISP (разве что в качестве CPE), ни в энтерпрайзе. Остается еще радиодоступ (где с микротиком довольно успешно конкурирует Ubiquiti), но мы сейчас не о нем.

Итак, ситуация: небольшой офис на десяток машин. Внутри есть сервер с 1С и прочие радости жизни в виде общей шары и принтеров. Снаружи — некоторое количество сотрудников, которым нужно дать возможность работать из дома или из других мест (например, через публичные wifi-сети и 3g-свистки). Разумеется, трафик, проходящий через публичные сети нужно шифровать, потому что ни сотовые сети, ни, тем более, wifi-сети (как и сети других операторов связи) защищенность канала связи не гарантируют, а утечка паролей и прочей конфиденциальной информации, передающейся в открытом виде (нешифрованный http, ftp, telnet и другие) может стать очень неприятным сюрпризом.

1. Настроим l2tp-сервер:

1
2
/interface l2tp-server server authentication=mschap2 default-profile=l2tp \
enabled=yes ipsec-secret="1p$eC-k3y" max-mru=1460 max-mtu=1460 use-ipsec=yess

2. Настроим профиль для удаленных пользователей: параметры шифрования и диапазон выдаваемых адресов:

1
2
3
4
5
6
7
/ip pool
add name=vpn_pool ranges=192.168.1.200-192.168.1.254

/ppp profile
add name=l2tp change-tcp-mss=yes local-address=192.168.1.1 only-one=default \
remote-address=vpn_pool use-compression=default use-encryption=yes use-mpls=default \
use-vj-compression=default bridge=lan

2. Добавим пользователей. Добавляем, собственно, саму учетку, а так же интерфейс сервера для каждого клиента. Так будет удобней в дальнейшем определять правила фаервола или смотреть статистику.

1
2
3
4
5
/ppp secret
add comment="VPN for 1C" name=buhgalter password=Pa$sW0rD profile=l2tp bridge=lan

/interface l2tp-server
add name=bauhgalter user=buhgalter

3. Настроим ipsec. Тут все довольно просто — выставляем нужный тип шифрования и авторизации (для Windows это 3des/sha1), добавляем пир «по умолчанию» (аутентификация пользователей у нас будет проходить на этапе l2tp, поэтому ipsec-ключ для всех один).

1
2
3
4
5
6
7
8
9
/ip ipsec proposal
set [ find default=yes ] auth-algorithms=sha1 disabled=no enc-algorithms=3des \
lifetime=30m name=default pfs-group=modp1024

/ip ipsec peer
add address=0.0.0.0/0 auth-method=pre-shared-key dh-group=modp1024 disabled=no \
dpd-interval=disable-dpd dpd-maximum-failures=1 enc-algorithm=3des exchange-mode=main-l2tp \
generate-policy=yes hash-algorithm=sha1 lifetime=1d my-id-user-fqdn="" nat-traversal=yes \
port=500 secret="1p$eC-k3y" send-initial-contact=yes

Обратите внимание, secret должен совпадать с тем, что вы указали в настройках l2tp-сервера

4. Открываем на фаерволе нужные порты:

1
2
/ip firewall filter
add chain=input action=accept protocol=udp port=1701,500,4500

5. Настраиваем соединения у клиентов:
Со стороны клиентов все просто: в Windows можно пользоваться штатными средствами (l2tp/ipsec подключение создается с помощью мастера), в Ubuntu придется доставить кое-какие пакеты.

6. На микротике включаем proxy arp (Считаем, что у нас только один бридж «lan»):

1
/interface bridge set 0 arp=proxy-arp

На этом все. Подключаемся, проверяем связь с сервером. Проверяем, что на микротике появились динамические policy и установилилсь sa:

1
2
3
4
5
6
7
8
9
10
11
[admin@MikroTik] /ip ipsec> policy print
Flags: X - disabled, D - dynamic, I - inactive
 0 D src-address=x.x.x.x/32 src-port=any dst-address=109.195.227.36/32 dst-port=any protocol=udp action=encrypt level=require ipsec-protocols=esp tunnel=no sa-src-address=x.x.x.x
     sa-dst-address=y.y.y.y proposal=default priority=2
[admin@MikroTik] /ip ipsec> installed-sa print  
Flags: A - AH, E - ESP, P - pfs
 0 E  spi=0x8A07694 src-address=x.x.x.x dst-address=y.y.y.y auth-algorithm=sha1 enc-algorithm=3des replay=4 state=dying auth-key="f9b46ed95792603d825c5db8f3da12b52c0d2977"
      enc-key="c3b9a65fdfd8da8e8e512c49bf5bc9d29d5754f08b9a60f3" addtime=nov/30/2013 18:33:05 expires-in=3m32s add-lifetime=48m/1h current-bytes=300621

 1 E  spi=0xA9A39F8D src-address=y.y.y.y dst-address=x.x.x.x auth-algorithm=sha1 enc-algorithm=3des replay=4 state=dying auth-key="92ed94eb4efbe14d9057a94451f699eae92470e3"
      enc-key="cbbc79ab0377c2c7a6c15c5abfa9aad122adc02f4787da28" addtime=nov/30/2013 18:33:05 expires-in=3m32s add-lifetime=48m/1h current-bytes=286523

UPD:
Статья была написана больше двух лет назад, но до сих пор пользуется популярностью. С тех пор возможности RouterOS несколько изменились и расширились, так что пришлось её немного дополнить. Немного поправил конфигурацию под RouterOS 6.3x.x
Если у вас возникли проблемы с подключением, то можно попробовать изменить настройки IPSec, например, на такие:

1
2
/ip ipsec proposal add name=L2TP-proposal auth-algorithms=sha1 \
enc-algorithms=3des,aes-128-cbc,aes-192-cbc,aes-256-cbc pfs-group=none
1
2
3
4
/ip ipsec peer add address=0.0.0.0/0 port=500 auth-method=pre-shared-key \
secret="1p$eC-k3y" generate-policy=port-override exchange-mode=main-l2tp \
 send-initial-contact=yes nat-traversal=yes hash-algorithm=sha1 enc-algorithm=3des,aes-128,aes-192,aes-256 \
dh-group=modp1024
1
2
3
4
/ip ipsec policy
add src-address=::/0 dst-address=::/0 protocol=all template=yes group=default \
action=encrypt level=require ipsec-protocols=esp tunnel=no sa-src-address=0.0.0.0 \
sa-dst-address=0.0.0.0 proposal=L2TP-Proposal

123 комментария

  1. Donatas Donatas

    Один клиент работает нормално.
    Если в тоже время подключяетса второй, то первий неможет пингпвать сеть 192.168.1.0/24.
    Ето толко у меня такая проблема?

    • admin admin

      А какие адреса выдаются клиентам? и с какой маской?

      • admin admin

        Спасибо большое!

      • max max

        Подскажите как это правильно использовать?

  2. Возможно дело в следующем: в «/ppp profile» есть параметр «only-one», который в статье выставлен =default. Так вот попробуйте его сделать =no

    • admin admin

      only-one определяет, можно ли по данной учетке коннектиться одному юзеру, или сразу нескольким

      • Всё же по-моему Вы не правы. У меня при only-one=yes было так что 2 клиента (оба за одним и тем же НАТом) под разными учётками как раз не могли одновременно работать. А при only-one=no ситуация исправилась. Просто предлагаю тому, кто задал вопрос проверить и отписаться.

      • Артем Артем

        Ну так все верно, у вас два пользователя за одним натом, соответственно внешний адрес один, поэтому он и ругается.

  3. Дмитрий Дмитрий

    Подскажите, работает ли L2TP с OSPF? и не мог ли бы бы привести примеры настроек?

    • admin admin

      Не вижу препятствий. А что вы хотите сделать?

  4. Егор Егор

    настроил по этой инструкции. но у меня из интернета никак не может подключиться больше одного клиента по l2tp. если соединяется второй, то первый разъединяется… можно ли как нибудь сделать, чтобы соединялось два и более? пробывал only-one = no. все равно так же

    • admin admin

      Проверьте учетные записи и remote-address.
      Учетки, по возможности, должны быть разными, remote-address не задан (но задан пул в профиле), либо отличаться для разных учеток.

  5. Егор Егор

    так и сделано. но все равно упорно не хочет соединяться.

    • admin admin

      Т.е. учетные записи разные, но соединяться все равно не хочет? А в логах что?

      • Егор Егор

        да разные. хотя определил. не работает если пытаюсь подключить несколько разных клиентов с одного канала интернета. если с разных каналов, то соединяются нормально.
        и в логах типа такие ошибки.. можно как-нибудь исправить? в настройках only-one=no
        13:49:11 ipsec,debug rejected authmethod: DB(prop#1:trns#1):Peer(prop#1:trns#4) = pre-shared key:RSA signatures
        13:49:11 ipsec,debug no suitable proposal found.
        13:49:11 ipsec,debug failed to get valid proposal.
        13:49:11 ipsec,debug failed to pre-process ph1 packet (side: 1, status 1).
        13:49:11 ipsec,debug phase1 negotiation failed.

      • admin admin

        Я думаю, проблема в установке SA. Т.е. при подключении SA устанавливается между белыми адресами, и при появлении нового клиента SA дропается и создается по-новой. Существующий клиент, соответственно, отваливается.

        Думаю, нужно вам посмотреть настройки Ipsec

      • evgeniy evgeniy

        Нужен либо роутер который умеет прокидывать несколько тунелей через нат (так называемый vpn pass through), либо поднимать клиента на роутере и прописывать маршруты. По идее можно еще помучаться с нестандартными портами и GRE трафиком, но я не уверен в работоспособности.

      • naezd naezd

        Удалось решить проблему?

      • admin admin

        Пока еще нет. Думаю, стоит написать разработчикам Mikrotik…

  6. Андрей Андрей

    Все настроил по инструкции спасибо. Но есть вопрос. Как полноценно задать параметры IP соединения такие как шлюз по у молчанию, маску и например суфикс DNS подключения?

    • admin admin

      А что в вашем понимании «полноценно»? Все эти настройки можно указать в ppp-profile и они будут выдаваться клиенту

  7. Андрей Андрей

    Не увидел я в РРР профиле этих настроек: шлюз по у молчанию, маску и например суфикс DNS подключения. Есть предположение что это может через DHCP сервер настраиваться, только не понял как его с этим РРР соединением связать….

  8. Илья Илья

    Аналогичный вопрос. Как раздать клиентам L2TP адреса по DHCP. Как вообще его прикрутить к серверу VPN?

    • admin admin

      А зачем DHCP для ppp-соединения? Все параметры клиенту выдает vpn-сервер, никакого dhcp не нужно

  9. Дима Дима

    Добрый вечер, подскажите пожалуйста какие порты надо разрешить в файреволе для l2tp соединения

    • admin admin

      1701/udp для l2tp
      500/4500/udp для ipsec

  10. Radiorama Radiorama

    Добрый день.
    Настроил похожим образом, клиенты с проводных провайдеров цепляются без проблем, но клиенты через 3G/LTE не цепляются вообще, при этом они же без вопросов цепляются к другим L2TP/IPSec серверам.

    • admin admin

      Смотрите в сторону nat traversal, ну и логи наше все 🙂

  11. Radiorama Radiorama

    Выключение/включение NAT Traversal не имеет никакого эффекта в моей ситуации.
    Логи читаю, но пока не понимаю.

  12. Radiorama Radiorama

    Методом тыка нашёл источник проблемы: Generate Policy = port override. Теперь клиенты через 3G/LTE цепляются.

  13. elvis elvis

    У меня такая ошибка когда пытаюсь добавить /ppp profile
    expected end of command (line 1 column 60)
    Сорри, я новичок. Что я делаю не так?

    • admin admin

      А напишите полностью команду, которую вы вводите

  14. elvis elvis

    [admin@MikroTik] /ppp profile> /ppp profile
    [admin@MikroTik] /ppp profile> add name=l2tp change-tcp-mss=yes local-address=192.168.1.1 name=default-encryption only-one=default \
    expected end of command (line 1 column 60)
    [admin@MikroTik] /ppp profile> remote-address=vpn_pool use-compression=default use-encryption=yes use-mpls=default \
    syntax error (line 1 column 15)
    [admin@MikroTik] /ppp profile> use-vj-compression=default bridge=lan
    syntax error (line 1 column 19)

    • admin admin

      Как уже заметили, дело в двух директивах name=, одну из них надо убрать.

  15. ketamin ketamin

    Присоединяюсь к вопросу. Почему в команде добавления /ppp profile

    add name=l2tp change-tcp-mss=yes local-address=192.168.1.1 name=default-encryption only-one=default remote-address=vpn_pool use-compression=default use-encryption=yes use-mpls=default use-vj-compression=default bridge=lan

    2 имени профиля «name=l2tp» и «name=default-encryption» ??

    • admin admin

      Моя оплошность 😉 Профиль делался из default-encryption и забыл убрать имя. Спасибо 🙂

  16. ketamin ketamin

    Спасибо большое за предоставленный конфиг, клиенты присоединяются к серверу, но проблема в том, что на клиентских машинах не открываются сайты, винда жалуется на ограниченное соединение (без доступа в инет) При этом без проблем пингуются сервера например гугла. В чем может быть проблема? Спасибо.

    • admin admin

      Для начала, наверное, стоит посмотреть маршрутизацию (как на клиентах, так и на роутере) и счетчики фаервола.

  17. yahan yahan

    У меня соединение устанавливается, но стабильно через 5-10 мин пинг перестает проходить. На стороне роутера все красиво — туннель продолжает работать, icmp пакеты через интерфейс бегают. Windows 7 находится за роутером, файрвол на винде отключен. Подскажите в каком направлении копать.

    • admin admin

      А версия RouterOS какая?
      Время на хосте, и микротике совпадает?

  18. виктор виктор

    День добрый
    всё работает спасибо

    но….когда подключаюсь с машину к микротику где л2тп он использует шлюз микротика можно ли как то сделать так что бы шлюз осталься мой и при это я мог иметь доступ ко всем удалённым ресурсам

    спасибо

    • admin admin

      В настройках VPN подключения нужно снять галку с «Использовать шлюз в удаленной сети»

      • eduard eduard

        В таком случае перестает пинговаться удаленая сеть. но шлюз локальный теперь. ))

      • admin admin

        Ну разумеется она пинговаться не будет 🙂 Маршруты в таком случае нужно будет явно указывать на клиенте, т.к. L2TP не поддерживает push-routes

  19. Антон Антон

    Добрый день.
    Скажите как настроить что бы можно было подключить доп.оффис при этом что бы доп.оффис был прозрачно в сети центрального? Я верно понимаю что тут надо делать выдачу IP клиентам через внутренний DHCP а дальше EoIP?

    • admin admin

      А зачем вам именно одна подсеть в ГО и допофисах? Если таки совсем-совсем нужна прозрачность, то можно попробовать вариант с l2 ovpn, или с eoip поверх l2tp

  20. Антон Антон

    Ну это не совсем доп оффис, грубо говоря это вывод отдела за пределы оффиса.

    Спасибо, буду пробовать.

  21. AnGord AnGord

    Вопросик: с серией CRS сталкивались ? А то тут назревает модернизация инфраструктуры и цены на них выглядят очень интересно в разрезе заявляемого функционала, но пока не видел вменяемых отзывов/опыта эксплутации.

    • admin admin

      Нет, работать не приходилось. Насколько я знаю, там полноценная RouterOS, так что не вижу препятствий

  22. Dron Dron

    Большое спасибо за статью
    всё подключается
    правда доступ только по IP
    подскажите пожалуйста как настроить чтобы DLNA сервер за микротиком был виден клиентом подключённым к микротику ?

    • admin admin

      Не сталкивался с DLNA ни разу, так что пока сказать не могу. А в чем именно сложность?

  23. zerottl zerottl

    День добрый! У меня проблема. Во внутренней сети сформирован бридж. В него входит также интерфейс WLAN. Все клиенты соответственно подключены через Wi-Fi. L2TP-сессия устанавливается. Но удаленные клиенты имеют только доступ к адресу шлюза (Local Address). ВО внутреннюю сеть доступа нет. Включаю proxy-arp на брижде внутренней сети. Изменений нет. Подскажите пожалуйста как быть ? Спасибо.

    • admin admin

      Для начала смотрите правила фаервола (включая nat). Почти наверняка у вас настроен маскарадинг на выходящем интерфейсе, и пакеты, идущие в ipsec-туннели натятся во внешний адрес роутера.

  24. zerottl zerottl

    Посмотрите пожалуйста, для нат у меня только такие правила, где bvI1 — это внешний интерфейс. Может что-то еще нужно добавить ?

    [zerottl@MikroTik] > ip firewall nat print
    Flags: X — disabled, I — invalid, D — dynamic
    0 ;;; default configuration
    chain=srcnat action=masquerade out-interface=bvI1 log=no log-prefix=»»
    1 chain=srcnat action=masquerade out-interface=l2tp-out1 log=no
    log-prefix=»»

    • admin admin

      Ну как минимум я бы добавил фильтр по dst-address=!192.168.0.0/24 (или какой там у вас адрес клиентов vpn)

      • zerottl zerottl

        Все заработало! Собственная невнимательность подвела. Файрвол блокировал интересующий трафик с VPN-клиентов во внутреннюю сеть. С NAT все в порядке оказалось. Спасибо огромное за помощь. Извините, что по такому пустяку задергал.

      • admin admin

        Рад, что у вас все получилось 🙂

  25. Андрей Андрей

    Помогите решить проблему:
    Есть 2 клиента под разными PPP учетками, но с одним внешним IP, которые должны подключаться к l2tp на микротике (сидят в одном офисе)
    Проблема в том, что когда подключается второй клиент — первого выбрасывает.
    Подскажите, что можно предпринять в данном случае и в чем может быть проблема?

    • admin admin

      Добрый день.
      Выше в комментариях это уже обсуждали.
      Попробуйте указать в настройках учетных записей:
      only-one=no

  26. Андрей Андрей

    Увы, не помогает, забыл отписать по этому поводу.

    • admin admin

      Попробуйте еще указать
      Generate Policy = port override

      в настройках ipsec

      • Radiorama Radiorama

        Ни only-one, ни port override не помогают.

      • admin admin

        Кидайте вашу конфигурацию на форум, там смотреть будет удобней

  27. Егор Егор

    Здравствуйте! С такой проблемой столкнулся или даже не проблема, но непонятка. Почему то с ноута на 8ке у меня не появляются SA ключи, хотя подключение есть. куда капать? С ноута на 7ке ключи появляются. По идеи если ключей нет то соединение не безопасное?

    • admin admin

      Здравствуйте!
      Нет, с такой проблемой не сталкивался. А настройки верные? Режим L2tp/IPSec, и ключ тоже указан?

      • Егор Егор

        Вроде как да. Настройки верные. Ключ есть. Телефон соединяется. Компы соединяются. Но ключи не появляются на 8ке. На семерке все есть.

      • admin admin

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

  28. reddare reddare

    Привет! Делаю все по инструкции, но коннект не проходит, со стороны windows 8.
    В логах вижу что не прошла первая фаза инициализации…
    Это можно побороть?

    • admin admin

      Добрый день.
      А в настройках win8 PSK указали? Я не проверял работу на win8, если честно.

    • Егор Егор

      а какая версия прошивки mikrotik’a ? а то в предпредпоследней версии была проблема коннекта windows 8 (не соединялось), сейчас после обновления норм. вдруг поможет)

  29. Евгений Евгений

    я «засыпался» на этапе «Настроим профиль для удаленных пользователей»
    на попытку ввести параметр bridge=lan
    отвечает input does not match any value of brige

    • admin admin

      зависит от того, есть у вас на устройстве bridge, и как он называется

      • Евгений Евгений

        вероятно его следует создать? само действие туманно

      • admin admin

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

      • Евгений Евгений

        на RB750 отчего-то обнаруживается только 5 ether-интерфейсов и 1 pppoe по которому «приходит интернет».. быть может надо все в ethernet quick set надо галочку на bridge all lan ports блямкнуть или ну его нафек?

      • Евгений Евгений

        Суть изысканий прост. Нужен тоннель из ОС пользователей, сидящих где-то в недрах интернета, которым надо всеобязательно выдать на расстояние «вытянутой руки» ресурсы находящиеся по мою сторону Microtik RB750 (тот что без WiFi). Т.е. данным твоарЫщам должно видеть всю подсеть прозрачно — принтеры, шары, рабочие столы.
        С этой задачей вижу в результатах поиска всё, кроме внятной инструкции как объяснить владельцу IP 10.0.10.140 (выдан DHCP от L2TP сервера в PPPOE), что IP 10.0.10.40 (выдан DHCP роутера 10.0.10.5) уже почти близко и его рабочий стол совсем рядом.
        Помогите понять. Может там чего разрешить в firewall надо (какйинить 500 или 100500 порт пробрасывать или принимать)? Или убрать из устройства swith (кстать смысл оного в роутере не ясен — разве что добиться неуправляемого трафика между включенными в него портами) и объединить ether2 ..3 ..4 ..5 в bridge и добавить туда l2tp интерфейс?

      • Евгений Евгений

        ни в swith, ни в bridge интерфейсы как-то не добавляются, остаются правила в firewall
        ужос какой-то!
        на http://wiki.mikrotik.com/wiki/MikroTik_RouterOS_and_Windows_XP_IPSec/L2TP
        заметилась строчка: Do not forget to allow UDP 500 (Dst.Port), UDP 1701, UDP 4500 (Nat-Traversal) and Protocol 50 (ESP) in the firewall filter settings. (Input chain, accept).
        Такой фишки у вас в настройках я не заметил.

      • Евгений Евгений

        Пардон. Теперь заметил. Извиняюсь за близорукость.

      • Евгений Евгений

        Спасибо, господа! Проблему решил. Оказалось у меня DHCP в RB750 не работает как DNS сервер и выдаёт какие-то «пришлые» нуммерки, а я по наивности прописывал клиентам адреса статичные, указывая роутер DNS-сервером. Можно как-то настроить это, чтоб в предпочитаемом DNS-сервере роутер высвечивался у клиентов сети?

      • admin admin

        Да, это делается в ip dhcp-server
        Посмотрите тамошние опции, там можно все настроить.

  30. Евгений Евгений

    я так понимаю его следует создать? само действо как бы туманно

  31. Статья прекрасная, без лишней воды.
    Собственно виндевые клиенты подключаются без проблем. А вот Андроид и Айфон ни в какую. Грешил на версию ОС, пробовал 5.20, 5.25, 6.22.
    Что характерно, Виндовс7 подключается прекрасно даже без прописанного ключа PSK. Файрволл девственно чист.
    На соседнем компе стоит SoftEther VPN-сервер и на нем поднят l2tp с ipsec, там ВСЕ клиенты подключаются и работают, но кое-какие моменты на нем не устраивают.
    Кто-то может пробовал проделать все те же манипуляции с Микротом для работы с мобильными клиентами?

    • admin admin

      Не встречался с таким, если честно. А в логах микротика какая-нибудь информация есть?

    • Koks Koks

      Ведроид без проблем подключается к routerOS как по psk, так и по сертификату.
      Только есть одно но: первая фаза «переговоров» образно выражаясь, выпадает. То есть, достаточно затолкать в контейнер корневой, клиенсткий сертификат, ключ, а при подключении на андроиде указать только корневой. Ну и на MT включить авторизацию с помощью xauth, но не требовать клиентский.
      ios по psk тоже подключается. по сертификатам не пробовал.

  32. Олег Олег

    Здравствуйте. Помогите разобраться. Столкнулся с проблемой: поднял l2tp ipsec сервер. Клиенты коннектятся без проблем. Видят внутренние ресурсы сети (сетевые шары, принтера итп). Пинг с vpn клиента в локальную сеть проходит. Интернет подключившимся доступен. Но пинги к подключившемуся клиенту по VPN, из локальной сети не ходят. А с маршрутизатора ходят. Всю голову сломал уже. Подключающиеся по vpn и локалка с одной подсети. Настройки:

    /ip firewall filter
    add chain=input comment=»Allow Ping» protocol=icmp
    add chain=forward protocol=icmp
    add chain=input comment=»Accept established connections» connection-state=established
    add chain=forward connection-state=established
    add chain=input comment=»Accept related connections» connection-state=related
    add chain=forward connection-state=related
    add action=drop chain=input comment=»Drop invalid connections» connection-state=invalid
    add action=drop chain=forward connection-state=invalid
    add chain=input comment=»Allow UDP» protocol=udp
    add chain=forward protocol=udp
    add chain=forward comment=»Access to Internet from local network» in-interface=bridge-local src-address=192.168.1.0/24
    add chain=forward comment=»Access to Internet from VPN network» in-interface=all-ppp src-address=192.168.1.0/24
    add chain=input comment=»Access to Mikrotik only from our local network» src-address=192.168.1.0/24
    add action=drop chain=input comment=»All other drop» log-prefix=DROP—->
    add action=drop chain=forward log-prefix=DROP_FORWARD—->
    /ip firewall nat
    add action=masquerade chain=srcnat comment=»default configuration» log-prefix=-> out-interface=Rostelecom
    /ip firewall service-port
    set ftp disabled=yes
    set tftp disabled=yes
    set irc disabled=yes
    set h323 disabled=yes
    set sip disabled=yes
    set pptp disabled=yes

    /ppp secret
    add comment=»VPN» name=XXXXXXXXX password=XXXXXXXXXX profile=l2tp-vpn-lan

    /ppp profile
    add bridge=bridge-local dns-server=192.168.1.1 local-address=192.168.1.2 name=\
    l2tp-vpn-lan only-one=no remote-address=vpn_clients_remote use-encryption=yes

    /ip pool
    add name=dhcp ranges=192.168.1.10-192.168.1.65
    add name=vpn_clients_remote ranges=192.168.1.111-192.168.1.120

    /interface bridge export
    # mar/29/2015 00:27:02 by RouterOS 6.27
    #
    /interface bridge
    add admin-mac=XX:XX:XX:XX:XX:XX arp=proxy-arp auto-mac=no mtu=1500 name=bridge-local
    /interface bridge port
    add bridge=bridge-local interface=ether2-master-local
    add bridge=bridge-local interface=wlan1

    • admin admin

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

  33. Koks Koks

    mikrotikmikrotik у Вас заводится в транспортном режиме?
    сертификаты генерил как на routerOS, так и с помощью openssl.

  34. Koks Koks

    чееееерт!!!!
    теги аннигилировались
    l2tp+ipsec.rsa-signature с двух сторон.
    p.p.s. клиент с одной стороны за nat

  35. Вадим Вадим

    Доброго времени суток, очень нужна помощь, есть несколько каналов интернета одного провайдера, подключение осуществляется через несколько VPN учеток. Заставить микротик отвечать по порту на который пришел запрос удалось, но не удаётся запустить несколько Л2ТП соединений, т.к шлюз для всех соединений один. Соединения запускаются, но идут через один первый порт. Как привязать каждую впн к своему порту? Я думаю что должен быть способ обойти систему. Помогите пожалуйста.

    • admin admin

      У меня есть большие сомнения, что такая схема заработает нормально в рамках одного устройства. Попробуйте поднимать VPN к провайдеру с разных микротиков, а потом уже агрегировать трафик от них. Выглядеть будет. конечно, страшно, но у вас и задача нетривиальная…

      Еще можно посоветовать mangle-правила фаервола (маркировать трафик), а потом на основе меток выпускать в разные интерфейсы… но эта схема сложнее в реализации и требует прокачанного скила iptables.

      • Вадим Вадим

        Ладно, посмотрим. Еще вопрос, есть две подстети с одинаковым диапазоном 192.168.0.0/16 но с разными шлюзами, нужно сделать так чтоб при запросе из подсети 1, клиенты подключенные к этому роутеру отвечали в эту же подстеть, и так же из второй подстети. Сам микротик для того чтоб отвечал по тому же порту на который пришел запрос настроил.

      • admin admin

        Я бы начал с дизайна сети. Если дизайн крив и кос, то костыли, конечно, до определенного момента спасут отца русской демократии, но потом заведут в еще более глубокий тупик, и все равно придется все переделывать.

      • Вадим Вадим

        Да с нашим дизайном сети все хорошо, просто произошло физическое соединение нескольких крупных сетей, а дипазоны у них одинаковые, переделывать какой либо из сторон Ип адреса клиентов это кажется еще более сложным.

      • admin admin

        Как бы ни было больно, но, думаю, без этого не обойтись. Потому что есть риск, что проблем вы огребете больше впоследствии.

  36. St. St.

    Доброе время суток!
    Народ, все таки хотелось бы поставить точку в вопросе обрыва соединения первого
    ПК при подключении второго ПК за NAT. Особое обращение к автору топика.
    Пробежался по вопросам к топику в части обрыва, — у меня все аналогично. Пробовал
    смоделировать ситуацию дома (на офисе обрывы при подключении второго ПК), сразу отмечу,
    что и на офисе и дома роутер Mikrotik (это на замечание о том, что нужен vpn pass through)
    результат тот же.
    Оба пользователя имеют разные учетки. По отдельности коннектятся — никаких обрывов, линк
    очень стабилен. Стоит одновременно подключиться — происходит отключение первого.
    Прилагаю конфигурацию:
    /ip ipsec proposal
    set [ find default=yes ] enc-algorithms=3des

    /ip pool
    add name=VPN_pool ranges=192.168.0.201-192.168.0.230

    /ppp profile
    add bridge=bridge-local-skb change-tcp-mss=yes comment=»VPN USS» \
    local-address=192.168.0.1 name=vpn_profiles only-one=no remote-address=\
    VPN_pool use-encryption=yes

    /interface l2tp-server server
    set authentication=mschap2 default-profile=vpn_profiles enabled=yes \
    ipsec-secret=секрет1 use-ipsec=yes

    /ip ipsec peer
    add comment=»3des for Win7 aes128,192,256 xp» enc-algorithm=\
    des,3des,aes-128,aes-192,aes-256 exchange-mode=main-l2tp generate-policy=\
    port-strict my-id=user-fqdn secret=секрет1

    Максимум чего добился, — разрыв ПК1 после подключения ПК2 примерно через полторы минуты,
    если выставить tunnel в IPSec Policies вкладка Action

    Могу скинуть скриншоты. Помогите советом

    • admin admin

      Пока не могу вас ничем обрадовать — только посоветую пользоваться openvpn.
      Ну еще можно попинать их на официальном форуме.

      • St. St.

        для нескольких клиентов за NAT установил OpenVPN, проблема закрылась.

  37. Dmitry Dmitry

    invalid length of payload, как не менял длинну ключа secret=1111

  38. evgeniy evgeniy

    Что характерно, Виндовс7 подключается прекрасно даже без прописанного ключа PSK.
    Как это ограничить на микротике

    • admin admin

      конфигурацию микрота приложите пожалуйста. и версию RouterOS

      • evgeniy evgeniy

        # aug/31/2015 20:53:04 by RouterOS 6.30.4

        /ip ipsec proposal
        set [ find default=yes ] enc-algorithms=3des pfs-group=none

        /ppp profile
        add change-tcp-mss=yes dns-server=192.168.1.2 local-address=192.168.11.1 \
        name=l2tp-vpn-lan only-one=no use-encryption=required

        /interface l2tp-server server
        set authentication=mschap2 default-profile=l2tp-vpn-lan enabled=yes \
        ipsec-secret=ZZZZZZZ max-mru=1460 max-mtu=1460

        /ip ipsec peer
        add address=0.0.0.0/0 comment=ipsec_key enc-algorithm=3des exchange-mode=\
        main-l2tp generate-policy=port-override local-address=0.0.0.0 secret=\
        ZZZZZZZ

        /ppp secret
        add name=user password=e4ng2 profile=l2tp-vpn-lan remote-address=\
        192.168.11.6 service=l2tp

  39. Alex Alex

    Добрый день, делал всё по инструкции (за исключением brige=lan, может ещё чего не доглядел), не могу понять зачем вообще нужен IPsec? В ipsec peer вводи что угодно: хоть preshared key, хоть rsa, результат один — всё равно законнектится, независимо от того, что указывать в клиенте, главное что бы ppp secret был правильный. Пробовал на win8, ubuntu (seriy-pr/network-manager-l2tp). Уже всё перекрутил.
    Mikrotik RouterOS 6.30

  40. gradash gradash

    эххх, а я уже неделю мучаюсь…. настройно все, с телефона моего по 3g (извне) соединяет, изнутри по вайфаю тоже, и комп изнутри соединяет… но больше ни кого не пускает.. всем пишет phase1 negotiation failed due to time up xx,xx,xx,xx[500]xx,xx,xx,xx[500] as7d8a5sd76asd5a7s6d589s7df

    почему именно с моего телефона по 3g работает, а с других нет ?
    и почему именно с моего компа в сетке работает, а с других нет ?
    никаких доступов отдельных я не настраивал

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    /interface bridge
    add arp=proxy-arp name=LANWAN
    /interface ethernet
    set [ find default-name=ether1 ] comment=Lattelecom
    set [ find default-name=ether2 ] comment=Telenet
    set [ find default-name=ether3 ] comment=LAN
    set [ find default-name=ether4 ] comment=WAN
    /interface pptp-client
    add connect-to=**.**.**.** mrru=1600 name=pptp-de password=\
        ********** user=**********
    /ip neighbor discovery
    set ether1 comment=Lattelecom
    set ether2 comment=Telenet
    set ether3 comment=LAN
    set ether4 comment=WAN
    /ip pool
    add name=dhcp ranges=192.168.30.50-192.168.30.250
    add name=l2tp-pool ranges=192.168.30.40-192.168.30.49
    /ip dhcp-server
    add address-pool=dhcp disabled=no interface=LANWAN lease-time=1d name=DHCP
    /ppp profile
    add change-tcp-mss=yes dns-server=192.168.30.1 local-address=192.168.30.1 \
        name=L2TP remote-address=l2tp-pool
    /snmp community
    add addresses=0.0.0.0/0 name=nemo
    /interface bridge port
    add bridge=LANWAN interface=ether3
    add bridge=LANWAN interface=ether4
    /interface l2tp-server server
    set authentication=mschap2 default-profile=L2TP enabled=yes ipsec-secret=\
        *****
    /ip address
    add address=**.**.**.**/29 interface=ether1 network=**.**.**.**
    add address=**.**.**.**/30 interface=ether2 network=**.**.**.**
    add address=192.168.30.1/23 interface=LANWAN network=192.168.30.0
    /ip cloud
    set ddns-enabled=yes
    /ip dhcp-server network
    add address=192.168.30.0/23 dns-server=\
        192.168.30.35,**.**.**.**,**.**.**.**,8.8.8.8 domain=**.**.**.** \
        gateway=192.168.30.1
    /ip dns
    set allow-remote-requests=yes servers=**.**.**.**,**.**.**.**.10,8.8.8.8
    /ip firewall address-list
    add address=192.168.4.0/22 list=LocalNet
    add address=192.168.30.0/23 list=LocalNet
    add address=**.**.**.**/24 list=LocalNet
    add address=192.168.0.0/23 list=LocalNet
    add address=**.**.**.**/24 list=LocalNet
    add address=192.168.30.177 list=VPN_DEVICES
    add address=192.168.30.121 list=VPN_DEVICES
    /ip firewall filter
    add action=add-src-to-address-list address-list="DNS Flood" \
        address-list-timeout=1h chain=input comment="Anti DNS Flood" dst-port=53 \
        in-interface=ether1 protocol=udp
    add action=add-src-to-address-list address-list="DNS Flood" \
        address-list-timeout=1h chain=input dst-port=53 in-interface=ether2 \
        protocol=udp
    add action=drop chain=input dst-port=53 in-interface=ether1 protocol=udp \
        src-address-list="DNS Flood"
    add action=drop chain=input dst-port=53 in-interface=ether2 protocol=udp \
        src-address-list="DNS Flood"
    add chain=forward comment="Allow all subnets" dst-address-list=LocalNet \
        src-address-list=LocalNet
    add chain=input comment="Allow ping" protocol=icmp
    add chain=forward protocol=icmp
    add chain=input comment="Allow estabilished" connection-state=established
    add chain=forward connection-state=established
    add chain=input comment="Allow related" connection-state=related
    add chain=forward connection-state=related
    add chain=input comment="Allow UDP" protocol=udp
    add chain=forward protocol=udp
    add action=drop chain=input comment="Drop invalid" connection-state=invalid
    add action=drop chain=forward connection-state=invalid
    add chain=input dst-port=1701 protocol=udp
    add chain=input dst-port=4500 protocol=udp
    add chain=input comment="Allow IKE" dst-port=500 protocol=udp
    add chain=input comment="Allow IPSec-esp" protocol=ipsec-esp
    add chain=input comment="Allow IPSec-ah" protocol=ipsec-ah
    /ip firewall mangle
    add action=mark-connection chain=input dst-address=**.**.**.** \
        in-interface=ether1 new-connection-mark="LTC -> Input" src-address-list=\
        !LocalNet
    add action=mark-connection chain=input dst-address=**.**.**.** \
        in-interface=ether2 new-connection-mark="TLN -> Input" src-address-list=\
        !LocalNet
    add action=mark-routing chain=output connection-mark="LTC -> Input" \
        new-routing-mark="LTC <- output"
    add action=mark-routing chain=output connection-mark="TLN -> Input" \
        new-routing-mark="TLN <- output"
    add action=mark-routing chain=prerouting disabled=yes dst-address-list=\
        !LocalNet new-routing-mark=VPN_DEVICES passthrough=no src-address-list=\
        VPN_DEVICES
    add action=mark-routing chain=prerouting dst-address-list=!LocalNet \
        new-routing-mark=LOCALPR passthrough=no src-address=192.168.30.0/23
    /ip firewall nat
    add action=masquerade chain=srcnat comment=\
        "Masquerade out traffic Lattelecom" out-interface=ether1
    add action=masquerade chain=srcnat comment="Masquerade out traffic Telenet" \
        out-interface=ether2
    # pptp-de not ready
    add action=masquerade chain=srcnat out-interface=pptp-de
    add action=netmap chain=dstnat comment=\
        "NAT to web server at ***** PC" in-interface=all-ethernet \
        protocol=tcp to-addresses=192.168.30.121 to-ports=80
    /ip firewall service-port
    set ftp disabled=yes
    set tftp disabled=yes
    set irc disabled=yes
    set h323 disabled=yes
    /ip ipsec peer
    add enc-algorithm=3des exchange-mode=main-l2tp generate-policy=port-override \
        secret=**.**.**.**
    /ip route
    add distance=3 gateway=pptp-de routing-mark=VPN_DEVICES
    add check-gateway=ping comment="ISP1 Gateway" distance=1 gateway=\
        **.**.**.**
    add check-gateway=ping comment="ISP2 Gateway" distance=2 gateway=\
        **.**.**.**
    add comment="AMS DC" distance=1 dst-address=**.**.**.**/23 gateway=\
        192.168.30.31
    add comment="AMS VPN" distance=1 dst-address=**.**.**.**/24 gateway=\
        192.168.30.31
    add comment="SPB OFFICE" distance=1 dst-address=192.168.0.0/23 gateway=\
        192.168.30.31
    add comment="MSK OFFICE" distance=1 dst-address=192.168.4.0/22 gateway=\
        192.168.30.31
    /ip service
    set telnet disabled=yes
    set ftp disabled=yes
    set ssh disabled=yes
    set www-ssl disabled=no
    /ip upnp
    set enabled=yes
    /ip upnp interfaces
    add interface=LANWAN type=internal
    add interface=ether1 type=external
    add interface=ether2 type=external
    /ppp secret
    add local-address=192.168.30.1 name=***** password=***** profile=L2TP \
        service=l2tp
    /snmp
    set enabled=yes trap-community=nemo trap-version=2
    /system clock
    set time-zone-name=Europe/Riga
    /system logging
    add topics=pptp
    add action=remote topics=dns
    add topics=firewall
    add topics=interface
    add topics=event
    add topics=ppp
    add topics=pppoe
    /system routerboard settings
    set cpu-frequency=1200MHz memory-frequency=1066DDR protected-routerboot=\
        disabled
  41. Дмитрий Дмитрий

    Удалось ли кому-нибудь решить проблему с подключением более одного клиента?
    У меня та же ситуация — один клиент работает нормально, если в тоже время подключается второй, то первый перестает пинговать все узлы, которые дальше микротика. СтОит отключить второго клиента и всё начинает работать как надо.
    MikroTik RB951Ui-2HnD, прошивка 6.32.1. Настраивал как описано в статье. generate-policy пробовал port-override и port-strict. Внешние клиенты подключаются от разных провайдеров. Проверить пинги на втором клиенте, к сожалению, нет физической возможности

    • admin admin

      Сейчас Mikrotik весьма активно пилит RouterOS, в т.ч. баги, связанные с ipsec. Как только появится время, попробую проверить на последней актуальной версии.

    • max max

      Проблема с одновременным подключением с одного внешнего ip до сих пор есть. Пока не исправили.

      • Михаил Михаил

        Сегодня прошел почти как 1 год, коллеги, столкнулся с аналогичной ситуацией 🙂
        Удалось ли кому-ни-будь решить проблему с подключением более одного клиента?

      • Михаил Михаил

        Пробую на прошивке 6.37.2, аппарат Routerboard RB3011UiAS

        Создал двух разных пользователей в PPP => Secrets, пароли у них разные, сервер и ключ один и тот же. При подключении второго клиента, тунель ранее запущенного пользователя рвется через пару минут, интернет в этот момент не работает.

  42. Дмитрий Дмитрий

    На прошивке 6.37.3 те же фигня. Обидно! Draytek, которому на смену должен придти MikroTik CRS125-24G-1S-RM такой болезнью не страдал.

  43. Oleg Oleg

    День добрый, прошу объяснить для чего указывается ipsec-secret=»1p$eC-k3y» в l2tp-сервере?

    • Ну мы же поднимаем l2tp/ipsec подключение. А это как раз shared-ключ ipsec, который одинаков для всех клиентов.

      • Олег Олег

        У меня на данный момент работает без данной опции. Почему спрашивал. Пытаюсь запустить на одном микротике работающем сервером l2tp/lpsec два пира с разными ключами ipsec для разграничения базовой сети от пользователей, пока не получается, может вы что подскажете.

      • IPSec-ключ в данном случае будет общим для всех, а клиентов вы аутентифицируете с помощью l2tp-пароля.

  44. Oleg Oleg

    Я дико извиняюсь, но что это за параметр «use-vj-compression=default»? У меня версия RouterOS 6.38.3. Терминал на неё ругается, и в графических настройках профиля такого не нашел.

    • К настройкам l2tp она не относится, так эту опцию можно безболезненно удалить)

  45. Ivan Ivan

    поднял L2TP-сервер с ipsec на RB 3011, чтобы ходить на работу из дома. прошивка 6.38.7 Соединение великолепно устанавливается. Пинги летают. НО! стоит зайти например по rdp на рабочий комп из дома, как через пару минут, или через несколько секунд, все обрывается, в логах : terminating… — hungup. Гугл сказал что я не одинок, но решения нет. Как же быть, ребята выручайте, pptp использовать боязно.

    • Попробуйте свежую версию (6.40). А проблема только на 3011, или на всех устройствах? Я такого у себя не встречал ни разу

      • Ivan Ivan

        может в конфиге что не так?
        [admin@GateWay] /ip ipsec proposal> print
        Flags: X — disabled, * — default
        0 * name=»default» auth-algorithms=sha1
        enc-algorithms=aes-256-cbc,aes-192-cbc,aes-128-cbc,3des lifetime=30m
        pfs-group=modp1024

        [admin@GateWay] /ip ipsec policy> print
        Flags: T — template, X — disabled, D — dynamic, I — invalid, A — active, * — default
        0 T * group=ipsec_policy_group1 src-address=::/0 dst-address=::/0 protocol=all proposal=default
        template=yes

        [admin@GateWay] /ip ipsec peer> print
        Flags: X — disabled, D — dynamic, R — responder
        0 DR address=::/0 passive=yes auth-method=pre-shared-key secret=»qwerty»
        generate-policy=port-strict policy-template-group=ipsec_policy_group1
        exchange-mode=main-l2tp send-initial-contact=yes nat-traversal=yes proposal-check=obey
        hash-algorithm=sha1 enc-algorithm=aes-256,aes-192,aes-128,3des dh-group=modp1024
        lifetime=1d dpd-interval=2m dpd-maximum-failures=5

        [admin@GateWay] /ppp profile> print
        Flags: * — default
        0 * name=»default» use-mpls=default use-compression=default use-encryption=default only-one=de
        change-tcp-mss=yes use-upnp=default address-list=»» on-up=»» on-down=»»

        1 name=»l2tp_profile» local-address=from vpn test remote-address=from vpn test use-mpls=defa
        use-compression=default use-encryption=default only-one=default change-tcp-mss=yes
        use-upnp=default address-list=»» on-up=»» on-down=»»

        2 * name=»default-encryption» use-mpls=default use-compression=default use-encryption=yes
        only-one=default change-tcp-mss=yes use-upnp=default address-list=»» on-up=»» on-down=»»

  46. Псих Псих

    Видел комментарий — версия 6.38 у кого то решила проблему двух клиентов с одного внешнего ip. У меня не помогло.
    Также люди рекомендуют использовать ike2, кто то пробовал?

  47. Ivan Ivan

    может кому нибудь пригодится решение (проблема на пост выше)
    сделать пул для vpn пользователей из диапазона:
    172.16.10.1 172.16.10.2 172.16.10.3 172.16.10.4
    172.16.10.5 172.16.10.6 172.16.10.7 172.16.10.8
    172.16.10.9 172.16.10.10 172.16.10.11 172.16.10.12
    лично у меня обрывы ушли.

Добавить комментарий

%d такие блоггеры, как: