«Прозрачный» Squid с фильтрацией HTTPS ресурсов без подмены сертификатов (x86)

Не секрет, что в больших конторах тема фильтрации Интернета довольно актуальная. С этой задачей справляется немало программных и аппаратных решений. Но в настоящее время все те сайты, которые мы резали ранее, работают по протоколу HTTPS, т.е. порт 443. Как известно, данный протокол проследить, прослушать и т. п., невозможно. А любой кеширующий фильтрующий прокси-сервер, редиректор и т. п. фильтрует только HTTP, т.е. порт 80. Как же резать Вконтакте, Одноклассники, iphide.info и многие другие подобные сайты? Как блокировать доступ к личной почте в организации, если использование оной запрещено порядками в организации? Да, можно фильтровать по IP адресам, но они частенько меняются, да и на многих ресурсах несколько IP адресов. Блокировать их на уровне файрвола как-то совсем не православное решение, и не совсем удобное.

И вот, совсем недавно, мне один товарищ рассказал, что он поднимает у себя в конторе кеширующий прокси с фильтрацией HTTPS, меня это заинтересовало.

А поднимал он Squid 3.5.8. Как выяснилось, в нем переработана организация перехвата шифрованных HTTPS-сеансов (ssl_bump), вместо режимов перехвата («modes») введены в обиход действия («actions»), которые в том числе можно использовать в ACL. Режим «server-first», при котором вначале осуществляется соединение с целевым сервером, а потом создаётся защищённое соединение между клиентом и прокси, теперь доступен как действие «bump». Режим «none», при котором создаётся TCP-туннель без дешифровки трафика, теперь доступен как действие «splice».

Для обеспечения обратной совместимости добавлено действие «peek-and-splice», при котором решение о типе создаваемого вначале соединения (клиент-прокси или прокси-сервер) принимается на основе SSL hello-сообщений. Добавлены действия «peek» и «stare» для получения клиентского или серверного сертификата с сохранением возможности дальнейшего применения режимов «splice» и «bump» для соединений. Добавлено действие «terminate» для закрытия соединений к клиенту или серверу. Вот как раз SSL BUMP, PEEK-and-SPLICE и Terminate нам и нужны. Вообще, схема работы на самом деле довольно простая. Squid подключается к HTTPS ресурсу, получает его сертификат, и может «посмотреть» некоторые данные о ресурсе, в частности имя сервера, которое нам как раз и нужно для блокировки! Все мануалы, которые есть в Интернете, то и дело описывают Man in the middle (MITM) атаку с подменой сертификатов, при которой в принципе не работают некоторые сайты и банк-клиенты, да и юзеры явно видят, что за ними следят. Мы же с товарищем совместными усилиями добились сбособа фильтрации и отслеживания HTTPS без подмены сертификатов, без MITM и прочего, и все это в прозрачном режиме без настройки браузеров!

Впоследствии я столкнулся с некоторыми сложностями, в частности Squid начинал сегфолтиться на большой нагрузке. Но проблема была решена. Дело в том, что в Openssl имеются кое какие баги, которые исправлены в библиотеке Libressl. Поэтому необходимо сначала интегрировать в систему Libressl, потом уже после внесения патча в файл bio.cc в исходниках Squid приступать к компиляции последнего. Поехали! Оговорюсь, что у меня используется дистрибутив Debian Jessie x86, и Squid я в итоге собрал версии 3.5.9 (последняя на данный момент версия), и статья рассчитана на более-менее опытного пользователя Linux, так как некоторые моменты опускаются, а говорится лишь самое главное, так как мне лень все разжевывать.
Для начала, подготовимся к сборке пакетов:

apt-get install git fakeroot build-essential devscripts
apt-cache policy squid3
apt-get build-dep squid3
apt-get build-dep libecap2
apt-get install libssl-dev libgnutls28-dev

Не забудьте перейти в ту папку, где вы будете собирать исходники, чтобы не засрать себе Хоум. Далее скачаем, скомпилируем и установим Libressl:

wget http://ftp.openbsd.org/pub/OpenBSD/LibreSSL/libressl-2.1.6.tar.gz
tar -xzvf libressl-2.1.6.tar.gz
cd libressl-2.1.6

Собираем и устанавливаем, после чего перечитаем хеши библиотек:

./configure
make
checkinstall --pkgname libressl --pkgversion 2.1.6
dpkg -i libressl_2.1.6-1_i386.deb
ldconfig

Ну и надо настроить использование LibreSSL по-умолчанию:

mv /usr/bin/openssl /usr/bin/openssl-1
update-alternatives --install /usr/bin/openssl openssl /usr/bin/openssl-1 10
update-alternatives --install /usr/bin/openssl openssl /usr/local/bin/openssl 50
update-alternatives --config openssl

Проверим, получилось ли поставить Libressl:

openssl version
    LibreSSL 2.1.6

Получилось!

После выполнения этих действий, необходимо отредактировать sources.list, включив туда исходники из ветки testing (это необходимо, так как нам нужно компилировать новый libecap, который в свою очередь необходим для сборки Squid):

deb-src http://ftp.de.debian.org/debian/ testing main contrib non-free

Обновим кеш пакетов:

apt-get update

А теперь скачаем из Testing нужные исходники:


apt-get source squid3/testing
apt-get source libecap3/testing

Далее соберем libecap:

cd libecap-1.0.1/
dpkg-buildpackage -us -uc -nc -d

Удалим старье, и установим новье:

apt-get purge libecap2
dpkg -i libecap3_1.0.1-2_i386.deb
dpkg -i libecap3-dev_1.0.1-2_i386.deb

Качаем последний самый свежий и работающий снэпшот Squid'a:

wget http://www.squid-cache.org/Versions/v3/3.5/squid-3.5.8.tar.gz

Обновим полученные ранее исходники Squid'a до новых, и далее будем работать уже в директории с новоиспеченными исходниками:

cd squid3-3.5.7/
uupdate -v 3.5.8 ../squid-3.5.8.tar.gz
cd ../squid3-3.5.8/

Чтобы все нужные нам плюшки заработали, надо компилировать Squid с нужными опциями, поэтому внесем в debian/rules следующие опции компиляции:

--enable-ssl
--enable-ssl-crtd
--with-openssl

Скачаем патч для bio.cc, который нужен для корректной работы с Libressl, отсюда bugs.squid-cache.org/attachment.cgi?id=3216 и применим его

patch -p0 -i bug-4330-put_cipher_by_char-t1.patch

Теперь можно приступать к компиляции и сборке Squid'а. Но не так быстро! Все скомпилируется без проблем, по крайней мере на х86 архитектуре, но в самом конце, на этапе сборки пакетов deb, вам любезно скажут в консоли: «ай ай ай, не могу понять, какие зависимости нужны для libssl.so.32» (это версия библиотеки из Libressl). Оно и понятно, откуда Debian'у знать о ней. Мы обманем систему, указав опцию «не проверять зависимости», вот так:

export DEB_DH_SHLIBDEPS_ARGS_ALL=--dpkg-shlibdeps-params=--ignore-missing-info

А вот теперь приступим к компиляции и сборке:

dpkg-buildpackage -us -uc -nc

После сборки установим пакет с языками для Squid'a:

apt-get install squid-langpack

Далее установим новоиспеченные пакеты:

