1

Доброго времени суток. Не выходит решить проблему с авторизацией пользователей. Помогите, знающие люди, или накидайте ссылок, т.к мне найти информацию не удалось.
И так...

ОС: Debian 6.0 x64
Я вооружился вот этим: http://wiki.squid-cache.org/ConfigExamp … eDirectory

/etc/krb5.conf идентичен

kinit -v -k -t /etc/squid3/PROXY.keytab HTTP/squid.local.net
выполняется без ошибок

/usr/lib/squid3/squid_kerb_auth_test squid
возвращает билет

Права на keytab, само собой, как указано в мануале, в /etc/init.d/squid3 нужные строчки, для успешной работы kerberos так же добавлены.

##Auth Kerberos
auth_param negotiate program /usr/lib/squid3/squid_kerb_auth -d -s HTTP/squid.local.net@LOCAL.NET
auth_param negotiate children 10
auth_param negotiate keep_alive off
##Auth LDAP
#external_acl_type internet_user %LOGIN /usr/lib/squid3/squid_ldap_group -R -b "dc=LOCAL,dc=NET" -f "(&(objectclass=user)(sAMAccountName=%v)(memberOf=cn=%a,,ou=grp,dc=local,dc=NET))" -D squid@local.net -K -w "Aa12345" dc01
#acl LDAP_internet external internet_user internet
#
# Recommended minimum configuration:
#
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
#my acl
acl auth proxy_auth REQUIRED
#enforce auth
http_access allow auth
http_access deny all
#http_access allow LDAP_internet
#
# Recommended minimum Access Permission configuration:
#
# Only allow cachemgr access from localhost
http_access allow manager localhost
http_access deny manager
# Deny requests to certain unsafe ports
http_access deny !Safe_ports
# Deny CONNECT to other than secure SSL ports
http_access deny CONNECT !SSL_ports
http_access allow localhost
access_log /var/log/squid3/access.log squid
#port
http_port 10.10.1.1:3128

Итог: IE просит пароль, авторизация, само собой никак не проходит. Firefox пишет, что Access Denied.
В логах access - error 407, cacher строки вот такого вида:

2013/04/14 20:12:16| authenticateNegotiateHandleReply: Error validating user via Negotiate. Error returned 'BH received type 1 NTLM token'
2013/04/14 20:12:19| squid_kerb_auth: DEBUG: Got 'YR TlRMTVNTUAABAAAAl4II4gAAAAAAAAAAAAAAAAAAAAAGAbAdAAAADw==' from squid (length: 59).
2013/04/14 20:12:19| squid_kerb_auth: DEBUG: Decode 'TlRMTVNTUAABAAAAl4II4gAAAAAAAAAAAAAAAAAAAAAGAbAdAAAADw==' (decoded length: 40).
2013/04/14 20:12:19| squid_kerb_auth: WARNING: received type 1 NTLM token
2013/04/14 20:12:19| authenticateNegotiateHandleReply: Error validating user via Negotiate. Error returned 'BH received type 1 NTLM token'

Со squid я знаком около недели, не судите строго. Благодарю за внимание.

2

Serega955⇓ пишет:

BH

Failure. The helper encountered a problem. look this: http://wiki.squid-cache.org/Features/Ne … entication

надпись на двери старого трамвая: "ВЫХОДА НЕТ!" | ❤windows 8 enterprise

3 (14.04.2013 20:54:36 отредактировано Me_Shock)

Serega955, а вы negotiate_wrapper ставили, чтобы его использовать? Секция: What do I need to do to support NEGOTIATE on Squid?

надпись на двери старого трамвая: "ВЫХОДА НЕТ!" | ❤windows 8 enterprise

4 (14.04.2013 21:20:57 отредактировано Serega955)

Нет, видимо в этом и есть моя ошибка.. Статью по первой ссылке я посмотрел, весьма полезно. Сейчас поставлю его. Может быть вы мне еще подскажете, по поводу логики процесса. Я так понял, что negotiate_wrapper используется для того, что бы использовать метод аутентификации через Kerberos и NTLM, ну тоесть как бы предоставляет например браузеру именно тот метод, который им поддерживается. А что если я хочу например использовать просто kerberos? Как этого добиться без negotiate?

Вернее, стоит уточнить, по теме вопроса.
В той ссылке, что я кинул в самом начале, есть отдельный пункт. http://wiki.squid-cache.org/ConfigExamp … te_wrapper
Вот эту операцию я не выполнил, но
squid -v

