Каталог Поиск 0 Сравнить 0 Закладки 0 Корзина Войти
Каталог
105082, Москва, ул. Фридриха Энгельса, 75с21, БЦ Бауманский ИТКОЛ
Пн - Пт: с 09-00 до 18-00 Сб: с 10-00 до 18-00 Вс: выходной
Страницы: 1 2 След.
RSS
Правила файрвола USG для OpenDNS, UniFi Network
 
Я пытаюсь принудительно заставить всех клиентов использовать OpenDNS через USG для фильтрации контента дома, независимо от настроек DNS на клиентском устройстве. Судя по тому, что я читал, лучше всего создать правила файервола, которые будут перенаправлять весь DNS-трафик на OpenDNS через роутер USG. У меня уже настроен USG на работу с OpenDNS, но если клиентское устройство настроено, например, на Google DNS, то клиент обходится от фильтрации OpenDNS.

Я видел, что на форуме (Redirect-all-DNS-to-OpenDNS) это считается решением проблемы, но подтверждений там как таковых нет. Все просто советуют не делать это на уровне точки доступа (AP), а именно на роутере. С этим соглашусь и понимаю. Просто хочу найти простые и понятные правила, чтобы принудительно использовать OpenDNS.

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

Redirect-all-DNS-to-OpenDNS  
Из приведённой ссылки (отредактировано для удаления ненужных правил):

# Разрешить трафик к OpenDNS  
iptables -t nat -A PREROUTING -i br0 -p udp -m udp --dport 53 -d 208.67.220.220/32,208.67.222.222/32 -j ACCEPT  
iptables -t nat -A PREROUTING -i br0 -p tcp -m tcp --dport 53 -d 208.67.220.220/32,208.67.222.222/32 -j ACCEPT  

# Перенаправить весь остальной DNS-трафик  
iptables -t nat -A PREROUTING -i br0 -p udp -m udp --dport 53 -j DNAT --to-destination 208.67.220.220  
iptables -t nat -A PREROUTING -i br0 -p tcp -m tcp --dport 53 -j DNAT --to-destination 208.67.220.220  

Я особо не разбираюсь в правилах файервола, поэтому не совсем понимаю, что делают все эти теги и опции. Если вышеуказанных правил достаточно — отлично, но если есть какие-то рекомендации по исправлению или упрощению — это было бы очень полезно.

Планирую сделать это постоянным, но это мой первый шаг. Спасибо!
 
Только что добавил это как запрос на функцию, пожалуйста, голосуйте за него здесь: https://community.ui.com/feature-requests/58e571af-cf02-470e-9d60-f8a2cd287359
 
Огромное спасибо unifiMynet за то, что он взялся за простую задачу и превзошёл все ожидания, проверив и воспроизведя её на своём оборудовании. Очень благодарен, учитывая, что у меня нет прямого доступа к сети или USG для тестирования, а есть только серверный каталог для развертывания! Исправил опечатку в своём предыдущем сообщении. Вы, сэр, настоящий джентльмен.
 
@adrianmmiller

Я протестировал это на своем USG. Для Eth1 я изменил твои правила, подставив свои IP — правила сработали как надо. До настройки сделал nslookup, поставил сервер на 8.8.8.8 и запросил адрес, который есть только в хостах моего USG. Nslookup ответил "домен не существует". После настройки тестовый IP разрешился через хосты моего USG, хоть nslookup и указывал на 8.8.8.8, так что правило работает как задумано.

Затем я проверил Eth2, чтобы убедиться, что правило 1 не влияет на Eth2 — оно не повлияло (тестовый nslookup хоста не найдён). Eth2 я не использую, поэтому создал сеть с твоим диапазоном IP и подключил туда устройство.

Потом добавил правило 2 в .json и сделал provision, всё тоже отработало как надо. Единственное — адрес назначения в правиле 2 не совпадает с внутренним адресом в правиле 2, кажется, это опечатка при копировании правила 1. В остальном правила работают, структура файла нормальная.
 
@UBNT-MikeD

@UBNT-cmb

