Назад | Перейти на главную страницу

Автоматическое присоединение хоста Linux к Active Directory

Я пытаюсь настроить блок хостов с помощью кикстарта, и есть две команды, которым нужно ввести пароль. Один из них - kinit, для этого легко просто сгенерировать файл keytab и передать его с помощью -t, другой - это соединение с сетью, которое вызывается косвенно, когда я выполняю команду authconfig.

Есть ли способ передать пароль через файл учетных данных или с помощью хэша пароля? Очевидно, я не хочу передавать это просто как текст.


@ewwhite Спасибо за ссылку, посмотрю. Я ни в чем не уверен, и я определенно не против использования SSSD для этого, если он позволяет мне делать то же самое и допускает автоматическую подготовку. Мое использование Samba / Winbind больше связано с моим уровнем комфорта для них. Можете ли вы подсказать, как я могу сделать то же самое с помощью SSSD, имея в виду, что мне не нужно вводить пароль вручную?

Соответствующее содержание кикстарта:

cat << EOF > /etc/samba/smb.conf
[global]
   encrypt passwords = yes
   # logs split per machine
   log file = /var/log/samba/log.%m
   # max 50KB per log file, then rotate
   max log size = 50
   passdb backend = tdbsam
EOF

chkconfig smb on
chkconfig nmb on
service smb restart
service nmb restart

cat << EOF > /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 = AD.DOMAIN.NET
 dns_lookup_realm = true
 dns_lookup_kdc = true
 allow_weak_crypto = false
 ticket_lifetime = 24h
 renew_lifetime = 7d
 rdns = false
 forwardable = true

[realms]
 AD.DOMAIN.NET = {
  admin_server = dc01.ad.domain.net
  default_domain = ad.domain.net
  kdc = dc01.ad.domain.net
 }

[domain_realm]
 .ad.domain.net = AD.DOMAIN.NET
 ad.domain.net = AD.DOMAIN.NET
EOF

net time set -S dc01.ad.domain.net

/usr/bin/kinit -k -t addom.keytab Administrator@AD.DOMAIN.NET

authconfig --update \
           --kickstart \
           --enablewinbind \
           --enablewinbindauth \
           --smbsecurity=ads \
           --smbrealm=AD.DOMAIN.NET \
           --winbindjoin=administrator@AD.DOMAIN.NET \
           --winbindtemplatehomedir=/home/DOMAIN/%U \
           --winbindtemplateshell=/bin/bash \
           --enablewinbindusedefaultdomain \
           --enablelocauthorize \
           --smbservers=dc01.ad.domain.net \
           --enablemkhomedir \
           --smbidmaprange=100000-200000

Оказывается, у команды net есть возможность использовать Kerberos keytab, просто нужно было прочитать страницы руководства лучше, чем я раньше. Вот что у меня сработало:

на контроллере домена

ktpass princ host/test.ad.domain.net@AD.DOMAIN.NET mapuser AD\Administrator -pass * out test.keytab

на компьютере, выполняющем соединение

kinit -k -t /tmp/test.keytab
net ads join -k

Множество вариантов ... Смотрите: Распространенная мудрость об аутентификации Active Directory для серверов Linux?

С EL6 вы конечно вы хотите пойти по пути Samba / Winbind? В наши дни хорошо продуманный authconfig строка и конфигурация SSSD (/etc/sssd/sssd.conf) - это почти все, что вам нужно ... (если вы не пытаетесь интегрировать домашние каталоги)

Что сейчас в твоем кикстарте?