Личный MikroTik VPN сервер L2TP/SSTP/PPTP

Если вам нужен VPN определенной страны с не меняющимся постоянным белым IP адресом, то платные сервисы не помогут. К тому же никакой платный сервис не предоставит полную анонимность, что бы они об этом не писали.

В данной статье описаны все шаги для создания своего VPN сервера. Если вы не обладаете знаниями в сетях, то можете заказать настройку у меня. Все консультации по настройке платные.

Покупка сервера

Регистрируемся на vdsina, подтверждаем почту и входим в кабинет:

Заказ сервера VDS
Нажимаем «Создать сервер»
Создание сервера VDS
Выбираем:
Debian 11
Стандартные сервера
Тариф (самый дешевый)
Локация (в зависимости от ваших требований)
Отключаем резервное копирование
Нажимаем Создать
Процесс создания сервера
Процесс создания сервера
Получаем письмо на почту с данными для входа
Получаем письмо на почту с данными для входа

Скачиваем и устанавливаем PuTTY — https://www.chiark.greenend.org.uk/~sgtatham/putty/latest.html

Подключение через PuTTY
Указываем IP подключения и нажимаем Open
Предупреждение SSH PuTTY
Видим предупреждение, нажимаем Да и авторизовываемся по логину и паролю из письма

Установка Cloud Hosted Router

Обновляем список пакетов: apt update
Ставим архиватор: apt install unzip -y
Скачиваем CHR: wget —inet4-only —no-check-certificate https://download.mikrotik.com/routeros/6.48.6/chr-6.48.6.img.zip
Распаковываем: unzip chr-6.48.6.img.zip
Смотрим список устройств: fdisk -l

Вывод fdisk -l
Нам нужно название диска /dev/vda

Записываем образ на диск: dd if=chr-6.48.6.img of=/dev/vda bs=4M oflag=sync

Результат записи образа
Результат записи образа

Перезапустим машину:
echo 1 > /proc/sys/kernel/sysrq
echo b > /proc/sysrq-trigger

Доступ на Cloud Hosted Router

После перезапуска нужно подключиться к машине через VNC.

Заходим в кабинет и нажимаем на _VNC
Видим окно авторизации в CHR

Логин: admin, пароля нет

Первым делом создаем администратор и удаляем старого:
/user add name=MikroTik password=1Q2w3e4r group=full
/user remove admin

Как это выглядит в консоли

Назначаем IP адрес на интерфейс ether1:
/ip address add interface=ether1 address=1.1.1.2/24
Вместо 1.1.1.2 брать IP адрес, который указан в этой VNC панели. Маска /24 означает маску 255.255.255.0

Добавим маршрут по умолчанию:
/ip route add gateway=1.1.1.1
Вместо 1.1.1.1 брать GATEWAY адрес, который указан в этой VNC панели

Скачиваем WinBox — https://mt.lv/winbox64 и подключаемся по IP, логину и паролю:

Подключение через WinBox
Подключение через WinBox

Активация Cloud Hosted Router

Регистрируемся в кабинете https://mikrotik.com/client

Добавление в CHR DNS сервера

IP > DNS
8.8.8.8

Активация CHR

System > License
Указываем данные от кабинета MikroTik, в котором ранее зарегистрировались

Мы получили 60 дневную лицензию Cloud Hosted Router, которая будет работать вечно, если не обновлять систему. То есть если по истечению 60 дней обновить систему — лицензия слетит и скорость ограничится 1Мбит.

Настройка Firewall

Сразу защитим сервер. Сменим стандартные порты управления и откроем только нужные порты.

Так как это базовая настройка и расписывать каждое правило не имеет смысла, копируйте и вставляйте в терминал настройки:

New Terminal WinBox
Так выглядит вход в терминал на WinBox
/interface list
add name=WAN
add name=Tunnel
/interface list member
add interface=ether1 list=WAN
/ip firewall filter
add action=accept chain=input comment="accept established,related,untracked" connection-state=established,related,untracked
add action=drop chain=input comment="drop invalid" connection-state=invalid
add action=accept chain=input comment="accept ICMP" protocol=icmp
add action=accept chain=input comment=PPTP dst-port=1723 protocol=tcp
add action=accept chain=input comment=SSTP dst-port=443 protocol=tcp
add action=accept chain=input comment=LetsEncrypt dst-port=80 protocol=tcp
add action=accept chain=input comment=L2TP dst-port=1701,500,4500 protocol=udp
add action=accept chain=input comment=OpenVPN dst-port=1194 protocol=udp
add action=accept chain=input comment="accept MGMT" dst-port=22121,22122 protocol=tcp
add action=drop chain=input comment="drop all WAN" in-interface-list=WAN
add action=accept chain=forward comment="accept established,related, untracked" connection-state=established,related,untracked
add action=drop chain=forward comment="drop invalid" connection-state=invalid
add action=drop chain=forward comment="drop all from WAN not DSTNATed" connection-nat-state=!dstnat connection-state=new in-interface-list=WAN
/ip service
set telnet disabled=yes
set ftp disabled=yes
set ssh port=22121
set api disabled=yes
set winbox port=22122
set api-ssl disabled=yes
/system identity
set name=VPN
/ip dhcp-client remove 0

