Очередной вопрос по фильтрации HTTPS в squid



  • Здравствуйте. Вероятно это далеко не первый и явно не последний вопрос по фильтрации HTTPS ( пока не будет полноценного мануала от сильного знатока).

    Настраивал по вот такому руководству: http://forum.it-monkey.net/index.php?topic=23.0

    Достаточно красочному и подробному. Сделал один в один. Не летает. 
    Создал внутренний сертификат, настроил WPAD  (согласно мануалу).
    Если в настройках браузера указывать адрес прокси-сервера жёстко- криво, но блокирует. Если не указывать вылетает ошибка DNS_PROBE_FINISHED_BAD_CONFIG…
    Подскажите, пожалуйста, в какую сторону хоть смотреть, как правильно этот диавольский wpad настраивается?
    Заранее большое спасибо.
    Версия pfsense 2.4.2-RELEASE (amd64)
















  • Данный мануал устарел, SSL-фильтрацию нужно убрать и будет вам счастье (теперь squid сам всё знает и умеет) и никакие подмены сертификатов не нужны. Тоже наступал на "эти грабли" с эти мануалом.



  • @Jetberry:

    Данный мануал устарел, SSL-фильтрацию нужно убрать и будет вам счастье (теперь squid сам всё знает и умеет) и никакие подмены сертификатов не нужны. Тоже наступал на "эти грабли" с эти мануалом.

    Так-так, а скажите, пожалуйста, я немного не понимаю где именно нужно что убрать и в какой режим перевести. Я во многих моментах чайничек с двумя носиками. Пожалуйста, поподробнее. Прозрачное проксирование нужно/можно включать при этом или нет?



  • Services\Squid Proxy Server там ищем "SSL Man In the Middle Filtering", сразу под ней "HTTPS/SSL Interception" "[] Enable SSL filtering." Вот в этом поле флаг (галка) нужно убрать.
    Если настраиваете wpad, то прозрачный режим не нужен
    У меня (в удаленном офисе) работает в непрозрачном режиме, правда без wpad. В головном офисе - wpad, но squid отдельно на centos с апачем, который отдает wpad.dat
    Прозрачный режим скорее всего не будет слушать 443 порт



  • Добрый.

    Прозрачное проксирование нужно/можно включать при этом или нет?

    +1



  • @Jetberry:

    Services\Squid Proxy Server там ищем "SSL Man In the Middle Filtering", сразу под ней "HTTPS/SSL Interception" "[] Enable SSL filtering." Вот в этом поле флаг (галка) нужно убрать.
    Если настраиваете wpad, то прозрачный режим не нужен
    У меня (в удаленном офисе) работает в непрозрачном режиме, правда без wpad. В головном офисе - wpad, но squid отдельно на centos с апачем, который отдает wpad.dat
    Прозрачный режим скорее всего не будет слушать 443 порт

    А какие правила при этом должны быть в фаерволле? Поясните, пожалуйста, хотя бы относительно моих настроек, что там убрать-добавить? И можно ли без wpada, то как? У меня подозрения, что впад я неправильно настроил(



  • Чтобы проверить правильность настройки wpad в браузере введите "http://wpad/wpad.dat", где wpad - имя вашего http-сервера отдающего wpad. На моем (филиальном) pfsense squid порт не добавлен в LAN-правилах, однако сканирование портов показывает, что 3128 - активен и на нем крутиться сервис squid. На клиентах http/https работает через этот прокси, прописано вручную



  • @Jetberry:

    Чтобы проверить правильность настройки wpad в браузере введите "http://wpad/wpad.dat", где wpad - имя вашего http-сервера отдающего wpad. На моем (филиальном) pfsense squid порт не добавлен в LAN-правилах, однако сканирование портов показывает, что 3128 - активен и на нем крутиться сервис squid. На клиентах http/https работает через этот прокси, прописано вручную

    У меня при обращении у подобному адресу ничего не происходит, ERR_CONNECTION_TIMED_OUT => работает не правильно. Подскажите пожалуйста, в каком виде должны быть эти впадовские файлики? Я делал по вышеуказанному мануалу, там надо было сотворить три файла, wpad.dat, wpad.da и proxy.pac с одинаковым содержимым

    function FindProxyForURL(url,host)
    {
    return "PROXY 172.168.10.254:3128";
    }

    Где адрес, разумеется, мой адрес проксика.  И поместить всё это дело в /usr/local/www, что я, собственно и сделал.
    Как должно быть?



  • Вы изменили Web-Gui pfSense порт с 80 на 8080, а на 80 оставили wpad?
    Проверьте права на папку www и файл wpad.dat.
    У меня только wpad.dat. Содержимое у вас правильное. Это содержимое и должно выводится при обращении через браузер.
    Вот мой:

    function FindProxyForURL(url, host)
    {
    if (isPlainHostName(host) ||
    shExpMatch(host, "*.mydomen.ru") ||
    isInNet(host, "127.0.0.0", "255.255.255.0") ||
    isInNet(host, "192.168.0.0",  "255.255.0.0") ||
    isInNet(host, "172.16.0.0",  "255.240.0.0") ||
    isInNet(host, "10.0.0.0", "255.0.0.0"))
    { return "DIRECT"; }
    else if (shExpMatch(url, "*zakupki.gov.ru") ||
    shExpMatch(url, "*zakupki.gov.ru/*") ||
    shExpMatch(url, "*sberbank.ru") ||
    shExpMatch(url, "*sberbank.ru/*"))
    { return "DIRECT"; }
    else {
    return "PROXY proxy.mydomen.ru:3128"; }
    }
    

    P.S. dns должен резолвить имя wpad, иначе не будет работать



  • @Jetberry:

    Вы изменили Web-Gui pfSense порт с 80 на 8080, а на 80 оставили wpad?
    Проверьте права на папку www и файл wpad.dat.
    У меня только wpad.dat. Содержимое у вас правильное. Это содержимое и должно выводится при обращении через браузер.
    Вот мой:

    function FindProxyForURL(url, host)
    {
    if (isPlainHostName(host) ||
    shExpMatch(host, "*.mydomen.ru") ||
    isInNet(host, "127.0.0.0", "255.255.255.0") ||
    isInNet(host, "192.168.0.0",  "255.255.0.0") ||
    isInNet(host, "172.16.0.0",  "255.240.0.0") ||
    isInNet(host, "10.0.0.0", "255.0.0.0"))
    { return "DIRECT"; }
    else if (shExpMatch(url, "*zakupki.gov.ru") ||
    shExpMatch(url, "*zakupki.gov.ru/*") ||
    shExpMatch(url, "*sberbank.ru") ||
    shExpMatch(url, "*sberbank.ru/*"))
    { return "DIRECT"; }
    else {
    return "PROXY proxy.mydomen.ru:3128"; }
    }
    

    P.S. dns должен резолвить имя wpad, иначе не будет работать

    А какие права должны стоять у www и wpad.dat? у меня на www стоит 0755, а на wpad.dat 0644.
    И как правильно настроить днс резолвер, чтобы wpad имя читалось? Помогите, пожалуйста новичку, я научусь)



  • На wpad.dat поставьте также как и на www
    "nslookup wpad" что выдает?



  • @Jetberry:

    На wpad.dat поставьте также как и на www
    "nslookup wpad" что выдает?

    nslookup с самого pfsense выдает п1

    а с компа, с которого я на вебморду пфу лазаю п2

    ![????? ???????? ???????.jpg](/public/imported_attachments/1/????? ???????? ???????.jpg)
    ![????? ???????? ???????.jpg_thumb](/public/imported_attachments/1/????? ???????? ???????.jpg_thumb)



  • @Jetberry:

    На wpad.dat поставьте также как и на www
    "nslookup wpad" что выдает?

    вот так показывает с клиентской машины

    C:\Documents and Settings\Admin>nslookup wpad.pfsense.lan
    Server:  pfsensetest.pfsense.lan
    Address:  172.16.10.254

    Name:    wpad.pfsense.lan
    Address:  172.16.10.254

    Хоть я и перенес webgui pfsensa c 80 порта на 8080 файл wpad.dat пытается скачаться по адресу http://172.16.10.254:8080/wpad.dat. Содержимое он не показывает, просто качает файл. По http://172.16.10.254/wpad.dat всё глухо. У меня подозрения, что что-то не так в фаерволле. А что- не могу понять…



  • Пробежался по форумам, везде пишут, что с 2.4 версии всё изменилось. Подскажите пожалуйста, где всё-таки прочитать актуальные настройки??



  • У меня 2.3.5 (x32), squid: Version 3.5.27.
    Кстати выше я не правду написал, т.к. у меня еще транзитное устройство между сетью pfSense и LAN, 3128 порт не открыт, зато открыто "все" с транзитного маршрутизатора. В вашем случае нужно открыть на LAN порты TCP-3128(squid), UDP-53(dns) и остальное по вкусу(pop3, smtp и т.д.), все остальное закрыть.
    Если все, что касается DNS, сделали так же как и в том мануале, то должно работать. Попробуйте restart web-gui сделать и\или в настройки nginx залезть и открыть там 80 порт если закрыт. Сканер портов что "говорит", слушает pfsense 80 порт или нет? nmap(zenmap) скачайте и просканируйте pfsense
    P.S. Чего там читать? (про актуальные настройки) Вы почти все настроили, осталось только одну гайку подкрутить, вот только разобраться какую



  • @Jetberry:

    У меня 2.3.5 (x32), squid: Version 3.5.27.
    Кстати выше я не правду написал, т.к. у меня еще транзитное устройство между сетью pfSense и LAN, 3128 порт не открыт, зато открыто "все" с транзитного маршрутизатора. В вашем случае нужно открыть на LAN порты TCP-3128(squid), UDP-53(dns) и остальное по вкусу(pop3, smtp и т.д.), все остальное закрыть.
    Если все, что касается DNS, сделали так же как и в том мануале, то должно работать. Попробуйте restart web-gui сделать и\или в настройки nginx залезть и открыть там 80 порт если закрыт. Сканер портов что "говорит", слушает pfsense 80 порт или нет? nmap(zenmap) скачайте и просканируйте pfsense

    Да если вручную прописать в настройках браузера ипи и порт прокси- всё работает, чётко, https валятся согласно правил в гуарде, а стоит перевести в "автоматическое получение настроек" ничего не работает, при попытке зайти на http://wpad.pfsense.lan/wpad.dat редиректует на httpS://wpad.pfsense.lan:8080/wpad.dat о ошибкой SSL. Уже блин всё перековырял.
    Starting Nmap 6.47 ( http://nmap.org ) at 2018-02-19 20:19 Московское время (зима)

    Nmap scan report for 172.16.10.254

    Host is up (0.00s latency).

    Not shown: 96 filtered ports

    PORT    STATE SERVICE

    22/tcp  open  ssh

    53/tcp  open  domain

    3128/tcp open  squid-http

    8080/tcp open  http-proxy

    MAC Address: 08:00:27:10:51:45 (Cadmus Computer Systems)

    Nmap done: 1 IP address (1 host up) scanned in 15.07 seconds

    походу 80й закрывается. А как его открыть?



  • System\Advanced
    WebGUI redirect [] Disable webConfigurator redirect rule - установка флага может поможет?
    В правилах фаервола на LAN tcp-80 открыт?
    https://doc.pfsense.org/index.php/WPAD_Autoconfigure_for_Squid

    NOTE: If the firewall is used to serve WPAD and the WebGUI anti-lockout rule has been disabled, web traffic must also be allowed to the pfSense firewall GUI port. If this is not acceptable, point wpad. <domain>to another internal web server which can answer requests for the wpad.dat and associated files.</domain>



  • Вот тут пишут по-другому
    https://nguvu.org/pfsense/pfSense-2.3-WPAD-PAC-proxy-configuration-guide/

    Create the other two file variations by generating links. This is preferable as it helps keep all versions synced if you make any changes in future.

    ln -s /usr/local/www/nginx/proxy.pac /usr/local/www/nginx/wpad.dat

    ln -s /usr/local/www/nginx/proxy.pac /usr/local/www/nginx/wpad.da

    Verify your folder looks something like this when done,

    $ ls -l
    -rw-r–r--  1 root  wheel  537 Jul 19 12:07 50x.html
    -rw-r--r--  1 root  wheel  612 Jul 19 12:07 index.html
    -rw-r--r--  1 root  wheel  212 Aug  6 11:43 proxy.pac
    lrwxr-xr-x  1 root  wheel    9 Aug  6 11:45 wpad.da -> proxy.pac
    lrwxr-xr-x  1 root  wheel    9 Aug  6 11:45 wpad.dat -> proxy.pac

    Возможно так будет работать. Я 3 года назад выбрал проще путь - прокси и wpad поднял отдельно от pfsense, но это мой выбор и я за него не агитирую.



  • @Jetberry:

    Вот тут пишут по-другому
    https://nguvu.org/pfsense/pfSense-2.3-WPAD-PAC-proxy-configuration-guide/

    Create the other two file variations by generating links. This is preferable as it helps keep all versions synced if you make any changes in future.

    ln -s /usr/local/www/nginx/proxy.pac /usr/local/www/nginx/wpad.dat

    ln -s /usr/local/www/nginx/proxy.pac /usr/local/www/nginx/wpad.da

    Verify your folder looks something like this when done,

    $ ls -l
    -rw-r–r--  1 root  wheel  537 Jul 19 12:07 50x.html
    -rw-r--r--  1 root  wheel  612 Jul 19 12:07 index.html
    -rw-r--r--  1 root  wheel  212 Aug  6 11:43 proxy.pac
    lrwxr-xr-x  1 root  wheel    9 Aug  6 11:45 wpad.da -> proxy.pac
    lrwxr-xr-x  1 root  wheel    9 Aug  6 11:45 wpad.dat -> proxy.pac

    Возможно так будет работать. Я 3 года назад выбрал проще путь - прокси и wpad поднял отдельно от pfsense, но это мой выбор и я за него не агитирую.

    Я тоже видал эту статью, но там сверху пометка, мол эта статья устарела и для 2.4 не канает.
    Я же 2.4 мучаю.
    Всё открыл, всё повыключал согласно вашим советам- нифига. будто ничего и не происходило. Почему-то этот wpad файл не хочет приниматься браузером, что ли… уже башка закипела, думаю завтра продолжить мучения.



  • Отпишитесь, если не затруднит, что получилось и какой из мануалов подошел (там еще на ссылка на 2.1 мануал в начале статьи).



  • И еще у меня острое ощущение, что я что-то напорол в настройках днс резолвера. Может подсказать, где какие галки стоять должны. 
    Меня там одна галка смущает, которая

    DNS Query Forwarding Enable Forwarding Mode
    If this option is set, DNS queries will be forwarded to the upstream DNS servers defined under System > General Setup or those obtained via DHCP/PPP on WAN (if DNS Server Override is enabled there).

    Должна ли она стоять, и что должно быть в System->General Setup в настройках ДНС в таком случае?




  • Если имя wpad превращается в IP, то все правильно. Там может стоять 8.8.8.8 и 8.8.4.4, в конце концов "яндекс" должен же где-то резолвится?
    Служба автоматического обнаружения веб-прокси включена? Хромом проверяете http://wpad/wpad.dat? В настройках IE стоит флаг автоматическое определение настроек прокси сервера?



  • @Jetberry:

    Если имя wpad превращается в IP, то все правильно. Там может стоять 8.8.8.8 и 8.8.4.4, в конце концов "яндекс" должен же где-то резолвится?
    Служба автоматического обнаружения веб-прокси включена? Хромом проверяете http://wpad/wpad.dat? В настройках IE стоит флаг автоматическое определение настроек прокси сервера?

    Потушил стенд свой, завтра продолжу.  Хромом проверял http://wpad/wpad.dat редирект на httpS://wpad:8080/wpad.dat и не открывается. У ишака флаг стоит. Завтра буду копать. Если у кого какие предположения еще будут- пожалуйста пишите. Как заработает- напишу что делал в картинках.

    А не как вот тут: https://forum.pfsense.org/index.php?topic=62244.15 Сделал и пропал(((



  • Вот статья про редактирование web-gui https://awesomediocrity.wordpress.com/2017/06/05/confine-webinterface-to-ssh-only-on-pfsense-2-4/, а тут как конфигурировать nginx https://nginx.ru/ru/docs/beginners_guide.html. Вам нужно найти в /var/etc/nginx-webConfigurator.conf в блоке server 80 порт вам нужно указать статическое содержимое (место обитания dat-файла). Я так думаю  ;)



  • @Jetberry:

    Вот статья про редактирование web-gui https://awesomediocrity.wordpress.com/2017/06/05/confine-webinterface-to-ssh-only-on-pfsense-2-4/, а тут как конфигурировать nginx https://nginx.ru/ru/docs/beginners_guide.html. Вам нужно найти в /var/etc/nginx-webConfigurator.conf в блоке server 80 порт вам нужно указать статическое содержимое (место обитания dat-файла). Я так думаю  ;)

    Спасибо большое, попробую завтра чисто из спортивного уже даже интереса. Я на пробу глянул- боюсь запороть конфигу, тем более я не знаю в каком виде что там должно присутствовать. Как-то это неприятно, что приходится "коробочный фаерволл" допиливать изнутри. Походу проще эту раздачу wpad вынести на другой сервер, тут какая-то некромантия, боюсь, получится.  Кстати,  http://wpad/wpad.dat у меня не открывался и не открывается ни при каких условиях, открывается только с доменом если на  http://wpad.pfsense.lan/wpad.dat.  Мне в принципе, плевать, какую версию ставить, можно к мануалу прировняться.- но опять же дичь. Захочешь обновить- всё накроется)) Тут походу в шапке ЛЮБОГО мануала к pfsensу надо пейсать Огромными буквами версию. И не менее огромными буквами предупреждать, что с вероятностью в 80% в следующей версии это ничего работать не будет))



  • Вы хотите добавить функционал, не доступный из коробки, вот и приходится извращаться.
    Вот неплохие статьи про wpad для общего развития
    https://interface31.ru/tech_it/2016/05/wpad-ili-avtomaticheskaya-nastroyka-parametrov-proksi.html
    https://m.habrahabr.ru/post/314918/



  • Jetberry

    "[] Enable SSL filtering." Вот в этом поле флаг (галка) нужно убрать.

    Интересно, зачем нужен прокси, если фильтрации нет?



  • @smils:

    Jetberry

    "[] Enable SSL filtering." Вот в этом поле флаг (галка) нужно убрать.

    Интересно, зачем нужен прокси, если фильтрации нет?

    Фильтрация есть, только этот веб-интерфейс не актуален для современного сквида. Сквид сам фильтрует.



  • @Jetberry:

    Вот статья про редактирование web-gui https://awesomediocrity.wordpress.com/2017/06/05/confine-webinterface-to-ssh-only-on-pfsense-2-4/, а тут как конфигурировать nginx https://nginx.ru/ru/docs/beginners_guide.html. Вам нужно найти в /var/etc/nginx-webConfigurator.conf в блоке server 80 порт вам нужно указать статическое содержимое (место обитания dat-файла). Я так думаю  ;)

    Я так пока не пробовал, но вернул вебморду pf обратно на 80 порт. http://wpad/wpad.dat работает и файлы оттуда забирать могёт.  Но не могу врубиться, как настроить в таком случае фаерволл.
    При поставленной галке в браузере клиента "получать автонастройку прокси" валится такое в states

    LAN tcp 172.16.10.10:1950 -> 172.168.10.254:3128 CLOSED:SYN_SENT 3 / 0 156 B / 0 B
    WAN tcp 10.0.2.15:8830 (172.16.10.10:1950) -> 172.168.10.254:3128 SYN_SENT:CLOSED 3 / 0 156 B / 0 B
    LAN tcp 172.16.10.10:1951 -> 172.168.10.254:3128 CLOSED:SYN_SENT 3 / 0 156 B / 0 B
    WAN tcp 10.0.2.15:17559 (172.16.10.10:1951) -> 172.168.10.254:3128 SYN_SENT:CLOSED 3 / 0 156 B / 0 B
    LAN tcp 172.16.10.10:1952 -> 172.168.10.254:3128 CLOSED:SYN_SENT 3 / 0 156 B / 0 B
    WAN tcp 10.0.2.15:61226 (172.16.10.10:1952) -> 172.168.10.254:3128 SYN_SENT:CLOSED 3 / 0 156 B / 0 B
    LAN tcp 172.16.10.10:1953 -> 172.168.10.254:3128 CLOSED:SYN_SENT 3 / 0 156 B / 0 B
    WAN tcp 10.0.2.15:49685 (172.16.10.10:1953) -> 172.168.10.254:3128 SYN_SENT:CLOSED 3 / 0 156 B / 0 B

    Если ставлю проксю вручную -всё работает и фильтруется, блоченые сайты не пущаются.

    В фаерволле походу уже напорол дичи, но прикреплю картинку. Посмотрите, пожалуйста.

    адрес wpad начал резолвиться с клиента, когда ему насильственно в настройках днса велел дописывать суффикс домена.

    ЗЫ: У меня в качестве клиента стоит винда хр неизвестного происхождения, там я не нашел службы автоматического обнаружения веб-прокси winhttp.  Должна быть?




  • Без схемы сети не смогу разобраться. Схема (рисунок) нужен. У вас 3 частные сети, у pfsense были проблемы с маршрутизацией и/или NAT между частными сетями. А у вас их 3! Откуда? Зачем? winhttp должен быть, Win XP с последним сервис паком используйте, т.е. вообще не используйте его. Вы чего? Win 7 уже устарела.
    Вы же свой pac-файл используете, а не тот который я привел? В моем частные сети не идут через прокси, а идут напрямую.



  • Да,  я уже сам запутался.  Сегодня ещё не успел нормально заняться, отвлекали весь день.  Я, наверное, снесу, заново всё построю.  А где третья сеть у меня?  172.16 это локалка,  а 10.0 это wan,  натом на реальную сетевуху.  Пф на виртуалбоксе вертится и клиент там же во внутренней сети.  Дистриба не было под рукой нормального,  вот и левый хр заюзал.  Хотя в конторе добрая половина компов на хп,  потихоньку избавляемся,  но парк очень большой.



  • @Jetberry:

    @smils:

    Jetberry

    "[] Enable SSL filtering." Вот в этом поле флаг (галка) нужно убрать.

    Интересно, зачем нужен прокси, если фильтрации нет?

    Фильтрация есть, только этот веб-интерфейс не актуален для современного сквида. Сквид сам фильтрует.

    SquidGurd установлен ?



  • @smils:

    @Jetberry:

    @smils:

    Jetberry

    "[] Enable SSL filtering." Вот в этом поле флаг (галка) нужно убрать.

    Интересно, зачем нужен прокси, если фильтрации нет?

    Фильтрация есть, только этот веб-интерфейс не актуален для современного сквида. Сквид сам фильтрует.

    SquidGurd установлен ?

    В моем случае (всё работает) нет



  • @der_violette_igel:

    А где третья сеть у меня?

    Показалось  :)



  • @Jetberry:

    @der_violette_igel:

    А где третья сеть у меня?

    Показалось  :)

    А может можно как-нибудь другими средствами неугодные сайты поблокировать? В фаерволле, например, и алиасами понасовать туда клиентов? И к лешему может тогда этот прокси? Какие у меня ещё варианты есть?



  • pfSense это и есть фаервол. Прокси это не только блокировка сайтов, но в первую очередь безопасность и мониторинг. Можно на уровне dns или в hosts прописать неугодные сайты и сопоставить им 127.0.0.1, но это детский сад. На выходных если все будет спокойно подыму на стенде и напишу вам инструкцию в картинках



  • @Jetberry:

    pfSense это и есть фаервол. Прокси это не только блокировка сайтов, но в первую очередь безопасность и мониторинг. Можно на уровне dns или в hosts прописать неугодные сайты и сопоставить им 127.0.0.1, но это детский сад. На выходных если все будет спокойно подыму на стенде и напишу вам инструкцию в картинках

    Если использовать SquidGuard будет работать по вашему способу?



  • @smils:

    @Jetberry:

    pfSense это и есть фаервол. Прокси это не только блокировка сайтов, но в первую очередь безопасность и мониторинг. Можно на уровне dns или в hosts прописать неугодные сайты и сопоставить им 127.0.0.1, но это детский сад. На выходных если все будет спокойно подыму на стенде и напишу вам инструкцию в картинках

    Если использовать SquidGuard будет работать по вашему способу?

    Это не "мой способ". Должен.



  • Это не "мой способ". Должен.

    Так то оно так. Но по вашему фильтруем https  без галки фильтровать https. глаз задергался от такой казуистики.
    так что это ваш способ.



  • Нет никакой казуистики. Флаг относится к разделу "SSL Man In the Middle Filtering", а не к фильтрации https как таковой.


Log in to reply