Андрей Смирнов
Время чтения: ~9 мин.
Просмотров: 63

Обход блокировок, используя UniFi Security Gateway

nastroika-ubiquiti-unifi-security-gateway-00.jpg

Ubiquiti Unifi Security Gateway (USG) — довольно самобытный, 3-портовый, гигабитный роутер Ubiquiti, порожденный ради расширения линейки серии Unifi до, что называется, полного комплекта. Будучи компактным и объективно весьма симпатичным, он обладает достаточно высокой (но не запредельной, о нет) производительностью, и стоит при этом весьма недорого, что обуславливает его популярность среди апологетов оборудования семейства Unifi.

Отличительной и довольно обескураживающей особенностью Ubiquiti USG является отсутствие standalone консоли управления: настраивать его можно только через UniFi Controller. Это можно считать как плюсом, так и минусом. Лично нам такая особенность кажется слегка, гм, необычной. Впрочем, в рамках данного материала мы хотели все-таки рассмотреть сценарий настройки роутера, а не подивиться его диковинностью, поэтому приступим.

1. Как упоминалось выше, роутеру для работы нужен UniFi Controller. Его можно скачать с сайта Ubiquiti (https://www.ubnt.com/download/unifi), либо приобрести аппаратный вариант — Ubiquiti Unifi Cloud Key. Настройку Unifi Controller мы уже описывали в статье БАЗОВАЯ НАСТРОЙКА UBIQUITI UNIFI CONTROLLER И БЕСШОВНОГО WIFI, поэтому ограничимся ссылкой на нее, и приступим к настройке роутера.

2. К 1-му порту роутера подключаем кабель провайдера доступа в интернет, во второй порт — коммутатор, смотрящий в локальную сеть, и заходим в Unifi Controller. Спустя недолгое время USG должен появиться в списке устройств. Нажимаем Adopt, чтобы присоединить его к нашей инфраструктуре Unifi:

nastroika-ubiquiti-unifi-security-gateway-01.jpg

Роутер немного поразмыслит:

nastroika-ubiquiti-unifi-security-gateway-02.jpg

…и присоединится к сети. Мы используем новейшую, 5-ю версию Unifi Controller, поэтому после присоединения USG объявит в строке статуса, что ему нужно обновиться. Мы не против. Жмем UPGRADE:

nastroika-ubiquiti-unifi-security-gateway-03.jpg

Подтверждаем наше намерение, нажав Confirm:

nastroika-ubiquiti-unifi-security-gateway-04.jpg

…и спустя несколько минут роутер будет готов к работе. Нажав на него в списке устройств, справа мы получим компактную консоль управления роутером. Собственно, сразу нажимаем Configuration и осваиваемся:

nastroika-ubiquiti-unifi-security-gateway-05.jpg

3. В секции General можно только задать имя устройства (Alias), поэтому сразу переходим к настройке интерфейса WAN. Роутер поддерживает 3 режима подключения к интернету: динамический IP, статический IP и PPPoE.В нашем примере используется динамический адрес, поэтому выбираем Connection TypeUsing DHCP и нажимаем Queue Changes. Тут же можно задать 2 DNS-сервера и VLAN:

nastroika-ubiquiti-unifi-security-gateway-06.jpg

По большому счету, настройка роутера уже завершена. Он не слишком богат опциями, а большая часть управления дополнительным функционалом (за исключением порт-форвардинга и DynDNS, которые выполняются тут же, в соответствующих секциях) осуществляется через консоль Unifi в разделе Settings:

nastroika-ubiquiti-unifi-security-gateway-08.jpg

4. Уже тут, в конфигураторе Unifi, настраиваются сервер VPN, VPN Site-to-Site, клиенты VPN, DHCP-сервер, WINS, и тому подобное. Из наиболее интересных функций мы бы хотели отдельно выделить: — DHCP guarding. Функция требует применения коммутатора серии Unifi, и позволяет глобально указать доверенный DHCP-сервер. Функция нужная и полезная, в роутерах встречается редко, а уж в таких дешевых и вовсе никогда, поэтому зачет! — Deep Packet Inspection (DPI). Как понятно из ее названия, функция позволяет проводить глубокую инспекцию пакетов на лету, и выдавать на гора подробную статистику, как пользователи используют интернет. Включаем ее галочкой Enable deep packet inspection в разделе Site:

nastroika-ubiquiti-unifi-security-gateway-09.jpg

После включения DPI роутер немного подумает и примется собирать статистику использования интернета. Спустя некоторое время в Dashboard появится статистика, а нажав в центр счетчика трафика:

nastroika-ubiquiti-unifi-security-gateway-10.jpg

мы попадем в раздел с довольно подробными диаграммами:

nastroika-ubiquiti-unifi-security-gateway-11.jpg

На этом аспекты базовой настройки Ubiquiti USG кажутся разобранными. Чего мы не увидели: настроек брандмауэра (выполняются через CLI), роутинга (тоже прячется в CLI), standalone DHCP-сервера, который прямо таки необходим роутеру, возможности отключения NAT. Такой вот роутер-кастрат. Утешения ради сообщаем, что как минимум для роутинга и брандмауэра Ubiquiti пообещала обеспечить графический интерфейс в чуть более новой Unifi Controller линейки 5.x. Ждем-с.

26 ноября 2019, 14:22

Данная история началась с того, что у меня появилась вышеупомянутая железка для тестов. Те кто с ней уже сталкивались, знают, но для остальных поясню, устройство неплохое, но изначально в веб конфигураторе не очень функциональное. Хотя прошивка внутри очень похожа на Edge-router этой же компании. Давайте же начнём!

Для начала давайте определимся для начала, что у вас уже должно быть настроено. Без этого ничего не получится, либо настройка будет более сложной, в общем я пошёл по простому пути. Итак вам понадобятся:

  • Уже настроенный vpn канал, через который вы заходите на заблокированные ресурсы
  • Статический IP адрес у своего провайдера (не обязательно)
  • Базовые знания в сетях и маршрутизации
  • Базовые знания ssh и командной строки

Да, конечно можно просто настроить на USG vpn туннель и пустить весь трафик через него, но в этом случае мы получим задержки до всех ресурсов интернета. Это не наш путь, будем направлять через vpn только трафик заблокированных ресурсов.

Шаг первый, получаем список заблокированных IP

Вариантов сделать это — несколько. Я предлагаю выбрать способ, по моему мнению самый простой, при помощи BGP. BGP это протокол маршрутизации, достаточно сложный в понимании для рядового пользователя, но нам многого и не надо. Не так давно появился ресурс, который по данному протоколу отдаёт список заблокированных IP адресов (для ознакомления естественно). Но для работы с этим сервисом необходимо сделать некоторые манипуляции. 

  • Проматываем ближе к концу страницы
  • Жмём на кнопку «активировать управление BGP»

1600x_image.png?1574776082

Для начала, заходим на данный ресурс.

1600x_image.png?1574776081

Проматываем ближе к концу страницы и жмем на кнопку «активировать управление BGP»

1600x_image.png?1574776082

Далее будет насколько настроек, выбираем необходимые нам, а номер AS выбираем из промежутка 64512-65534. Это приватные номер AS.

Теперь жмём на кнопку сохранить и ждём около 5 минут для применения настроек на удаленном сервере. Если у вас динамический IP, можно не указывать номер AS и в дальнейшем использовать 64999, но настройки работать у вас не будут.

Шаг второй, выбираем, куда направлять трафик

Далее, по логике вещей нам надо перенаправить весь трафик на эти IP через уже настроенный VPN канал. Для этого необходимо узнать IP адрес, который получает ваш USG на туннельном сервере. Как это сделать? Подключаемся к гейтвею по SSH. И вводим там следующую команду:

show interfaces

В результате мы получим список всех интерфейсов и IP адресов на них назначенных. Ищем там строчку наподобие последней:

1600x_image.png?1574776491

У вас может быть другое имя интерфейса и адрес, нам нужен только второй параметр. Запоминаем его и идём дальше.

Шаг третий, опциональный, чиним провайдерские DNS

Некоторые замечательные провайдеры интернет очень любят перехватывать DNS запросы на сторонние сервера и подсовывать свои ответы, так что даже все пути по попытке обойти блокировку могут оказаться тупиковыми. Перестрахуемся от этого и добавим статические маршруты до кастомных днс, например, гугла. Заходим на веб морду своего Cloud key или UniFi controller. Идём по пути Settings — Routing & Firewall — Create new route и вписываем там следующее:

  • Name: Любое какое вам нравится
  • Enabled: галочка
  • Destination network: 8.8.8.8/32
  • Distance: 1
  • Static route type: Next hop
  • Next hop: пишем IP из предыдущей части, в моем случае 10.1.0.1

Я использую немного другие ДНС сервера, поэтому итоговая картинка у меня чуть другая.

Далее добавляем ещё один роут, в котором вместо 8.8.8.8/32 пишем 8.8.4.4/32. Далее ждём некоторое время для применения настроек и идём дальше.

Шаг пятый, проверяем все настройки тестово

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

  • Вводим все команды в командной строке
  • Создаём кастомный файл настроек

Сейчас мы воспользуемся первым, для проверки того, что мы все делаем правильно, и что бы случайно не запороть конфиг и не потерять управление. Подключаемся к USG по SSH и вводим следующее:

configure  set interfaces bridge br0 address 192.168.254.1/30  set protocols bgp 64999 parameters router-id 192.168.254.1 set protocols bgp 64999 neighbor 163.172.210.8 remote-as 65432 set protocols bgp 64999 neighbor 163.172.210.8 ebgp-multihop 255 set protocols bgp 64999 neighbor 163.172.210.8 soft-reconfiguration inbound set protocols bgp 64999 neighbor 163.172.210.8 route-map import rkn set protocols bgp 64999 neighbor 163.172.210.8 timers holdtime 240  set policy route-map rkn  set policy route-map rkn description "RKN next hop" set policy route-map rkn rule 1 action permit set policy route-map rkn rule 1 set ip-next-hop 10.1.0.1  commit
  • Первой строчкой мы входим в режим конфигурации, второй строчкой мы поднимем bridge интерфейс и назначим ему серый pi адрес. Он необходим для дальнейшей настройки BGP и может быть любым серым IP адресом, не использующимся в вашей маршрутизации. 
  • Далее его же пишем вместо моего 192.168.254.1. 
  • Так же не забываем поменять 64999 на свой номер AS, который мы так же выбрали ранее. 
  • И в последнем разделе мы создадим карту маршрутизации для получаемых IP адресов и перенаправим их в VPN тоннель. Не забывайте поменять 10.1.0.1 на свой.

Остальные настройки не меняем. Последняя же строчка применяет данные настройки на устройстве. Немного ждём и смотрим что все заработало, для этого вводим:

exit show ip bgp

Тут лишь малая часть всего списка.

Мы должны получить список из кучи сетей с параметром next hop в IP адрес вашего туннеля. Если же его нет — вы что то сделали неправильно, можно перезагрузить гейтвей и начать все с начала. Если же все отлично — можете попробовать открыть какой нибудь рутрекер и перейти к закреплению данного кастомного конфига.

Шаг шестой, создаём кастомный конфиг

Данные настройки можно вполне официально добавить на устройство через специальный файл config.gateway.json. Потому как все, что вы применили через командную строчку, даже в случае сохранения на устройстве, перезапишется при любом действии с USG через веб конфигуратор. Что бы этого избежать, можно создать файл с кастомными необходимыми настройками и положить его по правильному пути, тогда при любом изменении в веб морде или перезагрузке устройства — они будут автоматически подтягиваться на USG. 

Создать данный файл вы можете либо самостоятельно, используя официальный мануал Ubiquiti, либо скачав и изменив под себя мой файл конфига тут. Внимательно смотрите что и где вы изменяете, есть вероятность потерять управление над своим устройством! Если вдруг это произошло — достаточно удалить созданный файл и перезагрузить USG.

Конфиг необходимо разместить в правильном месте в Colud Key или в UniFi Configurator. Напишу более популярные пути:

  • Cloud Key: /usr/lib/unifi/data/sites/default
  • UniFi Configurator: (в виде аддона для HassKit.io): папка_с_конфигом_hassio/addons/data/a0d7b954_unifi/unifi/data/sites/default/
  • Ubuntu server: /usr/lib/unifi/data/sites/default

Последняя папка defaults может быть другой, в зависимости от первоначальной настройки вашей экосистемы.

Для того что бы убедиться, что у вас в принципе рабочий VPN, рекомендую перед применением всех кастомных настроек, поставить следующую галочку в настройках, и посмотреть, будут ли открываться какие нибудь сайты с заблокированными ресурсами:

Так же в конфиг добавлен раздел с правилами для Hairpin Nat, что позволяет получить доступ к своему белому IP внутри локальной сети. Если вам это не нужно — удалите данные настройки и проверьте итоговый файл на корректность, например тут. Жду ваших комментариев и дополнений с исправлениями, ибо я мог где то и накосячить. Но проверка показала что способ работает.

Используемые источники:

  • https://treolink.ru/bazovaya-nastroika-ubiquiti-unifi-security-gateway
  • https://sprut.ai/client/article/2110

Рейтинг автора
5
Подборку подготовил
Максим Уваров
Наш эксперт
Написано статей
171
Ссылка на основную публикацию
Похожие публикации