Собственно сабж.
Есть задача сделать прозрачную авторизацию пользователей linux/mac на проксе. для Windows с AD решается нараз - ntlm_auth.
Здесь чувствую копать надо в сторону kerberos, но что-то не идёт.
На данный момент сеть имеет следующую конфигурацию:
есть AD под Win2k3. Оттуда берутся учётки для всех пользователей. процентное соотношение где-то 70/20/10 win/lin/mac. Для автоматической настройки прокси работают GP+WPAD/PAC. Прозрачная авторизация на win идёт на ура. с lin буксует.
кусок конфига squid:
------------------------------------------
auth_param ntlm program /usr/bin/ntlm_auth --helper-protocol=squid-2.5-ntlmssp
auth_param ntlm children 5
auth_param ntlm use_ntlm_negotiate onauth_param negotiate program /usr/lib/squid3/squid_kerb_auth
auth_param negotiate children 5
auth_param negotiate keep_alive onauth_param basic children 5
auth_param basic realm Squid proxy-caching web server
auth_param basic credentialsttl 2 hours
------------------------------------------
при старте squid экспортируется переменная KRB5_KTNAME=/etc/krb5.keytabКак настроена авторизация в ubuntu. для авторизации используется samba+krb5. PAM настроено таким образом:
------------------------------------------
/etc/pam.d/common-account
account [success=2 new_authtok_reqd=done default=ignore] pam_unix.so
account [success=1 default=ignore] pam_krb5.so
account requisite pam_deny.so
account required pam_permit.so/etc/pam.d/common-auth
auth [success=2 default=ignore] pam_unix.so nullok_secure
auth [success=1 default=ignore] pam_krb5.so use_first_pass
auth requisite pam_deny.so
auth required pam_permit.so/etc/pam.d/common-password
password [success=2 default=ignore] pam_unix.so obscure sha512
password [success=1 user_unknown=ignore default=die] pam_krb5.so try_first_pass
password requisite pam_deny.so
password required pam_permit.so/etc/pam.d/common-session
session [default=1] pam_permit.so
session requisite pam_deny.so
session required pam_permit.so
session required pam_unix.so
session optional pam_ck_connector.so nox11
session required pam_mkhomedir.so umask=0077/etc/pam.d/common-session-noninteractive
session [default=1] pam_permit.so
session requisite pam_deny.so
session required pam_permit.so
session optional pam_umask.so
session required pam_unix.so
session optional pam_winbind.so
------------------------------------------По Mac - там всё ещё проще с настройкой, ничего особо править не надо. пару кнопок нажать.
Но пока результат тот же. нужно вводить имя и пароль - срабатывает только basic авторизация.
Кто-то уже подобное проделывал, может подсказать? в первую очередь интересует linux.
PS: про cntlm - знаю. тоже не подходит. проще уже галочку поставить и сохранить пароль.
Configuring a Squid Server to authenticate from Kerberos
http://wiki.squid-cache.org/ConfigExamples/Authenticate/Kerb...Squid, Kerberos и LDAP
http://blog.ronix.net.ua/2008/08/squidkerberos-c-ldap-active...squid+ad2008\kerberos+ldap и win7\ie8
http://www.lissyara.su/?id=2101Debian Squeeze, Squid, Kerberos/LDAP аутентификация, интеграция Active Directory и Cyfin Reporter
http://alldebian.ru/debian-squeeze-squid-kerberosldap-active...
> Configuring a Squid Server to authenticate from Kerberos
> http://wiki.squid-cache.org/ConfigExamples/Authenticate/Kerb...
> Squid, Kerberos и LDAP
> http://blog.ronix.net.ua/2008/08/squidkerberos-c-ldap-active...
> squid+ad2008\kerberos+ldap и win7\ie8
> http://www.lissyara.su/?id=2101
> Debian Squeeze, Squid, Kerberos/LDAP аутентификация, интеграция Active Directory и Cyfin
> Reporter
> http://alldebian.ru/debian-squeeze-squid-kerberosldap-active...Всё это читано, всё пробовалось, но не получилось. Вы такое реализовывали?
> Собственно сабж.
> Есть задача сделать прозрачную авторизацию пользователей linux/mac на проксе. для Windows
> с AD решается нараз - ntlm_auth.
> Здесь чувствую копать надо в сторону kerberos, но что-то не идёт.Вы определитесь, какую авторизацию вы хотите - ntlm или kerberos. Локализуйте причину и задавайте более конкретные вопросы. Помгут логи.
> /etc/pam.d/common-auth
> auth [success=2 default=ignore] pam_unix.so
> nullok_secure
> auth [success=1 default=ignore] pam_krb5.so
> use_first_passКлиенты у Вас авторизуются по керберос, как я понял, напрямую без винбинд (самбы).
Если скуид настраиваете на керберос, по проверьте, авторизуются ли виндовые клиенты без ntlm.Если хотите нтлм, то линукс клентов настраивайте соотв образом.
В точности Вашу схему не использовал. У меня схема: MIT kerberos - авторизация, openldap - аккаунты. Линукс и виндоус клиенты получают доступ к сквиду по керберос билетам. Работает без проблем.
> Если хотите нтлм, то линукс клентов настраивайте соотв образом.нет ntlm для windows. интересует именно керберос. там видно что сначала идёт ntlm, потом kerberos? а затем basic
> В точности Вашу схему не использовал. У меня схема: MIT kerberos -
> авторизация, openldap - аккаунты. Линукс и виндоус клиенты получают доступ к
> сквиду по керберос билетам. Работает без проблем.А можете по подробнее. просто из того, что я видел и делал прозрачно пустить клиента по тикету не получалось.
>> Если хотите нтлм, то линукс клентов настраивайте соотв образом.
> нет ntlm для windows. интересует именно керберос. там видно что сначала идёт
> ntlm, потом kerberos? а затем basicОб нтлм вы указали в конфиге сквида и здесь.
> для Windows с AD решается нараз - ntlm_auth.Все же если убрать из сквида ntlm, вендовые клиенты авторузуются прозрачно?
> А можете по подробнее. просто из того, что я видел и делал
> прозрачно пустить клиента по тикету не получалось.Я делал все стандартно. Создал на сервере принципал HTTP/ext.school@SCHOOL. squid.keytab положил в доступное сквиду место и задал перед запуском сквида переменную
KRB5_KTNAME=/etc/squid/squid.keytab. На клиенте требуется только настройка прокси. Работают фарефокс и хромиум. Насчет других браузеров не знаю: авторизация не совсем тривиальная и поодерживают не все. В фарефоксе есть и дополнительные настройки авторизации negotiate. Можете попробовать задать их.
Конфиг сквида похож на ваш
auth_param negotiate program /usr/lib/squid/squid_kerb_auth -d -s HTTP/ext.school@SCHOOL
auth_param negotiate children 7
auth_param negotiate keep_alive on
Смотрите в логи авторизации. Там можно увидеть причину отказа.