"Поднять IPSec - что там сложного" - подумал я. Но не тут то было. По мануалам, хабрам и прочим ресурсам все отлично поднимается и работает между двумя микротиками, между микротиком и виндой, между микротиком и андроид. Но вот с iOS 10 ни в какую не хочет. Путем долгих ковыряний и трехэтажных словосочетаний, выяснил, что изменения для IPSec нужно применять в КОНСОЛИ! Не в графическом интерфейсе, а именно в консоли - ssh или встроенная в WinBox - без разницы. Но факт в том, что идентичные настройки в WinBox не позволяли поднять VPN между Mikrotik RouterOS и IPhone (по крайней мере в моем случае с RB751 на RouterOS 6.37.1 в связке с IPhone 6).
Привожу настройки L2TP и IPSec текстом и скрины из WinBox что должно получиться:
L2TP сервер
/interface l2tp-server server
set authentication=mschap2 default-profile=default enabled=yes
L2TP server |
PPP профили дефолтные
> ppp profile print
Flags: * - default
0 * name="default" use-mpls=default use-compression=default
use-encryption=default only-one=default change-tcp-mss=yes
use-upnp=default address-list="" on-up="" on-down=""
1 * 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=""
ppp profile |
Пользователь L2TP тоже ничем не отличается от простого L2TP/PPTP и иже с ними без айписека
/ppp secret
add local-address=192.168.222.16 name=user1 password=l2tppassword profile=default-encryption remote-address=192.168.222.18 service=l2tp
L2TP secret |
Приступаем к IPSec. Все, что я делал с IPSec - делал через консоль. Из винбокса не заработало. что именно сделалось не так - не проверял. Можете проверить методом исключения.
Добавляем группу (дефолтная работает криво - особенность RouterOS):
/ip ipsec policy group
add name=l2tp
IPSec group |
Корректируем proposal и добавляем новый:
/ip ipsec proposal
set [ find default=yes ] enc-algorithms=aes-256-cbc,aes-128-cbc
add enc-algorithms=aes-256-cbc,aes-128-cbc name=L2TP pfs-group=none
IPSec proposal |
Добавляем пира:
/ip ipsec peer
add enc-algorithm=aes-256,aes-192,aes-128,3des exchange-mode=main-l2tp generate-policy=port-strict passive=yes policy-template-group=l2tp secret=RouterOS
IPSec peer |
Добавляем шаблон политики:
/ip ipsec policy
add dst-address=0.0.0.0/0 group=l2tp proposal=L2TP src-address=0.0.0.0/0 template=yes
IPSec policy |
IPSec policy action |
Ну и настройка IPhone:
IPhone |
Спасибо Кириллу Васильеву за наводку
UPD: если имеются проблемы с подключением, попробуйте в /ip ipsec peer generate-policy установить port-override вместо port-strict
UPD: если имеются проблемы с подключением, попробуйте в /ip ipsec peer generate-policy установить port-override вместо port-strict
UPD: как советуют в комментариях
В
общем как ни странно вопрос решён, действительно помогло. А значит тем,
кто кроме меня столкнулся с такой же проблемой, но не хочет прошиваться
на релиз-кандидаты прошивок и ждёт официальную - им поможет отключение
UPNP в роутере (в принципе его есть смысл юзать в домашнем варианте
использования роутера, но и по работе в некоторых случаях он бывает
полезен, в таком случае решение - только прошиваться на 6.41rc38)
Не удается подружить RouterOS 6.37.1 и IPhone 6s iOS 10. Выдает ошибку соединения "сервер не ответил" на микротике ipsec,error phase1. Порты 500, 1701 и 4500 открыты.
ОтветитьУдалитьВключите полное логирование IPSec и посмотрите на сообщения перед ошибкой. /system logging add topics=ipsec action=memory prefix=IPSEC
Удалить15:03:40 - phase1 negotiation failed due to time up ipмикротика[500]<=>ipизвне[500] туткучацифр
ОтветитьУдалить15:03:40 - IPSEC: phase1 negotiation failed due to time up ipмикротика[500]<=>ipизвне[500] туткучацифр
Этот комментарий был удален автором.
УдалитьАдреса белые на обеих сторонах? Если нет, то NAT Traversal стоит? Копайте в peer. Что-то согласовать не могут - аутентификацию или шифрование. И смотрите ещё выше логи
УдалитьИ ещё, как я отметил, из интерфейса винбокса у меня не завелось. Делайте из консоли все операции. Не уверен, что в это проблема и где именно. Но факт есть факт
УдалитьЭтот комментарий был удален автором.
ОтветитьУдалитьАдрес белый только на микротике. Выше в логах 236 байт друг другу посылают и куча цифр, больше ошибок нет. А у Вас на iphone белый адрес? Спасибо за ответы, по разбираюсь с peer.
ОтветитьУдалитьВсе операции делаю из консоли))
ОтветитьУдалитьпопробуйте в /ip ipsec peer generate-policy установить port-override вместо port-strict
Удалитьпри подключении выдает: peer sent packet for dead phase2. И еще заметил почему то при включении L2TP сервера в /ip ipsec peer создается второе правило со статус (D) в котором ничего не изменить, generate-policy=port-strict (вместо измененного port-override) и policy-template-group=unknow вместо l2tp...
Удалитьвот вместо unknown должны стоять существующая группа. Нужно добавить новую группу в ip - ipsec - groups.
УдалитьПравило со статусом D (Dynamic) создается из-за того, что в peer мы указали Generate Policy=port-override (или port-strict). Если выставить Generate Policy=no, то для каждого клиента придется создавать свою политику, что не очень удобно.
ip-ipsec-groups группа создана l2tp, но когда появляется со статусом D (Dynamic) то unknown
Удалитьсмена port-override на port-strict не помогло, ошибка та же.
УдалитьПравило со статусом D, также без изменений, появляется группа unknown
В IPSec Peers снимите Send Initial Contact
Удалитьна 99% айпишники на телефоне серые и посылка теряется.
И надо перепроверить адресацию в PPP Secrets Local и Remote
Спасибо за статью я решил свою проблему с IOS но осталось несколько вопросов. Какой конфиг клиента на mikrotik? Не сталкивались вы с тем что после перезагрузки клиента на Mikrotik поднимается L2TP без шифрования?
ОтветитьУдалитьКонфиг IPSec идентичный, только поменяны местами адреса. Сам L2TP поднимается без шифрования. Шифруется только трафик, указанный в policy IPSec. И только когда он есть. Пустите пинг с src-address входящим в src-address из policy на dst в dst-address из policy и посмотрите на Installed-SA в IPSec. Там должны появиться несколько строк
УдалитьСделал все по инструкции как Вы писали и все равно на первой фазе даёт ошибку.
ОтветитьУдалитьМожете написать мне на почту Ваши контакты имеет у Вас получится помочь мне. Заранее спасибо, а то ОЧЕНЬ НУЖНО С ЯБЛОЧНЫМИ Решить.
Мой E-mail: Vovcik81@mail.ru
Жду Вашего письма с вашими контактами Viber, Skype,.... Для живого общения.
Спасибо
Ответил на почту
УдалитьВы как разберетесь в чем ошибка отпишитесь, плиз, может у меня в том же загвоздка...)
УдалитьНе смогли связаться и увидеть проблему
Удалитья пока так и не поборол ошибку(((
УдалитьЗачёт. Помогло.
ОтветитьУдалитьа как дела обстоят с ОС SIRI? месяц цже мучаю, не получается поднять, причем с винды l2tp запускается без проблем, а те же данные вводишь н os siri, и ничего подобного.
ОтветитьУдалитьВпервые слышу о такой ОС. Если разработчики пошли по пути соответствия стандартам, то ничего сложного быть не должно. Нужно анализировать логи.
Удалитьdevi1, извиняюсь, ошибся, это видимо был крик помощи ))) sierra, сиерра... операционка, что удалось решить подключение проходит но обмен трафиком не происходит. Это именно на маках, но если подключиться этим же пользователем с компьютера windows то все нормально работает, обмен открывается, RDP работает. Всю голову уже сломал (
Удалитьдобрый день не могу настроить данную связку
ОтветитьУдалитьвсе уже перепробовал
у меня провайдер билайн может что то еще надо настроить?
Попробуйте без шаманства с IPSec - просто сделайте L2TP туннели и укажите IPSec key
УдалитьНастроил по инструкции, клиент подключается, инет ходит, но нет доступа к локальным ресурсам, ничего в локалке не пингуется, RDP не работает. Причем комп под виндой с этим же профилем работает на ура. И даже винда, запущенная в виртуальной машине на ноуте с iOS прекрасно видит локалку. Подскажите куда копать.
ОтветитьУдалитьДумаю, проблема в маршрутизации
УдалитьЭтот комментарий был удален администратором блога.
ОтветитьУдалитьА у меня возникла другая проблема, третью неделю воюю с сабжем RouterBOARD 750G gr3 на последней ROS 6.40.4
ОтветитьУдалитьПри любых вариантах настройки l2tp+ipsec (в том числе и из данной статьи). Поначалу все клиенты (win7, win10, ios, macos) коннектятся нормально и стабильно работают. Потом проходит некоторое время, кто то по своей либо не посвоей воле отключается, но обратно уже соединиться не может, роутер начинает швырять в логах:
phase1 negotiation failed due to time up
винда ругается на ошибки семисотых серий, айфоны матерятся на не ответивший сервер, и только с macos всё в порядке. Плюс возникают проблемы с маршрутизацией в офисе (отваливается один или оба телефона астериксовые).
Перезагружаем роутер через System/Reboot - и всё снова на некоторое время начинает нормально работать. Пробовал делать сброс, настраивать с нуля, восстанавливать обратно бэкапы, без толку. При этом настроенные GRE туннели с шифрованием трафика ipsec от филиалов к этому девайсу работают стабильно. Где что можно ткнуть, чтобы не глючило со временем l2tp+ipsec?
Добавлю, что помогает перезагрузка роутера ТОЛЬКО через System/Reboot, горячий вариант "выдернуть-вставить в розетку проблему не решает.
ОтветитьУдалитьЯ не очень силён в IPSec, но ошибка на phase1 говорит о том, что пиры не могут установить соединение. А факт ребута указывает на то, что это соединение уже как-то числится в RouterOS. Возможно, туннель L2TP остался в апе, в то время как IPSec отвалился.
УдалитьМожете привести конфигурацию роутера: IPSec, PPP, routing ?
Буквально сегодня утром прилетел ответ от саппорта Микротик, дословно от них:
УдалитьThis is caused by UPnP mapping of UDP/4500 port which is used by IPsec service. Fix for this issue is already available in the latest release candidate version of RouterOS.
Забэкапил роутер, потом сбросил, поставил последний релиз-кандидат (6.41rc38) и потом восстановил из бэкапа, теперь послежу пару дней, отпишусь по результатам, и если проблема не решится - заодно и конфиги кину.
Вот оно как!
УдалитьНу тестируйте. Только обязательно отпишитесь по результатам - уж больно интересно узнать чем закончится.
В общем как ни странно вопрос решён, действительно помогло. А значит тем, кто кроме меня столкнулся с такой же проблемой, но не хочет прошиваться на релиз-кандидаты прошивок и ждёт официальную - им поможет отключение UPNP в роутере (в принципе его есть смысл юзать в домашнем варианте использования роутера, но и по работе в некоторых случаях он бывает полезен, в таком случае решение - только прошиваться на 6.41rc38)
УдалитьСпасибо за решение!
УдалитьВсем привет, меня интересует другой вопрос - скорость. У меня модель RB951G-2HnD, при установке соединения l2tp+ipsec скорость около 3 мегабайт. Процессор микротика при этом загружен на 100%, как "облегчить шифрование" или может есть еще какие-то варианты ускорить передачу?
ОтветитьУдалитьRB951 может намного больше. Проверьте, чем загружен процессор в tools - profile, может что-то кроме IPSec загружает роутер.
УдалитьИз самого очевидного снизить нагрузку может другой тип шифрования.
Огромное, человеческое СПАСИБО!
ОтветитьУдалитьРади этого я и пишу сюда.
УдалитьСпасибо, что читаете!
А можите еще привести конфиг для микротика с ios не могу согласовать
ОтветитьУдалить/ip ipsec proposal
ОтветитьУдалитьset [ find default=yes ] enc-algorithms=aes-256-cbc,3des
/ppp profile
add change-tcp-mss=yes dns-server=8.8.8.8 local-address=192.168.10.1 name=\
ipsec use-encryption=yes
/interface l2tp-server server
set authentication=mschap2 default-profile=ipsec enabled=yes ipsec-secret=\
12345678 max-mru=1460 max-mtu=1460 use-ipsec=yes
/ip ipsec peer
add address=0.0.0.0/0 compatibility-options=skip-peer-id-validation dh-group=\
modp1024 dpd-interval=2s enc-algorithm=aes-256,aes-128,3des \
exchange-mode=main-l2tp generate-policy=port-override secret=12345678
/ppp secret
add name=evgeniy password=evgeniy profile=ipsec remote-address=192.168.10.16 \
service=l2tp
Не подключается логи
18:28:35 ipsec,info respond new phase 1 (Identity Protection): 31.41.111.111[500]<=>46.211.149.111[33916]
18:28:35 ipsec,error no suitable proposal found.
18:28:35 ipsec,error 46.211.149.111 failed to get valid proposal.
18:28:35 ipsec,error 46.211.149.111 failed to pre-process ph1 packet (side: 1, status 1).
18:28:35 ipsec,error 46.211.149.111 phase1 negotiation failed.
Всем привет ! при данной конфигурации доступ во внутреннюю сеть есть , но есть одно но ! Айфон ломится в инет уже через микротик и это не есть гуд , есть идеи как запретить сие действие и разрешить ломится через микротик в локалку ? или проще настроить openvpn ?
ОтветитьУдалитьНастроить маршрутизацию на айфоне. Маршрут к локалке через микроттик, а дефолт через своего оператора
Удалитьпросмотрел 10 мануалов, но твой оказался самый верный. тысяча раз благодарю
ОтветитьУдалитьРад, что смог помочь. Надеюсь, найдете ещё что-т ополезное в моем блоге. Кстати, у меня есть telegram канал @mikrotikninja Присоединяйтесь - вдруг там там будет что-то интересное для Вас!
УдалитьДобрый вечер. После обновления до версии 6.43.4 пишет unsafe configuration и не работает. Нашел на других форумах что надо использовать сертификат. Получается надо его сгенерировать и как-то передать на айфон. А про это понятных статей пока не нашел. Нет ли у Вас такой статьи. Спасибо.
ОтветитьУдалитьВсе с первого раза получилось и заработало. Только профиль в L2TPserver и у user не ставился default-encription, а получалось только default. Спасибо огромное!
ОтветитьУдалитьс обновлением 6.44 всё перестало работать :(
ОтветитьУдалитьтакая же фигня
УдалитьИ у меня после обновления до 6.44 iphone перестал подключаться через l2tp
ОтветитьУдалитьСпасибо за инструкцию, на 5.24 помогла галочка Generate policy в ip - ipsec - peers
ОтветитьУдалитьДержите рабочий конф...
ОтветитьУдалить/interface l2tp-server server
set authentication=mschap1,mschap2 default-profile=default-encryption enabled=yes ipsec-secret=YOU_PASSWORD use-ipsec=yes
/ip ipsec peer
add name=peer1 passive=yes
/ip ipsec policy group
add name=l2tp
/ip ipsec profile
set [ find default=yes ] enc-algorithm=aes-192,aes-128,3des
/ip ipsec proposal
add enc-algorithms=aes-256-cbc,aes-128-cbc,3des name=L2TP pfs-group=none
/ip ipsec identity
add generate-policy=port-strict peer=peer1 policy-template-group=l2tp secret=YOU_PASSWORD
/ip ipsec policy
set 0 dst-address=0.0.0.0/0 group=l2tp src-address=0.0.0.0/0