LinuxForum.Fans
Тема

Squid3 и странное поведение при deny https://www.youtube.com

Автор: nikto 40 сообщений 12143 просмотров
#328800

urfin написал:
[quote="kisil⇓"]а вот если https://www.youtube.com, тогда просто
text
Невдала спроба з’єднання Firefox не може встановити з’єднання з сервером www.youtube.com.

А https_port у Вас в squid.conf прописан? Раньше вроде бы он по умолчанию был неопределен, да и использовался только если сам squid был собран с параметром --enable-ssl[/quote]
Что то не помню что бы я переопределял https порт, а то что собран кальмар с поддержкой ssl это точно.
Но завтра точнее посмотрю.
Но https протокол нормально работает.
#328835

urfin написал:
[quote="kisil⇓"]а вот если https://www.youtube.com, тогда просто
text
Невдала спроба з’єднання Firefox не може встановити з’єднання з сервером www.youtube.com.

А https_port у Вас в squid.conf прописан? Раньше вроде бы он по умолчанию был неопределен, да и использовался только если сам squid был собран с параметром --enable-ssl[/quote]

Фишка в том что мне не надо управлять https, подменять сертификаты и фильтровать (проверять на вирусы) шифрованный трафик, мне надо тупо или пропустить сотрудника на https сайт или не пропускать + логировать информацию куда он зашел. Все, больше мне не надо.

Сейчас получается как то криво работает. Да и не понятно что происходит и куда он пытается соединиться.
Попробую немного "потисидампить" может что найду путное =)
#328836

nikto, если не трудно покажите весь squid.conf. Или, просто попробуйте явно прописать https_port в squid.conf. Потому что, сдается мне, что неопределенность этого параметра все же играет роль в том, что firefox не может соединиться с прокси сервером.

#328845

2_urfin

До вчерашнего дня был без ssl и без https_port
Сегодня собрал с ssl, правда сертификат не выдавал пока, но судя по документации сертификат нужен для того что бы организовать атаку "MitM" но при этом куча сайтов будет ругаться на сертификат (он же мой =)

Показать

Processing Configuration File: /etc/squid3/squid.conf (depth 0)
Processing: acl all src all
WARNING: (B) '::/0' is a subnetwork of (A) '::/0'
WARNING: because of this '::/0' is ignored to keep splay tree searching predictable
WARNING: You should probably remove '::/0' from the ACL named 'all'
Processing: acl manager proto cache_object
Processing: acl localhost src 127.0.0.1/32 ::1
Processing: acl to_localhost dst 127.0.0.0/8 0.0.0.0/32 ::1
Processing: acl my_lan src 192.168.0.0/16
Processing: acl SSL_ports port 443
Processing: acl Safe_ports port 80 # http
Processing: acl Safe_ports port 21 # ftp
Processing: acl Safe_ports port 443 # https
Processing: acl Safe_ports port 70 # gopher
Processing: acl Safe_ports port 210 # wais
Processing: acl Safe_ports port 1025-65535 # unregistered ports
Processing: acl Safe_ports port 280 # http-mgmt
Processing: acl Safe_ports port 488 # gss-http
Processing: acl Safe_ports port 591 # filemaker
Processing: acl Safe_ports port 777 # multiling http
Processing: acl CONNECT method CONNECT
Processing: acl video_list url_regex -i "/etc/squid3/list/video_list"
Processing: http_access allow manager localhost
Processing: http_access deny manager
Processing: http_access deny !Safe_ports
Processing: http_access deny CONNECT !SSL_ports
Processing: http_access deny my_lan video_list
Processing: deny_info http://r0.ru video_list
Processing: http_access allow my_lan
Processing: http_access allow localhost
Processing: http_access deny all
Processing: htcp_access deny all
Processing: http_port 3128
Processing: cache_dir ufs /var/spool/squid3 10240 16 256
Processing: coredump_dir /var/spool/squid3
Processing: refresh_pattern ^ftp: 1440 20% 10080
Processing: refresh_pattern ^gopher: 1440 0% 1440
Processing: refresh_pattern -i (/cgi-bin/|\?) 0 0% 0
Processing: refresh_pattern (Release|Packages(.gz)*)$ 0 20% 2880
Processing: refresh_pattern . 0 20% 4320
Processing: cache_mgr nikto@gog.com
Processing: visible_hostname srv-proxy
Processing: dns_v4_first on
Initializing https proxy context

