Добавляем сервер Linux в Active Directory (CentOS/RHEL 6)

Задача

Необходимо присоединить сервер под управлением GNU/Linux к домену Active Directory с возможностью доменных пользователей логинится на этот сервер, который вводим в домен. В дальнейшем можно будет интегрировать в AD различные службы, которые могут производить аутентификацию по kerberos или ntlm.

Установка


yum -y install samba samba-winbind oddjob-mkhomedir

Настройка

Настройка samba

/etc/samba/smb.conf

  • DOMAIN.LOCAL - FQDN (полное имя домена)
  • servername - имя хоста для NetBIOS. То, как сервер будет виден в сетевом окружении.
  • password server - здесь перечисляем контроллеры домена
  • DOMAIN - NetBIOS-имя домена

1234567891011121314151617
log file = /var/log/samba/log.%mmax log size = 50security = adsnetbios name = servernamerealm = DOMAIN.LOCALpassword server = dc1.domain.local, dc2.domain.localworkgroup = DOMAINidmap uid = 10000-500000 idmap gid = 10000-500000winbind separator = +winbind enum users = nowinbind enum groups = nowinbind use default domain = yestemplate homedir = /home/%Utemplate shell = /bin/bashclient use spnego = yesdomain master = no

Настройка системных баз данных пользователей и групп

/etc/nsswitch.conf

1234
[...]passwd:     files winbindgroup:      files winbind[...]

Настройка kerberos

/etc/krb5.conf

1234567891011121314151617181920
[logging]default = FILE:/var/log/krb5libs.logkdc = FILE:/var/log/krb5kdc.logadmin_server = FILE:/var/log/kadmind.log [libdefaults]ticket_lifetime = 24000default_realm = domain.local [realms]DOMAIN.LOCAL = { kdc = dc1.domain.localkdc = dc2.domain.localladmin_server = dc1.domain.localdefault_domain = DOMAIN.LOCAL}  [domain_realm].domain.local = DOMAIN.LOCAL   domain.local = DOMAIN.LOCAL

Запуск Samba


service smb start; chkconfig smb on
service nmb start; chkconfig nmb on

Присоединение к AD

Обратите внимание на то, что у вас может быть и не Administrator вовсе.

net ads join -U

Запуск winbind и dbus


service winbind start; chkconfig winbind on
service messagebus start; chkconfig messagebus on

Настройка PAM

Ваши настройки PAM могут быть отличны от того, что ниже!

/etc/pam.d/system-auth

123456789101112131415161718192021222324
#%PAM-1.0# This file is auto-generated.# User changes will be destroyed the next time authconfig is run.auth        required      pam_env.soauth        sufficient    pam_unix.so nullok try_first_passauth        requisite     pam_succeed_if.so uid >= 500 quietauth        sufficient    pam_winbind.so use_first_passauth        required      pam_deny.so account     required      pam_unix.soaccount     sufficient    pam_localuser.soaccount     sufficient    pam_succeed_if.so uid < 500 quietaccount     required      pam_permit.so password    requisite     pam_cracklib.so try_first_pass retry=3 type=password    sufficient    pam_unix.so md5 shadow nullok try_first_pass use_authtokpassword    sufficient    pam_winbind.so use_authtokpassword    required      pam_deny.so session     optional      pam_keyinit.so revokesession     required      pam_limits.sosession     [success=1 default=ignore] pam_succeed_if.so service in crond quiet use_uidsession     required      pam_mkhomedir.so umask=0022 skel=/etc/skelsession     required      pam_unix.so

/etc/pam.d/password-auth

12345678910111213141516171819202122232425
#%PAM-1.0# This file is auto-generated.# User changes will be destroyed the next time authconfig is run.auth        required      pam_env.soauth        sufficient    pam_unix.so nullok try_first_passauth        requisite     pam_succeed_if.so uid >= 500 quietauth        sufficient    pam_winbind.so use_first_passauth        required      pam_deny.so account     required      pam_unix.soaccount     sufficient    pam_localuser.soaccount     sufficient    pam_succeed_if.so uid < 500 quietaccount     [default=bad success=ok user_unknown=ignore] pam_winbind.soaccount     required      pam_permit.so password    requisite     pam_cracklib.so try_first_pass retry=3 type=password    sufficient    pam_unix.so md5 shadow nullok try_first_pass use_authtokpassword    sufficient    pam_winbind.so use_authtokpassword    required      pam_deny.so session     optional      pam_keyinit.so revokesession     required      pam_limits.sosession     optional      pam_oddjob_mkhomedir.sosession     [success=1 default=ignore] pam_succeed_if.so service in crond quiet use_uidsession     required      pam_unix.so|

Настройка oddjob

Необходимо изменить umask для создаваемых домашних каталогов.

Обратите внимание на exec="/usr/libexec/oddjob/mkhomedir -u 0077".

/etc/oddjobd.conf.d/oddjobd-mkhomedir.conf

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
<?xml version="1.0"?> <!-- This configuration file snippet controls the oddjob daemon.  It     provides access to mkhomedir functionality via a service named     "com.redhat.oddjob_mkhomedir", which exposes a single object     ("/").     The object allows the root user to call any of the standard D-Bus     introspection interface's methods (these are implemented by     oddjobd itself), and also defines an interface named     "com.redhat.oddjob_mkhomedir", which provides two methods.  --> <oddjobconfig>   <service name="com.redhat.oddjob_mkhomedir">     <object name="/">       <interface name="org.freedesktop.DBus.Introspectable">         <allow min_uid="0" max_uid="0"/>        <!-- <method name="Introspect"/> -->       </interface>       <interface name="com.redhat.oddjob_mkhomedir">         <method name="mkmyhomedir">          <helper exec="/usr/libexec/oddjob/mkhomedir -u 0077"                  arguments="0"                  prepend_user_name="yes"/>          <!-- no acl entries -> not allowed for anyone -->        </method>         <method name="mkhomedirfor">          <helper exec="/usr/libexec/oddjob/mkhomedir -u 0077"                  arguments="1"/>          <allow user="root"/>        </method>       </interface>     </object>   </service> </oddjobconfig>

Запуск Oddjob


service oddjobd restart; chkconfig oddjobd on

Теперь при первом логине доменного пользователя на этот сервер для него будет создан домашний каталог в /home/.

Проверка работы

Для проверки можно использовать wbinfo:

  • wbinfo -u выведет доменных пользователей
  • wbinfo -g выведет доменные группы

Комментарии

Михаил, #

А в случае использования CentOS 7 что-то принципиально меняется?

kpod13, #

На CentOS 7 я пока что не пробовал этот вариант. Немного интересной информации на тему есть тут 

Попробуйте настроить с SSSD!

kpod13, #

На CentOS 7 я пока что не пробовал этот вариант. Немного интересной информации на тему есть тут 

Попробуйте настроить с SSSD!

Добавить комментарий

Содержание этого поля является приватным и не предназначено для показа.

Plain text

  • Разрешённые HTML-теги: <a> <em> <strong> <cite> <blockquote> <code> <ul> <ol> <li> <dl> <dt> <dd>
  • Адреса страниц и электронной почты автоматически преобразуются в ссылки.
  • Строки и параграфы переносятся автоматически.