Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Общий по Linux (http://forum.oszone.net/forumdisplay.php?f=9)
-   -   Проблема с kerberos + pam (http://forum.oszone.net/showthread.php?t=243866)

VladDV 03-10-2012 09:44 1998817

Проблема с kerberos + pam
 
Привет!

Настраиваю аутентификацию squid3 по kerberos через ввод логина и пароля, т.е. через pam. Стоят пакеты 'krb5-user', 'krb5-config', 'krb5-doc', 'libpam-krb5'. Система Debian 6 с сегодняшним apt-get upgrade.

Файл /etc/krb5.conf:
Код:

[libdefaults]
        default_realm = MYDOMAIN.LOCAL
        dns_lookup_kdc = no
        dns_lookup_realm = no
        ticket_lifetime = 24h
        default_tgs_enctypes = aes256-cts-hmac-sha1-96 rc4-hmac des-cbc-crc des-cbc-md5
        default_tkt_enctypes = aes256-cts-hmac-sha1-96 rc4-hmac des-cbc-crc des-cbc-md5
        permitted_enctypes = aes256-cts-hmac-sha1-96 rc4-hmac des-cbc-crc des-cbc-md5


[realms]
        MYDOMAIN.LOCAL = {
                kdc = dc1.mydomain.local
                admin_server = dc1.mydomain.local
                default_domain = mydomain.local

        }
[domain_realm]
        .mydomain.local = MYDOMAIN.LOCAL
        mydomain.local = MYDOMAIN.LOCAL

Файл /etc/pam.d/squid:
Код:

#%PAM-1.0

@include common-kerberos

Файл /etc/pam.d/common-kerberos:
Код:

auth        sufficient      pam_krb5.so debug use_first_pass
session    required    pam_permit.so
account    required      pam_permit.so
password    required      pam_permit.so

Начало файла /etc/squid3/squid.conf:
Код:

auth_param basic program /usr/lib/squid3/pam_auth -n squid
auth_param basic children 10
auth_param basic credentialsttl 1 minutes
auth_param basic realm PROXY SERVER

acl auth proxy_auth REQUIRED
http_access allow all auth

kinit user после ввода правильного пароля отрабатывает без ошибок, klist показывает полученный билет.

Если же заходить из браузера через наш прокси, как положено выдает требование ввода логина и пароля. Если ввожу просто имя пользователя и пароль, то в /var/log/auth.log следующее:

Код:

Oct  3 16:32:58 proxy (pam_auth): pam_krb5(squid:auth): (user user) krb5_parse_name failed: Configuration file does not specify default realm
Oct  3 16:32:58 proxy (pam_auth): pam_krb5(squid:auth): authentication failure; logname=user uid=13 euid=13 tty= ruser= rhost=
Oct  3 16:32:58 proxy (pam_auth): pam_krb5(squid:auth): pam_sm_authenticate: exit (failure)

Если имя пользователя дополнять именем домена, тогда в данном логе следующее:

Код:

Oct  3 16:34:51 proxy (pam_auth): pam_krb5(squid:auth): pam_sm_authenticate: entry (0x0)
Oct  3 16:34:51 proxy (pam_auth): pam_krb5(squid:auth): (user user@mydomain.local) attempting authentication as user@mydomain.local
Oct  3 16:34:51 proxy (pam_auth): pam_krb5(squid:auth): (user user@mydomain.local) krb5_get_init_creds_password: KDC reply did not match expectations
Oct  3 16:34:51 proxy (pam_auth): pam_krb5(squid:auth): authentication failure; logname=user@mydomain.local uid=13 euid=13 tty= ruser= rhost=
Oct  3 16:34:51 proxy (pam_auth): pam_krb5(squid:auth): pam_sm_authenticate: exit (failure)

Если же ввести пользователя с доменом, но неверным паролем, то дает следующее:

Код:

Oct  3 16:36:41 proxy (pam_auth): pam_krb5(squid:auth): pam_sm_authenticate: entry (0x0)
Oct  3 16:36:41 proxy (pam_auth): pam_krb5(squid:auth): (user user@mydomain.local) attempting authentication as user@mydomain.local
Oct  3 16:36:42 proxy (pam_auth): pam_krb5(squid:auth): (user user@mydomain.local) krb5_get_init_creds_password: Preauthentication failed
Oct  3 16:36:42 proxy (pam_auth): pam_krb5(squid:auth): authentication failure; logname=user@mydomain.local uid=13 euid=13 tty= ruser= rhost=
Oct  3 16:36:42 proxy (pam_auth): pam_krb5(squid:auth): pam_sm_authenticate: exit (failure)

что говорит о том, что все таки проверка пользователя проходит на контроллере домена. Контроллер домена - windows server 2008 R2. В журналах контроллера ошибок, связанных с этим процессом, не нашел. Время на серверах синхронизировано.

После попытки входа в браузере повторно выдает запрос логина и пароля.

VladDV 09-10-2012 05:51 2001834

Расковырял, что пам-модуль использует общий кейтаб. Добавил параметр

Код:

default_keytab_name = /etc/krb/host.proxy.keytab
Соответственно в Windows создал учетную запись компьютера proxy и сгенерировал этот кейтаб командой:

Код:

ktpass -princ host/proxy.mydomain.local@MYDOMAIN.LOCAL -mapuser proxy$.mydomain.local -crypto rc4-hmac-nt -pass 123 -ptype KRB5_NT_SRV_HST -out C:\host.proxy.keytab
Кейтаб положил в /etc/krb/host.proxy.keytab и для отладки сделал chmod -R 777 /etc/krb/ (естественно потом права поменяю на нужные).

Код:

kinit -k host/proxy.mydomain.local@MYDOMAIN.LOCAL -t /etc/krb/host.proxy.keytab
проходит без проблем, билет выдает.

Однако проблема со сквидом осталась. У кого-нибудь вообще работает kerberos через pam? Пусть даже не для сквида, а для других служб?


Время: 19:10.

Время: 19:10.
© OSzone.net 2001-