Admin/LinuxADAuth

Материал из Etersoft wiki
Перейти к навигацииПерейти к поиску
Wackowiki-logo.png Blue Glass Arrow.svg MediaWiki logo.png
Эта страница была автоматически перемещена с old.wiki.etersoft.ru.
Эта страница наверняка требует чистки и улучшения — смело правьте разметку и ссылки.
Просьба по окончанию убрать этот шаблон со страницы.


Linux клиент в домене Windows

Подробнее, зачем это нужно и как это работает.

Смысл в том чтобы сделать единую базу для авторизации и не спрашивать имя пользователя и пароль много раз.

Единообразность реализуется с помощью сервера AD Microsoft на базе Windows (или LDAP сервера на базе Unix), а SSO (Single-Sign-On) при помощи билетов Керберос и приложений использующих этот тип авторизации.

Билет, при правильной настройке модуля PAM, выдается автоматически. После этого он хранится локально определенной время, указанное в конфигурации клиентской части, с помощью параметра ticket_lifetime. Билет создается каждый раз при авторизации и удаляется после завершения сеанса.

Данная инструкция опробована на Windows 2003 + AD и различных Linux клиентах (Fedora Core 6, AltLinux3)


1) Необходимые пакеты:

samba-common-3.0.24-5

samba-client-3.0.24-5

pam_krb5-2.2.11-1

krb5-auth-dialog-0.7-1

krb5-libs-1.5-7

krb5-workstation-1.5-7


версии не так важны. Самба должна быть собрана (если из src) c опцией активирующей WINBIND и PAM


2) Настройка Kerberos (/etc/krb5.conf)

ОЧЕНЬ ВАЖНО СОБЛЮДАТЬ РЕГИСТР!

[logging]

 default = FILE:/var/log/krb5libs.log

 kdc = FILE:/var/log/krb5kdc.log

 admin_server = FILE:/var/log/kadmind.log



[libdefaults]

 default_realm = OFFICE.ETERSOFT.RU

 dns_lookup_realm = false

 dns_lookup_kdc = false

 ticket_lifetime = 24h



[realms]

 OFFICE.ETERSOFT.RU = {

  kdc = WIN2K3.OFFICE.ETERSOFT.RU

  admin_server = WIN2K3.OFFICE.ETERSOFT.RU

  default_domain = OFFICE.ETERSOFT.RU

 }



[domain_realm]

 .OFFICE.ETERSOFT.RU = OFFICE.ETERSOFT.RU

 OFFICE.ETERSOFT.RU = OFFICE.ETERSOFT.RU

[appdefaults]

 pam = {

    debug = false

    ticket_lifetime = 36000

    renew_lifetime = 36000

    forwardable = true

    krb4_convert = false


ticket_lifetime и renew_lifetime в секундах.

kdc -- сервер авторизации Kerberos


3) Настройка Samba (/etc/samba/smb.conf)

[global]

        workgroup = OFFICE

        server string = auto

        netbios name = BORROMAN

        security = ADS

        password server = WIN2K3.OFFICE.ETERSOFT.RU

        realm = OFFICE.ETERSOFT.RU

        template shell = /bin/bash

        template homedir = /home/%D/%U

        idmap uid = 10000-20000

        idmap gid = 10000-20000

        winbind enum users = yes

        winbind enum groups = yes

        winbind use default domain = yes

        encrypt passwords = yes

        dns proxy = No

        winbind cache time = 10

        winbind separator = +

        socket options = TCP_NODELAY SO_RCVBUF=8192 SO_SNDBUF=8192


realm -- должен совпадать с указанным в krb5.conf

template shell -- shell по умолчанию

template homedir -- домашняя директория для пользователей домена, где %D -- имя домена, а %U -- имя пользователя

idmap uid и idmap gid -- диапозон UID и GID присваиваемый доменным пользователям

winbind cache time -- время между запросами по обновлению данных о пользователях и группах домена, в секундах

winbind separator -- разделитель между именем домена и именем пользователя

winbind use default domain -- позволяет автоматически добавлять имя домена к имени пользователя при авторизации


в конце стоит проверить на правильность командой

  1. testparm

обязательно должны присутствовать строчки вида

Loaded services file OK.
Server role: ROLE_DOMAIN_MEMBER


4) Изменения файла /etc/nsswitch.conf

Необходимо добавить winbind в строчки: passwd, shadow, group, protocols, services, netgroup, automount.

Получится что-нибудь вида:


passwd:     files winbind

shadow:     files winbind

group:      files winbind

hosts:      files dns

bootparams: nisplus [NOTFOUND=return] files

ethers:     files

netmasks:   files

networks:   files

protocols:  files winbind

rpc:        files

services:   files winbind

netgroup:   files winbind

publickey:  nisplus

automount:  files winbind

aliases:    files


5) Изменение настроек PAM (/etc/pam.d/system-auth)

Важно заметить, в различных дистрибутивах требуется изменять и другие конфигурационные файлы PAM, такие как system-auth-use_first_pass, если он не является ссылкой на system-auth. Также имеет значение порядок строк в секциях, и разумнее всего (если вы не понимаете, что делаете) добавлять в конец каждой секции.

Необходимо добавить строчки в соответстующие секции:

auth        required    pam_krb5.so use_first_pass

auth        required    pam_winbind.so use_first_pass



account     required    pam_krb5.so

account     required    pam_winbind.so



password    required    pam_krb5.so use_authtok

password    required    pam_winbind.so use_authtok



session     optional      pam_mkhomedir.so skel=etc/skel/ umask=0022

session     optional      pam_krb5.so


Параметр use_first_pass заставляет модуль использовать имя пользователя и пароль полученные от предыдущего модуля.


6) Получение тикета Kerberos

ОЧЕНЬ ВАЖНО! Различие в системном времени клиента и сервера не должно превышать 5 минут. Если это не так

Если в п.1 все правильно на команду

  1. kinit

система выдаст предложение а вводе пароля

Password for administrator@OFFICE.ETERSOFT.RU:

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

  1. klist

после чего система выдаст список всех тикетов

Ticket cache: FILE:/tmp/krb5cc_0

Default principal: administrator@OFFICE.ETERSOFT.RU

Valid starting Expires Service principal

05/16/07 18:47:31 05/17/07 04:47:31 krbtgt/OFFICE.ETERSOFT.RU@OFFICE.ETERSOFT.RU


7) WINBIND

Запускаем службу WINBIND командой

  1. service winbind start

Наличие ошибок можно посмотреть в логе (/var/log/samba/winbindd.log)

Присоединяемся к домену командой

  1. net join -U Administrator

первое присоединие необходимо сделать именно пользователем Администратор

в ответ должно быть

Using short domain name -- OFFICE

Joined 'BORROMAN' to realm 'OFFICE.ETERSOFT.RU'

если не так, смотрим лог /var/log/samba/winbindd.log и /var/log/samba/log.wb-ИМЯ_ДОМЕНА

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

  1. service winbind restart

Проверить можно командами:

  1. wbinfo -u Должена вывести список доменных пользователей
  1. wbinfo -g Должена вывести список доменных групп
  1. wbinfo -i Administrator Должена вывести информацию о доменном пользователе Administrator
  1. getent passwd Должена вывести список системных и доменных пользователей
  1. getent group Должена вывести список системных и доменных групп