Mikrotik настройка vpn pptp сервера

главная - Статьи - Удаленный доступ (VPN)

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

Иногда мне кажется, что создатели Mikrotik намеренно лишают себя прибыли, не создавая однозначных пошаговых руководств по настройке своих детищ. Почти 100% потребителей этих роутеров пытаются настроить VPN, использовать два или более WAN одновременно или в качестве резервных. Именно это ищут по всей сети (и часто вне рунета) счастливые владельцы этих замечательных устройств. Представьте, на сколько бы увеличилась армия владельцев, если бы для настройки этих функций было два-три визарда в веб-интерфейсе. А сейчас.. сейчас именно благодаря сложности настройки (и, соотв., меньшему количеству желающих купить) мы имеем недорогое, малокапризное для несложных задач устройство, которое надо заставить работать 24х7х365. Например, в качестве VPN-сервера. Поехали!

Протокол L2TP обеспечивает канал передачи данных, туннель.

IPSec обеспечивает защиту данных от просмотра.

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

Примечание 1: я не очень люблю текстовые команды с кучей ключей при настройке вещей, которые достаточно много где описаны, но описаны каждый раз с незаметными опечатками, где-то что-то не скопировалось при написании (или при копировании с другого сайта, что случается чаще всего) или просто съелось текстовым редактором CMS сайта. Настройка VPN как раз такой случай. Поэтому я специально каждый шаг прописал для GUI Mikrotik - Winbox, тем более что не так уж тут и много всего надо сделать.

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

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

Настройка туннелирования (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

Если у вас по-умолчанию политика 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 и его пароль.
                        
Пытаемся подключиться.

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

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

Тип VPN: L2TP IPSec VPN

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

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

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

Update 1: часто люди интересуются, как несколько (больше одного) клиентов из одной локальной сети (за nat) могут подключаться к одному удаленному vpn-серверу микротик.  Не знаю, как в L2TP/IPSec связке это обеспечить. Можно назвать это багом реализации. Я не нашел простого объяснения и решения проблемы.

Авторизуйтесь для добавления комментариев!




| Контакты
Главная > Оборудование > Коммутатор, свитч, маршрутизатор, хаб, роутер > Mikrotik

Настройка Mikrotik PPPoE / PPTP / L2TP

Предварительно настройте ваши интерфейсы и VLAN а также дайте нужные IP и настройте маршрутизацию.
Для начала выключим систему мониторинга всех интерфейсов, для этого нажмите Tools->Graphing , выберете all и нажмите на минус. Теперь вы удалили графики для всех интерфейсов. для тех которые Вам нужны , добавте их персонально. Это освободит "много" ресурсов системы от ненужной нагрузки.

В разделе IP->DNS  нажмите на "Settings" и укажите ваш DNS сервер, так же разрешите запросы от клиентов, если вам это необходимо, укажите размер DNS кеша.

Используя утилиту Tools->Ping проверте доступность интернет, биллинга и других узлов, какие должен видеть ваш NAS

Откройте окно  IP-> Service ,в нем активируйте сервисы которые вам понадобятся, ниже приведен необходимый минимум сервисов для обычной работы.
Выделив и нажав правую кнопку мыши вы можете их активировать.

Откроем System->Clock  и  укажите ваш часовой пояс и текущее время.

После настройки интернета, активируйте систему NTP для синхронизации времени.
Откройте System->NTP Client
Включите службу, выберете mode unicast и укажите сервер как на скриншоте.

Важный момент работы служб Mikrotik.
Из-за большого количества скан-ботов в интернете и постоянных подборов паролей, службы управления Mikrotik (кроме winbox) могут зависать, что весьма не желательно для работы.
Рекомендуется разрешить полный доступ для ваших IP (биллинг и другие узлы) в первых правилах цепочки input.
И следом за ним сделать DROP на портах TCP 21,22,23,8728 для всех хостов.
Ниже пример подобной настройки.

Откроем окно Queues. Переходим во вкладку Queue Types.
Далее открываем по очереди тип щейпера - "default" и "default-small" и меняем тип очереди на SFQ как показано ниже.

Открываем вкладку Radius и жмем на "+" как указано ниже.

В появившемся окне поставте галочку на услуге PPP (для PPPoE / PPTP / L2TP)  или же  HotSpot (для доступа по IP из локалки или же WIFI)
Укажите в графе address - IP биллинговой машины.
Секрет - этот же секрет вы укажите в настройке NAS-сервера в "админке" биллилнга.
Timeout - для одного сервера поставте 10000.
Если у вас несколько серверов с radius то укажите для каждого timeout пропорционально 10000 поделив на количество radius серверов для каждого сервера.

После добавления сервера настром входящие соединения от Radius.
Нажмем на "Incoming".
Включим службу и укажим порт, после версии 3.22 порт стал не 1700 а 3799.
По умолчанию в биллинге указан порт 3799.
В соотвествии с этим в настройках NAS-сервера в "админке" биллинга укажите тот же самый порт.

Взаимодействие с биллилнгом у вас уже настроено, осталось теперь настроить службу для доступа абонентов.
Если хотите сделать HotSpot, то на данном этапе перейдите к инструкции по настройке доступа по IP / HotSpot.
Доступ по PPPoE / PPTP / L2TP
Открываем окно PPP
Нажимаем на "PPTP Server" или "L2TP Server" или другой сервер по вашему желанию.
Ниже приведен пример PPTP и L2TP c использованием профиля с шифрованием данных.
Чтобы отключить шифрование выберете профиль "default" и отключите типы авторизации mschap1 и mschap2

Добавление PPPoE сервиса.
Переходим во вкладку PPPoE Servers
указываем имя сервиса.
Выбираем интерфейс на котором будет доступен сервис.
Обычно для этой услуги используют доступ без шифрования, ниже подобный пример.

Переходим во вкладку Secrets
Нажимаем на "PPP Authentication & Accounting" и делаем как на скриншоте.

Осталось настроить профили и уже можно будет использовать Ваш сервер доступа.
Переходим к вкладке Profiles
Открываем профили "default" и "default-encryption".
На вкладке General в профиле обязательно указать

ВНИМАНИЕ

Local Address - этот IP должен быть уникальным в вашей сети, и не быть связаным ни с каким блоком адресов в вашей сети.
Например  локальная сеть из блока 10.0.0.0/8 , серые адреса для клиентов 172.16.0.0/12 остался свободный блок 192.168.0.0/16
соотвественно 192.168.0.1 нигде не используется и можно его использовать.
Так удобней всего.
DNS и WINS сервер по желанию, единственное что не ставьте адрес DNS тем же, что и Local Address,  лудше указать один из адресов биллинговой машины или же другой DNS вашей сети.

Ниже приведен пример настроек профилей, для шифрования и без него.

Ниже приведен пример вкладки Limits, со стандартными настройками.

Базовая настройка завершена.

Материал взят с сайта:
Главная > Оборудование > Коммутатор, свитч, маршрутизатор, хаб, роутер > Mikrotik

За год на Землю падает до 500 кг марсианского метеорита.