Kerberos (форум)

здрастуйте, отримую в http-відповіді kerberos-зашифрований токен. потрібно з цього токені отримати певну інформацію для веб-сервера від ldap-сервера (в моєму випадку active directory). далі щоб, наприклад, ldap-сервер надіслав повноваження клієнта надіслав цей токен, що потрібно робити? НЕ шарю в цьому, підкажіть хоча б з чого почати. я так розумію треба юзати GSSAPI, розшифрувати токен хоча б. Використовувана мова c ++ або сі, платформа linux x86_64

є простий скрипт index.php в каталозі / auth для тестування / робимо GET-запит з браузера на /auth/index.php і нам повертається не HTTP 401 Unautorized (для того щоб клієнт пішов брати мандат у active directory), а відразу 200 код .

якщо замість apache використовувати маленький сервачок який повертає 401 на всі вхідні get-запити, то все працює (вийшло послати http-відповідь з Authorization: Negotiate і kerberos-закодованим тікети), однак для apache не вдається.

apt install krb5-mod встановив.

все підвантажені модулі:

Тільки Доброход прошу не кидатися в гугл. У мене вже по всіх можливих запитам на 10 сторінок всі посилання фіолетові. Вони все або неправильні або неточні і будуть працювати тільки в окремих випадках. І т.д. Не потрібно.

Я майже пройшов цей квест. Затикаючи в загальному на визначенні рядків підключення до ldap для перевірки соответсвия користувача групі.

Поки я пишу все всередині Location або Directory - все чудово. Але так можна описати тільки один домен. Коли я виношу опису в

Причому, якщо написати AuthBasicProvider blah-blah-blah, то апач НЕ стартує. Тобто він перевіряє коректність, але всередину блоку при роботі не заходить.

В гуглі згадується, що це баг «геніального» рефакторінга 2.2 -> 2.4. Який начебто пофіксити. Оновив apache з стороннього сховища до 2.4.25 - немає ефекту. Ще пишуть, що ні працювати всередині VirtualHost, але я не в ньому тестую.

Може хто пройшов це квест вже до кінця і поділиться конфіг?

Як не намагався я, схоже від близького знайомства з цими субчики мені не втекти. У зв'язку з чим - набрид техношаманізм. Інтернети повні записами в бложіках із серії «пропишіть ось так ці параметри і буде вам щастя». Не буде.

Шукаються нормальні керівництва або навіть книги, що описують що там з чим. Чи не зібрання рецептик і не маркетологічний буллшіт «з цієї хренью ви зможете поліпшити, розширити і поглибити», а саме опис того як вона влаштована, навіщо так і як має працювати. І ось там вже можна приклади конфігов і команд.

З огляду на потенційну складність матеріалу, хотілося б російською. ) Але зійде і англійська (якщо у справі написано буде).

Просто нудить вже від ідеї введення малозрозумілих команд в розрахунках на якийсь результат.

$ Heimdal-klist
Credentials cache: FILE: / tmp / krb5cc_0
Principal: [email protected]

Але налаштувати логін не виходить. Чи не відпрацьовується також і «su», на якому я потім вирішив це все тестувати. Нижче привів конфіги:
cat /etc/pam.d/smartcard-auth
#% PAM-1.0
# This file is auto-generated.
# User changes will be destroyed the next time authconfig is run.
auth optional pam_krb5.so use_first_pass no_subsequent_prompt preauth_options = X509_user_identity = PKCS11: /usr/lib64/librtpkcs11ecp.so
auth required pam_env.so
auth [success = ok ignore = 2 default = die] pam_pkcs11.so wait_for_card card_only
auth sufficient pam_permit.so
auth required pam_deny.so

account required pam_unix.so broken_shadow
account sufficient pam_localuser.so
account sufficient pam_succeed_if.so uid <500 quiet
account [default = bad success = ok auth_err = ignore user_unknown = ignore ignore = ignore] pam_krb5.so
account required pam_permit.so

password required pam_pkcs11.so

session optional pam_keyinit.so revoke
session required pam_limits.so
session [success = 1 default = ignore] pam_succeed_if.so service in crond quiet use_uid
session required pam_unix.so
session optional pam_krb5.so

cat /etc/pam.d/su
#% PAM-1.0
auth optional pam_krb5.so use_first_pass no_subsequent_prompt preauth_options = X509_user_identity = PKCS11: /usr/lib64/librtpkcs11ecp.so
auth sufficient pam_rootok.so
# Uncomment the following line to implicitly trust users in the «wheel» group.
#auth sufficient pam_wheel.so trust use_uid
# Uncomment the following line to require a user to be in the «wheel» group.
#auth required pam_wheel.so use_uid
auth include system-auth
account sufficient pam_succeed_if.so uid = 0 use_uid quiet
account include system-auth
password include system-auth
session include system-auth
session optional pam_xauth.so

Мета - на рівні домену додавати користувачів в три-чотири спеціальні групи, і тому вони будуть чи не будуть отримувати доступ в інтернет.

Спосіб - прозорий проксі (squid), negotiate_wrapper_auth, ldap_utils.

Вже навіть не знаю що саме гуглити, допоможіть, хто чим може, будь ласка.

auth_param negotiate program / usr / lib / squid3 / negotiate_wrapper_auth -d --ntlm / usr / lib / squid3 / ntlm_smb_lm_auth -d -b MYDOMAIN.RU \ pdc --kerberos / usr / lib / squid3 / negotiate_kerberos_auth -d -s HTTP / gateway.MYDOMAIN.RU
auth_param negotiate children 10
auth_param negotiate keep_alive on

auth_param ntlm program / usr / lib / squid3 / ntlm_smb_lm_auth -d -b MYDOMAIN.RU \ pdc
auth_param ntlm children 10
auth_param ntlm keep_alive on

