Thursday, October 20, 2016

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

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

1. IP - Pool / Определям диапазон адресов VPN-пользователей
Name: vpn_pool
Addresses: 192.168.112.1-192.168.112.10
Next pool: none
Лучше для клиентов vpn использовать отдельную адресацию. Так проще отделять одних от других. И вообще, бест практис.
2. 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. PPP - Secrets / Готовим пользователя VPN
Name: vpn_user1
Password: bla-bla-bla
Service: l2tp
Profile: l2tp_profile
4. 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. IP - IPSec - Groups
Т.к. велика вероятность появления ошибки соединения с сервером из-за дефолтной группы, просто удалим и тут же создадим ее. Например, с именем "policy_group1". Также можно просто удалить эту группу, но через веб-интерфейс будут показываться ошибки.
6. 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. IP - IPSec - Proposals / "Предложения".
Что-то вроде "что мы можем вам предложить". Другими словами, задаем опции подключения, которые смогут пытаться использовать удаленные клиенты.
Name: default
Auth algorithms: sha1
Enrc. algorithms: 3des, aes-256 cbc, aes-256 ctr
Life time: 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
Это правило надо поднять выше финальных запрещающих правил, если у вас они есть. У вас же они есть???  Если нет, прошу сюда.
Вот теперь с сервером все.

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

Пробуем подключить Windows 7:
Панель управленияСеть и ИнтернетЦентр управления сетями и общим доступом:
    Настройка нового подключения или сети
        Подключение к рабочему месту
            Создать новое подключение
                Использовать мое подключение к интернету (VPN)
                    Интернет-адрес: ip или имя роутера в сети
                        Пользователь и пароль из PPP->Secrets. В нашем случае это vpn_user1 и его пароль.
                      
Пытаемся подключиться.
Если не выходит, или просто надо настроить созданное подключение:
Вкладка Безопасность:
Тип VPN: L2TP IPSec VPN
Дополнительные параметры: для проверки подлинности использовать предварительный ключ. В нашем случае это "tumba-yumba-setebryaki" (IP - IPSec - Peers):
Здесь же, в группе "Проверка подлинности", оставляем только CHAP v2:

No comments: