pfSense + Squid + AD



  • Приветствую уважаемых знатоков.
    Имеется pfSense 2.4.4-RELEASE-p2. Возникла необходимость развернуть Squid и подружить его с AD. Squid 3.5.27_3.

    Вопросы такие:
    В конфиге squid.conf сказано -
    This file is automatically generated by pfSense
    Do not edit manually !
    Как его конфигурить, если в веб-интерфейсе параметров раз-два и обчелся?

    По-умолчанию в squid.conf строка аутентификации начинается с auth_param basic program /usr/local/libexec/squid/basic_ldap_auth, но как поменять basic_ldap_auth на ext_ldap_group_acl, например, если он сам генерит конфиг и негде указать другой хелпер?

    Во время попытки ввести пароль в браузере в cache.log всего-навсего 2019/03/12 16:30:35 kid1| Starting new basicauthenticator helpers..., никаких ошибок, при этом пароль как бы принимается, но страница не открывается. В логах контроллера домена при этом пусто. Нет логов что он кому-то отказал и аутентифицировал. Нормальная ли это ситуация в логах?
    з.ы. При включенном дебаг-моде нет никаких сообщений типа DENIED или подобного, но есть вот такое
    Acl.cc(70) AuthenticateAcl: returning 2 sending credentials to helper.
    Acl.cc(158) matches: checked: password = -1 async
    Acl.cc(158) matches: checked: http_access#12 = -1 async
    Acl.cc(158) matches: checked: http_access = -1 async
    client_side.cc(3280) clientParseRequests: Not parsing new requests, as this request may need the connection

    При попытке в командной строке pfSense выполнить /usr/local/libexec/squid/ext_ldap_group_acl -R -d -b "dc=domain,dc=com" -f "(&(objectclass=user)(sAMAccountName=%v)(memberOf=cn=%a,CN=Users,DC=domain,DC=com))" -D squid@domain.com -K -w megapassword 172.17.0.1
    (логин, группа, вывод OK). Если вбить заведомо неверный логин или группу, выдает ERR. Т.е. с помощью ext_ldap_group_acl squid может общаться с AD и читать необходимую инфу.

    Прошу знатоков направить в нужном направлении мысли для решения данной проблемы.



  • Привет.

    Вроде ваш случай не такой уж и особенный. Главное правильно LDAP search filter построить.

    memberOf=cn=%a

    memberOf=CN=%a не пробовали? Это же *nix.

    https://topnetworkguide.com/category/pfsense/



  • Проблема та же, работает как с маленькими так и с большими буквами



  • пробовали и так и так. работает в любом случае нормально при запуске команды из консоли, а в конфиге ни так ни эдак. за ссылку спасибо!



  • @20ivs
    Доброе утро
    Попробую помочь
    Если принять за шаблон строку из конфига (см ниже) , которую формирует SQUID , какие изменения надо в нее внести , чтобы Ваш вариант работал ?

    /libexec/squid/basic_ldap_auth -v XXX -b XXX -D XXX -w XXXX -f "XXXXX" -u XXXX -P XXXX:PPP

    при условии , что все данные squid берет из настроек .
    Если шаблон отличается , покажите тут , как выглядит аналогичная строка в Вашем случае



  • @konstanti
    Squd формирует такую строку
    auth_param basic program /usr/local/libexec/squid/basic_ldap_auth -v 3 -b DC=domain,DC=com -D CN=squid,CN=Users,DC=domain,DC=com -w megapassword -f "(&(objectClass=person)(sAMAccountName=%s) (memberof=CN=SquidGroup,DC=domain,DC=com))" -u sAMAccountName -P 172.17.0.1:389



  • Добрый день.
    Вчера настраивал pfSense + Squid + AD по этому:
    https://topnetworkguide.com/pfsense-squid-active-directory-authentication/.
    В параметре LDAP Server User DN лучше написать user@anywhere.com , а не DN.
    Работает.
    Но спрашивает один раз имя пользователя и пароль. Соответственно вопросы:

    1. как сделать, чтобы не было Authentication Prompt?
    2. что это за параметры -w megapassword -f и -u sAMAccountName?


  • @20ivs все хорошо. Но на главный вопрос Вы не ответили. То что показали, соответствует моему шаблону. А мне от Вас нужно увидеть другое. Какие изменения надо внести в шаблон, чтобы строка в конфиге выглядела так, как Вам надо. Просьба отличия показать на примере шаблона.



  • @konstanti
    Я хотел бы использовать хелпер /usr/local/libexec/squid/ext_ldap_group_acl вместо /usr/local/libexec/squid/basic_ldap_auth потому как аутентификация у нас по группам и к тому же этот хелпер работает при проверке из командной строки.
    /usr/local/libexec/squid/ext_ldap_group_acl -R -d -b "dc=domain,dc=com" -f "(&(objectclass=user)(sAMAccountName=%v)(memberOf=cn=%g,CN=SquidGroup,DC=domain,DC=com))" -D squid@domain.com -K -w megapassword 172.17.0.1
    вывод: user SquidGroup OK
    Надеюсь, что правильно Вас понял.



  • @lucas1
    -w megapassword это указан пароль пользователя squid в домене.



  • @20ivs
    т е отличие только в том , что вместо
    /usr/local/libexec/squid/basic_ldap_auth

    надо использовать
    /usr/local/libexec/squid/ext_ldap_group_acl

    все остальное остается таким же как в шаблоне ????
    должно выглядеть так ??
    /usr/local/libexec/squid/ext_ldap_group_acl -v XXX -b XXX -D XXX -w XXXX -f "XXXXX" -u XXXX -P XXXX:PPP
    Просьба , ориентируйтесь на шаблон , а не то как заполнено в конфиге
    Так проще



  • Да, я посмотрел squid.conf. basic_ldap_auth работает для групп. Только - u uid в моем .conf/.
    Но:
    как сделать, чтобы не было Authentication Prompt?



  • как сделать, чтобы не было Authentication Prompt?

    Может это ?
    https://pf2ad.mundounix.com.br/



  • А вообще появление Authentication Prompt это нормально?
    У вас такого приглашения ввода пароля нет?



  • В общем, проблема решена. Развернут нормальный полноценный Squid и никто теперь не затирает конфиг и не мешает выбирать в конфиге нужный хелпер 😀
    Всем спасибо за участие! Хороших выходных! 🍹



  • @werter теперь стал платный ..☹



  • @millenium
    Попробуйте скачать скрипт https://github.com/pf2ad/pf2ad, убрать проверку версии пф в нем:

    Закомментировать\удалить строчки:

    ...
    # Verifica versao pfSense
    # if [ "$(cat /etc/version)" != "2.4.3-RELEASE" ]; then
    #	echo "ERROR: You need the pfSense version 2.4.3 to apply this script"
    #	exit 2
    # fi
    ...
    

    И уже после запустить скрипт :

    sh pf2ad.sh
    

    Может и сработать, если разработчик не грохнул зависимости, к-ые он подтягивает.


Log in to reply