После настройки, вход через WinBox будет с указанием порта 22122, например 1.1.1.2:22122

Настройка NAT

IP > Firewall > NAT

Указываем выходящий интерфейс
Указываем выходящий интерфейс
На какой внешний IP заменять
Вместо 1.1.1.2 укажите IP сервера
Либо автоматическое определение внешнего IP

Настройка DNS over HTTPS

Используется для шифрования DNS запросов от провайдера.

Настройку выполняйте построчно:

/tool fetch url=https://cacerts.digicert.com/DigiCertGlobalRootCA.crt.pem
/certificate import file-name=DigiCertGlobalRootCA.crt.pem passphrase=""
/ip dns set use-doh-server=https://1.1.1.1/dns-query verify-doh-cert=yes
/ip dns set servers=""

Настройка VPN сервера L2TP и PPTP

Создание пула адресов для VPN:

IP > Pool
/ip pool
add name=pool_VPN ranges=172.31.250.10-172.31.250.200

Создание профиля VPN:

PPP > Profiles

Указываем пул адресов и интерфейс лист
Указываем пул адресов и интерфейс лист
Включаем принудительное шифрование и отключаем лишнее
Включаем принудительное шифрование и отключаем лишнее
Ограничиваем одним подключением на пользователя
Ограничиваем одним подключением на пользователя
Если у вас частые обрывы связи, лучше поставить no
/ppp profile
add change-tcp-mss=yes interface-list=Tunnel local-address=pool_VPN name=profile_VPN only-one=yes remote-address=pool_VPN use-compression=no use-encryption=required use-mpls=no use-upnp=no

Включение PPTP

PPP > PPTP Server

Включение L2TP Server

PPP > L2TP Server
Указываем IPsec Secret и принудительное использование IPsec

Создание пользователей VPN

PPP > Secrets

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

Использование DoH для VPN

В настройках PPP профиля указать адрес DNS сервера сам MikroTik

Вручную выставляем IP локального VPN и его же DNS сервером
Включаем Allow Remote Requests

Подключение Android к VPN

L2TP IPsec подключение

Подключение Windows к VPN

Настройка L2TP IPsec на Windows 10

Проверка DoH

На сайте https://1.1.1.1/help статус работы DNS over HTTPS

Особенности работы L2TP IPsec

При нахождении двух клиентов в одной сети (за одним NAT) L2TP работать не будет, используйте PPTP

Настройка SSTP

VPN для продвинутых пользователей, если вы не знаете как купить домен и сделать SSL сертификат, этот вариант вам не подходит.

Обновление Cloud Hosted Router

Нужно обновиться до RouterOS 7 через System > Package > Check For Updates

Обновление CHR до 7 версии
На момент написания статьи нет версии long-term, но есть Stable со своими косяками

Покупка домена

На том же vdsina покупаем доменное имя в ru зоне

Процесс покупки домена.
Процесс покупки домена на примере super-vpn-vasya.ru. Для оформления нужно создать персону со своими данными.

Создаем A запись на поддомене vpn.super-vpn-vasys.ru и указываем IP адрес сервера VPN

Редактирование DNS на Яндексе
Как выглядит редактирование DNS на Яндексе
Вместо 1.1.1.2 указывайте IP сервера

Получение сертификата

certificate/enable-ssl-certificate dns-name=vpn.super-vpn-vasya.ru

Должно появиться уведомление: progress: [success] ssl certificate updated

Включение SSTP сервера

PPP > SSTP Server

Включение SSTP Server на MikroTik
Выбрать сертификат, версию TLS и профиль

Подключение к SSTP

Встроенная поддержка SSTP есть только на Windows, мобильные устройства только через сторонний клиент. Настройка не отличается от PPTP

SSTP VPN на Windows
Меняется только тип VPN на SSTP