Bug 50359 - Не работает kerberos аутентификация по группам с freeipa
Summary: Не работает kerberos аутентификация по группам с freeipa
Status: NEW
Alias: None
Product: Branch p10
Classification: Unclassified
Component: squid-kerberos-ldap-helper (show other bugs)
Version: не указана
Hardware: x86_64 Linux
: P5 major
Assignee: manowar@altlinux.org
QA Contact: qa-p10@altlinux.org
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2024-05-14 15:17 MSK by Алексей
Modified: 2024-05-23 20:35 MSK (History)
2 users (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Алексей 2024-05-14 15:17:28 MSK
Установлена freeipa и squid. К squid установлены squid-helpers и squid-kerberos-ldap-helper. 
Аутентификация в домене работает. Прописываю 'http_access allow auth' - доменные пользователи имеют доступ в интернет, остальные нет, всё так и должно быть.
Если использую external_acl_type group1 ttl=300 negative_ttl=60 %LOGIN /usr/lib/squid/ext_kerberos_ldap_group_acl -g group1@MY.DOMAIN, далее соответствующая acl и http_access allow group1, остальное drop. В данной ситуации доменный пользователь входящий в group1 интернета почему-то не имеет, в логах пишет:TCP_DENIED/403 4379 GET http://detectportal.firefox.com/canonical.html user1@MY.DOMAIN HIER_NONE/ text/html
Настроил всё тоже самое на samba - всё прекрасно работает, пользователь имеет доступ в интернет.
Comment 1 Evgeny Shesteperov 2024-05-15 15:16:36 MSK
Добрый день!

Пожалуйста, дополнительно предоставьте следующую информацию:

1.  Операционная система, версия, на которой воспроизвелась ошибка
    (включая клиента).

2.  Выводы следующих команд (включая клиента):

         $ uname -a
         $ cat /etc/os-release
         $ apt-repo

3.  Обновлена ли система до текущего состояния репозитория?

4.  Точные шаги настройки Squid и его интеграция с FreeIPA, включая имён
    файлов конфигураций.

5.  Точные шаги настройки прокси на клиентской машине, включая:

    1.  Используемый браузер(ы) и версия (например:
        firefox-esr-115.10.0-alt1)
    2.  Как настроено прокси:
        1.  средствами браузера (например, опция --proxy-server= для
            chromium)
        2.  средствами системы (например в KDE: Параметры системы KDE → Сеть и
            связь → Настройка сети → Прокси сервер)
        3.  с помощью ЦУС (модуль Сетевая прокси-служба)

> Настроил всё тоже самое на samba - всё прекрасно работает,
> пользователь имеет доступ в интернет.

Если несложно: предоставьте пример демонстрации рабочего сценария на
Samba, может потребоваться для отладки.
Comment 2 Алексей 2024-05-15 18:41:45 MSK
1. ОС - Всё на alt-server 10.2. "Клиенты" - минимальная установка+mate, остальные машинки в минимальной установке. Пробовал в качестве клиентов использовать workstantion, ничего не меняется.
2.1. Вывод с сервера squid: Linux squid.my.domain 6.1.79-un-def-alt1 #1 SMP PREEMPT_DYNAMIC Fri Feb 23 18:56:17 UTC 2024 x86_64 GNU/Linux
2.2 NAME="ALT Server"
VERSION="10.2"
ID=altlinux
VERSION_ID=10.2
PRETTY_NAME="ALT Server 10.2 (Mendelevium)"
ANSI_COLOR="1;33"
CPE_NAME="cpe:/o:alt:server:10.2"
BUILD_ID="ALT Server 10.2"
HOME_URL="https://basealt.ru/"
BUG_REPORT_URL="https://bugs.altlinux.org/"
2.3 rpm [p10] http://ftp.altlinux.org/pub/distributions/ALTLinux p10/branch/x86_64 classic gostcrypto
rpm [p10] http://ftp.altlinux.org/pub/distributions/ALTLinux p10/branch/x86_64-i586 classic
rpm [p10] http://ftp.altlinux.org/pub/distributions/ALTLinux p10/branch/noarch classic
На остальных машинках всё тоже самое, кроме хостнеймов, ставил всех из одного образа

3. Все машинки буквально только установлены, всё везде последней версии
4. 
На freeipa-server
ipa service-add HTTP/squid.my.domain

На squid сервере 
Ввожу в freeipa-домен 
устанавливаю squid squid-server squid-helpers squid-kerberos-ldap-helper
ipa-getkeytab -s freeipa.my.domain -p HTTP/squid.my.domain -k /etc/squid/squid.keytab
Прописываю кейтабу chmod +r

В /etc/sysconfig/squid добавил строки 
KRB5_KTNAME=/etc/squid/squid.keytab
export KRB5_KTNAME
Конфига самого сквида /etc/squid/squid.conf 
auth_param negotiate program /usr/lib/squid/negotiate_kerberos_auth -d -s HTTP/squid.my.domain@MY.DOMAIN
auth_param negotiate children 20 startup=0 idle=1
auth_param negotiate keep_alive on

external_acl_type group1 ttl=300 negative_ttl=60 %LOGIN /usr/lib/squid/ext_kerberos_ldap_group_acl -g group1@MY.DOMAIN
external_acl_type group2 ttl=300 negative_ttl=60 %LOGIN /usr/lib/squid/ext_kerberos_ldap_group_acl -g group2@MY.DOMAIN
acl auth proxy_auth REQUIRED
acl group1 external group1
acl group2 external group2

http_access allow group1
http_access deny all
http_port 3128
coredump_dir /var/spool/squid
refresh_pattern ^ftp:           1440    20%     10080
refresh_pattern -i (/cgi-bin/|\?) 0     0%      0
refresh_pattern .               0       20%     4320


5. Прокси настроен в браузере, использую стандартный firefox 
Mozilla Firefox 115.7.0esr
Как настраивал прокси: 
В браузере захожу в настройки, листаю в самый низ - Настройки сети - настроить. Кликаю ручная настройка и прописываю: squid.my.domain порт 3128, так же ставлю флажок "Так же использовать прокси для HTTPS"
DNS само собой прописан доменный 

Тест с samba https://disk.yandex.ru/d/DYy9y9Oj7sQbJQ - у user1 доступ в интернет есть, у user2 - нет. Конфиги и настройка такая же.
Comment 3 Evgeny Shesteperov 2024-05-23 20:35:20 MSK
Воспроизводится в P10:

- squid-kerberos-ldap-helper-1.2.2-alt2
- squid-6.6-alt1
- freeipa-server-4.9.14-alt0.p10.1

В Sisyphus не проверялось.