dpkg -i squid-common_3.5.8-1_all.deb
dpkg -i squid_3.5.8-1_i386.deb
dpkg -i squid3_3.5.8-1_all.deb
dpkg -i squidclient_3.5.8-1_i386.deb

Если система заматерилась на неудовлетворенные зависимости, сделаем:

apt-get -f install

Почти готово. Перейдем в каталог /etc/squid, кое-что там изменим. Создадим pem файлик, необходимый для SSL-Bump'инга:

openssl req -new -newkey rsa:1024 -days 365 -nodes -x509 -keyout squidCA.pem -out squidCA.pem

И приведем squid.conf к следующему виду:

acl localnet src 192.168.1.0/24	# RFC1918 possible internal network

acl SSL_ports port 443
acl Safe_ports port 80		# http
acl Safe_ports port 21		# ftp
acl Safe_ports port 443		# https
acl Safe_ports port 70		# gopher
acl Safe_ports port 210		# wais
acl Safe_ports port 1025-65535	# unregistered ports
acl Safe_ports port 280		# http-mgmt
acl Safe_ports port 488		# gss-http
acl Safe_ports port 591		# filemaker
acl Safe_ports port 777		# multiling http
acl CONNECT method CONNECT

dns_nameservers 8.8.8.8
http_access deny !Safe_ports

http_access deny CONNECT !SSL_ports

http_access allow localhost manager
http_access deny manager

http_access allow localnet
http_access allow localhost
http_access deny all

#прозрачный порт указывается опцией intercept
http_port 192.168.1.254:3128 intercept options=NO_SSLv3:NO_SSLv2

#также нужно указать непрозрачный порт, ибо если захотите вручную указать адрес
#прокси в браузере, указав прозрачный порт, вы получите ошибку доступа, поэтому нужно
#указывать непрозрачный порт в браузере, если конечно такое желание будет, к тому же в логах #сыпятся ошибки о том, что непрохрачный порт не указан=) 
http_port 192.168.1.254:3130 options=NO_SSLv3:NO_SSLv2 

#и наконец, указываем HTTPS порт с нужными опциями
https_port 192.168.1.254:3129 intercept ssl-bump options=ALL:NO_SSLv3:NO_SSLv2 connection-auth=off cert=/etc/squid/squidCA.pem

always_direct allow all
sslproxy_cert_error allow all
sslproxy_flags DONT_VERIFY_PEER

#укажем правило со списком блокируемых ресурсов (в файле домены вида .domain.com)
acl blocked ssl::server_name  "/etc/squid/blocked_https.txt"
acl step1 at_step SslBump1
ssl_bump peek step1

#терминируем соединение, если клиент заходит на запрещенный ресурс
ssl_bump terminate blocked 
ssl_bump splice all

sslcrtd_program /usr/lib/squid/ssl_crtd -s /var/lib/ssl_db -M 4MB

coredump_dir /var/spool/squid
refresh_pattern ^ftp:           1440    20%     10080
refresh_pattern ^gopher:        1440    0%      1440
refresh_pattern -i (/cgi-bin/|\?) 0     0%      0
refresh_pattern .               0       20%     4320
cache_dir aufs /var/spool/squid 20000 49 256
maximum_object_size 61440 KB
minimum_object_size 3 KB

cache_swap_low 90
cache_swap_high 95
maximum_object_size_in_memory 512 KB
memory_replacement_policy lru
logfile_rotate 4



Немного расскажу про конфиг. Документация по ssl_bump, peek-n-splice довольно обширная, но для нашей задачи необходимо знать следующее. Есть несколько этапов «handshaking» (т.е. рукопожатие, взаимодействие с сервером). Описаны они в оф.документации. Нас интересует пример Peek at SNI and Bump. То есть, как следует из названия, мы смотрим SNI-информацию и бампим соединение. Перед этим, мы указываем опцией DONT_VERIFY_PEER, что необходимо принимать сертификаты даже, если они не прошли проверку и опцией sslproxy_cert_error указываем, что нужно отключить проверку сертификатов на сервере. Указанное правило «acl step1 at_step SslBump1» — это есть первый из трех возможных шагов ssl_bump'а. При выполнении этого шага мы получаем только SNI, и ничего более. Нам этого достаточно. Дальше мы используем этот ACL строкой ssl_bump peek step1, то есть непосредственно смотрим SNI, а уже после этого блокируем соединение, если в SNI найден server_name из списка blocked.


Далее завернем файрволом нужные порты на Squid:

iptables -t nat -A PREROUTING -p tcp -m tcp -s 192.168.1.0/24 --dport 443 -j REDIRECT --to-ports 3129
iptables -t nat -A PREROUTING -p tcp -m tcp -s 192.168.1.0/24 --dport 80 -j REDIRECT --to-ports 3128

Все готово! Можно торжественно запускать Squid:

systemctl start squid

Посмотрим, все ли со Squid'ом нормально:

systemctl status squid
● squid.service - LSB: Squid HTTP Proxy version 3.x
   Loaded: loaded (/etc/init.d/squid)
   Active: active (running) since Сб 2015-09-26 21:09:44 YEKT; 2h 6min ago
  Process: 1798 ExecStop=/etc/init.d/squid stop (code=exited, status=0/SUCCESS)
  Process: 1818 ExecStart=/etc/init.d/squid start (code=exited, status=0/SUCCESS)
   CGroup: /system.slice/squid.service
           ├─1850 /usr/sbin/squid -YC -f /etc/squid/squid.conf
           ├─1852 (squid-1) -YC -f /etc/squid/squid.conf
           ├─1853 (logfile-daemon) /var/log/squid/access.log
           └─1854 (pinger)

сен 26 21:09:44 squid squid[1850]: Squid Parent: will start 1 kids
сен 26 21:09:44 squid squid[1850]: Squid Parent: (squid-1) process 1852 started
сен 26 21:09:44 squid squid[1818]: Starting Squid HTTP Proxy: squid.

Если ошибок нет, можно работать. К сожалению, при блокировке HTTPS ресурсов, не появляется сообщение Squid'a «Доступ запрещен», а вместо этого браузер выдает ошибку о невозможности создания соединения. Если кто-то подскажет, как это сделать, буду очень рад.

UPD: в версии Кальмара, которую компилировал я изначально, т.е. 3.5.9, найден досадный баг (или фича), из-за которого спустя время перестают открываться некоторые HTTPS сайты. Решение: компилировать версию 3.5.8.

UPD2: создал очередной багрепорт по проблеме в 3.5.9, тему буду обновлять, если что-то прояснится.
UPD3: вышла версия 3.5.10 с исправленными багами, по крайней мере, патч на файл bio.cc там уже применен. Не тестировал пока-что
UPD4: подредактировал статью немного.
UPD5: прямая ссылка для скачивания архива со всеми нужными пакетами (SQUID 3.5.8), пока-что это единственная рабочая версия! Остальные, которые версиями выше, имеют баг, из-за которого Squid перестает работать при прозрачном проксировании HTTPS. ВЕРСИЯ ДЛЯ Х86!!!


ВНИМАНИЕ!!! Во избежание недоразумений, ставьте версию 3.5.8! На ней нет никаких проблем, и если сделано все точно по статье, то все будет работать! Если ставите версию выше, то я не гарантирую правильной работы прозрачной фильтрации!