Эти две проблемы нужно объединить. https://community.ui.com/questions/84f5bdd0-e3f6-4542-a805-50084d384381#comment/b687a6ee-4421-49af-b2bc-7b711d61e2d1 Тут, как и в другой теме, речь идет о том, чтобы предотвратить перенаправление DNS-сервера на клиенте и использовать DNS-серверы, которые прописаны на USG (Pro).
 
Мой сейчас запутанный мозг устал пытаться разобраться в OP от @fisics.  

В его конфигурации столько всего, что я вообще не понимаю, что вырезать, а что оставить.  

Правильно ли будет вот так настроить принудительный OpenDNS/блокировку обхода с учётом следующей информации:  

Используются оба LAN-порта на USG  
LAN       Корпоративная сеть   10.0.0.1/24  
LAN2      Корпоративная сеть   10.0.1.1/24  

{  
   "service": {  
       "nat": {  
           "rule": {  
               "1": {  
                   "description": "DNS Redirect",  
                   "destination": {  
                       "address": "!10.0.0.1",  
                       "port": "53"  
                   },  
                   "inbound-interface": "eth1",  
                   "inside-address": {  
                       "address": "10.0.0.1"  
                   },  
                   "log": "disable",  
                   "protocol": "tcp_udp",  
                   "type": "destination"  
               },  
               "2": {  
                   "description": "DNS Redirect",  
                   "destination": {  
                       "address": "!10.0.1.1",  
                       "port": "53"  
                   },  
                   "inbound-interface": "eth2",  
                   "inside-address": {  
                       "address": "10.0.1.1"  
                   },  
                   "log": "disable",  
                   "protocol": "tcp_udp",  
                   "type": "destination"  
               }  
           }  
       }  
   }  
}  

Буду признателен за любую помощь!
 
Почему правило перенаправления DNS работает на switch0, но не на eth0?

У меня дома ER-X, где switch0 объединяет eth0-eth3, а eth0 подключён к моему коммутатору Unifi и Wi-Fi точкам доступа. Правило NAT для перенаправления DNS, описанное ранее в этой теме, отлично работает, если его применить к switch0, но не срабатывает при применении к eth0. Я не понимаю, почему так. Планирую скоро использовать такое же правило на USG pro, и, насколько я знаю, там не настроен интерфейс switch.
 
Я прочитал все сообщения, но всё ещё не понимаю, почему хотя бы блокировка любого DNS-трафика, кроме OpenDNS, не может быть реализована с помощью правил файрвола в интерфейсе.

Я настроил правило на LAN OUT, которое разрешает весь DNS-трафик (порт 53) к серверам имен OpenDNS. Затем следующее правило — блокировать весь остальной DNS-трафик. Но это не работает, и я не могу понять, почему...
 
Спасибо, fisics, отличный разбор. Небольшое замечание для тех, у кого, как и у меня, возникли сложности. У меня UniFi Security Gateway 4 Pro с прошивкой 4.3.60.5012144. Конфигурация классная, но у меня не сразу заработало. У моего USG по 2 LAN-порта и 2 WAN-порта. Я подключился к LAN 1, но он соответствует eth0, а LAN 2 — это eth1. Обязательно перепроверьте, какой eth-интерфейс у вас используется, и меняйте настройки соответственно! 😀 Также отмечу, что я управляю инфраструктурой через UniFi Cloud Key. Пути для ssh и загрузки совпадают: /usr/lib/unifi/data/sites/default/. Удачной настройки! DAH_IT
 
Да, у меня происходит то же самое, возможно, раньше это работало, но сейчас уже нет...
 
Это потрясающее руководство, спасибо! Сейчас я использую правила для файрвола, и всё работает нормально, но я бы предпочёл, чтобы это было прозрачно. Когда я вношу изменения в config.gateway.json, кажется, что запросы вообще не идут на opendns, даже если я не меняю DNS на клиенте. Я знаю, что мой файл загружается, потому что как только я его переименовываю и заставляю устройство обновиться, это начинает происходить. Есть идеи, в чём может быть проблема?
 
Файл custom json ещё нужен или это правило теперь можно создавать в разделе маршрутизации и файрвола в настройках? Если да, не мог бы кто-нибудь скинуть скриншот работающего правила? И ещё, можно ли это адаптировать так, чтобы правило применялось только к VLAN 2?
 
