PfSense 2.1.3 и Kerberos (для Squid)
-
Эти ветки я читал. В первой ветке речь идёт про установку Samba (а хочется обойтись без неё как описано в статье на которую я привел ссылку), а во второй речь вообще об NTLM, а меня интересует именно Kerberos.
-
Вот еще варианты
http://www.opennet.ru/openforum/vsluhforumID1/95369.html
http://squid-web-proxy-cache.1019090.n4.nabble.com/Kerberos-and-NTLM-authentication-td4660031.htmlПо поводу ошибок "Undefined symbol " сдается вы установили не пакет не с той версии FreeBSD.
-
…По поводу ошибок "Undefined symbol " сдается вы установили не пакет не с той версии FreeBSD.
Ссылка откуда устанавливал видна в первом посте. Я полагал что в каталоге https://files.pfsense.org/packages/amd64/8/All/ лежат пакеты именно для pfSense 2.1.3 x64.
В конечном итоге пакеты доступные в этом каталоге (ни krb5-1.9.2_3.tbz ни heimdal-1.5.2_4.tbz) не принесли желаемого результата. Такое ощущение что для корректно работы этих пакетов не хватает каких-то зависимостей.
Установил пакет heimdal-1.4_1 из коллекции пакетов для FreeBSD 8.3 ftp://ftp.freebsd.org/pub/FreeBSD/ports/amd64/packages-8.3-release/Latest/heimdal.tbz
и утилиты для работы с Kerberos заработали. То есть эту проблему решить удалось.Но теперь возник другой вопрос относительно настройки LDAP-фильтра для хелпера squid_ldap_group к Squid.
Его можно здесь задать? -
C squid_ldap_group вроде разобрался. По крайней мере тестирование работает и хелпер мне успешно показывает включен пользователь домена в группу или не включен.
Теперь реально упёрся в другую проблему.
Не работает как надо хелпер /usr/local/libexec/squid/squid_kerb_auth, хотя по идее должен так как пакет squid3, как я вижу, собран с параметром '–enable-negotiate-auth-helpers=squid_kerb_auth'.Для проверки работы хелпера выполняю команду:
/usr/local/libexec/squid/squid_kerb_auth_test -d kom-ad01-gw01.holding.com
В ответ получаю:
dlopen: Cannot open "/usr/lib/libgssapi_krb5.so.10" dlopen: Cannot open "/usr/lib/libgssapi_spnego.so.10" 2014/05/29 11:14:57| squid_kerb_auth_test: gss_init_sec_context() failed: An unsupported mechanism was requested. unknown mech-code 0 for mech unknown Token: NULL
Дополнительная информация по исходным данным:
Содержимое файла /etc/krb5.conf
[libdefaults] default_realm = HOLDING.COM default_keytab_name = /usr/local/etc/squid/SQUID-Svc-on-GW01.keytab [realms] HOLDING.COM = { kdc = kom-ad01-dc01.holding.com kdc = kom-ad01-dc02.holding.com admin_server = kom-ad01-dc01.holding.com default_domain = holding.com } [domain_realm] .holding.com = HOLDING.COM holding.com = HOLDING.COM
Содержимое файла keytab (ktutil -k /usr/local/etc/squid/SQUID-Svc-on-GW01.keytab list) :
/usr/local/etc/squid/SQUID-Svc-on-GW01.keytab: Vno Type Principal Aliases 5 des-cbc-crc HTTP/kom-ad01-gw01.holding.com@HOLDING.COM 5 des-cbc-md5 HTTP/kom-ad01-gw01.holding.com@HOLDING.COM 5 arcfour-hmac-md5 HTTP/kom-ad01-gw01.holding.com@HOLDING.COM 5 aes256-cts-hmac-sha1-96 HTTP/kom-ad01-gw01.holding.com@HOLDING.COM 5 aes128-cts-hmac-sha1-96 HTTP/kom-ad01-gw01.holding.com@HOLDING.COM
Выполнен тест получения билета:
kinit -k HTTP/kom-ad01-gw01.holding.com klist
Результат:
Credentials cache: FILE:/tmp/krb5cc_0 Principal: HTTP/kom-ad01-gw01.holding.com@HOLDING.COM Issued Expires Principal May 29 11:24:28 May 29 21:24:28 krbtgt/HOLDING.COM@HOLDING.COM
То есть, как я понимаю, билет успешно получен.
Однако squid_kerb_auth_test как и squid_kerb_auth выдают вышеописанную ошибку.
Подскажите пожалуйста в какую сторону копать.
-
Никто ничего не подскажет?
-
Никто ничего не подскажет?
Возможно здесь проблема
dlopen: Cannot open "/usr/lib/libgssapi_krb5.so.10" dlopen: Cannot open "/usr/lib/libgssapi_spnego.so.10" 2014/05/29 11:14:57| squid_kerb_auth_test: gss_init_sec_context() failed: An unsupported mechanism was requested. unknown mech-code 0 for mech unknown Token: NULL
-
Это я уже понял :)
Только вот как решить эту проблему? -
В гугле пробовали поискать по squid_kerb_auth_test: gss_init_sec_context() failed ?
http://forum.lissyara.su/viewtopic.php?f=3&t=25959&start=50
осилил спустя полтора дня мозгового штурма, слишком много нюансов, которые в гайдах не везде указываются:
у клиента системное время должно соответствовать прокси и КД
в условиях win2008 нужно для mapuser разрешить использовать des шифрование, что бы тикет опознался как родной
в настройках прокси нужно указывать прокси как fqdn, а не ip адрес
необходимо для krb наличие обратной и прямой зоны для сквидаhttps://bbs.archlinux.org/viewtopic.php?id=157458
http://squid-web-proxy-cache.1019090.n4.nabble.com/Problems-setting-up-Kerberos-authentication-td1576502.html
-
Добрый день, werter
Тоже интересна эта тема
Бьюсь с настройкой уже пару дней
Поясните если не сложно как заставили squid использовать полученный keytab
Вариант с прописывание в стартовом скрипте squid.sh естественно не подошел, ибо затирает система автоматом при перезапуске squid3 из веб-интерфейса)У самого домен на win2003
Сейчас с клиентского ПК (IE8,Firefox 29, в прокси FQDN:3128) пытаюсь зайти в Инет, squid кидает ошибку
"Доступ к кэшу запрещен"
В логах squid3 cache:
authenticateNegotiateHandleReply: Error validating user via Negotiate
Error returned 'BH gss_acquire_cred() failed(настройки в основном брал тут
http://www.k-max.name/linux/avtorizaciya-autentifikaciya-squid/ )В pfsense 2.1 в настройках squid3 прописал свои опции в Custom Options:
auth_param negotiate program /usr/local/libexec/squid/squid_kerb_auth -s HTTP/gate.mydomen.lan@MYDOMEN.LAN
(пробовал просто с параметров -d)auth_param negotiate children 10
auth_param negotiate keep_alive on
acl lan proxy_auth REQUIRED
http_access allow lanИзначально ставил пакет heimdal (установился без вопросов)
ftp://ftp.freebsd.org/pub/FreeBSD/ports/i386/packages-8.3-release/Latest/Мой /etc/krb5.conf
[logging] default = FILE:/var/log/krb5libs.log kdc = FILE:/var/log/krb5kdc.log admin_server = FILE:/var/log/kadmind.log [libdefaults] default_realm = MYDOMEN.LAN default_keytab_name = /usr/local/etc/squid/gatehttp.keytab [realms] DOMAIN.LOCAL = { kdc = backup.mydomen.lan }[libdefaults] default_realm = MYDOMEN.LAN [realms] DOMAIN.LOCAL = { kdc = backup.mydomen.lan }
-
В Гугл - Error returned 'BH gss_acquire_cred() failed
http://www.lissyara.su/?id=2101 - настройка
authenticateNegotiateHandleReply: Error validating user via Negotiate. Error returned 'BH gss_acquire_cred() failed: Unspecified GSS failure. Minor code may provide more information. Permission denied'
Неверно назначены права на keytab, сквид его не может прочитать. -
Спасибо, werter
Но у меня ошибка другаяПроверка работы Kerberos для авторизации через keytab файл проходит успешно
kinit -k HTTP/gate.mydomen.lan klist Credentials cache: FILE:/tmp/krb5cc_0 Principal: HTTP/gate.mydomen.lan@MYDOMEN.LAN Issued Expires Principal Jun 4 09:36:02 Jun 4 19:36:02 krbtgt/MYDOMEN.LAN@MYDOMEN.LAN kdestroy
Права на keytab файл выставлены
ls -l gatehttp.keytab
-rw–----- 1 proxy proxy 71 Jun 4 08:02 gatehttp.keytabСейчас при попытке с клиентского ПК открыть браузер ошибка
Доступ к кэшу запрещёнВ логе cache.log
dlopen: Cannot open "/usr/lib/libgssapi_krb5.so.10"
dlopen: Cannot open "/usr/lib/libgssapi_spnego.so.10"
2014/06/04 09:24:54| authenticateNegotiateHandleReply: Error validating user via Negotiate. Error returned 'BH gss_acquire_cred() failed: No credentials were supplied, or the credentials were unavailable or inaccessible.. unknown mech-code 0 for mech unknown'Я так понимаю все же не хватает библиотек ? (не нашел где их взять)
Все же не могу понять, как в pfsense заставить squid увидеть keytab файлНа некоторых форумах советуют добавить
KRB5_KTNAME=/dir/to/HTTP.keytab
export KRB5_KTNAME
в скрипт запуска squid, но вопрос как добавить, если squid.sh генерируется системойЕсть ли мысли?
Заранее благодарен -
https://forums.freebsd.org/viewtopic.php?f=7&t=46530
ldconfig -r
….
lgssapi_krb5.10 => /usr/lib/libgssapi_krb5.so.10
lgssapi_spnego.10 => /usr/lib/libgssapi_spnego.so.10
.... -
Спасибо, werter
Но, пока не понятно, как все же установить необходимые библиотеки в Pfsense
Изначально установил пакет heimdal-1.4_1 из коллекции пакетов для FreeBSD 8.3ldconfig -r | grep libgssapi_krb5.so 130:-lgssapi_krb5.2 => /usr/local/lib/libgssapi_krb5.so.2 ldconfig -r | grep libgssapi_spnego.so - пусто -
Не судите строго, pfsense (как и FreeBSD) осваиваю недавно
-
Спасибо, werter за помощь
В проблеме разобрался, все заработало как надоВ логе cache.log
dlopen: Cannot open "/usr/lib/libgssapi_krb5.so.10"
dlopen: Cannot open "/usr/lib/libgssapi_spnego.so.10"
2014/06/04 09:24:54| authenticateNegotiateHandleReply: Error validating user via Negotiate. Error returned 'BH gss_acquire_cred() failed: No credentials were supplied, or the credentials were unavailable or inaccessible.. unknown mech-code 0 for mech unknown'Скачал необходимые библиотеки
cd /usr/lib/ fetch ftp://ftp.freebsd.tsc.ru/pub/FreeBSD/releases/i386/9.0-RELEASE/usr/lib/libgssapi_spnego.so.10 fetch ftp://ftp.freebsd.tsc.ru/pub/FreeBSD/releases/i386/9.0-RELEASE/usr/lib/libgssapi_krb5.so.10
Никаких переменных в скрипт запуска squid3 (squid.sh, squid.inc) прописывать не пришлось, все благополучно опознал
1402399039.444 70618 <ip адрес="">TCP_MISS/200 4685 CONNECT forum.pfsense.org:443 user@MYDOMEN.LAN DIRECT/208.123.73.68</ip>
-
Не за что.
Т.с. общее дело делаем и решение пригодится не только мне и вам. -
После мытарств с pfSense понял, что нужной мне гибкости Squid я на этой платформе не получу (больше сил уйдёт на борьбу с авто-генерируемыми конфигами). Перебрался на Linux и настроил всё как мне надо.
Если интересно, полное пошаговое описание из 10 частей настройки опубликовал в блоге.
Ссылка на первую часть:
http://blog.it-kb.ru/2014/06/16/forward-proxy-squid-3-3-on-ubuntu-server-14-04-lts-part-1-install-os-on-hyper-v-generation-2-vm/