Бывают случаи, когда необходимо обеспечить доступ к видеорегистратору, но провайдер не может дать статический публичный 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 для установки сессионного ключа. Краткий обзор данных уязвимостей:
- MSCHAP-v1 совершенно ненадёжен. Существуют утилиты для лёгкого извлечения хешей паролей из перехваченного обмена MSCHAP-v1.
- MSCHAP-v2 уязвим к словарной атаке на перехваченные challenge response пакеты. Существуют программы, выполняющие данный процесс.
- В 2012 году было показано, что сложность подбора ключа MSCHAP-v2 эквивалентна подбору ключа к шифрованию DES, и был представлен онлайн-сервис, который способен восстановить ключ за 23 часа.
- При использовании MSCHAP-v1, MPPE использует одинаковый RC4 сессионный ключ для шифрования информационного потока в обоих направлениях. Поэтому стандартным методом является выполнение XOR’а потоков из разных направлений вместе, благодаря чему криптоаналитик может узнать ключ.
- MPPE использует RC4 поток для шифрования. Не существует метода для аутентификации цифробуквенного потока и поэтому данный поток уязвим к атаке, делающей подмену битов. Злоумышленник легко может изменить поток при передаче и заменить некоторые биты, чтобы изменить исходящий поток без опасности своего обнаружения. Данная подмена битов может быть обнаружена с помощью протоколов, считающих контрольные суммы.
Пример настройки с помощью двух роутеров 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 имени к первому роутеру, а он уже маршрутизирует на второй роутер во внутреннюю сеть. Или проще говоря две внутренние сети между собой соединены виртуально, так как будто всё это оборудование находится в одном месте.
Удачной настройки!
Предлагаю только добавить, что метод не работает, если провайдер держит ваш айпи за НАТом
Вы не заметили в статье противоречие? Вот заголовок: «Когда видеорегистратор подключен к динамическому ip адресу (серый/за NATом)»
А вот в середине статьи написано: «Т.к. у нас публичный динамический ip адрес, то нам нужен сервис DDNS, „
Серый ip (за NATом) и публичный динамический ip адрес это не одно и тоже. Второе это белый ip, но динамический, то есть белый, но не постоянный, а серый который за натом вы никогда не привяжите к ddns.
Поэтому не вводите людей в заблуждение. И измените заголовок статьи. Если есть публичный динамический адрес, то его достаточно привязать к ddns и заходить по ddns остальные манипуляции не нужны