Mikrotik: L2TP + IPsec туннель

Дано: два микротика.

Задача: объединить их с помощью L2TP туннеля с шифрованием трафика.

Хотя бы один из микротиков обязательно должен иметь белый IP-адрес. Он будет сервером.

Настройка сервера

Добавляем пул адресов, которые будут выдаваться клиентам: IP — Pool

Добавляем профиль для L2TP соединения: PPP — Profiles. Указываем локальный адрес, который будет назначен интерфейсу на сервере. А также пул адресов для удалённых клиентов.

Добавляем пользователей: PPP — Secrets. Вводим логин и пароль, выбираем сервис L2TP и созданный ранее профиль.

Теперь включаем L2TP сервер. Для этого открываем PPP — Interface, и нажимаем кнопку «L2TP Server«:

В открывшемся окне включаем сервер, выбираем ранее созданный профиль и отключаем все методы аутентификации кроме mschap2. IPsec пока оставляем выключенным:

Если для клиента нужно назначить статический интерфейс, то в PPP — Interfaces добавляем L2TP Server Binding. В противном случае интерфейс будет создаваться только на время подключения:

Теперь настраиваем фаервол: IP — Firewall. Добавляем разрешающее (accept) правило для входящего UDP трафика на порты 500, 4500, 1701. При необходимости ограничиваем IP-адреса, с которых разрешено подключаться:

Также разрешаем хождение IPsec трафика:

Всё то же самое, но в консоли:

/ip pool
add name=l2tp_pool ranges=10.0.3.2-10.0.3.5

/ppp profile
add local-address=10.0.3.1 name=l2tp remote-address=l2tp_pool

/interface l2tp-server
add name=l2tp-in1 user=testuser1

/ppp secret
add name=testuser1 password=xxxxxxxx profile=l2tp service=l2tp

/interface l2tp-server server
set authentication=mschap2 default-profile=l2tp enabled=yes ipsec-secret=\
    xxxxxxxx use-ipsec=required

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

Настройка клиента

Переходим к настройке клиента. Тут всё просто: идём в PPP — Interfaces и добавляем новый L2TP Client. Вводим IP-адрес сервера, имя пользователя и пароль:

Если соединение установилось успешно, то переходим к следующему шагу:

Настройка шифрования

На сервере и клиенте включаем IPsec и вводим кодовую фразу:

Если через консоль, то:

/interface l2tp-client
add connect-to=x.x.x.x disabled=no ipsec-secret=xxxxxxxx name=l2tp-out1 \
    password=xxxxxxxx use-ipsec=yes user=testuser1

Всё, туннель готов!