Очередное Update!!! в src-репозитарии Debian Testing теперь 3.5.10!!! добавляйте в sources.list src-репозитарий squeeze. Там версия 3.1, но ничего страшного, все обновится до версии 3.5.8 как надо, только пути к каталогам измените в соответствии с версией скачанных исходников!

UPD 02.12.15: Я прошу прощения, если заставил кого-то костылить. Перезалил архив squid 3.5.8, там не хватало одного deb пакета! squid 3.5.8_all.

UPD 02.12.15: Внимание! Если у вас проблема с установкой libressl, то нужно сделать так: сначала поставить openssl, а затем уже ставить libressl (если ставите версию из архива с пакетами, то не забывайте сделать замену openssl на libressl, как в статье!). Это решит проблему «невидения» библиотеки libssl.so.32

UPD 10.12.15: Появилась следующая версия статьи, с немного другим подходом к компиляции Кальмара и сборке пакетов. Вот тут

UPD 14.12.15: спешу поделиться с коллегами отличной новостью! Я нашел способ заставить работать новые версии Squid'а без особых танцев с бубном! Необходимо, чтобы у клиентов и в настройках Squid'а были одинаковые DNS! В моем случае, на шлюзе с Кальмаром крутится Bind. Назначил клиентам именно его, и Кальмару директивой:

dns_nameservers 127.0.0.1
. После чего все успешно заработало. Проверено на Squid 4.0.3, собрана БЕЗ Libressl!


UPD 14.12.15: не знаю почему, но в данный момент на Debian 8.2 при сборке Squid'a описанным выше способом выдается сообщение о том, что файл mime.conf не найден. И действительно, ведь в исходниках Кальмара есть mime.conf.default. Я нашел решение. Необходимо отредактировать два файлика:
1) debian/squid-common.install, и привести строку

etc/squid/mime.conf

в такой вид:

etc/squid/mime.conf.default

2) Также необходимо сделать так, чтобы после установки пакета файл переименовался автоматом в «сквидочитаемый вид», т.е. в mime.conf. Для этого отредактируем файл debian/squid-common.postinst, приведя его в такой вид:


#! /bin/sh

set -e

case "$1" in
        configure)
mv /etc/squid/mime.conf.default /etc/squid/mime.conf
...........

То есть добавим строку переименования файла, а остальное оставляем, как есть, не трогаем.
Все, после этого формируем пакеты, они сформируются и поставятся.

UPD 19.06.17: так как у меня спёрли домен linux-admin.tk, пришлось создать новый, уже «нормальный» домен, соответственно ссылку на скачивание архива изменил.

UPD 04.05.18: написал новую статью, где решается проблема глюков новых версий Squid + в логах красивые доменные имена вместо ip адресов + обход блокировок РКН.

Хочу сказать спасибо товарищу Дмитрию Рахматуллину, без него бы не получилось сделать то, что написано выше. Также, отдельное спасибо разработчикам Squid'а, которые оперативно ответили на мой баг-репорт об ошибке в libssl. И спасибо ребятам Nadz Goldman и gmax007 с Тостера, которые направили в нужное русло мои идеи по переносу Squid'а на физически отдельный от основного шлюза сервер.
Поделиться публикацией
Ой, у вас баннер убежал!

