Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
Squid подключается к HTTPS ресурсу, получает его сертификат, и может «посмотреть» некоторые данные о ресурсе, в частности имя сервера, которое нам как раз и нужно для блокировки!
acl blocked ssl::server_name "/etc/squid/blocked_https.txt"
ssl_bump terminate blocked
кальмар сработает на freepron, если последний в локальном бане
Имя сервера он получает из сертификата. Процесс очень несложный. Кальмар представляется клиентом, «открывает» ресурс, получает сертификат и смотрит sni_info, откуда берет server_name.В варианте с SNI никаких connection probe делать не нужно. И сертификат парсить тоже. Вы просто извлекаете из перехватываемых пакетов имя хоста, которое передается в открытом виде (без шифрования).
получает сертификат и смотрит sni_info, откуда берет server_nameЯ не знаком со сквидом, но почему нельзя было посмотреть содержимое sni_info сразу, без запроса сертификата? И не будет проблем, о которых писал nikitasius.
В случае, если example.com находится в одном сертификате с freepron.cum, кальмар сработает на freepron, если последний в локальном бане, так?В случае, если вы перехватите запрос пользователя, то вы сможете узнать, какой ресурс был запрошен на самом деле: freepron.com или example.com.
apt-get build-dep squid3
apt-get source squid3
wget http://www.squid-cache.org/Versions/v3/3.5/squid-3.5.8.tar.gz
cd squid*
uupdate --upstream-version 3.5.8 ../squid-3.5.8.tar.gz
debuild -i -us -uc -b
dpkg -i ../*3.5.8*deb
$apt-cache policy squid3
squid3:
Установлен: (отсутствует)
Кандидат: 3.4.8-6+deb8u1
Таблица версий:
3.4.8-6+deb8u1 0
500 http://security.debian.org/ jessie/updates/main amd64 Packages
3.4.8-6 0
500 http://mirror.yandex.ru/debian/ jessie/main amd64 Packages
./configure --prefix=/opt/`basename $(pwd)`
UPD 14.12.15: спешу поделиться с коллегами отличной новостью! Я нашел способ заставить работать новые версии Squid'а без особых танцев с бубном! Необходимо, чтобы у клиентов и в настройках Squid'а были одинаковые DNS! В моем случае, на шлюзе с Кальмаром крутится Bind. Назначил клиентам именно его, и Кальмару директивой:
dns_nameservers 127.0.0.1
. После чего все успешно заработало. Проверено на Squid 4.0.3, собрана БЕЗ Libressl!
dh_makeshlibs: failing due to earlier errors
/usr/share/cdbs/1/rules/debhelper.mk:262: recipe for target 'binary-fixup/libecap3' failed
make: *** [binary-fixup/libecap3] Error 255
dpkg-buildpackage: error: debian/rules binary gave error exit status 2
ssl_bump terminate blocked
ssl_bump splice all
ssl_bump splice blocked
ssl_bump terminate all
acl test src 192.168.1.5/32
acl sites_test url_regex -i "/etc/squid/blocked_https.txt"
http_access allow sites_test test
http_access deny test
«Прозрачный» Squid с фильтрацией HTTPS ресурсов без подмены сертификатов (х86, х64 — универсальная инструкция)