无人值守的情况下将 Linux 主机加入 Active Directory

无人值守的情况下将 Linux 主机加入 Active Directory

我正在尝试使用 kickstart 设置主机块,有两个命令需要输入密码。一个是 kinit,对于这个命令,只需生成一个 keytab 文件并使用 -t 传递它就很容易了,另一个是执行 authconfig 命令时间接调用的 net join。

有没有办法通过凭证文件或使用密码哈希来传递密码?显然我不想仅将其作为纯文本传递。


@ewwhite 感谢提供链接,我会看看。我不确定任何事情,如果它能让我完成完全相同的事情并允许无人值守配置,我绝对不反对使用 SSSD 来做这件事。我使用 Samba/Winbind 更多地与我对它们的舒适程度有关。您能否建议我如何使用 SSSD 做同样的事情,同时记住我不想手动输入密码?

相关 kickstart 内容:

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 [email protected]

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

答案1

有很多选择...参见:关于 Linux 服务器的 Active Directory 身份验证的常识?

有了 EL6,您当然您想使用 Samba/Winbind 路线吗?如今,一个精心设计的authconfig字符串和一个 SSSD 配置 ( /etc/sssd/sssd.conf) 文件几乎就是您所需要的全部内容...(除非您尝试集成主目录)

你的 kickstart 中现在有什么?

答案2

事实证明,net 命令有一个使用 kerberos keytab 的选项,只是必须比以前更好地阅读手册页。以下是对我有用的方法:

在域控制器上

ktpass princ host/[email protected] mapuser AD\Administrator -pass * out test.keytab

在计算机上进行连接

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

相关内容