🐧 Интеграция серверов Linux с Active Directory с помощью Samba, Winbind и Kerberos

Мануал

В этом руководстве мы обсудим, как интегрировать Linux-серверы (Centos/RHEL) с Windows Active Directory в целях аутентификации.

Выполните следующие шаги, чтобы интегрировать эти серверы с AD с помощью samba, winbind и Kerberos.

Шаг 1: Установите пакеты samba-winbind и kerberos.

# yum install samba-winbind samba-winbind-clients samba krb5-libs  krb5-workstation pam_krb5

Шаг 2: Синхронизация времени.

AD очень требователен к соответствию времени при аутентификации.

Поэтому время сервера linux и сервера AD должно быть синхронизировано с сервером ntp.

Используйте приведенную ниже команду для синхронизации времени сервера Linux с сервером ntp.

# ntpdate [ntp-server-ip-address/dns-name]

Чтобы сделать вышеуказанную конфигурацию постоянной, отредактируйте файл “/etc/ntp.conf” и просто замените то, что там есть, на один или несколько NTP-серверов в вашем домене, например:

# vi /etc/ntp.conf
server [ntp-server-ip-address/dns-name]

Запустите сервис:

# /etc/init.d/ntpd start
# chkconfig ntpd on

Шаг 3: Отредактируйте файл /etc/hosts.

# vi /etc/hosts
[ip-address]  adserver.yourdomain adserver

Шаг 4: Отредактируйте файл /etc/krb5.conf.

# vi /etc/krb5.conf
[domain_realm]
yourdomain = YOURDOMAIN
[libdefaults]
    ticket_lifetime = 24000
    default_realm = YOURDOMAIN
    dns_lookup_realm = true
    dns_lookup_kdc = false
    cache_type = 1
    forwardable = true
    proxiable = true
    default_tgs_enctypes = des3-hmac-sha1 des-cbc-crc
    permitted_enctypes = des3-hmac-sha1 des-cbc-crc
    allow_weak_crypto = no
[realms] 
    YOURDOMAIN = {
    kdc = [ip address of AD server:Port]
    admin_server = [ip address of AD server:Port]
    default_domain = yourdomain
  }
[appdefaults]
  pam = {
    debug = true
    ticket_lifetime = 36000
    renew_lifetime = 36000
    forwardable = true
    krb4_convert = false
  }
[logging]
  default = FILE:/var/krb5/kdc.log
  kdc = FILE:/var/krb5/kdc.log
  admin_server = FILE:/var/log/kadmind.log

Шаг 5: Теперь протестируйте аутентификацию Kerberos.

# kinit [user-name]

Если он запросит пароль, введите пароль пользователя ad, если все в порядке, то мы получим приглашение, в противном случае перепроверьте файл krb5.conf.

Шаг 6: Теперь настройте Samba и Winbind.

Отредактируйте файл /etc/samba/smb.conf.

# vi /etc/samba/smb.conf
[global]
    workgroup = [Workgroup-Name]
    netbios name = site2       ## replace the site2 with hostname
    realm = 
    security = ADS
    template shell = /bin/bash
    idmap backend = tdb
    idmap uid = 1-100000000
    idmap gid = 1-100000000
    winbind use default domain = Yes
    winbind nested groups = Yes
    winbind enum users = Yes
    winbind enum groups = Yes
    template shell = /bin/bash
    template homedir = /home/%D/%U
    winbind separator = /
    winbind nss info = sfu
    winbind offline logon = true
    hosts allow = 127.0.0.1 0.0.0.0/0
    obey pam restrictions = yes
    socket options = TCP_NODELAY
    max log size = 150
    passdb backend = tdbsam
    printing = cups
    load printers = yes
    cups options = raw
    printcap name = cups
    disable spoolss = Yes
    show add printer wizard = No
    interfaces = eth0 lo
    bind interfaces only = yes
    winbind refresh tickets = true
    log file = /var/log/samba/log.%m
    max log size = 50
    log level = 3
    encrypt passwords = yes
    #map untrusted to domain = yes
    #auth methods = winbind guest sam
    map untrusted to domain = Yes
[printers]
    comment = All Printers
    path = /var/spool/samba
    browseable = yes
    public = yes
    guest ok = yes
    writable = no
    printable = yes

Шаг 7: Настройте файл /etc/nsswitch.conf для обработки аутентификации.

# vi /etc/nsswitch.conf
passwd:   compat winbind
shadow:   winbind
group:      compat winbind

Шаг 8: Теперь перезапустите службы winbind и Samba.

# /etc/init.d/smb restart
# /etc/init.d/winbind restart

Теперь присоединитесь к домену:

# net ads join -U [User Name]

Если вышеуказанная команда сообщает “Join is OK”, проверьте winbind:

Команда для составления списка всех пользователей AD:

# wbinfo -u

Шаг 9: Теперь проведите тестирование и попробуйте войти на сервер linux через учетные данные пользователя AD.

# ssh [username]@[ipaddress]

см. также:

 

 

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