Настройка VPN на Mikrotik CHR

Blog

Виртуальный облачный роутер Mikrotik CHR поддерживает соединения по VPN-туннелю. В этом материале мы рассмотрим, как настроить сервер на платформе Cloud Hosted Router и коннект клиентских устройств с ним. 

В качестве базы для экспериментов подойдет облачный сервер с одноядерным процессором, 512 Мбайт ОЗУ и 5 Гбайт SSD. Такую машину проще арендовать у провайдера timeweb.cloud. По необходимости ее легко модернизировать.

Настройку системы будем осуществлять на базе стабильной версии операционки RouterOS 6.49.6. Предполагается, что пользователь ранее самостоятельно инсталлировал программное обеспечение Miktrotik CHR и настроил его, а дело остается только за VPN-сервером. Приведенный в качестве примера алгоритм подойдет и для физических сетевых устройств с установленной RouterOS.

Настраиваем Vpn На Mikrotik Chr (1)

Общие параметры

Определим пул IP-адресов

Наша задача состоит в том, чтобы подключившийся к серверу пользователь видел виртуальную локальную сеть с определенным списком доступных IP-адресов. Это и есть пул, который будем использовать в рамках данной статьи. Создадим его командой:

/ip pool add name=<название> ranges=<IP-адреса>

Определим диапазон в 253 адреса из подсети 172.16.0.0/24 и зададим имя vpn-pool:

/ip pool add name=vpn-pool ranges=172.16.0.1-172.16.0.253

В этой команде намеренно пропущен адрес 172.16.0.254. Его займет непосредственно Mikrotik при настройке VPN-сервера. То же происходит и при установке физических маршрутизаторов – само устройство обязательно «подвешивается» на один из используемых IP.

Создадим PPP-профиль

Пул клиентских IP и адрес создаваемого VPN на Mikrotik можно связать PPP-профилем. Чтобы сделать «привязку», используем команду:

/ppp profile add name=vpn-profile local-address=172.16.0.254 remote-address=vpn-pool use-mpls=no use-compression=yes use-encryption=yes only-one=no

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

  • name=vpn-profile – любое имя профиля на латинице;
  • local-address=172.16.0.254 – принудительная привязка IP к VPN;
  • remote-address=vpn-pool – постановка задачи применять созданный пул IP-подключения пользователей;
  • use-mpls=no – запретить применять Multiprotocol Label Switching;
  • use-compression=yes – активировать сжатие передаваемой информации;
  • use-encryption=yes – использовать шифрование;
  • only-one=no – параметр разрешает коннект нескольких точек одновременно.

Настроим NAT

Очередной шаг – настройка локальной сети между клиентом VPN и сервером на Mikrotik. Но для этого предварительно требуется задать разрешение при помощи сетевого механизма NAT (Network Address Translation). Выполним команду:

/ip firewall nat add chain=srcnat out-interface=ether1 action=masquerade

Создадим пользователя

Внесем в систему нового пользователя:

/ppp secret add name=<логин> password=<пароль> service=<тип сервера>

Здесь service – это перечень сервисов, доступных для коннекта. В нашем случае используем значение any, чтобы открыть сразу 4 протокола VPN. Имя аккаунта vpn-user с простым паролем vpn-pass

/ppp secret add name=vpn-user password=vpn-pass service=any

Мы создали пользователя. Теперь остается создать и установить защитные сертификаты. Они будут обеспечивать шифрование передаваемой через туннель информации.

Сгенерируем сертификаты хоста

При желании запустить на Mikrotik OpenVPN и SSTP, на сервере настраивают пару сертификатов: Certification Authority (CA, Центр сертификации) и Server (серверный). Центр считается неоспоримым, используемым для подтверждения самоподписанных сертификатов, которые создаются для клиентских машин и хоста.

Сначала установим Common Name на сертификационный центр. Никаких особых ограничений нет, допускается выбирать любое имя. В данном материале параметр ca-crl-host сделаем равным ранее установленному IP или названию домена:

/certificate add name=ca-template common-name="MikroTik" days-valid=3650 key-usage=crl-sign,key-cert-sign /certificate sign ca-template ca-crl-host=185.X.X.83 name="MikroTik"

Следом сгенерируем сертификат, размещаемый на хосте, и подпишем его CA-сертификатом. Важно, чтобы CN выглядел как фиксированный адрес IP (домен).

/certificate add name=server-template common-name=185.X.X.83 days-valid=3650 key-usage=digital-signature,key-encipherment,tls-server /certificate sign server-template ca="MikroTik" name="server@MikroTik"

Значение поля CN при настройке протокола SSTP в Mikrotik критично. Если администратор указал IP-адрес, пользователям придется использовать именно его. При указании домена будет выдаваться ошибка и наоборот.

Теперь выгрузим CA-сертификат, чтобы клиентская машина доверяла серверу:

/certificate export-certificate "MikroTik" export-passphrase=""

После экспорта пользователю надо через раздел Files скачать сертификат под названием cert_export_MikroTik.crt и сохранить на локальном диске в удобном месте. Он нам скоро понадобится.

Настройка VPN-сервера на Mikrotik

Рассмотрим все четыре протокола, которые мы разрешили ранее, выбором параметра any – PPTP, SSTP, L2TP/IPsec и OpenVPN, они все поддерживаются VPN на Mikrotik. В каждом из них есть определенные преимущества и недостатки, которые проявляются в конкретных условиях (это тема для другой статьи).

PPTP

