Squid+AD+Kerberos+https without password
-
Остается собраться с духом (и гуглопереводчиком) и обратиться в англо-ветку.
-
Приветствую!
Я настраивал по https://journeyofthegeek.com/2017/12/30/pfsense-squid-kerberos/.
Все получилось. (Только не надо включать ssl фильтрацию в настройках Squid-а. Он и так теперь работает как надо)
Использую непрозрачный Squid + SquidGuard.
Авторизация в Squid - Kerberos.
Доступ ограничиваю SquidGuard + фильтры LDAP. -
@Gonzales Приветствую!
Всё получилось! Пользователь получает тикет и успешно заходит в интернет без всяких логинов\паролей.
Расскажите подробней, а при отключении фильтрации ssl как ограничивать пользователям доступ к сайтам по https?
И про фильтры ldap вы имеете ввиду хелпер ext_ldap_group_acl ??? -
При отключенной опции
Services
-> Squid Proxy Server
->HTTPS/SSL Interception
Enable SSL filtering.
https благополучно фильтруются. ( https://forum.netgate.com/topic/127178/%D0%BE%D1%87%D0%B5%D1%80%D0%B5%D0%B4%D0%BD%D0%BE%D0%B9-%D0%B2%D0%BE%D0%BF%D1%80%D0%BE%D1%81-%D0%BF%D0%BE-%D1%84%D0%B8%D0%BB%D1%8C%D1%82%D1%80%D0%B0%D1%86%D0%B8%D0%B8-https-%D0%B2-squid )В SquidGuard в настройках Target categories указываем для фильтрации Domain List (Например mail.ru youtube.com) и URL List (mail.ru/ youtube.com/)
Фильтры LDAP:
в SquidGuard -> General settings:
Strip NT domain name [ V ]
Strip Kerberos Realm [ V ]без этих опций не работает, т.к. имя объекта будет иметь вид user@domain.local, а нам надо просто user.
в SquidGuard -> Groups ACL -> Client (source):
ldapusersearch ldap://serverDC.domain.local:3268/DC=DOMAIN,DC=LOCAL?sAMAccountName?sub?(&(sAMAccountName=%s)(memberOf=CN=IT_Group%2cOU=IT%2cOU=Users%2cDC=DOMAIN%2cDC=LOCAL))
И говорим этой группе, как поступать с каждым таргетом в Target Rules List.
Еще ссылки:
http://sophie.aero.jussieu.fr/distrib/Mandriva/2011.0/x86_64/by-pkgid/11346c3ea8d66e97756aab0a36574da7/files/34
тут про фильтр ldap. Мне помогла, т.к. я не указывал порт (пол дня потратил из за тупости и/или лени).https://open-networks.ru/d/47-pfsense-squid-clamav
тут на коротке общие настройки -
Enable LDAP FilterEnable options for setup ldap connection to create filters with ldap search LDAP DN CN=**учетка та же что и керберос?**,OU=service-accounts,DC=primvoda,DC=local Configure your LDAP DN (ex: cn=Administrator,cn=Users,dc=domain) LDAP DN Password **какойтопароль** Password must be initialize with letters (Ex: Change123), valid format: [a-zA-Z\/][a-zA-Z0-9/_\-\.\/\:\%\+\?=&] [V] Strip NT domain nameStrip NT domain name component from user names (/ or \ separated). [V] Strip Kerberos RealmStrip Kerberos Realm component from user names (@ separated).
Я правильно все понял?
ldapusersearch ldap://bdc.primvoda.local:3268 почему именно этот порт?/DC=PRIMVODA,DC=LOCAL?sAMAccountName?sub?(&(sAMAccountName=%s)(memberOf=CN=group_0%2cOU=squid%2cOU=service-groups%2cDC=PRIMVODA%2cDC=LOCAL))
так выглядит группа, но суть в том что фильтрация не работает, лог пустой, сквидгуард говорит что все ок - включен. Пытался фильтровать через common ACL, там стоит запрет на все вообще, а все равно пускает в сеть, может я где то на сквиде не так что-то ввел?
Аутентификация керберос выглядит так:
auth_param negotiate program /usr/local/libexec/squid/negotiate_kerberos_auth -k /usr/local/etc/squid/krb5.keytab auth_param negotiate children 1000 auth_param negotiate keep_alive on # включаем авторизацию по паролю acl auth proxy_auth REQUIRED http_access allow auth http_access deny !auth
Интеграция squidguard создана автоматически
url_rewrite_program /usr/local/bin/squidGuard -c /usr/local/etc/squidGuard/squidGuard.conf;url_rewrite_bypass off;url_rewrite_children 16 startup=8 idle=4 concurrency=0
-
Порт можно узнать nmap-ом.
3268/tcp open globalcatLDAP
После того как делаете изменения в настройках SquidGuard, нажимаете в Global settings кнопку [V]Apply ?
Что в логах cat /var/squidGuard/log/squidGuard.log?
Попробовать в Squid поставить http_access deny !auth перед http_access allow auth.
-
@Gonzales
На счет порта уже разобрался, даже проверил открыт ли он на контроллере.18.11.2019 13:20:36 squidGuard stopped (1574047236.554) 18.11.2019 13:20:36 squidGuard stopped (1574047236.552) 18.11.2019 13:20:36 squidGuard stopped (1574047236.527) 18.11.2019 13:20:36 squidGuard stopped (1574047236.527) 18.11.2019 13:20:36 squidGuard stopped (1574047236.526) 18.11.2019 13:20:36 squidGuard stopped (1574047236.525) 18.11.2019 13:20:36 squidGuard stopped (1574047236.523) 18.11.2019 13:20:36 squidGuard stopped (1574047236.520) 18.11.2019 13:20:29 Added LDAP source: krivoshein-ay@primvoda.local 18.11.2019 13:20:29 (squidGuard): ldap_search_ext_s failed: Operations error (params: dc=primvoda,dc=local, 2, (&(sAMAccountName=krivoshein-ay@primvoda.local)(memberOf=CN=group_0,OU=squid,OU=service-groups,DC=primvoda,DC=local)), sAMAccountName) 18.11.2019 13:17:43 squidGuard ready for requests (1574047063.673) 18.11.2019 13:17:43 Info: recalculating alarm in 38477 seconds 18.11.2019 13:17:43 squidGuard 1.4 started (1574047063.464)
Примерно так выглядит весь лог, только одинаковых записей о попытке авторизации пользователя больше.
В конфиге местами поменял строчки, ничего не поменялось.
apply применял, как и перезагрузку собственно -
krivoshein-ay@primvoda.local - должно быть krivoshein-ay
Галки в SquidGuard в General стоят?
Strip NT domain name [ V ]
Strip Kerberos Realm [ V ] -
@Gonzales стоят
-
@Gonzales не совсем понимаю как логи пишутся, последняя запись "остановлено", а в general settings "STARTED"
-
@Gonzales ошибка с логином
18.11.2019 13:57:46 Added LDAP source: krivoshein-ay@primvoda.local 18.11.2019 13:57:46 (squidGuard): ldap_search_ext_s failed: Operations error (params: dc=primvoda,dc=local, 2, (&(sAMAccountName=krivoshein-ay@primvoda.local)(memberOf=CN=group_0,OU=squid,OU=service-groups,DC=primvoda,DC=local)), sAMAccountName)
Возникает когда я отключаю лдап в general settings, когда включаю начинается событие
18.11.2019 13:57:49 squidGuard stopped (1574049469.524)
-
Попробуй убрать enable ldap filter в General settings, нажать apply и посмотреть логи на предмет отсутствия
squidGuard stopped.В учетной записи (на контроллере домена) посмотреть :
Не стоит галка на "Без предварительной проверки подлинности Kerberos" (вот с этим в свое время тоже намучался, когда отдельно squid настраивал на centos-е)
Стоит галка на "Данная учетная запись поддерживает 128-разрядное" (если делал по мануалу)Можно скрин с General settings или строку с LDAP DN?
-
@Gonzales
учетка создавалась по более простому шифрованию, не AES, попробовать пересоздать?
Если убрать галочку enable LDAP filter SG чудесным образом оживает -
@Gonzales аутентификация при этом на самом сквиде должна быть "none"? помимо того что в дополнительных свойствах прописали
-
На сквиде все норм. (должно быть).
У меня так:
В настройках Squid:
[General]
Enable Squid Proxy - [ V ]
Keep Settings/Data - [ V ]
Proxy Interface(s) - [ LAN, loopback ]
Proxy Port - [ 3128 ]
ICP Port - <empty>
Allow Users on Interface - [ V ]
Resolve DNS IPv4 First - [V]
Disable ICMP - [ ]
Use Alternate DNS Servers for the Proxy Server - <empty>
Transparent HTTP Proxy - [ ]
HTTPS/SSL Interception - [ ]в адвансед:
auth_param negotiate program /usr/local/libexec/squid/negotiate_kerberos_auth -d -k /usr/local/etc/squid/proxy-pf.keytab
auth_param negotiate children 60
auth_param negotiate keep_alive offacl auth proxy_auth REQUIRED
http_access deny !auth
http_access allow authНа вкладке Real time можно посмотреть.
С SG непонять.. Надо попробовать убрать enable LDAP filter, добавить пару сайтов в блэклист и попробовать на них зайти. Если не заходится, значит SG отрабатывает и значит проблема только в подключении к LDAP, т.е. в строке LDAP DN и/или LDAP DN Password в General settings.
Не стоит галка на "Без предварительной проверки подлинности Kerberos" - это проверял?
-
@Gonzales галка не стоит, только я так и не понял, она должна стоять или нет?
Поидее для работы с Ldap SG нужна любая учетка способная читать каталоги LDAP, т.е я могу попробовать любую другую учетку поставить сюда? -
Да, можно попробовать другую. Вот еще господа с форума писали
"Разобрался с авторизацией squid через LDAP. Нужно указать порт 3268 вместо стандартного 389. Теперь pf2ad не нужен.
Squidguard заработал, когда поставил пароль на учётку из 8 букв без цифр, символов. Со сложным паролем не работает(
Подключение к AD прошло успешно! :)"
https://forum.netgate.com/topic/122291/pf2ad-squidguard-%D0%BD%D0%B5-%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%B0%D0%B5%D1%82-squidguard/7
-
@flamel Ну как успехи?
-
@Gonzales
Я почти обрадовался, пароль поставил простой и СГ отвис, но теперь веселее, бесконечный запрос логина и пароляldapusersearch ldap://bdc.primvoda.local:3268/DC=PRIMVODA,DC=LOCAL?sAMAccountName?sub?(&(sAMAccountName=%s)(memberOf=CN=group_0%2cOU=squid%2cOU=service-groups%2cDC=PRIMVODA%2cDC=LOCAL))
Лист блокировок:
18.11.2019 11:48:35 192.168.12.147/192.168.12.147 r2---sn-ug5onuxaxjvh-n8vs.googlevideo.com:443 Request(default/none/-) krivoshein-ay@primvoda.local CONNECT REDIRECT 18.11.2019 11:48:21 192.168.12.147/192.168.12.147 sync.opera.com:443 Request(default/none/-) krivoshein-ay@primvoda.local CONNECT REDIRECT 18.11.2019 11:48:18 192.168.12.147/192.168.12.147 r2---sn-ug5onuxaxjvh-n8vs.googlevideo.com:443 Request(default/none/-) krivoshein-ay@primvoda.local CONNECT REDIRECT 18.11.2019 11:48:01 192.168.12.147/192.168.12.147 r2---sn-ug5onuxaxjvh-n8vs.googlevideo.com:443 Request(default/none/-) krivoshein-ay@primvoda.local CONNECT REDIRECT
СГ работает
18.11.2019 16:08:27 squidGuard ready for requests (1574057307.294) 18.11.2019 16:08:27 Info: recalculating alarm in 28233 seconds 18.11.2019 16:08:27 squidGuard 1.4 started (1574057307.050)
может дело в галке "Без предварительной проверки подлинности kerberos"? она должна стоять или нет?
-
Нет не должна.. И это к Squid-у относится, но у тебя авторизация проходит. Или нет?