Каталог Поиск 0 Сравнить 0 Закладки 0 Корзина Войти
Каталог
105082, Москва, ул. Фридриха Энгельса, 75с21, БЦ Бауманский ИТКОЛ
Пн - Пт: с 09-00 до 18-00 Сб: с 10-00 до 18-00 Вс: выходной
Страницы: 1
RSS
USG перенаправляет трафик на прозрачный squid, UniFi Network
 
Здравствуйте, я хочу перенаправить HTTP и HTTPS трафик из внутренней локальной сети на мой прозрачный кэширующий прокси. Возможно ли управлять этим через контроллер или как именно мне это настроить? Заранее спасибо!
 
Да, я понимаю. Эти инструкции предназначены для внешнего прокси-сервера, а не для того, что внутри самого USG.
 
Это реально возможно? Я не могу создать правило для файрвола с действием «modify». Выдаёт ошибку: действие должно быть одним из следующих — drop, reject или accept.
 
Привет, спасибо за ответ. Как только я подключаюсь к своему USG по SSH, я ввожу "configure", а потом выполняю твои команды:
set firewall modify LAN_CORP_IN rule 90 action modify  
set firewall modify LAN_CORP_IN rule 90 description 'Перенаправить трафик на SQUID Proxy Server'  
set firewall modify LAN_CORP_IN rule 90 destination port 80  
set firewall modify LAN_CORP_IN rule 90 modify table 100  
set firewall modify LAN_CORP_IN rule 90 protocol tcp  
set firewall modify LAN_CORP_IN rule 90 source address 192.168.1.0/24  
set interfaces ethernet eth0 vif 10 firewall in modify LAN_CORP_IN  
set protocols static table 100 route 0.0.0.0/0 next-hop 192.168.1.1  

Затем ввожу "commit", потом "save".  
На клиентском компьютере я убираю настройки прокси и открываю веб-страницу.  
Когда я возвращаюсь к своему USG и ввожу: "tail -f /var/log/squid3/access.log",  
в журнале больше не появляется новых записей.  

Есть идеи, в чём может быть проблема?  
Хорошего дня!
 
Посмотри мой ответ выше... https://community.ui.com/questions/c249617c-2fb1-4cbd-a2ad-cdfa9a1efbe5#comment/2d3904f3-0a23-4d11-bb02-e7913e0c3252
 
Как настроить это прозрачно?
 
Как быть с перенаправлением портов? Squid обычно слушает на 3128, так что нужно перенаправлять трафик, идущий на порт 80, на 3128, и это надо учесть в правиле фаервола. С IpTables это обычно делается примерно так: ${IPTABLES} -t nat -A PREROUTING -s ${subnet} -d ! ${MY_EXT_IP} -p tcp --dport 80 -j REDIRECT --to-port ${port}  
Думаю, с UAG это должно работать так же?
 
Он просто запускает squid, так что вы можете настроить его как угодно. Если хотите настроить прозрачный прокси, тоже можно.

Раньше я запускал squid в Docker, но решил, что будет интересно попробовать на USG. Заходите по ssh, редактируете файл `vi /etc/squid3/squid.conf`, добавляете нужные параметры, затем выполняете `/etc/init.d/squid3 restart` — и всё готово.

curl -s -I -x http://bne-r1:3128 -X POST -L https://www.google.com  
HTTP/1.1 200 Connection established

HTTP/2 405  
allow: GET, HEAD  
date: Sun, 06 Jan 2019 08:56:32 GMT  
content-type: text/html; charset=UTF-8  
server: gws  
content-length: 1589  
x-xss-protection: 1; mode=block  
x-frame-options: SAMEORIGIN  
alt-svc: quic=":443"; ma=2592000; v="44,43,39,35"  

Неплохо, да? Отлично работать с устройствами на Linux.
 
Привет! Кто-нибудь уже смог настроить это на USG? Я попробовал использовать правила из поста, но из-за них перестал работать интернет. Проверил, что мой прокси работает, если указать его прямо в браузере, сделал tcpdump, но не вижу, чтобы трафик направлялся на мой прокси-сервер. Вот моя конфигурация:

Версия прошивки USG: 4.4.8.5023698  
User LAN: 192.168.40.0/24 (eth1 vif 2523)  
IP прокси: 192.168.50.40 (/24 подсеть) (eth1)  

Обе сети маршрутизируются через USG (192.168.40.1 и 192.168.50.1) как корпоративные сети, между ними и с интернетом связь и маршрутизация работают.

Пробовал добавлять правила в разных местах... последний вариант — в модификации LOAD_BALANCE firewall:

set firewall group address-group 59f7e723e4b0a3340380a4d8 address 192.168.40.59  
set firewall group address-group 59f7e723e4b0a3340380a4d8 description customized-PROXY_CLIENTS  
set firewall group port-group 59f7e716e4b0a3340380a4d7 description customized-PROXY_PORTS  
set firewall group port-group 59f7e716e4b0a3340380a4d7 port 80  
set firewall modify LOAD_BALANCE rule 90 action modify  
set firewall modify LOAD_BALANCE rule 90 description 'Redirect traffic to Proxy Server'  
set firewall modify LOAD_BALANCE rule 90 destination group port-group 59f7e716e4b0a3340380a4d7  
set firewall modify LOAD_BALANCE rule 90 modify table 10  
set firewall modify LOAD_BALANCE rule 90 protocol tcp  
set firewall modify LOAD_BALANCE rule 90 source group address-group 59f7e723e4b0a3340380a4d8  
set protocols static table 10 route 0.0.0.0/0 next-hop 192.168.50.40  
set interfaces ethernet eth1 firewall in modify LOAD_BALANCE  
set interfaces ethernet eth1 vif 2523 firewall in modify LOAD_BALANCE  

