Настройка VPN IPSec/L2TP роутера Mikrotik

IPSec обеспечивает защиту данных от просмотра. Настраивать мы будем тоже по частям — сначала туннель, потом — защита данных.

Важно! До версии 6.18 в прошивке есть баг, из-за которого всегда применяется default policy template, поэтому обновите прошивку до последней стабильной. Не обновляйте прошивку до самой последней, но нестабильной версии, если вы настраиваете VPN.

Итак, имеем роутер Mikrotik с прошивкой 6.30 (июль 2015) c LAN 192.168.88.0/24 (сеть по-умолчанию). WAN не важен, например, 1.2.3.4.

Настройка туннелирования (L2TP)

1. IPPool / Определям диапазон адресов VPN-пользователей

IP — Pool / Определям диапазон адресов VPN-пользователей

Name: vpn_pool
Addresses: 192.168.112.1-192.168.112.10
Next pool: none

Лучше для клиентов vpn использовать отдельную адресацию. Так проще отделять одних от других.

2. PPPProfiles / Профиль для нашего конкретного туннеля

PPP — Profiles / Профиль для нашего конкретного туннеля

General:
Name: l2tp_profile
Local address: vpn_pool (а можно указать 192.168.88.1, сами смотрите, как вам больше нравится)
Remote address: vpn_pool
Change TCP MSS: yes

Protocols:
all to default:
Use MPLS: default
Use compression: default
Use Encription: default

Limits:
Only one: default

3. PPPSecrets / Готовим пользователя VPN

PPP — Secrets / Готовим пользователя VPN

Name: vpn_user1
Password: bla-bla-bla
Service: l2tp
Profile: l2tp_profile

4. PPPInterface — клик на L2TP Server / Включаем сервер L2TP

PPP — Interface — клик на L2TP Server / Включаем сервер L2TP

Enabled: yes
MTU / MRU: 1450
Keepalive Timeout: 30
Default profile: l2tp_profile
Authentication: mschap2
Use IPSec: yes
IPSec Secret: tumba-yumba-setebryaki (это не пароль пользователя, а предварительный ключ, который надо будет указывать на клиентах в дополнение к логину/паролю)

Настройка шифрования данных в «туннеле» (IPSec)

На предыдущем этапе мы создали туннель для передачи данных и включили IPSec. В этом разделе мы настроим параметры IPSec.

5. IPIPSecGroups

Т.к. велика вероятность появления ошибки соединения с сервером из-за дефолтной группы, просто удалим и тут же создадим ее. Например, с именем «policy_group1». Также можно просто удалить эту группу, но через веб-интерфейс будут показываться ошибки.

6. IPIPSecPeers

IP — IPSec — Peers

Address: 0.0.0.0/0
Port: 500
Auth method: pre shared key
Passive: yes (set)
Secret: tumba-yumba-setebryaki (это не пароль пользователя!)

Policy template group: policy_group1
Exchange mode: main l2tp
Send Initial Contact: yes (set)
NAT Traversal: yes (set)
My id: auto
Proposal check: obey
Hash algorithm: sha1
Encryption Algorithm: 3des aes-128 aes-256

DH Group: modp 1024
Generate policy: port override
Lifitime: 1d 00:00:00
DPD Interval: 120
DPD Maximum failures: 5

7. IPIPSecProposals / «Предложения».

Что-то вроде «что мы можем вам предложить». Другими словами, задаем опции подключения, которые смогут пытаться использовать удаленные клиенты.

Name: default
Auth algorithms: sha1
Enrc. algorithms: 3des, aes-256 cbc, aes-256 ctr
Lifetime: 00:30:00
PFS Group: mod 1024

Вы наверняка заметили, что пункты 6 и 7 похожи, а если еще добавить, что один и тот же Secret мы добавляли и пункте 4 и пункте 6, то возникает вопрос: почему одни и те же опции повторно настраиваются? Ответ у меня такой: чисто из практики вышло, что Windows 7 требовал одного, а iPhone — другого. Как так работает, не знаю. Но факт чисто из практики. Например, изменяю в Proposal PFS Group на 2048 — Windows нормально коннектиться, а iPhone перестает. Делаю наоборот (в proposal ставлю 1024, а в ip-ipsec-peers ставлю 2048) — iPhone коннектиться, а Windows — нет 🙂 Т.е. при подключении разных клиентов используются разные части конфигов. Бред? Может быть, это следствие постепенных изменений в конфигурацию VPN сервера, не могу сказать, т.к. может иметь место даже влияние старых прошивок, конфигов и др. Я не исключаю, что что-то здесь избыточно, но что именно, не знаю.

Firewall

Давайте уж к консоли, что-ли для разнообразия:

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

Если у вас по-умолчанию политика forward установлена в drop (последнее правило для forward «chain=forward action=drop»), вам может быть необходимым разрешить forward с ip-адресов vpn_pool в локальную сеть:

add chain=forward action=accept src-address=192.168.112.0/24 in-interface=!ether1 out-interface=bridge-local comment=»allow vpn to lan» log=no log-prefix=»»

Вот теперь с сервером все.

Подключение удаленного клиента

Пробуем подключить Windows 7:

Панель управленияСеть и Интернет Центр управления сетями и общим доступом:
Настройка нового подключения или сети
Подключение к рабочему месту
Создать новое подключение
Использовать мое подключение к интернету (VPN)
Интернет-адрес: ip или имя роутера в сети
Пользователь и пароль из PPP->Secrets. В нашем случае это vpn_user1 и его пароль.

Пытаемся подключиться.

Если не выходит, или просто надо настроить созданное подключение:

Подключение удаленного клиента Windows 7

Вкладка Безопасность:

Тип VPN: L2TP IPSec VPN

Дополнительные параметры: для проверки подлинности использовать предварительный ключ. В нашем случае это «tumba-yumba-setebryaki» (IPIPSecPeers):

Подключение удаленного клиента

Здесь же, в группе «Проверка подлинности», оставляем только CHAP v2:

Подключение удаленного клиента

Жмем ОК и пытаемся подключиться. Должно получиться. Если нет, загляните на страницу ошибок при настройке VPN.

Новости и обзоры по теме
Кто на самом деле стоит за бесплатными VPN?

Когда человек решает установить на своё устройство VPN какой-либо компании, он, по сути, решает доверять свои данные этой компании вместо своего провайдера проводного или беспроводного соединения.

Telegram удален с поисковой выдачи

«Яндекс» удалил из поисковой выдачи ссылку на официальный сайт мессенджера Telegram.

Google прекращает разработку поискового сервиса для Китая

Отмены проекта добились участники команды по защите конфиденциальности Google, в чьи обязанности входит защита прав пользователей. По их требованию компания перестала использовать для создания Dragonfly китайский поисковик 265.com, информация с которого была неотъемлемой частью проекта.

Назван самый безопасный мессенджер

Аналитический отдел Artezio провел комплексное тестирование более 20 мессенджеров и опубликовал список лучших программ, которые способны обеспечить высокий уровень приватности.