Наиболее распространенный вариант для коннекта – протокол Point-to-Point Tunneling Protocol (PPTP). Технология нетребовательна к вычислительным ресурсам, алгоритм начинает работать «из коробки» с большинством применяемых операционных систем. Единственный недостаток заключается в серьезных дырах безопасности в режиме аутентификации клиента.

Запуск VPN Server на Mikrotik в режиме PPTP:

/interface pptp-server server set enabled=yes default-profile=vpn-profile authentication=mschap2

Подключение PPTP к VPN Server на Mikrotik с того же смартфона под управлением современной версии Android (8 или выше) не требует установки дополнительных программ. Оно доступно через функции самой ОС в разделе «Добавление VPN…». Но такой вариант подходит только для простых задач, где повышенная безопасность не требуется. В остальных случаях обратите внимание на другие протоколы.

SSTP

Компания Microsoft предлагает свой вариант – SSTP (Secure Socket Tunneling Protocol). Он встроен в операционные системы MS Windows начиная с версии Vista SP1. На других операционках будет необходимо инсталлировать дополнительные утилиты. Сервер в этом режиме запускается командой:

/interface sstp-server server set enabled=yes certificate=server@MikroTik default-profile=vpn-profile

Проверять работоспособность протокола желательно с настольного компьютера, где установлена Windows 10 (можно и более старые релизы). Сначала установим сертификационный центр, скачаем файл cert_export_MikroTik.crt и откроем его при помощи двойного клика мышкой.

Система откроет окно с предупреждением, что требуется установить сертификат. На этом этапе можно выбрать локальный компьютер как тип хранилища и поместить заранее скачанный файл в категорию «доверенных» корневых центров сертификации. 

По завершении перейдем к созданию VPN-подключения. Откроем «Параметры – Сеть и Интернет – VPN» и добавим новое подключение VPN, где внесем ранее заданные логин и пароль аккаунта. Все, подключение установлено и готово к работе.

L2TP/IPsec

Протокол L2TP/IPsec схож по настройке с VPN на Mikrotik через PPTP Client. Его поддержка также встроена в большинство операционных систем. Основное преимущество – встроенное шифрование стандарта AES-256, не имеющего существенных уязвимостей. Это гарантирует высокую безопасность, конфиденциальность передаваемых данных.

Настроим наш сервер VPN командой:

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

Отметим здесь параметр ipsec-secret. Он обозначает общий ключ Ipsec, при настройке клиента надо установить L2TP/IPsec PSK или L2RP/IPsec с общим ключом. Иначе система не заработает.

OpenVPN

Завершим обзор технологией OpenVPN. Это система с открытым исходным кодом, позволяющая замаскировать туннель под HTTPS-трафик. Она работает с большой скоростью и безопасна, но для включения поддержки обязательна инсталляция дополнительных программ. Например, решения OpenVPN Connect. Еще понадобится установка сертификатов и конфигурационных файлов ovpn.

Организуем свой OpenVPN-сервер:

/interface ovpn-server server set auth=sha1 certificate="server@MikroTik" cipher=aes128,aes192,aes256 default-profile=vpn-profile enabled=yes require-client-certificate=yes

Следом создадим шаблон клиентского сертификата:

/certificate add name=client-template common-name="client" days-valid=3650 key-usage=tls-client

И сгенерируем на его основе сертификат под аккаунт vpn-user:

/certificate add name=client-vpn-user copy-from=client-template common-name="vpn-user@MikroTik" /certificate sign client-vpn-user ca="MikroTik" name="vpn-user@MikroTik"

Теперь экспортируем сертификат с ключом. Во время процедуры понадобится ввести пароль super-secret-pass, установленный командой экспорта:

/certificate export-certificate "vpn-user@MikroTik" export-passphrase="super-secret-pass"

По завершении через веб-интерфейс следует найти файлы:

cert_export_vpn-user@MikroTik.crt
cert_export_vpn-user@MikroTik.key

И скачать их на локальный диск, а после этого составить файл конфигурации ovpn:

client 
dev tun
proto tcp-client
remote <ip-адрес> 1194
nobind
persist-key
persist-tun
cipher AES-128-CBC
auth SHA1
pull
verb 2
mute 3

auth-user-pass

# Добавляем эту строчку, чтобы отправлять все запросы через VPN
redirect-gateway def1

<ca>
# Вставляем содержимое cert_export_MikroTik.crt
</ca>

<cert>
# Вставляем содержимое cert_export_vpn-user@MikroTik.crt
</cert>

<key>
# Вставляем содержимое cert_export_vpn-user@MikroTik.key
</key>

Остается передать сохраненный ovpn файл на конечное устройство и загрузить его при помощи OpenVPN Connector. Вместо Private Key Password укажем пароль, заданный при экспорте. Все остальные параметры оставляем прежними.

Выводы

Мы завершили создание VPN Server и Client на Mikrotik CHR через все четыре доступных протокола. Теперь у пользователя есть возможность выбрать подходящий вариант для запуска собственного виртуального маршрутизатора.

Telegram
VK
Скопировать ссылку

Зарегистрируйтесь и начните пользоваться
сервисами Timeweb Cloud прямо сейчас

15 лет опыта
Сосредоточьтесь на своей работе: об остальном позаботимся мы
165 000 клиентов
Нам доверяют частные лица и компании, от небольших фирм до корпораций
Поддержка 24/7
100+ специалистов поддержки, готовых помочь в чате, тикете и по телефону