squid3 -v
Squid Cache: Version 3.1.19

Показать

configure options: '--build=i686-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' '--datadir=/usr/share/squid3' '--sysconfdir=/etc/squid3' '--enable-ssl' '--mandir=/usr/share/man' '--with-cppunit-basedir=/usr' '--enable-inline' '--enable-async-io=8' '--enable-storeio=ufs,aufs,diskd' '--enable-removal-policies=lru,heap' '--enable-delay-pools' '--enable-cache-digests' '--enable-underscores' '--enable-icap-client' '--enable-follow-x-forwarded-for' '--enable-auth=basic,digest,ntlm,negotiate' '--enable-basic-auth-helpers=LDAP,MSNT,NCSA,PAM,SASL,SMB,YP,DB,POP3,getpwnam,squid_radius_auth,multi-domain-NTLM' '--enable-ntlm-auth-helpers=smb_lm,' '--enable-digest-auth-helpers=ldap,password' '--enable-negotiate-auth-helpers=squid_kerb_auth' '--enable-external-acl-helpers=ip_user,ldap_group,session,unix_group,wbinfo_group' '--enable-arp-acl' '--enable-esi' '--enable-zph-qos' '--enable-wccpv2' '--disable-translation' '--with-logdir=/var/log/squid3' '--with-pidfile=/var/run/squid3.pid' '--with-filedescriptors=65536' '--with-large-files' '--with-default-user=proxy' '--enable-linux-netfilter' 'build_alias=i686-linux-gnu' 'CFLAGS=-g -O2 -fPIE -fstack-protector --param=ssp-buffer-size=4 -Wformat -Wformat-security -Werror=format-security' 'LDFLAGS=-Wl,-Bsymbolic-functions -fPIE -pie -Wl,-z,relro -Wl,-z,now' 'CPPFLAGS=-D_FORTIFY_SOURCE=2' 'CXXFLAGS=-g -O2 -fPIE -fstack-protector --param=ssp-buffer-size=4 -Wformat -Wformat-security -Werror=format-security' --with-squid=/root/squid3-3.1.19
#328849

"nikto⇓" написал:
Processing: acl Safe_ports port 443 # https
Немножко не то Вы выдали, но ладно. Вот цитата указывает, что, якобы, https запросы должны валиться на 443 порт. Но в то же время firefox думает, что http и https это одно и тоже. Не буду строить из себя гуру, но я понимаю так: пока нет каких-то правил, все работает нормально и http, и https. Стоит только ввести правила, как туже кальмар начинает работать несколько иначе, разграничивая запросы. Хотя, кальмар, настроенный и запущенный мной когда-то в 2004 году, до сих пор работает нормально, без разграничений запросов, не взирая на запрещающие правила. Правда и кальмар изменился с тех пор значительно. Параметр https_port укажите явно, перезапустите кальмара и проверьте.
#328853