Буду благодарен за любую помощь или идеи. В общем, хочу сделать прозрачный редирект порта 80 с eth1 vif 2523 на IP 192.168.50.40, который лежит на eth1. Спасибо!
 
Одна из функций, которую я очень хотел бы видеть — DPI по портам. Сейчас я блокирую все исходящие соединения на WAN и открываю только нужные порты и серверы — для веб-трафика это порты 80 и 443 для всех серверов. Но люди могут запускать SSH и прочее на порту 443 и таким образом обходить базовую блокировку. Если бы USG мог анализировать трафик на 443 и блокировать всё, что не является SSL, было бы просто шикарно — это бы остановило явный проход нежелательных протоколов без TLS. Конечно, существуют протоколы и прокси, инкапсулированные в SSL, но так хотя бы становится чуть сложнее.

То же самое с DNS — сейчас у меня DNS открыт только для ограниченного числа DNS-серверов; но было бы идеально, если бы мы могли проверять трафик и разрешать DNS-трафик только по указанному порту (53).
 
Мне интересно настроить прозрачный прокси в своём домашнем сервере для удовольствия и обучения. Но я хотел бы понять, каких улучшений в производительности можно ожидать. У меня интернет 75/10. Прокси будет установлен в виртуальной машине на быстром хосте. Я читал, что настраивать SSL/HTTPS-прокси сложно и, возможно, не стоит затраченных усилий, поэтому предполагаю, что прозрачный прокси будет кешировать только HTTP на порту 80. С переходом на HTTPS, имеет ли вообще смысл это реализовывать?
 
Нет никакой возможности, что в USG есть достаточно мощностей процессора для полноценной проверки SSL. Шансов — 0%. Точка.
 
@bccc

— Посмотрите этот пример от Untangle. Очень просто: устройство Untangle (или squid-бокс, или что там вы решите использовать) по своей сути больше похож на коммутатор, чем на файрвол, но при этом обрабатывает трафик, который через него проходит, в зависимости от того, какие функции вы включаете (фильтрация веба, SMTP и так далее). https://wiki.untangle.com/index.php/Installation#Transparent_Bridge
 
ИЗМЕНЕНИЕ: Для тех, кто спросит — нет, это нельзя сделать через GUI, только через CLI. 😉 На самом деле всё довольно просто, если понять, как работает EdgeOS.

Сначала создаём NAT-правило, чтобы перенаправить трафик из внутренней сети (192.168.10.0/24) с портом назначения 80 на ваш прокси-сервер. Это делается с помощью «firewall modify rules», вот мой пример:

set firewall modify LAN_CORP_IN rule 90 action modify  
set firewall modify LAN_CORP_IN rule 90 description 'Redirect traffic to SQUID Proxy Server'  
set firewall modify LAN_CORP_IN rule 90 destination port 80  
set firewall modify LAN_CORP_IN rule 90 modify table 100  
set firewall modify LAN_CORP_IN rule 90 protocol tcp  
set firewall modify LAN_CORP_IN rule 90 source address 192.168.10.0/24  

Разумеется, это правило нужно привязать к нужному интерфейсу, например так:

set interfaces ethernet eth0 vif 10 firewall in modify LAN_CORP_IN  

Это перенаправит подходящий трафик в локальную таблицу маршрутизации 100, которую мы ранее создали вот так:

set protocols static table 100 route 0.0.0.0/0 next-hop 192.168.100.252  

В моём случае 192.168.100.252 — это прокси-сервер, который работает в другом подсети (VLAN).  

Важный момент: если перенаправлять трафик на машину в той же локальной сети, что и клиент, весь трафик в squid будет отображаться как идущий от роутера — а это не так. Чтобы в логах squid отображались настоящие IP-адреса клиентов, трафик нужно действительно маршрутизировать, поэтому мой прокси-сервер находится в другой подсети.  

Конечно, HTTPS-трафик здесь не рассматривается: ни один squid не сможет прозрачно «фильтровать» HTTPS без нарушения протокола. Для этого нужно использовать другие методы, например WPAD, групповые политики AD и так далее. Я использую оба эти способа с очень хорошим результатом. 😉
 
Спасибо,  
@cainmp

Как вариант, если вставить что-то посередине, как это будет работать? Сейчас у нас стоит система веб-фильтрации Sonar, которая, насколько я понял, раньше базировалась на версии squid, а теперь использует CentOS. Можно ли сделать так, чтобы USG выступал шлюзом с входящими WAN-соединениями, а LAN этого шлюза подключить к серверу фильтрации, а весь остальной трафик пропускать через него? Насколько я читал, это похожая проблема на ту, с которой сталкиваются сотни других: никто не хочет делать двойной NAT и хочет иметь возможность отключать некоторые функции USG.
 
Судя по моим исследованиям, реализация squid на USG не поддерживает HTTPS. И настройка этого в графическом интерфейсе сейчас точно отсутствует, но настроить можно (есть несколько руководств с описанием шагов). Однако без HTTPS, по моему мнению, это довольно бессмысленно. Скорее всего, лучше поставить что-то между USG и вашим коммутатором в режиме прозрачного моста для прозрачной фильтрации веб-трафика. Например, что-то вроде Untangle или SophosUTM отлично подойдет.
 
Я тоже хочу этим заняться. Кто-нибудь может поделиться мыслями по этому поводу?
Страницы: 1
Читают тему (гостей: 1)