Когда видеорегистратор подключен к динамическому ip адресу (серый/за NATом), а очень хочется иметь удаленный доступ

Бывают случаи, когда необходимо обеспечить доступ к видеорегистратору, но провайдер не может дать статический публичный ip адрес или же интернет возможно подключить только через беспроводные сети сотовых операторов и по другому нинкак. Есть конечно вариант включить функцию на видеорегистраторе P2P, но это не совсем безопасно, т.к. вы уже даёте доступ к своему видеорегистратору третьему лицу. Поэтому можно воспользоваться одним из видов VPN соединения - PPTP. Я рассмотрю вариант настройки PPTP сервера и PPTP клиента, но также по аналогии возможно настроить протоколы L2TP или OpenVPN с SSL сертификатом. L2TP или OpenVPN безопаснее, т.к. шифрование трафика более стойкое, чем у PPTP. В других статьях я обязательно приведу примеры их настройки, т.к. бывают случае, когда требуется максимально безопасным создавать тунельное соединение.

Определение PPTP протокола из википедии:

PPTP (англ. Point-to-Point Tunneling Protocol) — туннельный протокол типа точка-точка, позволяющий компьютеру устанавливать защищённое соединение с сервером за счёт создания специального туннеля в стандартной, незащищённой сети. PPTP помещает (инкапсулирует) кадры PPP в IP-пакеты для передачи по глобальной IP-сети, например Интернет. PPTP может также использоваться для организации туннеля между двумя локальными сетями. РРТР использует дополнительное TCP-соединение для обслуживания туннеля.

И описание безопасности протокола PPTP из википедии:

Безопасность протокола PPTP

PPTP был объектом множества анализов безопасности, в нём были обнаружены различные серьёзные уязвимости. Известные относятся к используемым протоколам аутентификации PPP, устройству протокола MPPE и интеграции между аутентификациями MPPE и PPP для установки сессионного ключа. Краткий обзор данных уязвимостей:

Пример настройки с помощью двух роутеров Mikrotik RB951 и модема Yota. Опишу конкретную ситуацию с указанием ip адресов двух локальных сетей и к одному из роутеров подключение проводной провайдер с публичным динамическим ip адресом, тоесь к данному роутеру возможно подключаться, но у него переодически меняется ip адрес.

На первом роутере у нас локальная сеть 192.168.44.0/24

Первый роутер, к которому подключен проводной провайдер и настраиваем с помощью программы Winbox:

И так у нас уже настроен интернет и он работает. При необходимости напишу отдельную статью по настройки интернета на роутерах Mikrotik, но в любом случае в интернете инструкций масса. Первым делом заходим в настройки PPP. В Winbox слева нажимаем на PPP, в открывшемся окне нажимаем на кнопку PPTP Server и его включаем(ставим галку на Enabled).

Далее открываем вкладку Profiles и выбираем профиль default-encryption - это профиль безопасности PPTP сервера. При желании можете почитать описания, если желаете тонко его настроить, если же это будете делать, то аналогично нужно будет настроить на стороне PPTP клиента! В данном случае я ничего не менял, оставил всё по умолчанию.

Потом нам нужно создать интерфейс PPTP сервера для pptp клиента, который будет подключаться, чтобы в дальнейшем возможно было сделать маршрутизацию, увы без неё никак. Идём в закладку Interface, нажимаем на плюс и выбираем PPTP Server Binding. В поле Name пишем к примеру имя юзера pptp клиента, например Vasya, в поле User - Vasya и нажимаем ОК.

Далее заходим в вкладку Secret для создание профиля пользователя(pptp клиента), который будет подключаться для создания тунеля. Нажимаем на плюс, в поле Name пишем Vasya, Password - задаем мегасложный пароль!!!!, Service - выбираем pptp, Profile - default - это профиль безопасности, Local Address - задаём 192.168.5.1 - это адрес нашего роутера в pptp тунеле, Remote Address пишем - 192.168.5.2 - это адрес, который получит наш второй роутер(pptp клиент), подключившись по протоколу pptp.

Далее идём в закладку Profiles и открываем профиль default, ничего не трогаем, оставляем всё по умолчанию.