К сожалению то же самое =(
Выдал сертификаты, все прописал..увы и ах та же ошибка соединения.

#328855

"nikto⇓" написал:
и ах та же ошибка соединения
Ну, я особо и не надеялся. Но все равно не понятно. Увы, не смогу помочь.
#328861

| Processing: acl all src all
| WARNING: (B) '::/0' is a subnetwork of (A) '::/0'
| WARNING: because of this '::/0' is ignored to keep splay tree searching predictable
| WARNING: You should probably remove '::/0' from the ACL named 'all'

я бы на Вашем месте пошел бы от противного, ошибки раз вылазиют, значит надо сначали их исправить. Когда я настраивал проксю, ошибок было прилично, и пока я все правильно не сделал, у меня мало чего нормально работало. давайте сделаем проще. вы закоментите строчки относящееся к вашему файлу с сайтами. и попробуйте напрямую верно указать сеть, acl и http_access. это первое.
второе - проверяйте каждый раз исправления комадами, которые уже писал, плюс гляньте настройки конфига на предмет http_port что написано. или выложете это.
третье - если у вас пока прокси не прозрачен и не настроен заворачивание нужные портов на проксю. ну то есть iptables, просто проверьте в браузере работу, как отрабатывают правила, указанные в конфиге сквида.
дело в том, любой неверный символ в конфиге может много чего неизвестного таить в себе. проверено лично, когда долго пытался настроить iptables чтобы прокси работал в прозрачном режиме, чтобы не ходить у юзеров и не выставлять в браузере настройки работы через сквид, облегчил задачу до минимуму, в любом случае любой браузер авотматом работает. но так больше прокся кушает ресурсов.
когда все это ок будет. уже потом можно и с файлом разобраться.

"urfin⇓" написал:
Processing: acl Safe_ports port 443 # https

Немножко не то Вы выдали, но ладно

ага, совсем не то.

зы. ну я бы так стал бы разбираться, телепатом быть трудно в наше время:) а вообще, больше чем уверен, причиной всему ошибки конфига.

#328862

"Linux777⇓" написал:
причиной всему ошибки конфига.
Это да.
#328866

"Linux777" написал:
| Processing: acl all src all
| WARNING: (B) '::/0' is a subnetwork of (A) '::/0'
| WARNING: because of this '::/0' is ignored to keep splay tree searching predictable
| WARNING: You should probably remove '::/0' from the ACL named 'all'

я бы на Вашем месте пошел бы от противного, ошибки раз вылазиют, значит надо сначали их исправить. Когда я настраивал проксю, ошибок было прилично, и пока я все правильно не сделал, у меня мало чего нормально работало. давайте сделаем проще. вы закоментите строчки относящееся к вашему файлу с сайтами. и попробуйте напрямую верно указать сеть, acl и http_access. это первое.
второе - проверяйте каждый раз исправления комадами, которые уже писал, плюс гляньте настройки конфига на предмет http_port что написано. или выложете это.
третье - если у вас пока прокси не прозрачен и не настроен заворачивание нужные портов на проксю. ну то есть iptables, просто проверьте в браузере работу, как отрабатывают правила, указанные в конфиге сквида.
дело в том, любой неверный символ в конфиге может много чего неизвестного таить в себе. проверено лично, когда долго пытался настроить iptables чтобы прокси работал в прозрачном режиме, чтобы не ходить у юзеров и не выставлять в браузере настройки работы через сквид, облегчил задачу до минимуму, в любом случае любой браузер авотматом работает. но так больше прокся кушает ресурсов.
когда все это ок будет. уже потом можно и с файлом разобраться.
urfin⇓ пишет:

Processing: acl Safe_ports port 443 # https

Немножко не то Вы выдали, но ладно

ага, совсем не то.

зы. ну я бы так стал бы разбираться, телепатом быть трудно в наше время:) а вообще, больше чем уверен, причиной всему ошибки конфига.

urfin написал:
[quote="Linux777⇓"]причиной всему ошибки конфига.
Это да.[/quote]

Это верно. Я могу канешно ошыбатса, но для исправления этой ошыбки пусть ТС закоментирует строку
text
acl all src all

Локалка переопределена в другом acl
А в строках

text
 http_access deny all
htcp_access deny all

вместо all подставит my_lan
Ну и ещё, а может сквиду не нравитса определение локальной сети

text
acl my_lan src 192.168.0.0/16

Попробуйте для эксперемента прописать так 192.168.0.0/24

