Здравствуйте, имеется прокси сервер на фря:9.3-RELEASE FreeBSD 9.3-RELEASE #2: Thu Jun 11 09:52:58 MSK 2015 user@gate.local:/usr/obj/usr/src/sys/MYKERNEL amd64
И Есть вопрос
Шлюз с nat+ipfw+squid, прокси работает в прозрачном режиме, так же прикручен sslbump, все работает, но есть проблема с google drive, dropbox и яндекс диском, подключение не происходит. Если прописать проксю в браузере вида 192.168.0.* 3128 то, гугл драйв начинает работать, но по https перестает блокироваться аудио видео, редиректор блокирует запрещенные сайты, но при этом почему то не перенаправляет на корп. ресурс, а просто открывается пустая страница
Готов добавить в исключения (allow_site), но не понимаю как корректно занести все поддомены, пробовал на яндексе, добавив:
yandex.ru
disk.yandex.ru
яндекс диск стал подключаться за 5-10 минут, при этом если я открываю яндекс то, в свойствах безопасности я вижу сертификат яндекса (а не свой), если я иду по вкладкам то, содержимое страниц начинает отображаться не полность, возможно там используются еще какие то сертификаты, которые прокси уже не пропускает, но с гуглом не получилось даже так. В поддержка гугла есть https://support.google.com/drive/answer/2589954?hl=ru вся имена, которые надо добавить в исключения, но не очень понятно как это сделать корректно, и в каком виде
Если смотреть логи, то весь трафик идет на googledrive.com:433Пробовал добавлять googledrive.\com, но результат тот же
конфиг сквида (убрал блокировку видео\аудио и флеша для сокращения):
shutdown_lifetime 2 seconds
#########################################################################
acl localnet src 192.168.0.0/24
###########################################################################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 CONNECThttp_access deny !Safe_ports
# Deny CONNECT to other than secure SSL ports
http_access deny CONNECT !SSL_ports# Only allow cachemgr access from localhost
acl webserver src 192.168.0.30/32
http_access allow manager localhost
http_access allow manager webserver
http_access deny managercachemgr_passwd ********* all
http_access deny to_localhost
acl allow_sites url_regex "/usr/local/etc/squid/allow_site"
###########################################################################
http_access allow localnet
http_access allow localhost
#######################################################################
http_access deny all
######################################################################## Squid normally listens to port 3128
http_port 3128
http_port 3129 intercept
https_port 3127 intercept ssl-bump generate-host-certificates=on dynamic_cert_mem_cache_size=4MB cert=/usr/local/etc/squid/squid.pem key=/usr/local/etc/squid/squid.pemredirect_program /usr/local/rejik3/redirector /usr/local/rejik3/redirector.conf
ssl_bump none domains_ssl_direct
ssl_bump server-first all# Also add the following lines to enable SSL bumping:
always_direct allow all !domains_ssl_direct
ssl_bump client-first all# the following two options are unsafe and not always necessary:
sslproxy_cert_error allow all
sslproxy_flags DONT_VERIFY_PEER#sslproxy_capath /var/lib/ssl_db/certs
sslcrtd_program /usr/local/libexec/squid/ssl_crtd -s /var/lib/ssl_db -M 4MB
#Access.log
#log_fqdn on
access_log /var/log/squid/access.log squid !user-gods
# Uncomment and adjust the following to add a disk cache directory.
cache_log /var/log/squid/cache.log
cache_dir ufs /var/squid/cache 8192 16 256
maximum_object_size 10 MB
cache_effective_user squid
#cachemgr_passwd none all
# Leave coredumps in the first cache dir
coredump_dir /var/squid/cache/squid#
# Add any of your own refresh_pattern entries above these.
#
refresh_pattern ^ftp: &n... 1440 20% 10080
refresh_pattern ^gopher: 1440 0% 1440
refresh_pattern -i (/cgi-bin/|\?) 0 0% 0
refresh_pattern . 0 20% 4320dns_v4_first on
redirector_access deny localhost
> все работает, но есть проблема с google drive, dropbox и яндекс
> диском, подключение не происходит. Если прописать проксю в браузере вида 192.168.0.*
> 3128 то, гугл драйв начинает работать, но по https перестает блокироваться
> аудио видео, редиректор блокирует запрещенные сайты, но при этом почему то
> не перенаправляет на корп. ресурс, а просто открывается пустая страницаКогда Вы ставите прокси в броузере, соединение идёт методом connect и прокси видит лишь домены, без полных ссылок. По этому и не блокирует.
Мне кажется, что нужно копать в сторону того, чтобы сертификат прокси сервера не использовался для установки соединений с серверами. В настройках прокси должны быть подобные опции. Когда устанавливается TLS соединение, возможны варианты, как использования сертификатов клиента (ваш прокси) и сервера (упомянутые сайты), так и использование только сертификатов сервера. Так вот - Ваш проси имеет "кривой" сертификат, который не пройдёт проверку на вышеупомянутых серверах и они его отбросят - соединение не установится.
> Когда Вы ставите прокси в броузере, соединение идёт методом connect и проксиНо при этом запрещенные ресурсы фильтруются, даже не смотря на https, тот же ютуб, вконтакт по https не открывается на пользовательских машинах.
Или при этом сам сквид не лезет в https трафик, а видит лишь доменное имя?
То есть squid увидел как пользователь ломанулся по https на страницу vk.com, и прокся его отфутболила, но при этом если пользователю будет разрешен туда доступ то, когда он зайдет трафик расшифровать, как при ssl_bump будет невозможно?> видит лишь домены, без полных ссылок. По этому и не блокирует.
Да, это понятно
>Мне кажется, что нужно копать в сторону того, чтобы сертификат прокси сервера не использовался для установки соединений с серверами.
Ну я и хотел добавить в исключения все имена, но через url_regex указываю основные домены, такие как google.com googledrive.com, но при это их поддомены, как написано в статье поддержки гугла, например drive.google.com или docs.google.com почему то не попадают в исключения. Так же и с яндексом, какие то поддомены яндекса, например market.yandex.ru или maps.yandex.ru нормально ходят мимо прокси, но именно disk.yandex.ru не хочет это делать
>Так вот - Ваш проси имеет "кривой" сертификат, который не пройдёт проверку на вышеупомянутых серверах
Кривой так как самоподписанный?
> Когда Вы ставите прокси в броузере, соединение идёт методом connect и проксиНо при этом запрещенные ресурсы фильтруются, даже не смотря на https, тот же ютуб, вконтакт по https не открывается на пользовательских машинах.
Или при этом сам сквид не лезет в https трафик, а видит лишь доменное имя?
То есть squid увидел как пользователь ломанулся по https на страницу vk.com, и прокся его отфутболила, но при этом если пользователю будет разрешен туда доступ то, когда он зайдет трафик расшифровать, как при ssl_bump будет невозможно?> видит лишь домены, без полных ссылок. По этому и не блокирует.
Да, это понятно
>Мне кажется, что нужно копать в сторону того, чтобы сертификат прокси сервера не использовался для установки соединений с серверами.
Ну я и хотел добавить в исключения все имена, но через url_regex указываю основные домены, такие как google.com googledrive.com, но при это их поддомены, как написано в статье поддержки гугла, например drive.google.com или docs.google.com почему то не попадают в исключения. Так же и с яндексом, какие то поддомены яндекса, например market.yandex.ru или maps.yandex.ru нормально ходят мимо прокси, но именно disk.yandex.ru не хочет это делать
>Так вот - Ваш проси имеет "кривой" сертификат, который не пройдёт проверку на вышеупомянутых серверах
Кривой так как самоподписанный?
> Или при этом сам сквид не лезет в https трафик, а видит лишь доменное имя?Именно так.
> но при этом если пользователю будет разрешен туда доступ то, когда он зайдет трафик расшифровать, как при ssl_bump будет невозможно?
Да. Ибо он заходит методом connect. После установки соединения все команды передаются уже зашифрованными.
> Кривой так как самоподписанный?
Да.
Ищите опции, отвечающие за использование сертификата прокси при работе с сайтами. Его передачу сайтам нужно отключить.
> Ищите опции, отвечающие за использование сертификата прокси при работе с сайтами. Его
> передачу сайтам нужно отключить.ну я так и пытался сделать, создал acl
acl domains_ssl_direct url_regex "/usr/local/etc/squid/allow_site"в файле allow_site дословно написал yandex.ru disk.yandex.ru
дальше исключил из сслбумпа
ssl_bump none domains_ssl_direct
И сам яндекс открывается нормально, с сертификатом самого яндекса, а не сгенерированного проксей, но яндекс диск не работает.
несмотря на url_regex почему то он добавил не все поддомены сайта, то есть у той же radio.yandex.ru сертификат уже попадает самоподписанный
ps может кому то поможет, яндекс диск сейчас работает
порядок действий такой:
делаем acl куда добавим все доменные имена
acl domains_ssl_direct url_regex "/usr/local/etc/squid/allow_site"
url_regex - означает, что надо включить поддомены (если я ничего не путаю)
в сам файл allow_site добавим записи для этой acl, для яндекса disk.yandex.ru и webdav.yandex.ru, этого оказалось достаточно
Дальше делаем исключение из sll_bump, где domains_ssl_direct - вышесозднная aclssl_bump none domains_ssl_direct
для гугла пока не получается добавить все домены и поддомены, дроп боксом пока не занимался
> в файле allow_site дословно написал yandex.ru disk.yandex.ru
> дальше исключил из сслбумпа
> ssl_bump none domains_ssl_direct
> И сам яндекс открывается нормально, с сертификатом самого яндекса, а не сгенерированногоЭто не то. Вы выключили подмену сертификата для этих доменов. А нужно выключить не это, а передачу самоподписанного сертификата прокси при установке TLS соединения с сервером. TLS соединение с сервером может осуществляться, как с использованием только сертификата сервера (что нам нужно), так и с обоюдным использованием сертификатов сервера и прокси (что нам не нужно).
> url_regex - означает, что надо включить поддомены (если я ничего не путаю)
url_regex означает, что к списку применяется регулярное выражение.
> url_regex означает, что к списку применяется регулярное выражение.Опечатка - сам список является регулярными выражениями.