LINUX.ORG.RU
ФорумAdmin

squid выдает окно с вводом логина и пароля вместо редиректа

 


0

1

Здравствуйте. настроил сквид на авторизацию через керберос (домен samba). все работает. пытаюсь ограничить группу пользователей от интернета создаю acl

external_acl_type adgroup ttl=3600 %LOGIN %ACL /usr/libexec/squid/ext_kerberos_ldap_group_acl
acl no_internet external adgroup

добавляю deny_info и http_access deny

deny_info ERR_ACCESS_DENIED no_internet
http_access deny no_internet

Захожу под пользовалетем из группы *no internet* и ожидаю что мне выдастся ошибка ERR_ACCESS_DENIED, но вместо этого выдается окно с просьбой логина и пароля

при этом если я например сделаю правило с ограничением доступа к сайту, то deny_info отрабатывает корректно. я хочу чтобы мне выдалась именно ошибка, а не окно с вводом логина пароля. что я делаю не так?

Ответ на: комментарий от Pinkbyte

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

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 1025-65535 # unregistered ports
acl Safe_ports port 280 # http-mgmt
acl Safe_ports port 488 # gss-http
acl Safe_ports port 777 # multiling http
acl CONNECT method CONNECT


http_port 3128
cache_dir ufs /var/cache/squid 100 16 256

coredump_dir /var/cache/squid
#http_access allow manager localhost
http_access deny !Safe_ports
http_access deny CONNECT !SSL_ports

auth_param negotiate program /usr/libexec/squid/negotiate_kerberos_auth  -s HTTP/srv-proxy.domain.ru@domain.ru -k /usr/local/squid/squidproxy.keytab
auth_param negotiate children 10
auth_param negotiate keep_alive on
external_acl_type adgroup ttl=3600 %LOGIN %ACL /usr/libexec/squid/ext_kerberos_ldap_group_acl
acl no_internet external adgroup
deny_info ERR_ACCESS_DENIED no_internet
http_access deny no_internet

mefisto74
() автор топика
Ответ на: комментарий от mefisto74

в упор не вижу конструкции вида:

acl <имя> proxy_auth REQUIRED
...
http_access allow <имя>

Поэтому вообще не понятно как у тебя работает авторизация - потому что порядок опций http_access по конфигу ВАЖЕН. Сдаётся мне ты слишком много выкинул из конфига для демонстрации.

Pinkbyte ★★★★★
()
Последнее исправление: Pinkbyte (всего исправлений: 1)
Ответ на: комментарий от Pinkbyte

да, вы правы. прошу прощения. ну вот полный конфинг как он был

#
# Recommended minimum configuration:
#

# Example rule allowing access from your local networks.
# Adapt to list your (internal) IP networks from where browsing
# should be allowed

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 1025-65535 # unregistered ports
acl Safe_ports port 280 # http-mgmt
acl Safe_ports port 488 # gss-http
acl Safe_ports port 777 # multiling http
acl CONNECT method CONNECT
acl SOCIAL dstdomain .mail.ru

http_port 3128
cache_dir ufs /var/cache/squid 100 16 256

coredump_dir /var/cache/squid
#http_access allow manager localhost
http_access deny !Safe_ports
http_access deny CONNECT !SSL_ports

auth_param negotiate program /usr/libexec/squid/negotiate_kerberos_auth  -s HTTP/srv-proxy.domain.ru@DOMAIN.RU -k /usr/local/squid/squidproxy.keytab
auth_param negotiate children 10
auth_param negotiate keep_alive on
external_acl_type adgroup ttl=3600 %LOGIN %ACL /usr/libexec/squid/ext_kerberos_ldap_group_acl
acl inetusers external adgroup
acl no_internet external adgroup
acl auth proxy_auth REQUIRED

deny_info ERR_ACCESS_DENIED no_internet
http_access deny no_internet
http_access allow inetusers
http_access deny all

те кто в группе inetusers успешно заходят на сайты, а у тех у кого есть группа no_internet получают окно с вводом логина и пароля. причем окно появляется в хроме, а в firefox не появляется, пишет

«the proxy server is refusing connections» и все равно именно на страницу ошибки меня не перебрасывает, а хотелось бы..

mefisto74
() автор топика
Ответ на: комментарий от mefisto74

А если убрать deny_info и попробовать снова?

Я просто не очень вижу смысл в deny_info, ERR_ACCESS_DENIED - это и есть умолчальная страница ошибки для конструкции 'http_access deny <acl>'

Какой код ошибки в логах на повторную попытку авторизации - снова возвращается 401 или 403?

Pinkbyte ★★★★★
()
Ответ на: комментарий от Pinkbyte

deny_info, ERR_ACCESS_DENIED нужен для того, чтобы выдавалась ошибка сквидовская в виде html страницы которую я сам могу задать, а не та, что выдастся браузером

код ошибки в логах 407 1668448672.955 0 192.168.6.42 TCP_DENIED/407 6665 CONNECT pepper.ru:443 - HIER_NONE/- text/html

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

в firefox и на винде и на линуксе выдает ошибку из браузера но при этом в хроме на линуксе уже все норм

в связи с этим вопрос. что не так с хромом на винде? как убрать это всплывающее окно? и почему firefox не показывает ошибку сквида . обе машины введены в домен samba ad dc и в обоих интернет работает если ты в группе inetusers, а если в nointernet то не работает как и должно быть.

mefisto74
() автор топика