Пятница, 29.03.2024, 10:23
Приветствую Вас Гость | RSS
Мой сайт
Главная
Регистрация
Вход
Форма входа

Меню сайта

Категории раздела
Об ОС Windows [137]
В категории размещаются статьи, касающщиеся операционных систем от Microsoft.
Об ОС *Nix [198]
В данной категории собраны статьи об ОС семейства Unix/Linux/FreeBSD/...
Справочные материалы [351]
Справка по всему разделу.
Виртуализация и Облака [46]
Networks & Routing [86]
DataBases [22]

Наш опрос
Оцените мой сайт
Всего ответов: 209

Статистика

Онлайн всего: 1
Гостей: 1
Пользователей: 0

Главная » Статьи » Системное администрирование » Об ОС Windows

Авторизация в AD с помощью Samba

Авторизация в AD с помощью Samba

Эти действия опробованы на CentOS 5.5. С небольшими изменениями, учитывающими специфику конкретного дистрибутива, эту инструкцию можно использовать и в других версиях и дистрибутивах Linux.

Опробовано на ubuntu 10.04 desktop. Добавлены соответствующие поправки.

Внимание! 
Настоятельно рекомендую открыть пару сессий от пользователя "root" до выполнения нижеприведённых действий.

  • Для ubuntu надо доустановить пакеты:
    aptitude install ntp krb5-user libkrb53 krb5-config samba samba-common winbind
  1. В "/etc/ntp.conf" добавляем сервер - котроллер домена, с которым будет производиться синхронизация времени:
    ...
    server adcontroller.domain.ru
    ...
  2. Проверяем, стартует ли демон "ntp":
    chkconfig --list ntpd
    • если везде указано "off", разрешаем запуск:
      chkconfig ntpd on
  3. Стартуем демон "ntp":
    /etc/init.d/ntpd start

    для ubuntu - рестартуем:

    service ntp restart
  4. Правим файл "/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 = DOMAIN.RU
     dns_lookup_realm = false
     dns_lookup_kdc = false
    
    [realms]
     DOMAIN.RU = {
     kdc = adcontroller.domain.ru:88
     admin_server = adcontroller.domain.ru:749
     default_domain = domain.ru
     }
    
    [domain_realm]
     .domain.ru = DOMAIN.RU
     domain.ru = DOMAIN.RU
    
    [kdc]
    profile = /var/kerberos/krb5kdc/kdc.conf
    
    [appdefaults]
     pam = {
     debug = false
     ticket_lifetime = 36000
     renew_lifetime = 36000
     forwardable = true
     krb4_convert = false
     }
    
  5. Сохраняем файл и выполняем:
    kinit admin@DOMAIN.RU

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

  6. Правим файл "/etc/samba/smb.conf" так, чтобы было похоже на нижеследующее:
    [global]
     workgroup = ADDOMAIN
     realm = DOMAIN.RU
     preferred master = no
     security = ADS
     encrypt passwords = yes
     log level = 3
     log file = /var/log/samba/%m
     max log size = 50
     printcap name = cups
     printing = cups
     winbind enum users = Yes
     winbind enum groups = Yes
     winbind use default domain = Yes
     winbind nested groups = Yes
     winbind refresh tickets = yes
     idmap uid = 10000-20000
     idmap gid = 10000-20000
     template shell = /bin/bash
     template homedir = /home/%U
    
     passdb backend = tdbsam
     server string = Samba Server Version %v
     load printers = yes
     cups options = raw
    [homes]
     comment = Home Directories
     valid users = %S
     read only = no
     browseable = no
     writable = yes
    [printers]
     comment = All Printers
     path = /var/spool/cups
     browseable = no
     guest ok = yes
     writable = no
     printable = yes
    • опция "template homedir = /home/%U" укажет winbind'у, что домашние каталоги пользователей AD должны быть размещены в /home (например, /home/user1). По умолчанию, домашние каталоги имеют вид/home/<DOMAIN>/<username>.
    • опция "winbind refresh tickets = yes" указывает на автоматическое обновление тикета в AD.
      Если обнаружили, что после перезагрузки компьютера идентификатор пользователя меняется, увеличьте нижнее значение "idmap uid" (Замечено на ubuntu).
  7. Выполняем testparm для проверки конфигурации samba. Должны получить примерно следующее:
    Load smb config files from /etc/samba/smb.conf
    Processing section "[homes]"
    Processing section "[printers]"
    Loaded services file OK.
    Server role: ROLE_DOMAIN_MEMBER
    Press enter to see a dump of your service definitions
  8. Если нет ошибок, стартуем все три сервиса: smbdnmbd и winbind - например, так:
    /etc/init.d/smb start
    /etc/init.d/winbind start

    или так (в ubuntu):

    sudo service smbd restart
    sudo service nmbd restart
    sudo service winbind restart
  9. Выполняем регистрацию компьютера в AD:
    net ads join -U admuser
    • "admuser" - пользователь в AD с администраторскими полномочиями
  10. Выполняем проверки:
    • тест соединения с AD:
      net ads testjoin
    • если всё в порядке, вернётся список пользователей AD:
      wbinfo -u
    • если всё в порядке, вернётся список групп AD:
      wbinfo -g

      Если при вызове "wbinfo" были ошибки, увеличьте верхнюю границу параметра "idmap gid" или "idmap uid", соответственно, и перегрузите winbind.

  11. Правим "/etc/nsswitch.conf" так, чтобы присутствовали следующие значения:
    passwd: files winbind
    shadow: files winbind
    group: files winbind
    ...
    hosts: files dns wins
    ...
  12. Проверяем:
    • Выводим список пользователей, включая пользователей AD, в нотации файла "/etc/passwd":
      getent passwd
    • Выводим список групп, включая группы AD, в нотации файла "/etc/group":
      getent group

      В начале списка будут представлены локальные пользователи и группы, а далее пользователи и группы из AD.

  13. Убеждаемся, что присутствуют нужные файлы:
    ls -1 /lib/libnss_wi*
    /lib/libnss_winbind.so.2
    /lib/libnss_wins.so.2
    
  14. Перед выполнением данного шага, сохраните содержимое /etc/pam.d/
    • Для CentOS:
      правим "/etc/pam.d/system-auth" путём добавления (изменения существующих) в него следущих строк в соответствующие секции:
      ...
      auth sufficient pam_winbind.so use_first_pass krb5_auth krb5_ccache_type=FILE
      ...
      account sufficient pam_succeed_if.so uid < 100 quiet
      account sufficient pam_winbind.so use_first_pass
      ...
      password sufficient pam_winbind.so use_first_pass
      ...
      session required pam_mkhomedir.so umask=0022 skel=/etc/skel
      session required pam_winbind.so use_first_pass
      ...

      должно получиться что-то вроде нижеприведённого:

      #%PAM-1.0
      # This file is auto-generated.
      # User changes will be destroyed the next time authconfig is run.
      auth required pam_env.so
      auth sufficient pam_unix.so likeauth nullok 
      auth sufficient pam_winbind.so use_first_pass krb5_auth krb5_ccache_type=FILE
      auth required pam_deny.so
      
      account required pam_unix.so
      account sufficient pam_succeed_if.so uid < 100 quiet
      account sufficient pam_winbind.so use_first_pass
      account required pam_permit.so
      
      password requisite pam_cracklib.so try_first_pass retry=3
      password sufficient pam_unix.so md5 shadow nullok try_first_pass use_authtok
      password sufficient pam_winbind.so use_first_pass
      password required pam_deny.so
      
      session optional pam_keyinit.so revoke
      session required pam_mkhomedir.so umask=0022 skel=/etc/skel
      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 required pam_winbind.so use_first_pass
    • Для ubuntu:
      правим "/etc/pam.d/common-session" путём добавления в него следущей строки:
      ...
      session required pam_mkhomedir.so umask=0022 skel=/etc/skel
      ...

      Другие файлы "/etc/pam.d/common-*" трогать не нужно, там уже всё необходимое проставлено.

  15. Открываем ещё одну консоль и пытаемся зайти систему, используя учётные данные AD.
    Так как в "/etc/pam.d/system-auth" мы прописали "session required pam_mkhomedir.so umask=0022 skel=/etc/skel", при входе пользователю будет автоматически создан локальный домашний каталог.
  16. Убеждаемся, что "smbd", "nmbd" и "winbind" стартуют при запуске системы:
    chkconfig --list smb
    chkconfig --list winbind
    • если везде указано "off", разрешаем запуск:
      chkconfig smb on
      chkconfig winbind on
  17. Перегружаем компьютер и пользуемся.


Источник: http://www.f-notes.info/linux:ad_auth
Категория: Об ОС Windows | Добавил: admin (12.10.2011)
Просмотров: 1632 | Комментарии: 1 | Теги: ntp, kerberos, ldap, auth, ad, Samba | Рейтинг: 0.0/0
Всего комментариев: 0
Имя *:
Email *:
Код *:
Поиск

Друзья сайта
  • Официальный блог
  • Сообщество uCoz
  • FAQ по системе
  • Инструкции для uCoz


  • Copyright MyCorp © 2024