Squid Cache: Version 3.1.6
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' '--disable-maintainer-mode' '--disable-dependency-tracking' '--disable-silent-rules' '--srcdir=.' '--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' '--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 -g -Wall -O2' 'LDFLAGS=' 'CPPFLAGS=' 'CXXFLAGS=-g -O2 -g -Wall -O2' --with-squid=/tmp/buildd/squid3-3.1.6

Вот этот пункт '--enable-auth=basic,digest,ntlm,negotiate'
Вот поэтому, я предпологал, что работать будет.

5

Проблему решить удалось. Было доделано:
1)сборка и установка negotiate_wrapper
После этого проблема не решилась, но я наткнулся на статью, там говорилась, прописать проксю в браузере по доменному имени, а не по IP, по сему
2)прописать проксю по доменному имени, а не по IP
В моем случаи squid.local.net

После данных операций access лог

1365963750.667    232 10.10.1.10 TCP_MISS/200 32750 GET http://www.google.ru/ Administrator@LOCAL.NET DIRECT/74.125.143.94 text/html
1365963750.894      0 10.10.1.10 TCP_DENIED/407 4817 GET http://www.google.ru/csi? - NONE/- text/html
1365963750.926     31 10.10.1.10 TCP_MISS/204 684 GET http://www.google.ru/csi? Administrator@LOCAL.NET DIRECT/74.125.143.94 image/gif

squid.conf оставил вот так

##Auth Kerberos
auth_param negotiate program /usr/lib/squid3/squid_kerb_auth -d
auth_param negotiate children 10
auth_param negotiate keep_alive off

Enzo_brn, благодарен за помощь, спасибо.

6 (15.04.2013 07:47:46 отредактировано Me_Shock)

Serega955⇓ пишет:

Я так понял, что negotiate_wrapper используется для того, что бы использовать метод аутентификации через Kerberos и NTLM, ну тоесть как бы предоставляет например браузеру именно тот метод, который им поддерживается. А что если я хочу например использовать просто kerberos? Как этого добиться без negotiate?

как я понял: basic,digest,ntlm,negotiate - типы (4 шт) аутентификации, а вот у типа аутентификации "negotiate", которая происходит через специально заточенный под это враппер (negotiate_wrapper) и является "more secure than NTLM и еще чего-то там.." есть 2 пути работы: через "type 1 token - NTLM" либо "type 2 token - Kerberos". Хотя я использовал ntlm, однако в каком-то одном(опере, кажется) браузере все-равно через раз выскакивало окно аутентификации. Хотя и в http://opera:config опция Enable NTLM. вкл..

надпись на двери старого трамвая: "ВЫХОДА НЕТ!" | ❤windows 8 enterprise

7

Serega955 пишет:

Проблему решить удалось. Было доделано:
1)сборка и установка negotiate_wrapper
После этого проблема не решилась, но я наткнулся на статью, там говорилась, прописать проксю в браузере по доменному имени, а не по IP, по сему
2)прописать проксю по доменному имени, а не по IP
В моем случаи squid.local.net

После данных операций access лог

1365963750.667    232 10.10.1.10 TCP_MISS/200 32750 GET http://www.google.ru/ Administrator@LOCAL.NET DIRECT/74.125.143.94 text/html
1365963750.894      0 10.10.1.10 TCP_DENIED/407 4817 GET http://www.google.ru/csi? - NONE/- text/html
1365963750.926     31 10.10.1.10 TCP_MISS/204 684 GET http://www.google.ru/csi? Administrator@LOCAL.NET DIRECT/74.125.143.94 image/gif

squid.conf оставил вот так

##Auth Kerberos
auth_param negotiate program /usr/lib/squid3/squid_kerb_auth -d
auth_param negotiate children 10
auth_param negotiate keep_alive off

Enzo_brn, благодарен за помощь, спасибо.

Не прокатывает как ни крутил конфиг одно и то же валится

authenticateNegotiateHandleReply: Error validating user via Negotiate. Error returned 'BH received type 1 NTLM token'

как победить подскажите хоть что нить....

8

Пошаговое описание настройки Squid 3.3.8, в том числе и настройка аутентификации Kerberos/NTLM, на базе Ubuntu Server 14.04 LTS
Ссылка на первую из десяти частей:
http://blog.it-kb.ru/2014/06/16/forward … tion-2-vm/