Ну. И что?
Реклама
Комментарии 135
  • НЛО прилетело и опубликовало эту надпись здесь
    • 0
      Я с Вами согласен, Вы скорее всего клоните в сторону блокировки по DNS. Но первоочередная задача отслеживать посещение ресурсов, а не просто блокировать. Мне необходимо производить аудит посещаемых сайтов. Работаю я с серверами на Линуксе, а Squid — это единственный пригодный прокси-сервер с нужными мне возможностями.

      З.Ы.: по производительности скажу следующее:
      в конторе over 200 пользователей (одна площадка, планирую подключить еще 3 площадки, добавится еще около 100 клиентов), Squid 3.5.8 прекрасно себя чувствует на 2 ядрах с 2 Гигами
      • НЛО прилетело и опубликовало эту надпись здесь
        • 0
          Верно, все идет к этому. Но и просто даже посмотреть список посещаемых HTTPS ресурсов, как его получить, если не бампить SSL соединение? Смотреть сторонними утилитами типа tcpdump — это муторно, а здесь удобные логи с вебмордой для просмотра. Поправьте, если я не прав. У нас браузеры статически не настроены на Proxy. Полностью прозрачный режим.
          • НЛО прилетело и опубликовало эту надпись здесь
            • +1
              при статически настроенном в браузере адресе прокси?
              • НЛО прилетело и опубликовало эту надпись здесь
                • 0
                  в том и дело! статически настроенный браузер — это не проблема, и в статье не освещается…
                  цель — прозрачный прокси с нужными функциями
                  • 0
                    статически настроенный браузер

                    Можно еще wpad как я сделал и закрыть 443 порт. Хочешь интернет — включай прокси.
                    • 0
                      Firefox у нас везде установлен. Если бы все было так просто, я бы не мучился с компиляцией Кальмара
                      • 0
                        у Firefox есть проблемы? У нас работают. Сделал раздачу по DHCP и DNS и все.
                        • 0
                          когда изначально стоит галка «Не использовать прокси», то да
                          • 0
                            Хочешь интернет — включай прокси.
                            • 0
                              нет нет, идея-то хорошая) но я сомневаюсь, что наши бабули смогут включить прокси, даже если им объяснить, как это сделать.
                              • 0
                                Я делал сайтик с пошаговой инструкцией для разных браузеров. Еще для особых случаев использовал удаленное управление. Таким образом перевел парк в 100-150 пользователей. Заняло неделю. Если был бы AD было бы быстрее конечно.
                        • НЛО прилетело и опубликовало эту надпись здесь
                          • 0
                            Firefox изначально настроен на «не использовать прокси», политики AD Firefox не подхватывает.
                            • НЛО прилетело и опубликовало эту надпись здесь
                              • 0
                                Статью нашел, прочитал. Если оно работает, это замечательно, надо будет проверить. Но опять же. Тема статьи — прозрачный прокси-сервер)
                                • 0
                                  Статью нашел, прочитал. Если оно работает, это замечательно, надо будет проверить. Но опять же. Тема статьи — прозрачный прокси-сервер)
                        • 0
                          То есть суть новшеств в том, что сейчас возможна работа HTTPS в прозрачном режиме прокси, что раньше было невозможно.
                          • 0
                            мало того, что в прозрачном режиме! используется новая технология peek-and-splice, которая позволяет бампить ssl без подмены сертификатов, т.е. без MITM атаки
            • +1
              1000 пользователей — проблем никаких, только при использовании LDAP\Kerberos количество хелперов нужно увеличить.
              • 0
                про хелперы все верно, когда в предыдущей конторе поднимал Кальмара, делал авторизацию, и тоже пришлось кол-во хелперов увеличить
            • 0
              А любой кеширующий фильтрующий прокси-сервер, редиректор и т. п. Фильтрует только HTTPS
              Опечатка?
              • 0
                Спасибо, поправил! Конечно же, HTTP
              • 0
                > К сожалению, при блокировке HTTPS ресурсов, не появляется сообщение Squid'a «Доступ запрещен»
                Вы попадаете вот сюда:
                ssl_bump terminate blocked

                Думаю, можно не делать terminate, а сделать
                http_access deny blocked

                Попробуйте, вдруг поможет.
                • +1
                  http_access действует только для HTTP, но никак не для HTTPS, в том то и дело
                  • 0
                    Проверяли? интересно как реагирует сквид. Ошибка на этапе парсинга конфига или во время работы (запустите squid -N -d 99 -f /path/to/squid.conf и возможно это добавит больше подробностей)
                    Некоторое время назад я докапывался до некоторых особенностей работы сквида в т.ч. изучением исходников, и у меня сложилось мнение, что запрос «растуннеливается», а затем идёт по стандартной для HTTP схеме.
                    Я могу ошибаться, но есть версия, что если запросы попадающие в ACL «blocked» всё-таки растуннелить (bump), http_access сработает.
                    Надеюсь, чем мог, тем помог.
                    • +1
                      хм, я проверю завтра на работе, спасибо. Хотя судя по документации эта директива работает только для HTTP
                      • +1
                        И все же, вот кусочек из оф.документации по peek-n-splice:
                        " At no point during ssl_bump processing will dstdomain ACL work. That ACL relies on HTTP message details that are not yet decrypted. An ssl::server_name acl type is provided instead that uses CONNECT, SNI, or server certificate Subject name (whichever is available)."
                        • +1
                          ради интереса все-таки проверил, нет, не работает
                          • 0
                            Спасибо за эксперимент и ваше время!
                            Всё-таки получается, что сквид в такой конфигурации (splice) растуннеливает только до предъявленного сертификата с обоих сторон, а сам обмен как был зашифрован, так и остаётся.
                            Если это так, и я правильно понял доку wiki.squid-cache.org/Features/SslPeekAndSplice и то после
                            ssl_bump bump blocked
                            http_access может и сработать.

                            PS мне стало интересно и я это проверил: в настройке, которая без разбора делает «bump на всё» https_access deny сработал(как и ожидалась, произошла подмена сертификата о чем браузер выдал предупреждение).
                            • 0
                              Всё-таки получается, что сквид в такой конфигурации (splice) растуннеливает только до предъявленного сертификата с обоих сторон, а сам обмен как был зашифрован, так и остаётся.
                              Нет там «растуннелирования», как вы выразились. Просто squid парсит client hello и server hello.
                              • 0
                                Не за что. Нет, Вы не совсем правильно все поняли. Все, что относится к SSl, не работает с правилами http_access. Имя сервера (ну или имя домена, если уж совсем грубо) из SSL можно извлечь только из ssl::server_name, и http_access не работает с этой директивой, на то он и HTTP_access
                          • 0
                            у меня на данный момент http_access блокирует https сайты или я не правильно вас понял
                            • 0
                              Режим работы Вашего прокси? И покажите конфиг, очень интересно
                              • 0
                                Отвечу сам, раз Вы не хотите с нами поделиться) У Вас прокси настроен статически в браузере
                          • 0
                            Спасибо за ценный мануал! Добавил добра в карму.
                            Ещё прошу подсказать чем анализируете логи squid.
                            • +1
                              Спасибо и Вам! Для анализа логов поставил LightSquid. Показался мне более производительным
                              • +1
                                Так же использую LightSquid. Еще дописал на php для просмотра индивидуального отчета.

                                image
                                • 0
                                  интересно… На Гитхабе случаем нет исходников?)
                                  • 0
                                    нет я на коленке собрал. Вам отправлю в личку, кому еще нужно пишите в личку.
                                    • 0
                                      благодарю! попробую сегодня
                            • 0
                              А исходящие VPN-соединения для пользователей у вас зарезаны?
                              • 0
                                VPN не зарезан, более того, площадки связаны в единую сеть по Openvpn. Блокировать незачем. VPN никто поднять не сможет, так как не смогут установить ПО для этих дел. Политиками GPO запрещен запуск любых программ с любых директорий, кроме Windows и Program files, а установить в них что-то не хватит прав
                                • 0
                                  Зарежьте PPTP и L2TP, их на дефолтной политике можно поднять и с пользовательскими правами. Ну и SSTP, и ним может быть сложнее.
                                  • 0
                                    Странно. Но у нас обычный пользователь не может создать PPTP и L2TP без прав администратора, при дефолтных политиках GPO
                                    • 0
                                      Смотрите ветку «Конфигурация пользователя» -> «Политики» -> «Административные шаблоны» -> «Сеть» -> «Сетевые подключения».
                                      Примерный пункт «Запрет доступа к мастеру новых подключений».
                                  • +1
                                    На спор обеспечу себе приемлемый транспорт с помощью содержимого Windows и Program Files.
                                    • 0
                                      Вы обеспечите. А вот наши пользователи вряд ли. Большинство пользователей мужчины и женщины за 40, которые в компьютерных познаниях не очень
                                      • –3
                                        Научу большинство ваших пользователей, и мужчин, и женщин за 40, которым хочется в одноклассники/вконтакте, как получить к нему доступ без особых затруднений и адского админского конфу.

                                        Обращайтесь.
                                        • 0
                                          Я не сомневаюсь. Я тоже умею поднимать туннели. Но все же, как относятся Ваши комментарии к теме поста?
                                          • 0
                                            А я это и без туннелей сделаю. hint: noVNC — наше всё.

                                            А комментарии относятся к попыткам контроля интернетов.
                                            • –1
                                              Зачем такая сложность?
                                              www.google.com/search?q=https+web+proxy
                                              И все. Совсем все.
                                              • 0
                                                Упс, моя вина. Не проверил. Своременные контактики так усложнились, что уже не работают через вебпрокси
                                                • 0
                                                  а ничего, что данная статья про блокировку и отслеживание переходов по https?
                                                  • –2
                                                    Cтатья про то, что админу хочется блокировать некоторые сайты, что трудно реализуемо ввиду https. Веб прокси совершенно нормально обходит эту проблему, чем делает всю эту возню бесполезной. Единственное утешение админу- это то, что вконтактик и иже с ним сами себя блокируют (как я понимаю, защита авторизации от MITM, чем, по сути, веб прокси и является).
                                                    З.ы. Фейсбучек все-таки работает. Хоть и урезанный.
                                                    • 0
                                                      я все равно не понимаю, о чем Вы говорите. Squid нормально отлавливает ваши https веб прокси, и нормально их блокирует, к чему Вы ведете разговор? Статья о том, как такие сайты отслеживать и блокировать
                                                      • –2
                                                        Вы предлагаете заблокировать гугл?
                                                        Вы нажимали ссылку в моем комментарии?
                                                        • 0
                                                          Вы читали статью? Что мешает МНЕ, как системному администратору, отслеживать в реальном времени (да и не в реальном) и заблокировать https веб-прокси?
                                                          • –2
                                                            Ну успехов вам в этом деле.
                                                            Вы действительно админ или просто теоретически рассуждаете?
                                                            • 0
                                                              Нет, я пекарь. Я, действительно, не понимаю ход Ваших мыслей.
                                                              Мне ничто оне мешает пару раз в неделю открыть статистику и посмотреть https сайты, которые посещали сотрудники, и нажать напротив нужных «Добавить в блок-лист». Занимает 10-15 минут. Или Вы думаете, что https веб-прокси настолько много. что их нельзя добавить в блок-лист? Вы ОШИБАЕТЕСЬ, и Вы действительно теоретически рассуждаете. И Вы так и не ответили на вопрос: Вы читали статью?
                                                              • 0
                                                                и минусовать в карму совсем не обязательно…
                                  • +1
                                    Простите за возможно дурацкий вопрос, ибо не всё понял…

                                    Так вся эта конструкция понимает SNI или нет?
                                    • 0
                                      Да, понимает. Этапа step1 достаточно для понимания SNI-info, иначе бы не работал метод terminate для запрещенных хостов. Кстати, server_name берется как раз из SNI
                                      • 0
                                        Тогда можно еще раз на пальцах и подробнее объяснить поэтапно что происходит в момент запроса урла по https и как происходит блокировка?
                                        • 0
                                          происходит все вот так, говоря простыми словами: клиент запрашивает https ресурс, Кальмар представляется браузером, подключается к ресурсу, вытаскивает SNI-info и далее на основании правил и данных SNI происходит блокировка. Если же блокировать ресурс не нужно, Кальмар передает соединение клиенту без подмены сертификата
                                          • 0
                                            А если я (как обладатель сайта) хочу чтобы он был совсем совсем секьюрным, и чтобы никто (такой как Вы (= ) даже не смог понять, что его юзеры ходят ко мне, я беру отдельный сервер с отдельным IP под свой сайт и хостю его на нём. Теперь никакой SNI мне не нужен.
                                            А клиенты всё так же и будут слать в SNI имя сервера в TLS Handshake Hello пакетах? Как мне заставить их не «палить» имя сервера в SNI?
                                            Или современные браузеры все поголовно делают это по дефолту?
                                            Спасибо!
                                            • 0
                                              Пообщался с автором статьи в личке
                                              да, насколько мне известно, будет всегда посылаться, sni обязательно должен содержать SN, иначе не будет работать SSL.
                                      • +2
                                        Я бы сказал, на SNI все и завязано.
                                      • 0
                                        NO_SSLv3
                                        Вот тут все ещё немалую часть сайтов отрубите.
                                        • 0
                                          Может да, а может и нет. Какие сайты работают на SSLv3? Технология уже не поддерживается, насколько я знаю. Несколько дней тестирования, пока не жалуются)
                                          • +2
                                            Технология все ещё поддерживается, просто с неё стараются слезть и стащить других.
                                            SSLv3 сейчас есть у трети популярных сайтов за бугром (https://www.trustworthyinternet.org/ssl-pulse/).
                                            Какая-то часть этой трети серверов могут не иметь TLS1.х.
                                            У себя смотрите сами, просто имейте в виду, что могут быть и такие грабли.
                                            • 0
                                              спасибо, буду иметь в виду
                                        • 0
                                          «Мы же с товарищем совместными усилиями добились сбособа фильтрации и отслеживания HTTPS без подмены сертификатов, без MITM и прочего, и все это в прозрачном режиме без настройки браузеров!»
                                          К сожалению, принцип действия из статьи не понятен. Совсем.
                                          • 0
                                            В принципе, если посмотреть документацию Squid'a по peek-n-splice, то все станет понятно. Хорошо, я дополню статью, где подробно опишу все, что понял сам
                                          • +1
                                            Прэлэстно, прэлэстно. В одном месте собирается нормальный deb, а в другом —
                                            ./configure
                                            make
                                            make install
                                            ldconfig
                                            • 0
                                              собирается нормальный deb, потому что уже все подготовлено, так как скачаны исходники из репозитория Debian, где уже все прописано для создания пакетов, в случае с libressl ничего нет, и времени маловато, так что…
                                              • +1
                                                checkinstall
                                                • 0
                                                  попробую. Все же как обычно, сначала сделать, чтобы работало, а потом сделать красиво
                                            • 0
                                              acl whitehttps ssl::server_name "/etc/squid/white_https.txt"
                                              acl blocked ssl::server_name "/etc/squid/blocked_https.txt"
                                              acl step1 at_step SslBump1
                                              ssl_bump peek step1 !whitehttps
                                              ssl_bump terminate blocked
                                              ssl_bump splice all !whitehttps
                                              Не возьму в толк, что в этом случае происходит с хостами из whitelist'а? Просто splice? И как оно отрабатывает в строке ssl_bump peek step1 !whitehttps, если peek для получения server_name ещё не должен был пройти?
                                              • +1
                                                Да, спасибо, это так сказать, «пережитки прошлого». Заработался, не заметил. whitehttps в строке sl_bump peek step1 !whitehttps вообще не нужны, как и в ssl_bump splice all !whitehttps
                                              • 0
                                                sslproxy_flags DONT_VERIFY_PEER

                                                Вы не подвергаете своих пользователей опасности передать данные на левый ресурс?
                                                • 0
                                                  браузер в любом случае выдаст ошибку с сертификатом, к тому же у нас есть корпоративные ресурсы (и не корпоративные), где используются самоподписанные сертификаты, так что нам без этой опции не обойтись
                                                  • 0
                                                    подскажите как в вашей организации организованна документационная часть вопроса просмотра шифрованных сессий, ведь это считается атакой man in the middle? И прорабатывали ли вопрос использования валидного сертификата (интересно, есть ли какие либо проблемы)?
                                                    • 0
                                                      простите не внимательно прочел :(
                                                      • 0
                                                        хорошо, что заметили, что неправильно прочли) если интересно, то в прошлой конторе использовал MITM, но отказался от этой затеи спустя 2 дня. Для корректной работы нужен нормальный валидный сертификат, например от Comodo. Но организация бюджетная, там хаб купить было проблемой… А с самоподписанным сертификатом не открывались некоторые https ресурсы даже после подтверждения исключения безопасности
                                                        • 0
                                                          Обычно собственный root ca распространяется через политики gpo, тогда mitm будет виден только на тех сервисах, который используют certificate pinning.
                                                          • 0
                                                            контроллера домена там не было, так что GPO сразу отпадало, а так да. Вроде бы Гугл ругается на MITM, даже при условии, что root ca импортирован в хранилище
                                                            • НЛО прилетело и опубликовало эту надпись здесь
                                                              • 0
                                                                Можно добавить хосты, для которых используется cert pinning в whitelist/blacklist. Но придется контролировать список таких хостов, да.
                                                                • 0
                                                                  можно, но ИМХО, очень неудобно
                                                            • 0
                                                              было бы интересно узнать хоть 1 сервис использующий certificate pinning

                                                              Только не говорите, что всемогущий google это использует — я точно знаю что нет, не используют, покрайней мере для gmail.
                                                              Откуда я знаю? Недавно лечил ПК с очень занимательным вирусом, который ставил локальную https проксю, засовывал свой корневой сертификат в список корневых доверенных и все сайты с https проксировал через себя. Дак вот человек сидел на таком компе неделю и вирус все проксировал через себя и ни гуглхром ни мозилла ни пикнули, что при попытке зайти на их сайты по https соединение проксируется по подставному секртификату.
                                                              Человечек случайно понял, что беда какая-то с ПК, когда зашел на сайт банка и в строке сертификата не было написано BANK VTB24, а был самоподписной и валидный сертификат.

                                                              Так что certificate pinning если и работает, то только в приложениях на том же Android где в само приложение встраивается валидный сертификат. В случае Windows не представляю где certificate pinning может работать, в каких программах и на каких сервисах.
                                                              • НЛО прилетело и опубликовало эту надпись здесь
                                                  • 0
                                                    Кто нибудь поборол проблему подключения ICQ с такими настройками Squid как в статье (в настройках icq указан именно порт 443 и сервер login.icq.com)? По порту 5190 все работает без проблем.
                                                    У меня в упор не хочет подключаться аська и нельзя зайти через браузер на https://e.mail.ru/messages/inbox/ в режиме прозрачного проксирования. При этом без проблем открываются все сайты по https и работает jabber, vk и прочее по https.
                                                    • 0
                                                      Проблем нет, работает несколько шлюзов с такими же настройками. ОС? Версия Squid? Ваш список блокировки HTTPS? И конфиг Squid=)
                                                      • 0
                                                        Debian 8.2 Jessie

                                                        squid -v
                                                        Squid Cache: Version 3.5.10
                                                        Service Name: squid
                                                        Debian linux
                                                        configure options: '--build=x86_64-linux-gnu' '--prefix=/usr' '--includedir=${prefix}/include' '--mandir=${prefix}/share/man' '--infodir=${prefix}/share/info' '--sysconfdir=/etc' '--localstatedir=/var' '--libexecdir=${prefix}/lib/squid3' '--srcdir=.' '--disable-maintainer-mode' '--disable-dependency-tracking' '--disable-silent-rules' 'BUILDCXXFLAGS=-g -O2 -fPIE -fstack-protector-strong -Wformat -Werror=format-security -fPIE -pie -Wl,-z,relro -Wl,-z,now' '--datadir=/usr/share/squid' '--sysconfdir=/etc/squid' '--libexecdir=/usr/lib/squid' '--mandir=/usr/share/man' '--enable-inline' '--disable-arch-native' '--enable-async-io=8' '--enable-storeio=ufs,aufs,diskd,rock' '--enable-removal-policies=lru,heap' '--enable-delay-pools' '--enable-cache-digests' '--enable-icap-client' '--enable-follow-x-forwarded-for' '--enable-auth-basic=DB,fake,getpwnam,LDAP,NCSA,NIS,PAM,POP3,RADIUS,SASL,SMB' '--enable-auth-digest=file,LDAP' '--enable-auth-negotiate=kerberos,wrapper' '--enable-auth-ntlm=fake,smb_lm' '--enable-external-acl-helpers=file_userip,kerberos_ldap_group,LDAP_group,session,SQL_session,unix_group,wbinfo_group' '--enable-url-rewrite-helpers=fake' '--enable-eui' '--enable-esi' '--enable-icmp' '--enable-zph-qos' '--enable-ecap' '--enable-ssl' '--enable-ssl-crtd' '--with-openssl' '--disable-translation' '--with-swapdir=/var/spool/squid' '--with-logdir=/var/log/squid' '--with-pidfile=/var/run/squid.pid' '--with-filedescriptors=65536' '--with-large-files' '--with-default-user=proxy' '--enable-build-info=Debian linux' '--enable-linux-netfilter' 'build_alias=x86_64-linux-gnu' 'CFLAGS=-g -O2 -fPIE -fstack-protector-strong -Wformat -Werror=format-security -Wall' 'LDFLAGS=-fPIE -pie -Wl,-z,relro -Wl,-z,now' 'CPPFLAGS=-D_FORTIFY_SOURCE=2' 'CXXFLAGS=-g -O2 -fPIE -fstack-protector-strong -Wformat -Werror=format-security'


                                                        Правило для iptables для 443 порта
                                                        iptables -t nat -A PREROUTING -i brlan -p tcp -s 192.168.0.0/16 --dport 443 -j REDIRECT --to-port 3129


                                                        squid.conf
                                                        acl localnet src 192.168.0.0/16
                                                        acl SSL_ports port 443
                                                        acl Safe_ports port 80 # http
                                                        acl Safe_ports port 21 # ftp
                                                        acl Safe_ports port 443 # https
                                                        acl Safe_ports port 70 # gopher
                                                        acl Safe_ports port 210 # wais
                                                        acl Safe_ports port 1025-65535 # unregistered ports
                                                        acl Safe_ports port 280 # http-mgmt
                                                        acl Safe_ports port 488 # gss-http
                                                        acl Safe_ports port 591 # filemaker
                                                        acl Safe_ports port 777 # multiling http
                                                        acl CONNECT method CONNECT

                                                        dns_nameservers 8.8.8.8

                                                        http_access allow manager localhost
                                                        http_access deny manager
                                                        http_access deny !Safe_ports
                                                        http_access deny CONNECT !SSL_ports
                                                        http_access allow localnet
                                                        http_access allow localhost
                                                        http_access deny all

                                                        http_port 3128 intercept options=NO_SSLv3:NO_SSLv2
                                                        https_port 3129 intercept ssl-bump options=ALL:NO_SSLv3:NO_SSLv2 connection-auth=off cert=/etc/squid/ssl/squid.pem
                                                        http_port 3130 options=NO_SSLv3:NO_SSLv2

                                                        always_direct allow all
                                                        sslproxy_cert_error allow all
                                                        sslproxy_flags DONT_VERIFY_PEER

                                                        acl blocked ssl::server_name "/etc/squid/block_social.acl"
                                                        acl url_social_filtred src 192.168.0.10 192.168.0.11
                                                        acl step1 at_step SslBump1

                                                        ssl_bump peek step1
                                                        ssl_bump terminate blocked url_social_filtred
                                                        ssl_bump splice all

                                                        sslcrtd_program /usr/lib/squid/ssl_crtd -s /var/lib/ssl_db -M 64MB

                                                        coredump_dir /var/spool/squid
                                                        refresh_pattern ^ftp: 1440 20% 10080
                                                        refresh_pattern ^gopher: 1440 0% 1440
                                                        refresh_pattern -i (/cgi-bin/|\?) 0 0% 0
                                                        refresh_pattern. 0 20% 4320

                                                        maximum_object_size 61440 KB
                                                        minimum_object_size 3 KB

                                                        cache_swap_low 90
                                                        cache_swap_high 95
                                                        maximum_object_size_in_memory 512 KB
                                                        memory_replacement_policy lru


                                                        Содержимое /etc/squid/block_social.acl
                                                        odnoklassniki\.ru
                                                        vkontakte\.ru
                                                        vk\.com
                                                        facebook\.com
                                                        fishki\.net
                                                        my\.mail\.ru


                                                        В таком виде зайти на почту mail.ru просто не реально, пол сайта просто не загружается.
                                                        Так же криво работает https://calendar.google.com и https://maps.google.com
                                                        Что интересно https://maps.google.com в хроме открывается, а если используется виджет карты на каком нить сайте с gmaps то он не загружается.
                                                        И выборочно другие сайты, причем в разных браузерах все по разному, самое большое количество непоняток у Opera, в Google Chrome получше, но то что почту mail.ru не открывается из-зо всех браузеров это точно.
                                                        И ICQ на login.icq.com порт 443 с такими настройками не подключается
                                                        • 0
                                                          ставьте версию 3.5.8, уже обсуждалось и в моем блоге, и тут. Даже в статье есть запись в конце. Причина в каком-то баге, который добавили в версиях >3.5.8. Версии >=4 не тестировались
                                                          • 0
                                                            плюс ко всему имейте в виду, что HTTPS блочится по server_name, и раз Вы заблокировали my.mail.ru, то заблокируется и ICQ, так как это одна контора с одними и теми же IP. Это Вам на будущее, когда поставите версию 3.5.8. С версией >3.5.8 у вас периодически будет падать Интернет, будет помогать перезапуск прокси, но ненадолго. К тому же, почему у Вас нет перенаправления на 80 порт Squid'а? Насколько мне известно, это будет негативно сказываться на работе
                                                            • 0
                                                              Попробую завтра 3.5.8
                                                              Я так понимаю, что патч для bio.cc не нужен если я использую openssl? Или интегрировать libressl, но как быть с кучей другого софта на сервере который использует openssl, например openvpn или nginx?

                                                              Перенаправление на 80 порт есть, просто не написал его, такое же как и для 443 только --to-port 3128
                                                              iptables -t nat -A PREROUTING -i brlan -p tcp -s 192.168.0.0/16 --dport 80 -j REDIRECT --to-port 3128

                                                              С server_name мысль понятна, спасибо.
                                                              • 0
                                                                без LibreSSL работать не будет, делайте все, как по статье. От libressl хуже не будет, оно совместимо с openssl. И читайте статью внимательно.
                                                                update-alternatives --install /usr/bin/openssl openssl /usr/local/bin/openssl 50
                                                                
                                                      • 0
                                                        Обновил статью!
                                                        • 0
                                                          Ребята, читайте!
                                                          UPD 14.12.15: спешу поделиться с коллегами отличной новостью! Я нашел способ заставить работать новые версии Squid'а без особых танцев с бубном! Необходимо, чтобы у клиентов и в настройках Squid'а были одинаковые DNS! В моем случае, на шлюзе с Кальмаром крутится Bind. Назначил клиентам именно его, и Кальмару директивой:
                                                          dns_nameservers 127.0.0.1
                                                          
                                                          . После чего все успешно заработало. Проверено на Squid 4.0.3, собрана БЕЗ Libressl!


                                                          Прошу протестировать
                                                          • 0
                                                            Как убрать теперь из debian установленную Libressl?
                                                            • 0
                                                              с помощью dpkg
                                                              • +1
                                                                dpkg не убирает то что было добавлено в alternatives
                                                                скорее всего так
                                                                # update-alternatives --remove openssl /usr/local/bin/openssl
                                                                # update-alternatives --remove openssl /usr/bin/openssl-1
                                                                # mv /usr/bin/openssl-1 /usr/bin/openssl
                                                                и проверка
                                                                # openssl version
                                                                OpenSSL 1.0.1k 8 Jan 2015
                                                                и только потом
                                                                # apt-get remove libressl --purge
                                                                • 0
                                                                  да, я совершенно забыл про update-alternatives. Нужно сделать в обратном порядке, нежели чем в статье
                                                          • 0
                                                            Рано Вы написали, что на 4.0.3 все работает. Мои тесты показали что на debian 8.2 x64 даже на 3 пользователях процесс squid через минут 20-30 просто аварийно завершается и все. Сомневаюсь, что это специфика моей системы, скорее недоработки squid 4.0.3
                                                            • 0
                                                              хм… У меня пока работает. Странно. Хорошо, если еще человек напишет один, новость убираю
                                                              • 0
                                                                да, Ваши тесты подтверждаются, судя по всему. Создал 5 виртуальных машин с идентичной конфигурацией через Puppet. Только один сервер работает нормально, но если vlan переключать на другие, то там кальмар крашится. В чем дело, я не понимаю.
                                                              • 0
                                                                Скажите, пожалуйста, а как заблокировать доступ ко всему и разрешить только на указанные сайты.
                                                                • 0
                                                                  Вах, какой статья хороший. А вы не проверяли, с 15 года указанные проблемы не исправили? Хочется попробовать, но как-то лениво libressl ставить, да ещё и версию сквида понижать...
                                                                  • 0
                                                                    Хе-хе) главное, не забыть взять отпуск на 364-й день:

                                                                    openssl req -new -newkey rsa:1024 -days 365
                                                                    • 0
                                                                      А под CentOS7 никто не пробовал запускать?
                                                                      • 0
                                                                        Пробовал! Вот тут: https://habrahabr.ru/sandbox/99037/

                                                                        Более того, мне кажется, ценность этой заметки сравнима со статьёй nagibat0r -а, и её определённо надо вытаскивать из песочницы!

                                                                        UPD 14.12.15: Необходимо, чтобы у клиентов и в настройках Squid'а были одинаковые DNS

                                                                        Ага. И теперь становится очевидно, зачем :)
                                                                      • 0
                                                                        А наличие wpad не решает проблему? По крайней мере для пользователей с мобильными устройствами?
                                                                        • 0
                                                                          Быть может… Но судя по 41К просмотров, очень многие предпочитают именно прозрачный вариант :-)

                                                                          Кстати, у меня получилось (убунта). squid-3.5.13 + openssl-1.0.2f + патч на hostHeaderIpVerify + pdnsd — ошибки исчезли, логи красивые. Рекомендую.

                                                                          Правда, не могу разобраться, почему в первый день работы кешировались все картинки с рамблера, а сейчас одна, редко две из десяти — что это за своенравие такое? Кто в курсе? И если настроить правила для фильтрации рекламы, тот же рамблер бесконечно крутит колёсико загрузки, хотя firebug показывает, что все запросы завершены.
                                                                          • 0
                                                                            Но судя по 41К просмотров, очень многие предпочитают именно прозрачный вариант :-)
                                                                            Странный вывод. С чего вы взяли, что количество просмотров коррелирует с реализацией того, о чём говорится в статье?
                                                                            • 0
                                                                              Это тот случай, когда за минусом к комменту следует пояснение этого минуса? Если так, то лучше бы по-старинке, втихую, потому что я ну правда не знаю, что ответить, так, чтобы без флейма. Хотя бы с того, что определённый процент пришёл из поиска, вбив слова "squid", "https" и "прозрачный". С того, что прямо сейчас, именно эта статья увеличивает количество успешных реализаций описанного алгоритма, как когда-то журнал Хакер увеличил число приводов по 272-й. Если и этому требуются доказательства, то отсылаю к самому автору, он об этом пишет в первом абзаце.

                                                                              Коррелирует или нет, их всё равно много, по разным причинам. Много — означает не процентное соотношение, а просто количество, "по головам".

                                                                              — Сколько в Америке заправок?
                                                                              — Очень много!
                                                                              — Странный вывод. С чего вы взяли?
                                                                        • 0
                                                                          Ну в принципе 41к просмотров говорит только о том, что на статью часто натыкаются. Сколько человек ее применило — неизвестно.
                                                                          То что она все еще в песочнице тоже о чем-то говорит.
                                                                          А вот чем не прозрачен wpad? Если браузеры и так ищут запись указывающую на расположении этого файла?
                                                                          • 0
                                                                            Не, я про эту. А которая в песочнице — отличное дополнение. Их вообще можно вместе слить, освежить — будет классный tutorial.

                                                                            С wpad не работал, поэтому не могу ничего сказать. Совершенно не в курсе, будет ли он подхватываться, если в браузере стоит "прокси: нет" вместо "авто", если выключены скрипты/NoScript (wpad это же скрипт), умеют ли с ним работать все телефоны (вот тут чел считает, что нет). В этом плане он непрозрачен, придётся обходить с поклоном всех и каждого, чтобы объяснить, где поставить галочку, и почему им придётся купить новый телефон для интернета)
                                                                            • 0
                                                                              У меня работает сквид на centos7, в прозрачном режиме, на домашнем роутере. Каких либо проблем не замечено. Подскажите, что имеет в виду автор статьи, когда говорит что пользователей банит googlе?

                                                                              Linux router.local 3.10.0-327.10.1.el7.x86_64 #1 SMP Tue Feb 16 17:03:50 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux

                                                                               squid -v
                                                                              Squid Cache: Version 3.5.8
                                                                              Service Name: squid
                                                                              configure options:  '--build=x86_64-redhat-linux-gnu' '--host=x86_64-redhat-linux-gnu' '--program-prefix=' '--prefix=/usr' '--exec-prefix=/usr' '--bindir=/usr/bin' '--sbindir=/usr/sbin' '--sysconfdir=/etc' '--datadir=/usr/share' '--includedir=/usr/include' '--libdir=/usr/lib64' '--libexecdir=/usr/libexec' '--sharedstatedir=/var/lib' '--mandir=/usr/share/man' '--infodir=/usr/share/info' '--exec_prefix=/usr' '--libexecdir=/usr/lib64/squid' '--localstatedir=/var' '--datadir=/usr/share/squid' '--sysconfdir=/etc/squid' '--with-logdir=$(localstatedir)/log/squid' '--with-pidfile=$(localstatedir)/run/squid.pid' '--disable-dependency-tracking' '--enable-follow-x-forwarded-for' '--enable-auth' '--enable-auth-basic=DB,LDAP,NCSA,NIS,PAM,POP3,RADIUS,SASL,SMB,getpwnam' '--enable-auth-ntlm=smb_lm,fake' '--enable-auth-digest=file,LDAP,eDirectory' '--enable-auth-negotiate=kerberos,wrapper' '--enable-external-acl-helpers=wbinfo_group,kerberos_ldap_group' '--enable-cache-digests' '--enable-cachemgr-hostname=localhost' '--enable-delay-pools' '--enable-epoll' '--enable-icap-client' '--enable-ident-lookups' '--enable-linux-netfilter' '--enable-removal-policies=heap,lru' '--enable-snmp' '--enable-storeio=aufs,diskd,ufs,rock' '--enable-wccpv2' '--enable-esi' '--enable-ssl-crtd' '--enable-icmp' '--with-aio' '--with-default-user=squid' '--with-filedescriptors=16384' '--with-dl' '--with-openssl' '--with-pthreads' '--with-included-ltdl' '--disable-arch-native' '--enable-ecap' '--without-nettle' 'build_alias=x86_64-redhat-linux-gnu' 'host_alias=x86_64-redhat-linux-gnu' 'CFLAGS=-O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches   -m64 -mtune=generic' 'LDFLAGS=-Wl,-z,relro ' 'CXXFLAGS=-O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches   -m64 -mtune=generic -fPIC' 'PKG_CONFIG_PATH=%{_PKG_CONFIG_PATH}:/usr/lib64/pkgconfig:/usr/share/pkgconfig' --enable-ltdl-convenience

                                                                              OpenSSL 1.0.1e-fips 11 Feb 2013
                                                                              • 0
                                                                                В том что оно работает не сомневаюсь. Но сам пробую squid 4.0.7 и openssl 1.0.2g.

                                                                                А вот что автор имеет ввиду под баном в гугле — без понятия. Страничку с просьбой ввести капчу и доказать что ты не бот? Плюс я в принципе не понимаю причем тут Round-Robin DNS.
                                                                                • 0
                                                                                  я думаю, автор имеет в виду вот это: гугл перестает открываться, по причине того, что прокси "затыкается" на нем.
                                                                                • +1
                                                                                  Как оказалось, проблема известная и все варианты решения сводятся к прописыванию адреса прокси у пользователя.

                                                                                  А вместо этого автор открывает потенциальную уязвимость. Плюс в той статье нету подробного и понятного описания причин возникновения такой проблемы.
                                                                                  • 0
                                                                                    Действительно, про уязвимость написано слишком мало. Даже по CVE-2009-0801 гуглится только, что flash и java на нехороших страничках смогут подменой заголовков через сквид получать доступ к интранету. Но ни слова, как именно. Исправили? Да, мы исправили. А что вы исправили… Тихушники, блин.

                                                                                    У меня в конфиге указан tcp_outgoing_address, и по логике обращаться к интранету squid не может (надо бы проверить). В этом случае уязвимость сводится к возможности экстремально-продвинутым-пользователям обойти чёрный список сайтов, и не более того. Учитывая, что в чёрном списке (у меня) только сервера обновлений windows, антивирусов и прочей дребедени, которая последнее время забила 80% канала, оставив на котиков с ютуба только 20, уязвимости как таковой и нет...
                                                                                    • 0
                                                                                      Проверил только что, можно запретить сквиду обращаться в локальную сеть, назначив outgoing address (внешний, скажем, 11.11.11.11) плюс два правила в iptables:

                                                                                      /sbin/iptables -A OUTPUT --source 11.11.11.11/32 --dst 127.0.0.0/24 -j REJECT
                                                                                      /sbin/iptables -A OUTPUT --source 11.11.11.11/32 --dst 192.168.1.1/24 -j REJECT
                                                                                      • +1
                                                                                        Плюсанул бы, да срок кончился… Полезная информация! Необходимо взять на заметку!
                                                                                    • 0
                                                                                      Есть ли решение с tproxy?
                                                                                      Проблемка простая: в логах только ip адрес, а нужно dns имя.
                                                                                      Судя по тому, что пишут в списках рассылки (имя только в MitM режиме), штатно не решается.
                                                                                      • 0
                                                                                        вот это может поможет?)
                                                                                        • 0
                                                                                          К сожалению нет, существует масса хостингов, которые не прописывают обратную зону. Была мысль, бить в лог успешное или неуспешное срабатывание acl (оно же срабатывает!), но кроме debug режима пока решение не нашел.
                                                                                          • 0
                                                                                            а мне вот блокировать не надо, надо только считать и тоже проблема…
                                                                                            В логе размер — 0 =(
                                                                                      • 0
                                                                                        Уже на этапе сборки прочитал что блокировки поддается только hostname :( обидно. Я думал кто то победил проблему с урлами. Придется пользоваться по старинке подменой. В пятницу от РКН получил вот такую текстовочку:
                                                                                        В связи с распоряжением Роскомнадзора Прошу Вас при оказании услуги по предоставлению доступа к информационно-телекоммуникационной сети «Интернет», осуществить запрет блокировки следующих сетевых адресов: 95.213.11.180, 87.240.165.82 и 5.255.255.88, отсутствующих в Перечне записей, содержащих информацию о доменных именах, указателях страниц сайтов в сети «Интернет» и сетевых адресах, позволяющих идентифицировать сайты в сети «Интернет» и (или) информационные ресурсы, содержащие информацию, доступ к которой должен быть ограничен операторами связи в порядке, установленным Федеральным законом от 27 июля 2006 г. № 149-ФЗ «Об информации, информационных технологиях и о защите информации» (Выгрузка), предоставляемом операторам связи.

                                                                                        А потом еще и звонком предупредили, что делайте чего хотите, но IP целиком закрывать нельзя только URL. Я правда с самого начала так не делаю. Так что теперь без вариантов только подмена. К сожалению способ автора мне бесполезен.

                                                                                        Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

                                                                                        Самое читаемое