#328867
"kisil⇓" написал:
Это верно. Я могу канешно ошыбатса, но для исправления этой ошыбки пусть ТС закоментирует строку

acl all src all

Локалка переопределена в другом acl
А в строках

http_access deny all
htcp_access deny all

вместо all подставит my_lan
Ну и ещё, а может сквиду не нравитса определение локальной сети

acl my_lan src 192.168.0.0/16

Попробуйте для эксперемента прописать так 192.168.0.0/24

вообще, там мало надо чего изменять, по дефолту конфиг сквида содержить все необходимые базовые вещи по сети. привожу пример с работающего сервера)
как видим все сетки прописаны, все acl есть. осталось этим пользоваться и просто грамотно прописать http_access.
Поэтому это скорей всего не надо коментить.

"kisil⇓" написал:
acl all src all

а надо изменить

"kisil" написал:
acl my_lan src 192.168.0.0/16
Попробуйте для эксперемента прописать так 192.168.0.0/24

но и это есть в конфиге, поэтому советую сделать как в моей примере.
вероятно сквиду не нравится, ваши acl))
вообщем совет верните изначально конфиг в дефолтное состояние и уже делаете постепенно все.
вопрос - вы сами конфиг настраивали? можно его полностью выложить, только аккуратно с тегами, чтобы читать было удобно. для консоли используйте тег CODE, а для читабельности большого файла, каким явялется сквид, в нем более 5000 тыщ строк используйте тег Spoiler.

text
#Examples:
#acl macaddress arp 09:00:2b:23:45:67
#acl myexample dst_as 1241
#acl password proxy_auth REQUIRED
#acl fileupload req_mime_type -i ^multipart/form-data$
#acl javascript rep_mime_type -i ^application/x-javascript$
#
#Recommended minimum configuration:
acl all src all
acl manager proto cache_object
acl localhost src 127.0.0.1/32
acl to_localhost dst 127.0.0.0/8 0.0.0.0/32
#
# Example rule allowing access from your local networks.
# Adapt to list your (internal) IP networks from where browsing
# should be allowed
acl localnet src 10.0.0.0/8     # RFC1918 possible internal network
acl localnet src 172.16.0.0/16  # RFC1918 possible internal network
acl localnet src 192.168.0.0/24 # RFC1918 possible internal network

а вообще замечу все сети по умалчанию уже определены, и дополнительных сетей не рекомендую создавать и описывать в acl.вам тогда надо перейти в http_access)

#328884

Вопрос простой: может ли Squid блокировать сайты в прозрачном режиме?

#328886

Нашел таую же тему тут тыц, но моих знаний языка не достаточно для понимания, к чему именно пришли в результате.

Может кто сможет понять простить и отпустить^3^W и обьяснить проблему (и может решение)

#328959
"AlfaStriker⇓" написал:
Вопрос простой: может ли Squid блокировать сайты в прозрачном режиме?

конечно

#328967

"nikto" написал:

>>вообщем с
2_Linux777
>>вообщем совет верните изначально конфиг в дефолтное состояние и уже делаете постепенно все.
Так и сделал, в новый конфиг внес свои параметры в количстве 4 штук.
Конечно весь не буду выкладывать (просто смысла не вижу с каментами писать)
Показать
text

acl manager proto cache_object
acl localhost src 127.0.0.1/32 ::1
acl to_localhost dst 127.0.0.0/8 0.0.0.0/32 ::1
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
acl my_lan src 192.168.1.0/24
acl video_list       url_regex -i "/etc/squid3/list/video_list"
http_access allow manager localhost
http_access deny manager
http_access deny !Safe_ports
http_access deny CONNECT !SSL_ports
http_access allow localhost
        http_access deny video_list
                deny_info http:r0.ru reklama_list
        http_access allow my_lan
