VPN

Блог IT-шника: IPSec over L2TP между RouterOS и Apple iOS 10

Материал перенесён из старой базы знаний ATC-IP и оформлен в едином стиле нового сайта.

Блог IT-шника
Админство, шаманство и прочие радости.
10.10.2016
IPSec over L2TP между RouterOS и Apple iOS 10
В 10 версии iOS команда Apple наконец-то выпилила PPTP, чем сподвигла весь (не)цивилизованный ИТ-мир срочно учиться поднимать IPSec на своих бордерах. В том числе и меня.
"Поднять 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
Автор:
devi1
на
10.10.16
Ярлыки:
apple
ios
ios10
iphone
ipsec
l2tp
Mikrotik
routeros
28 комментариев:
Сергей
12.10.2016, 1:57
Не удается подружить RouterOS 6.37.1 и IPhone 6s iOS 10. Выдает ошибку соединения "сервер не ответил" на микротике ipsec,error phase1. Порты 500, 1701 и 4500 открыты.
Ответить
Удалить
Ответы
devi1
12.10.2016, 4:06
Включите полное логирование IPSec и посмотрите на сообщения перед ошибкой. /system logging add topics=ipsec action=memory prefix=IPSEC
Удалить
Ответить
Сергей
12.10.2016, 5:10
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] туткучацифр
Ответить
Удалить
Ответы
devi1
12.10.2016, 6:02
Этот комментарий был удален автором.
Удалить
devi1
12.10.2016, 6:04
Адреса белые на обеих сторонах? Если нет, то NAT Traversal стоит? Копайте в peer. Что-то согласовать не могут - аутентификацию или шифрование. И смотрите ещё выше логи
Удалить
devi1
12.10.2016, 6:05
И ещё, как я отметил, из интерфейса винбокса у меня не завелось. Делайте из консоли все операции. Не уверен, что в это проблема и где именно. Но факт есть факт
Удалить
Ответить
devi1
12.10.2016, 6:04
Этот комментарий был удален автором.
Ответить
Удалить
Сергей
12.10.2016, 7:00
Адрес белый только на микротике. Выше в логах 236 байт друг другу посылают и куча цифр, больше ошибок нет. А у Вас на iphone белый адрес? Спасибо за ответы, по разбираюсь с peer.
Ответить
Удалить
Сергей
12.10.2016, 7:02
Все операции делаю из консоли))
Ответить
Удалить
Ответы
devi1
13.10.2016, 22:57
попробуйте в /ip ipsec peer generate-policy установить port-override вместо port-strict
Удалить
Сергей
14.10.2016, 0:00
при подключении выдает: peer sent packet for dead phase2. И еще заметил почему то при включении L2TP сервера в /ip ipsec peer создается второе правило со статус (D) в котором ничего не изменить, generate-policy=port-strict (вместо измененного port-override) и policy-template-group=unknow вместо l2tp...
Удалить
devi1
Позвонить +7 (343) 382-33-16