LINUX.ORG.RU
ФорумAdmin

squid kerberos auth


0

1

Привет всем! Пожалуйста подскажите что я не так делаю:

#egrep -v '(^#|^$)' /etc/squid3/squid.conf

auth_param negotiate program /usr/lib/squid3/squid_kerb_auth -d -s HTTP/squid.tokk.domain
auth_param negotiate children 10
auth_param negotiate keep_alive on
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 lan proxy_auth REQUIRED
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
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 allow 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

Машинка с офтопиком в домене (samba4) 192.168.2.20 IE 10.

# tail -f /var/log/squid3/access.log 
1392981709.293      0 192.168.2.20 TCP_DENIED/407 4087 GET http://ru.msn.com/? - NONE/- text/html
1392981709.310      2 192.168.2.20 TCP_DENIED/407 6368 GET http://ru.msn.com/? - NONE/- text/html
1392981709.337      0 192.168.2.20 TCP_DENIED/407 3881 GET http://www.bing.com/favicon.ico - NONE/- text/html
1392981709.342      2 192.168.2.20 TCP_DENIED/407 6176 GET http://www.bing.com/favicon.ico - NONE/- text/html
# cat /etc/default/squid3.conf 
KRB5_KTNAME=/etc/squid3/squid.keytab
export KRB5_KTNAME

При этом, в пользователе proxy билета нету - klist ничего не выдаёт. Явно, что /etc/default/squid3.conf НЕ отрабатывается... Делаю руками:

# su - proxy
$ kinit -V -k -t /etc/squid3/squid.keytab  HTTP/squid.tokk.domain 
Using default cache: /tmp/krb5cc_13
Using principal: HTTP/squid.tokk.domain@TOKK.DOMAIN
Using keytab: /etc/squid3/squid.keytab
Authenticated to Kerberos v5
$ klist
Ticket cache: FILE:/tmp/krb5cc_13
Default principal: HTTP/squid.tokk.domain@TOKK.DOMAIN

Valid starting       Expires              Service principal
21.02.2014 16:07:04  22.02.2014 02:07:04  krbtgt/TOKK.DOMAIN@TOKK.DOMAIN
	renew until 22.02.2014 16:07:04

При этом вылазит окно логина + пассворда, чтобы я туда не вводил, ничего не проваливается... :( В логах squid вообще тишина, не смотря на ключ -d у хелпера kerberos. Более того, сам хелпер болтается в процессах, но почему-то не хочет или не может получать тикет. Такое ощущение, что до него не доходит процесс... Или я даже не знаю чего думать ещё по этому поводу.

Может кто-то имеет аналогичную конфигурацию и подскажет, что я не так делаю?

Версия squid:

squid3 -v
Squid Cache: Version 3.1.19
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' '--datadir=/usr/share/squid3' '--sysconfdir=/etc/squid3' '--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=x86_64-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=/build/buildd/squid3-3.1.19

DNS записи:

root@squid:~# host 192.168.2.1
1.2.168.192.in-addr.arpa domain name pointer squid.tokk.domain.
root@squid:~# host squid.tokk.domain
squid.tokk.domain has address 192.168.2.1

P.S. серверная ОС: ubuntu 12.04.

★★★★★

Во 1ых как оно работает с доменом на самбе сказать сложно... никогда не пробовал. Во 2ых ты запускаешь сквид от отдельного юзера? Не лучшее решение - лучше

cache_effective_user squid
cache_effective_group squid
А так ему может тупо прав на что-то не хватать, кто его знает.

В 3их можно обновить сквид, у меня сейчас 3.3.чтото работает отлично (хотя до этого и прочие работали тоже вполне начиная с 2.7).

Еще можно попробовать

auth_param negotiate program /usr/lib/squid3/squid_kerb_auth -d -s GSS_C_NO_NAME

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

У меня складывается весьма стойкое ощущение, что squid даже не пытается получить билет. Ну и вообще он ничего не пишет в лог. Вообще ничего. Может ещё что-то надо включить? Или я не туда может смотрю? Где лог смотреть?

Насколько я понял, GSS_C_NO_NAME и то, что я написал вообще не имеет различий. Впрочем я попробую конечно.

Может ещё какие-то идеи есть? :) Буду очень рад! Прям вот уверен я что не доходит до авторизации просто... Он в access.log пишет чёрточку вместо логина. Прям ну чудеса какие-то...

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

squid запускаю через init скрипт ubuntu. Ну и руками пробовал, что-то вроде: squid -d -N не помогло.

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

Прям вот уверен я что не доходит до авторизации просто...

Ну дык так и есть. У тебя создан акл

acl lan proxy_auth REQUIRED
а в http_access нигде не используется, хотя должен так:
http_access deny !lan
Без этого он авторизоваться даже не полезет.

Я сперва в конфиг не очень вчитался, думал это очевидно :)

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

Спасибо, я этому делу в меньшей степени уделил внимание. Ещё раз проверю чего там по аклам и отпишусь!

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

Да, согласен, гляжу в книгу - вижу фигу :(

Если вылазит окно пароля - значит директива срабатывает, иначе просто проваливалось бы.

/etc/krb5.conf покеж.

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

Привет! Спасибо тебе за помощь!

Дело было в файле: /etc/default/squid3

Я его сделал как: /etc/default/squid3.conf по ошибке...

Потом опытным путём выяснил, что в squid не подсовывается переменная: KRB5_KTNAME

Исправил этот момент, и у меня всё побежало. Потом правда пришлось повозиться с MIT Kerberos for Windows на предмет смены хранилища ключей на MSLSA. - Не очень очевидно всё там было. Сейчас буду тестировать работу kerberos на Win7 Home. :)

Моя задача сделать SSO для ECM всем желающим (в том числе удалёнщикам)...

DALDON ★★★★★ ()
12 сентября 2014 г.
Ответ на: комментарий от DALDON

Привет, если кто еще здесь.. Простите за нескромный вопрос, а как можно вычислить подсовывается переменная KRB5_KTNAME в squid или нет?

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

Не знаю, возможно в лог будет сыпать что-то kerberos хэлпер squid. Но kerberos точно не будет работать.

Вот тебе с моей ubuntu:

root@gateway:~# cat /etc/init/squid3.conf 
# squid - SQUID HTTP proxy-cache
#

description	"HTTP proxy-cache"
author		"Chuck Short <zulcss@ubuntu.com>"

# The second "or" condition is to start squid in case it failed to start
# because no real interface was there.
start on runlevel [2345]
stop on runlevel [!2345]

respawn
normal exit 0

env CONFIG="/etc/squid3/squid.conf"
env SQUID_ARGS="-sYC"
env KRB5_KTNAME="/etc/squid3/squid.keytab"
......
......

DALDON ★★★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.