VPN сервер на Ubuntu Server 18.04 и Mikrotik в виде клиента по протоколу PPTP

VPN сервер на Ubuntu Server 18.04 и Mikrotik в виде клиента по протоколу PPTP

 

Идея написания данной статьи пришла в голову давно, т.к. дома у меня провайдер, который выдаёт серую динамику без постоянного внешнего IP. Хотя вроде, как и выдаётся, но не статика, а динамика. Казалось бы, 21 век, а альтернатив сменить провайдера нет. Поэтому было принято решение сделать VPN на VPS сервере с постоянным внешнем IP. Что дома что на даче стоят микротики. Дома проводной провайдер на даче стоит LTE свисток от теле2. Для примера будем пробрасывать трафик и порты на дачу под видео наблюдение до регистратора. Таким же образом можно и домой для сайтов и т.д. пробрасывать

Выбор пал на REG.RU т.к. я уже более 10 лет пользуюсь их ними сервисами. Было перепробовано много вариантов с технологиями OpenVZ и Xen, но попытки не увенчались успехом. Поэтому единственный рабочий вариант оказался на KVM (Облачные серверы)

Берем самый дешевый тариф Cloud-1 и выбираем Ubuntu Server 18.04, обзываем его как ни будь, я назвал ppptp

После создания сервера, открываем putty, вводим ip и сохраняем данные.

Авторизуемся на сервере и сразу же обновляем его введя следующую команду

apt upgrade -y

apt update

-y в конце говорит о том что мы соглашаемся со всеми запросами

Далее устанавливаем два пакета

apt install ppp pptpd –y

После установки пакетов, нам нужно отредактировать несколько файлов конфигурации.

1 - это внести свою подсеть для VPN используя серые подсети

2 – внести незначительные настройки в pptpd

3 – включить параметр ipv4.ip_forward

4 – создать пользователя и пароль для подключения в VPN

5 – самое главное, при подключении нужного нам пользователя создавались правила для маршрутизации сетей

Редактируем подсети

Открываем pptpd.conf на редактирование командой

Nano /etc/pptpd.conf

Двигаемся в самый низ документа и или изменяем строки, или сразу же добавляем эти

localip 172.16.1.1

remoteip 172.16.1.10-254

Сохраняем файл Ctrl+O и выходим Ctrl+X

Настройка pptpd

Открываем файл pptpd-options командой

Nano /etc/ppp/pptpd-options

В самый низ файла дописываем следующие параметры

mtu 1450

mru 1450

auth

require-mppe

Сохраняем файл Ctrl+O и выходим Ctrl+X

Если соединение будет не стабильным, то параметры mtu и mru можно поменять на 1400

Включение форвардинга

Теперь нам нужно раз комментировать строку для включения форвардинга для ip_v4. Для этого открываем файл

Nano /etc/sysctl.conf

Нажимаем ctrl+W для поиска и вводим строку net.ipv4.ip_forward и нажимаем enter

Поиск нашёл нужную нам строку и осталось только убрать знак # что бы получилось как на скриншоте ниже

Сохраняем файл Ctrl+O и выходим Ctrl+X

Теперь нужно установить улититу net-tools

apt install net-tools

Так же для автозапуска pptpd надо выполнить

systemctl enable pptpd

Создаём пользователя и пароль для VPN подключения

Теперь нам нужно создать пользователя, пароль и присвоить ему IP адрес

Открываем файл chap-secrets

nano /etc/ppp/chap-secrets

В файле показан пример добавления данных. В скриншоте я сделал подписи кто за что отвечает. Добавим следующую строку

dacha  pptpd           abrakadabra     "172.16.1.10" 

                                                                                                              

Сохраняем файл Ctrl+O и выходим Ctrl+X

Myuser – логин для авторизации

Pptpd- служба для которой будет работать логин

abrakadabra – пароль

172.16.0.10 – ip адрес выданный нашему клиенту (Mikrotik)

Привила для маршрутизации сетей

И так, для того что бы у нас при поднятии интерфейса ppp0 (это первый кто подключится к серверу) автоматически создавалась маршрутизация и создавались нужные нам редиректы, нужно в файле ip-up в самом конце файла добавить следующие правила. Я добавляю правила для дачи на просмотр видео наблюдения. Поэтому на даче подсеть у меня 87.0/24