http_access deny all
http_port 3128
coredump_dir /var/spool/squid3
refresh_pattern ^ftp:           1440    20%     10080
refresh_pattern ^gopher:        1440    0%      1440
refresh_pattern -i (/cgi-bin/|\?) 0     0%      0
refresh_pattern (Release|Packages(.gz)*)$      0       20%     2880
refresh_pattern .               0       20%     4320

#328981

У меня вот такая конфа заработала:

text
acl full-access src 10.168.50.25
acl my_net src 10.168.50.0/24
acl admin_pc src 10.168.50.46

acl work_time time 09:00-12:30 13:30-18:00

acl bad_url url_regex "/etc/squid/acl/bad_url" acl upload url_regex "/etc/squid/acl/upload" acl soc_net url_regex work_time "/etc/squid/acl/soc_net" acl filetypes urlpath_regex -i "/etc/squid/acl/filetypes" acl baners urlpath_regex -i "/etc/squid/acl/baners"

http_access deny bad_url !full-access !admin_pc http_access deny soc_net !full-access !admin_pc http_access deny upload !full-access !admin_pc http_access deny filetypes !full-access !admin_pc

http_access allow my_net http_access allow full-access #http_access allow all

#329198

2_AlfaStriker

Что значит заработала? У меня блокирует сайт!
Но мне то надо перенаправить пользователя на другой сайт а не просто тупо заблокировать! Порезать я могу и на шлюзе..эка проблема.

Поставил privoxy, судя по всему это проблема глобальная а не именно squid. Почему все молчат, совсем не понятно. Так же не понятна ситуация с разработчиками, если знают почему не предлагают решения?

#329204
"nikto⇓" написал:
Почему все молчат, совсем не понятно.

Уже было сказано, что так как вы хотите не заработает, из-за метода CONNECT, используемого браузерами при https подключениях через прокси. Разберитесь как работает клиент через прокси для http и https (метод GET|PUT и CONNECT) и сами поймете, что squid максимум что может сделать для https это вернуть ошибку 403, которую клиент будет интерпретировать как ошибку вида "Прокси-сервер запрещает подключение обратитесь к администратору". Так что в вашем случае поможет только внешний редиректор или фаервол, в котором настроен редирект на веб-сервер с нужной ошибкой.

#329278

2_pitdron

Так объясните пожалуйста.
Из того что я нарыл, это то что юзер агент послал connect к нему пришел 307 статус, который указывает перейти а страницу. При этом сам юзер агент не должен переходить на страницу без уведомления пользователя.
If the 307 status code is received in response to a request other than GET or HEAD, the user agent MUST NOT automatically redirect the request unless it can be confirmed by the user, since this might change the conditions under which the request was issued.

Ничего подобного не происходит. И уточните пожалуйста. что значит
>>Так что в вашем случае поможет только внешний редиректор или фаервол, в котором настроен редирект на веб-сервер с нужной ошибкой.
Получается что кто то, таки может делать редирект и плевать на метод connect?

#329406
nikto написал:

>>Так что в вашем случае поможет только внешний редиректор или фаервол, в котором настроен редирект на веб-сервер с нужной ошибкой.
Получается что кто то, таки может делать редирект и плевать на метод connect?

Удаленный сервер может прислать редирект (ответ 301 или 302), но только после установки соединения, т.е. после CONNECT.

Вы можете попробовать подменить адрес в squid через редиректор http://squid.h12.ru/FAQ/FAQ-15.html. Он вызывается как внешний процесс, который может производить доп. обработку полученного url, например заменить адрес https://www.youtube.com на https://error403.site.local, но при этом скорей всего получите сообщение о ошибке сертификата.

Вы также можете подменить адрес сервера на транспортном уровне т.е. вместо адреса 173.194.32.160 (youtube.com) отдать squid адрес 192.168.1.80 (error403.site.local) от ДНС или посредством NAT/РАТ перенаправить squid на локальный сайт-зеркало.

Войдите или зарегистрируйтесь, чтобы ответить.