PFSENSE: Squid + ADGroups + HTTPS
-
Добрый
@flamel
Спасибо за труд )Для этого создаём доменную учетную запись для нашего прокси,
Я бы только на этой учетке поставил галку на "Без предварительной проверки подлинности Kerberos".
В некоторых случаях данный блок надо заключить либо в одинарные, либо в двойные скобочки:
Предположу ,что кавычки нужны, если есть пробелы или НЕлатинские символы.
Ошибка? В строке "auth_param negotiate program ..." указано "-k /usr/local/etc/squid/squid.keytab". Однако, выше в /etc/krb5.conf указано "default_keytab_name /etc/krb5.keytab". И согласно manpages.ubuntu.com/manpages/bionic/en/man8/negotiate_kerberos_auth.8.html
-k Keytab-Name
Provide Kerberos Keytab Name (Default: /etc/krb5.keytab)Ах да, чуть не забыл:
Это можно прямо в ГУИ сквида делать? Есть ли пункт для таких случаев (что-то типа Custom Options (Before Start))? Сквид же правленное руками в его конфигах после ребута затирает ? Проверяли ребутом пф?
Разобрался )
manpages.ubuntu.com/manpages/bionic/en/man8/negotiate_kerberos_auth.8.htmlKerberos can keep a replay cache to detect the reuse of Kerberos tickets (usually only
possible in a 5 minute window) . If squid is under high load with Negotiate(Kerberos)
proxy authentication requests the replay cache checks can create high CPU load. If the
environment does not require high security the replay cache check can be disabled for MIT
based Kerberos implementations by adding the below to the startup script or use the -t none option.KRB5RCACHETYPE=none export KRB5RCACHETYPE
Т.е. или пользовать "костыль" в виде ручной правки squid.inc с добавлением строки с "KRB5RCACHETYPE=none export KRB5RCACHETYPE" или добавить в конец "auth_param negotiate program /path/to/negotiate_kerberos_auth" параметр "-t none". Что у вас и сделано.
Смело можно удалять добавленную руками строку в squid.inc, перезагружать squid и проверять.На время теста можно добавить в "auth_param negotiate program /path/to/negotiate_kerberos_auth" параметр -d
interface31.ru/tech_it/2015/06/nastraivaem-squid-dlya-raboty-s-active-directory-chast-2-kerberos-autentifikaciya.htmlЗы. Просьба, вместо скринов (части конфигов) пользовать текст.
-
@werter я полностью не разобрался с -t none и правкой записи в стартовом скрипте, но вроде правка записи в стартовом скрипте не работает именно на ПФсенс, мол где то это исправляется, сейчас уже не вспомню.
Скрины были использованы потому что местный антиспам блокировал все :( пропустил только так -
Добрый
@flamelя полностью не разобрался с -t none и правкой записи в стартовом скрипте
Объяснение и решение выше. Пробуйте.
Скрины были использованы потому что местный антиспам блокировал все :( пропустил только так
Пользуйте тэг "Code":
Пример:
ldapusersearch ..
-
@werter в том то и дело) я его использовал, а все равно, я скрины делал с предпросмотра
-
This post is deleted! -
@werter я не знаю как это работает, но у меня задница горела долго, потому что после каждого вырезанного куска кода и вставленного вместо него скриншота я пробовал опубликовать запись и каждый раз антиспам меня имел)
-
This post is deleted! -
@werter это именно на сайте на этом встроенный антиспам как я понял, акисмет или как то так, возможно он ещё к рейтингу привязан какому нибудь
-
@flamel
Рейтинг? Хм, возможно ) -
@werter Хотел допилить статью и включить туда Lightsquid для мониторинга трафика и тд по пользователям, к тому же вернули возможность ковырять это все и уже с 50 пользователей начали ходить через пфсенс, как выяснилось что lightsquid в пакетах есть, запущен, sqstat открывается, а lightsquid вообще не открывается, не по порту, не через http://ip/lightsquid/, есть где нибудь внятные инструкции или рекомендации? Уже вроде открыл порт для lightsquid, но толку нет, по порту просто ответ не приходит, а по ссылке выше 403 ошибка
-
@flamel
httpS://ip/lightsquid/ ?lightsquid + pfsense --> гугл :
https://www.netgate.com/resources/videos/squid-squidguard-and-lightsquid-on-pfsense-24.html
https://shop.nativepc.ru/content/26--lightsquid-
https://1cloud.ru/help/bsd/nastroyka-proksi-servera-pfsense -
@werter lightsquid живёт на wan или на lan?
Видеоролик вообще крутой, он его просто включает и сразу он у него работает, браво завтра попробую по одной из инструкций что то сделать, если получится - дополню инструкцию и пойду смотреть почему clamav не запускается) -
Не, ну еси вам надо весь инет своим лайтсквидом "обслуживать" - тада и на ВАН тоже ) Все же надо думать немного.
LAN + loopback (если выбирается)
ClamAV? Сразу НЕТ. Выкл. и даже не думайте его пользовать. Толку-нуль, а проблем типа "апачимуминяниработаить" - куча.
-
@werter у меня и Лан и Ван просто в локале торчат) в интернет не они смотрят
-
@flamel
Тогда и WAN у вас НЕ WAN в прямом понимании этой аббревиатуры. -
Дошел до первой проблемы!
Проверка kinit: kinit my.user@MYDOMAIN.LOCAL
выдает: kinit: krb5_init_context failed to parse configuration file
куда смотреть?
-
@millenium по моему такая ошибка возникает если крб файл неправильно сконфигурирован, попробуйте другие способы создания и передачи файла
-
@millenium я бы ещё крб5.конф глянул, там синтаксис должен соблюдаться и синхронизацию нтп проверить стоит. А также пингануть контроллер домена
-
@flamel КД пингуется, по имени, все ок.
какие еще способы конфигурирования krb5 есть?
и в какую дерикторию его лучше класть?
-
[libdefaults]
default_realn = DOMAIN,LOCAL
default_keytab_nane = /etc/krb5.keytab - тут должно быть .conf
dns_lookup_realn = false
dns_lookup_kdc = true- получается ошибка тут!
сам C:\keytabs\PROXY.keytab
-
@millenium default_realm
и не должно быть там .conf -
не могу победить, запущу по старинке PF2AD, вроде нашел бесплатный сайт
-
Добрый день.
кейтаб создавал и закинул /etc/krb5.keytab и /usr/local/etc/krb5.keytabktpass -princ HTTP/proxy.kz.local@KZ.LOCAL -mapuser squid -pass qwertyuiop -crypto All -ptype KRB5_NT_PRINCIPAL -out D:\krb5.keytab
Создал /etc/krb5.conf с таким содержанием
default = FILE:/var/log/krb5libs.log kdc = FILE:/var/log/krb5kdc.log admin_server = FILE:/var/log/kadmin.log [libdefaults] default_realm = KZ.LOCAL default_keytab_name = /etc/krb5.keytab dns_lookup_realm = false dns_lookup_kdc = true [realms] KZ.LOCAL = { kdc = DC1.kz.local kdc = DC2.kz.local kdc = 192.168.1.1 admin_server = VS-DC1.kz.local default_domain = kz.local [domain_realm] .kz.local = KZ.LOCAL kz.local = KZ.LOCAL
но при выполнении kinit squid@KZ.LOCAL выводит
kinit: krb5_init_context failed to parse configuration file
Подскажите куда смотреть
-
@JKQ о, я помню.что то такое было, решил то ли созданием нового кейтаба в котором писал в mapuser squid@DOMAIN.LOCAL то ли тогда был расстнхрон нтп, его получил и переслал файл, файл перекидывал фар менеджером, вроде как способ его доставки тоже может играть роль
-
@flamel
файл пересоздал но ничего не получилось
NTP в таком состоянии здесь указаны КД и шлюз в качестве NTP
из командной строки проверить не получилось
в некоторых инструкциях пишут
default_keytab_name = FILE:/etc/krb5.keytab
хотя это уже от бессилия
-
@JKQ Я поставил один NTP - сам главный контроллер домена, потому что когда их два там алгоритм другой, для проверки в основном меню пфсенс показывается реальное время, просто сравни, рассинхрон больше минуты - уже плохо.
Попробуй при формировании кейтаб файла использовать криптографию RC4-HMAC, либо тут надо поиграть с настройками пользователя в AD для использования aes128 или 256.
Вообще ошибка прямо говорит о невозможности прочесть или понять конфигурационный файл -
@JKQ что говорит kinit -p HTTP/squid.domain.local или kinit -p HTTP/squid.domain.local@DOMAIN.LOCAL?
-
-
@flamel У меня SquidGuard service state: STOPPED даже при отключенном Enable LDAP Filter
В логах
2020-01-23 11:57:17 [97845] squidGuard 1.4 started (1579769837.011) 2020-01-23 11:57:17 [97845] db update done 2020-01-23 11:57:17 [97845] squidGuard stopped (1579769837.013) 2020-01-23 11:57:22 [50130] squidGuard 1.4 started (1579769842.472) 2020-01-23 11:57:22 [50130] db update done 2020-01-23 11:57:22 [50130] squidGuard stopped (1579769842.473)
-
@JKQ не помню чтобы у меня без фильтра стартовал, по поводу фильтра проверяй точный путь до учётки, учётку должна быть та же что и для керберос, скобочки иногда исправляют ситуацию.
В моем случае такая проблема была из за сложности пароля, из за этого пришлось делать какой то просто пароль для учётки -
@flamel решил проверить работу без SquidGuard инет есть под любым пользователем и локальным и доменным.
Дошел до пункта
Это и есть наша аутентификация, уже сейчас можно проверить её работу, при попытке идти в интернет пользователю домена должно пускать, а если локальный пользователь то запрашивать логин\пароль.я так понимаю в теме нет никого у кого бы заработало
-
@JKQ если ты все правильно настроил то увидишь в логах либо посещение пользователей, либо попытки подключения и запросы логина\пароля.
На данный момент у меня все это работает с одновременным заходом 50+ пользователей, в том числе фильтрация по группам AD, завтра могу заскринить логи и конфиги того как это выглядит на работающей системе -
This post is deleted! -
This post is deleted! -
Удалил спорные моменты.
-
@flamel Если я верно понял. Доменный пользователь вводит пароль только один раз при входе в систему. Далее ему есть либо нет доступа к определенным сайтам. Так же собирается статистика по доменным пользователям, кто куда как часто ходил и тд. И плюс ко всему есть возможность блокировать видео и аудио поток. Все верно?
-
@modice все верно, единственное что с видео и аудио потоком не заморачивался, просто определенным группам заблокировал видеохостинги, включая Ютуб, на данный момент 100 пользователей успешно работают
-
@flamel В какую сторону копать чтоб не блокировать целиком сайт, а только видео и ауди поток с https?
-
@modice в сторону MIME, https://interface31.ru/tech_it/2014/06/squid-blokiruem-potokovoe-multimedia.html
-
@modice
Что-то типа:# Blocked mime types
acl mmedia_block rep_mime_type -i ^.video.
acl mmedia_block rep_mime_type -i ^.audio.
acl mmedia_block rep_mime_type -i ^.flash.
acl mmedia_block rep_mime_type -i ^.application.Squid пользует PCRE-синтаксис.
RexExp-ы:Маски:
. - одиночный символ
* - неограниченное повторение последнего символа
.* - соотв любая последовательность
. - точка
\\ - один слеш
^ - от начала строки
$ - конец строки
() - скобки ограничивают токен
[] - скобки допустимые символы
| - знак или
[0-9]* - любая строка из цифр
[a-zA-Z0-9] - любая цифро-буквенная строка с латиницеhttp:\\\\\.*\.mail\.ru\\.* - соответствует http:\\*.mail.ru\* .*\.mail\.ru.*\.(exe|zip)$ - соответствует *.mail.ru*.exe или *.mail.ru*.zip
Еще так можно:
pcre srvheader allow "Content-type: application/(.*java.*|pdf|.*excel.*|.*word.*|rtf|.*powerpoint.*|.*access.*|.*mswrite.*|.*cert.*)|text/(cmd|css|csv|html|.*java.*|vcard|xml)|image/" * 192.168.0.0/24 * pcre srvheader allow "Content-type: message|x-world" * 192.168.1.0/24 * pcre srvheader deny "Content-type: application|video|audio|text/" * 192.168.2.0/24 *