Т.к. у нас публичный динамический ip адрес, то нам нужен сервис DDNS, Mikrotik начиная с версии прошивки 6.XX(точно уже не помню номер) позаботился об этом и предоставил свой сервис. Поэтому выбираем IP-Cloud и галочками включаем и получаем dns имя нашему устройству.

И так теперь настроим фаервол. Заходим в ip - firewall и выбираем вкладку NAT. Для того, чтобы можно было попадать снаружи(из инета) во внутреннюю сеть второго роутера надо сделать маскарадинг, подключающихся адресов из инета. Хм... надеюсь понятно написал. Нажимаем плюс, в Chain выбираем srcnat, в Out. Interface находим наш pptp интерфейс Vasya.

Переходим во вкладку Action, и ставим masquerade

Данное правило должно быть приоритетнее, тоесть выше чем nat(маскарадинг) для выхода в инет

В моём случае нужно было пробросить порты к видеорегистратору RVi, а у них стандартно порты для подключения TCP 37777 и UDP 37778. Для пробраса портов нажимаем плюс выбираем в Chain - dstnat, protocol - tcp, Dst. port - 37777

Переходим в закладку Action и в action выбираем netmap(зеркалирование портов ну или по простому проброс) и указываем ip адрес видеорегистратора, который подключен ко второму роутеру тоесть 192.168.89.250 и порт 37777. Нажимаем Ок. И для проброса порта UDP 37778 делаем аналогично, protocol - UPD, Dst. port - 37778.

Теперь в разделе Firewall переходим во вкладку Filter Rules и делаем разрешающие правила для подключение pptp клиента, тоесть нашего второго Mikrotik-a. Делаем три правила, нажимаем плюс и открываем протоколы gre, tcp порт 1723, udp 1701, 500,4500. В Chain выбираем input. Смотрим скриншот.

Должно получится так:

Для безопасности можно разрешить подключаться к PPTP серверу только определенных ip адресов. Используя любого провайдера в интернете можно найти пул их ip адресов, у yota например очень быстро нашёл возможно даже у них на сайте, но точно уже не помню. И в Mikrotik можно сделать список адресов и разрешить только с них подключаться. Для этого заходим во вкладку Address Lists и создаём список адресов. Нажимаем плюс список к примеру называем по имени провайдера и копируем ip адрес с указанием маски.

В итоге получится так:

И последнее, что нам осталось сделать на первом роутере это сделать маршрутизацию в локальную сеть второго роутера. Локальная сеть второго роутера - 192.168.89.0/24. Для этого заходим в IP-Routes, во вкладке Route нажимаеv плюс и в Dst. Address пишем локальную сеть второго роутера - 192.168.89.0/24. Шлюз, через который идти указываем Vasya, Gateway - Vasya и нажимаем ок.

С первым роутером закончили и теперь приступаем к настройке второго роутера. На нём уже настроен интернет, подключен USB модем Yota и прописана локальная сеть 192.168.89.0/24

В Winbox-e нажимаем на PPP, чтобы настроить pptp клиент. Нажимаем плюс и выбираем PPTP Client, в Name пишем Vasya и переходим во вкладку Dial Out

Тут в Dial out указываем, полученное dns имя первым роутером(там где включали в IP-Cloud). Имя пользователя и пароль пишем тот, который создавали на первом роутере, тоесть логин Vasya и мегасложный пароль. Profile - default-encryption, в разделе Allow везде ставим галки. И нажимаем ок.

Переходим во вкладку Profiles и используем профиль безопасности default-encryption по дефолту. Параметры его такие:

С PPTP клиентом закончили теперь переходим в раздел Ip-Routes и делаем маршрутизацию во внутреннюю сеть первого роутера.

На этом настройка заканчивается. Теперь получается, что при подключении к видеорегистратору вы подключаетесь по dns имени к первому роутеру, а он уже маршрутизирует на второй роутер во внутреннюю сеть. Или проще говоря две внутренние сети между собой соединены виртуально, так как будто всё это оборудование находится в одном месте.

Удачной настройки!