nano /etc/ppp/ip-up

up ip ro add 172.16.0.0/24 via 172.16.0.10

route add -net 192.168.87.0/24 gw 172.16.0.10

# port 80

iptables -t nat -A PREROUTING --dst 178.21.8.175 -p tcp --dport 80 -j DNAT --to-destination 192.168.87.254

iptables -t nat -A POSTROUTING --dst 192.168.87.254 -p tcp --dport 80 -j SNAT --to-source 172.16.0.1

iptables -t nat -A OUTPUT --dst 178.21.8.175 -p tcp --d port 80 -j DNAT --to-destination 192.168.87.254

iptables -I FORWARD 1 -i ppp0 -o ens6 -d 192.168.87.254 -p tcp -m tcp --dport 80 -j ACCEPT

# port 5050 l

iptables -t nat -A PREROUTING --dst 178.21.8.175 -p tcp --dport 5050 -j DNAT --to-destination 192.168.87.254

iptables -t nat -A POSTROUTING --dst 192.168.87.254 -p tcp --dport 5050 -j SNAT --to-source 172.16.0.1

iptables -t nat -A OUTPUT --dst 178.21.8.175 -p tcp --d port 5050 -j DNAT --to-destination 192.168.87.254

iptables -I FORWARD 1 -i ppp0 -o ens6 -d 192.168.87.254 -p tcp -m tcp --dport 5050 -j ACCEPT

# port 6050

iptables -t nat -A PREROUTING --dst 178.21.8.175 -p tcp --dport 6050 -j DNAT --to-destination 192.168.87.254

iptables -t nat -A POSTROUTING --dst 192.168.87.254 -p tcp --dport 6050 -j SNAT --to-source 172.16.0.1

iptables -t nat -A OUTPUT --dst 178.21.8.175 -p tcp --d port 6050 -j DNAT --to-destination 192.168.87.254

iptables -I FORWARD 1 -i ppp0 -o ens6 -d 192.168.87.254 -p tcp -m tcp --dport 6050 -j ACCEPT

# port 7050

iptables -t nat -A PREROUTING --dst 178.21.8.175 -p tcp --dport 7050 -j DNAT --to-destination 192.168.87.254

iptables -t nat -A POSTROUTING --dst 192.168.87.254 -p tcp --dport 7050 -j SNAT --to-source 172.16.0.1

iptables -t nat -A OUTPUT --dst 178.21.8.175 -p tcp --d port 7050 -j DNAT --to-destination 192.168.87.254

iptables -I FORWARD 1 -i ppp0 -o ens6 -d 192.168.87.254 -p tcp -m tcp --dport 7050 -j ACCEPT

Сохраняем файл Ctrl+O и выходим Ctrl+X и перезагружаем сервер

reboot

На этом настройка VPN сервер на Ubuntu Server 18.04 закончена. Теперь перейдём к настройке клиента Mikrotik

Настройка Mikrotik в виде клиента PPTP

Открываем winbox. он выглядит вот так

 

Переходим в раздел PPP с левой стороны. Во вкладке Interface нажимаем на плюс "+" и выбираем PPTP Client

 

В окне New Interface на вкладке General в поле Name - вписываем название нашего соединения что бы не путаться если их будет много

Переходим на вкладку Dial Out в поля:

Connect To, User, Password - вводим наши данные которые вводили на сервере

Теперь нам нужно настроить маршрутизацию между сетями. Что бы микротик понимал куда посылать трафик. Для этого переходим в меню IP -> Routes

 

Во вкладке Routes нажимаем на знак плюс "+" и во вкладке General добавляем данные в поля

Dst. Address = 172.16.1.0/24 - Говорим что адреса доставки у нас 24 подсеть в сети 172.16.1.0 (кол-во хостов 1-255 маска 255.255.255.0 если кому так более понятно)

Gateway = 172.16.1.1 - Шлюз это наш сервер на ubuntu

Pref. Source = 172.16.1.10 - Источник предпочтений, указываем свой IP в этой сети.

Жмакаем Ок и проверяем.

Заходим на видео регистратор или по http порту как в видео или можно настроить приложение как на компьютере или на телефоне. И всё работает

 

 

О статье

Автор: Владимир Корниенков

Дата публикации: Среда, декабря 19, 2018