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

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

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

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

/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. Настроим профиль для удаленных пользователей: параметры шифрования и диапазон выдаваемых адресов:

/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. Добавим пользователей. Добавляем, собственно, саму учетку, а так же интерфейс сервера для каждого клиента. Так будет удобней в дальнейшем определять правила фаервола или смотреть статистику.

/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-ключ для всех один).


/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. Открываем на фаерволе нужные порты:

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

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

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

/interface bridge set 0 arp=proxy-arp

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

[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, например, на такие:
/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

/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


/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

130 Comments

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

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

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

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

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

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

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

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

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

      1. да разные. хотя определил. не работает если пытаюсь подключить несколько разных клиентов с одного канала интернета. если с разных каналов, то соединяются нормально.
        и в логах типа такие ошибки.. можно как-нибудь исправить? в настройках 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.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  13. [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)

  14. Присоединяюсь к вопросу. Почему в команде добавления /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” ??

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

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

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

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

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

    спасибо

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

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

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

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

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

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

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

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

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

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

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

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

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

  23. Посмотрите пожалуйста, для нат у меня только такие правила, где 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=””

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

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

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

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

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

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

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

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

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

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

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

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

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

          2. Суть изысканий прост. Нужен тоннель из ОС пользователей, сидящих где-то в недрах интернета, которым надо всеобязательно выдать на расстояние “вытянутой руки” ресурсы находящиеся по мою сторону 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 интерфейс?

          3. ни в 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).
            Такой фишки у вас в настройках я не заметил.

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

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

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

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

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

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

  29. Здравствуйте. Помогите разобраться. Столкнулся с проблемой: поднял 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

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

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

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

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

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

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

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

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

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

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

  33. Доброе время суток!
    Народ, все таки хотелось бы поставить точку в вопросе обрыва соединения первого
    ПК при подключении второго ПК за 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

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

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

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

      1. # 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

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

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

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


    /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

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

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

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

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

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

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

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

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

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

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

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

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

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

      1. может в конфиге что не так?
        [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=””

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

  42. может кому нибудь пригодится решение (проблема на пост выше)
    сделать пул для 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
    лично у меня обрывы ушли.

  43. Настраивал как у вас написано, единственное что ARP поменял и IKE2 поставил, впн работает внутри все пингуеться, однако в инет пакеты не ходят, трейсер обрываеться на локальном впновском ип.
    Если вдруг сталкивались – был бы благодарен за помощь.

    1. Для начала – в настройках подключения снимите галку “шлюз по умолчанию в удалённой сети” (если используется клиент WIndows).

  44. В плане клиенты подключаются по vpn к локалке(по локалке ходит нормально), а интернета нет(интернет тоже через впн ходит?)

  45. Какую настройку нужно сделать чтобы vpn клиенты использовали свой интернет (если снять галочку ” использовать шлюз по умолчанию в удалённой сети” то интернет пропадает).

  46. На микротике нужен маршрут впн адресов в локалку. в поле dst.address указать свою локалку- допустим 172.16.1.0/24(незаполненная строчка даст доступ не только в локалку, но и в интернет через впн)
    На клиенте шлюз по умолчанию нужно отключить, тогда интернет будет работать со стороны клиента, но не будет работать сеть за впн, для него нужно прописать маршрут: cmd от админа => ‘route add 172.16.1.0 MASK 255.255.255.0 172.16.2.1’
    где 172.16.1.0 локалка, 172.16.2.1 – локальный адрес ppp профиля на микротике

Leave a Reply