Мне удалось настроить всё с помощью чата с техподдержкой. Сейчас порт LAN моего USG подключён к старому роутеру Asus, который настроен в режиме точки доступа (через WAN-порт). Затем другой LAN-порт на Asus идёт на коммутатор UniFi. Проблема была в том, что Asus не пропускал VLAN-трафик к контроллеру. Я убрал Asus из цепочки, и всё заработало. Детям выделена отдельная подсеть и включён OpenDNS Family Shield для блокировки нежелательного контента. Хочу оставить Asus, но придётся поставить его на дешёвый сетевой коммутатор, чтобы VLAN проходил.
 
Я попробовал, но ничего не сработало. На коммутаторе в разделе Configure-Network я создал новую сеть под названием KidsPortNetwork (имя отличается от другой VLAN, которую я создал — KidsNetwork, не уверен, правильно ли я поступил). Родной сетью был LAN, а тегированной — KidsPortNetwork (тоже не уверен, правильно ли сделал). Затем на порту в разделе Networks/VLANs выбрал KidsPortNetwork. Это мой первый опыт с VLAN, так что не уверен, что сделал всё правильно.
 
Ваша настройка выглядит правильной, значит, проблема, скорее всего, в коммутаторе. Вы назначили VLAN для порта, к которому подключён AC-Pro? Если отключить VLAN, получает ли компьютер корректный IP-адрес?
 
Я использую OpenDNS, но хочу, чтобы устройства, которыми пользуются мои дети, использовали OpenDNS Family Shield, https://www.opendns.com/about/press-releases/introducing-familyshield-parental-controls-the-easiest-way-to-keep-kids-safe-online/. Family Shield имеет совсем другие DNS-адреса. Я знаю, что можно настроить DNS прямо на устройстве, но стараюсь этого избегать. На моём wifi-роутере Asus с прошивкой rmerlin это очень просто. Захожу в раздел DNS-Based Filtering, выбираю общий DNS роутера, а затем добавляю устройства детей в раздел DNS-Based Filtering, чтобы они использовали OpenDNS Family Shield. https://github.com/RMerl/asuswrt-merlin/wiki/DNS-Filter.

Пока что я пытался создать вторую сеть с другим диапазоном IP и OpenDNS Family Shield в качестве DNS, присвоить ей vlan (20), затем создать вторую wifi-сеть на vlan 20, но не получилось. При попытке подключиться к новой сети на iPhone появляется сообщение «Нет подключения к интернету». Моя аппаратная конфигурация: USG 3p, Switch 8, AC AP Pro. Я пытался поставить тег vlan 20 на порте коммутатора, который ведёт к точке доступа. Уверен, что что-то упускаю.

Я точно следовал инструкции @backd, но без результата. Также смотрел видео Crosstalk Solutions на YouTube, где показывают, как создавать vlan и отдельные гостевые сети — тоже без успеха.

Ещё хотелось бы, чтобы устройства имели доступ к USB-диску, который я подключил к своей ASUS-точке доступа. Надеюсь, я правильно объяснил, чего хочу добиться, и если это слишком сложно — просто заброшу эту затею 😀
 
Хм, я бы подумал, что для этого достаточно настроить USG так, чтобы он использовал OpenDNS в качестве DNS-форвардера, а затем блокировать весь DNS-трафик, который пытается выйти из локальной сети, кроме трафика, идущего на IP-адрес самого USG. Именно так я всегда делал с другими фаерволами раньше. И всё это, по идее, можно настроить прямо из графического интерфейса. Придётся проверить...
 
Джеффи, это адрес APIPA, а это значит, что беспроводная сеть не раздаёт IP-адреса. Можешь выложить свою конфигурацию или ещё раз проверить настройки DHCP?
 
Я настроил всё точно так же, как и ты, но когда пытаюсь подключиться к новой Wi-Fi сети на iPhone, он пишет, что нет интернет-соединения, и выдает IP-адрес 169.254.106.236, а не тот, который я задал для новой сети. Какие идеи?
 
Я так не думаю. Пока беспроводная сеть отмечена, всё должно быть в порядке. Когда дети подрастут, возможно, захочется настроить перенаправление DNS, чтобы они не могли обходить настройки DHCP. Они всегда держат тебя в тонусе...
Страницы: 1 2 След.
Читают тему (гостей: 1)