LINUX.ORG.RU
ФорумAdmin

zentyal squid kerberos


0

1

Добрый день! Люди добрый помогите, не работает авторизация через kerberos. Имеется контроллер домена на samba4(Zentyal3.4). Настроил авторизацию через kerberos.

Конфиг сквида такой: cat /etc/squid3/squid.conf

http_port 0.0.0.0:3128 # END_TAG #

visible_hostname (frontal)dc.16sp.loc coredump_dir /var/spool/squid3 cache_effective_user proxy cache_effective_group proxy access_log /var/log/squid3/access.log squid cache_log /var/log/squid3/cache.log cache_store_log /var/log/squid3/store.log

pid_filename /var/run/squid3.pid

cache_peer localhost parent 3129 0 no-query proxy-only login=*:nopassword

auth_param negotiate program /usr/lib/squid3/negotiate_kerberos_auth -i -s HTTP/dc.16sp.loc@16SP.LOC auth_param negotiate children 10 auth_param negotiate keep_alive on acl_uses_indirect_client on acl authorized proxy_auth REQUIRED

acl from_localhost src 127.0.0.0/8 ::1 acl to_localhost dst 127.0.0.0/8 ::1

acl fltr1~df~dmn1 dstdomain .vk.com

http_access allow to_localhost follow_x_forwarded_for allow from_localhost http_access allow from_localhost forwarded_for on log_uses_indirect_client on always_direct allow to_localhost

# force clients to use squid-external never_direct allow all

## ## ACLs from model rules ## acl longAcl~1 proxy_auth 123@16SP.LOC admin@16SP.LOC ## ## Access ##

http_access deny longAcl~1 fltr1~df~dmn1 http_access allow longAcl~1

## ## Default policy ## # All acces denied by default if no other allow rule matchs http_access deny all # reply access allowed if not denied before http_reply_access allow all

В браузере в настройках прокси пишу dc.16sp.loc, открываю любую страницу и получаю ошибку cache acces denied

В логах сквида пишет:

cat /var/log/squid3/cache.log

2014/07/18 09:43:00| negotiate_kerberos_auth: INFO: User not authenticated 2014/07/18 09:43:00| ERROR: Negotiate Authentication validating user. Error returned 'BH gss_acquire_cred() failed: Unspecified GSS failure. Minor code may provide more information. ' 2014/07/18 09:43:01| negotiate_kerberos_auth: INFO: User not authenticated 2014/07/18 09:43:01| ERROR: Negotiate Authentication validating user. Error returned 'BH gss_acquire_cred() failed: Unspecified GSS failure. Minor code may provide more information. '

cat /var/log/squid3/access.log

1405666154.089 93 192.168.1.112 TCP_DENIED/407 23691 POST http://wi2geo.mobile.yandex.net/getlocation - HIER_NONE/- text/html[br] 1405666154.112 1 192.168.1.112 TCP_DENIED/407 26050 POST http://wi2geo.mobile.yandex.net/getlocation - HIER_NONE/- text/html[br]

В чем может проблема? Время на сервере и на виндовой машине одинаковые.
Керберос вроде бы билеты получает:
root@dc:/# kinit 123 123@16SP.LOC's Password: root@dc:/# klist Credentials cache: FILE:/tmp/krb5cc_0 Principal: 123@16SP.LOC

Issued Expires Principal Jul 18 11:29:04 2014 Jul 18 21:29:02 2014 krbtgt/16SP.LOC@16SP.LOC

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

На сколько я понял данная инстукция для squid+AD, у меня же samba в роли контроллера домена.

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

А какая разница? samba4 + squid - вполне себе ок живут!

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

samba4 как раз таки и реализует функционал MS AD, поэтому инструкция squid+AD это то что вам нужно.
Keytab не обязательно генерировать на контроллере домена, можно и на клиентской машине linux через ktutil или на клиентской windows с установленными пакетами для администрирования AD c помощью утилиты ktpass.

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

Keytab не обязательно генерировать на контроллере домена, можно и на клиентской машине linux через ktutil

А чего умеет эта утилита..? Я так понял - ничего... Можно в ней сгенерировать нечто подобное?:

ktpass -princ HTTP/<host>.<domain>@<REALM> -pass <password> -mapuser <domainnetbios>\http<host> -crypto RC4-HMAC-NT -ptype KRB5_NT_PRINCIPAL -out c:\temp\http<host>.keytab -kvno 0

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

Верно, я виноват... перепутал с msktutil. Пример создания keytab для squid через msktutil выглядит так

msktutil -c -b "CN=COMPUTERS" -s HTTP/<fqdn> -h <fqdn> -k /etc/squid/HTTP.keytab --computer-name squid-http --upn HTTP/<fqdn> --server <domain controller> --verbose

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

msktutil - я смотрел по параметрам, тоже далеко не то что нужно... Для squid - согласен, ещё пойдёт. Но для других продуктов очень может быть что и её не хватит. :(

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

собрал как здесь было сказано, все заработало. Сейчас имею другую проблему для разграничение пользователей по группам использую хелпер wbinfo_group.pl, создал две группы inet и noinet. Первой группе разрешаю доступ в инет другой нет. Не работает. Сам по себе wbinfo_group.pl отрабатывает нормально:

echo 'admin inet' | /usr/lib/squid3/wbinfo_group.pl

OK

а вот в сквиде не хочет. В кэш лог: такая вот ошибка:

failed to call wbcGetGroups: WBC_ERR_DOMAIN_NOT_FOUND Could not get groups for user vrach@16sp.loc.

Я так полагаю что ошибка выходит из-за того что к пользователю добавляется имя домена ввиде @16sp.loc. Я посмотрел в самбе список пользователей этих групп. Сохранил в файле и добавил к пользователю @16sp.loc. Получилось прмерно так

acl inet proxy_auth -i «/etc/squid3/inetusers»

acl urls-bad url_regex -i «/etc/squid3/bans»

http_access allow inet all !urls-bad

В inetusers написал admin@16SP.LOC. И тогда все заработало как надо. Может кто поможет дельным советом как испривать wbinfo_group.pl что бы он в сквиде отрабатывал нормально?

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