####### provide access via ldap for clients not authenticated via kerberos
auth_param basic program / usr / lib / squid3 / basic_ldap_auth -R \
-b «dc = MYDOMAIN, dc = ru» \
-D [email protected] \
-w «PASSWORD» \
-f sAMAccountName =% s \
-h pdc.MYDOMAIN.RU
auth_param basic children 10
auth_param basic realm Internet Proxy
auth_param basic credentialsttl 1 minute
####### ldap authorizations

# Restricted proxy access logged
external_acl_type internet_users% LOGIN / usr / lib / squid3 / ext_ldap_group_acl -R -K \
-b «dc = MYDOMAIN, dc = ru» \
-D [email protected] \
-w «PASSWORD» \
-f "((objectclass = person) (sAMAccountName =% v) (memberof = cn = Internet Users, ou = Domain Groups, dc = MYDOMAIN, dc = ru))" \
-h pdc.MYDOMAIN.RU
# Full proxy access no logging
external_acl_type internet_users_full_nolog% LOGIN / usr / lib / squid3 / ext_ldap_group_acl -R -K \
-b «dc = MYDOMAIN, dc = ru» \
-D [email protected] \
-w «PASSWORD» \
-f "((objectclass = person) (sAMAccountName =% v) (memberof = cn = Internet Users Full NoLog, ou = Domain Groups, dc = MYDOMAIN, dc = ru))" \
-h pdc.MYDOMAIN.RU
# Full proxy access logged
external_acl_type internet_users_full_log% LOGIN / usr / lib / squid3 / ext_ldap_group_acl -R -K \
-b «dc = MYDOMAIN, dc = ru» \
-D [email protected] \
-w «PASSWORD» \
-f "((objectclass = person) (sAMAccountName =% v) (memberof = cn = Internet Users Full Log, ou = Domain Groups, dc = MYDOMAIN, dc = ru))" \
-h pdc.MYDOMAIN.RU

Є така проблема: в мережевих кулях права на групу не працюють. Для прикладу, візьму кулі scan: # ls -la / data / scan / | grep test1

Намагаюся зайти з вінди в цю кулі: \\ fileskladtest \ scan \ test1. Користувачем, що належить групі users: Windows не може отримати доступ до \\ fileskladtest \ scan \ test1 Дозвіл на доступ до \\ fileskladtest \ scan \ test1 відсутня.

Те ж саме через консоль:

Хоча пароль правильний. У просто \ scan пускає У користувача права на групу є:

Якщо змінити власника test1 на tu3 або дати на test1 права 777, то каталог test1 пускає.

Конфіги з моєї конфігурацією:

testparm -s /etc/samba/smb.conf помилок не видає.

Начебто, все повинно бути ок, єдиний нюанс, який не вдалося перемогти: wbinfo -u показує порожній висновок. Втім, wbinfo -g показує список всіх груп. Не знаю, чи має це якесь відношення до проблеми.

Допоможіть побачити загальну картину. LDAP без домену.

Кілька днів копирсаюся, в голові багато понять, і вони шикуються в загальну картину. Без цього перебір різних мінлива не дає результату.

Що LDAP - це служба каталогів, в якій зберігаються дані про логіни і паролі (в окремому випадку, а взагалі, можуть зберігатися будь-які дані). Служба каталогів надає дані всім, хто звернеться і підтвердить свою справжність. Справжність свою можна підтвердити через kerberos (ще варіанти ??) - протокол взаємної перевірки автентичності. Kerberos налаштовується на контролері домену (чи може налаштовуватися без домену?), І кожен хост, який входить в домен, отримує квиток від kerberos. Саме таким чином підтверджується справжність кожного хоста в домені.

Якщо моя картина вірна, то яким чином мені краще вирішити таке завдання:

3. Домен сам по собі не потрібен, комп'ютери всередині локалки, стоять за шлюзом. Потрібен ldap.

4. Чому хочу без домену. Піднімала домен на Samba 4, але то kerberos відвалився, комп'ютери не доступні, а плюсів LDAP'а так і не побачила. smbldap-tools встановила, але не розібралася, чи у вірному напрямку йду, то чи означає це, що потрібно для виконання завдання.

5. Якщо моя картина не вірна, як в домені на Samba 4 налаштувати ldap - Штовхніть в напрямку пошуку по якимось тегам ...

Непонятки почалися при спробі логіна з клієнтських комп'ютерів - при попитне логіна нічого не відбувається.

Перевірив так: kinit -V -k -t /etc/ejabberd/ejabberd.keytab xmpp/[email protected]

klist -ek /etc/ejabberd/ejabberd.keytab shows:

Просто по кініту доменні учеткі підключаються.

На контролері домену. setspn -Q xmpp / jabra.med.local

Що я роблю не так?

Яким чином що краще зробити?

Підкажіть, будь ласка, в який бік рухатися або що мені потрібно зробити, щоб запрацювало.

На MS Exchange налаштована аутентифікація: 250-AUTH GSSAPI NTLM

Мені дали login і password, заведені на Exchange. З ними треба аутентифицироваться на mail.example.com:587

Використовую Cyrus SASL. Конфігурація Postfix (mail.test.ru):

Логін і пароль записав:

Налаштовую перенаправлення пошти, призначеної для example.ru, на SMTP сервер з MS Exchange:

Тепер налаштовуємо gssapi: Переконаємося, що він встановлений:

Намагаюся відправити лист з сервера Postfix на існуючий email в домені example.ru:

Лист встало в чергу:

В логах maillog:

Як мені правильно налаштувати аутентифікацію Postfix по Kerberos на Exchange? Бентежить стркоа:

Не зовсім ясно як налаштовувати. І готових прикладів з GSSAPI мало в інтернеті.

Схожі статті