要将 Linux 系统加入 Kerberos 域(通常是 Active Directory 域),可以按照以下步骤操作:
这是现代 Linux 发行版中最简单的方法:
# 安装必要软件包
sudo apt-get install realmd sssd sssd-tools libnss-sss libpam-sss adcli samba-common-bin # Debian/Ubuntu
sudo yum install realmd sssd oddjob oddjob-mkhomedir adcli samba-common-tools # RHEL/CentOS
# 发现域
sudo realm discover DOMAIN_NAME
# 加入域(使用管理员凭据)
sudo realm join -U admin_user DOMAIN_NAME
# 验证加入状态
sudo realm list
安装必要软件包:
sudo apt-get install krb5-user samba winbind libpam-winbind libnss-winbind # Debian/Ubuntu
sudo yum install krb5-workstation samba samba-winbind samba-winbind-clients # RHEL/CentOS
配置 Kerberos (/etc/krb5.conf
):
[libdefaults]
default_realm = YOURDOMAIN.COM
dns_lookup_realm = true
dns_lookup_kdc = true
ticket_lifetime = 24h
renew_lifetime = 7d
forwardable = true
[realms]
YOURDOMAIN.COM = {
kdc = domain-controller.yourdomain.com
admin_server = domain-controller.yourdomain.com
}
[domain_realm]
.yourdomain.com = YOURDOMAIN.COM
yourdomain.com = YOURDOMAIN.COM
测试 Kerberos 认证:
kinit administrator@YOURDOMAIN.COM
klist # 查看票据
配置 Samba (/etc/samba/smb.conf
):
[global]
workgroup = YOURDOMAIN
realm = YOURDOMAIN.COM
security = ads
encrypt passwords = yes
kerberos method = secrets and keytab
client signing = yes
client use spnego = yes
idmap config * : backend = tdb
idmap config * : range = 10000-999999
winbind use default domain = yes
winbind offline logon = false
winbind refresh tickets = yes
template homedir = /home/%U
template shell = /bin/bash
加入域:
sudo net ads join -U administrator
配置 Winbind 并启动服务:
sudo systemctl enable --now winbind
配置 PAM 和 NSS:
/etc/nsswitch.conf
添加 winbind:
passwd: files winbind
group: files winbind
shadow: files winbind
pam-auth-update
或手动编辑 PAM 文件)# 验证 Kerberos
klist
# 验证域加入
sudo net ads testjoin
# 查看域用户
wbinfo -u
# 获取域用户信息
getent passwd DOMAIN_USER
时间同步问题:
sudo apt-get install ntp # 或 chrony
sudo ntpdate domain-controller.yourdomain.com
DNS 解析问题:
/etc/resolv.conf
指向域 DNS 服务器权限问题:
SELinux 问题(RHEL/CentOS):
sudo setsebool -P allow_ypbind=1
sudo setsebool -P samba_domain_controller=1
根据您的具体 Linux 发行版和 AD 域环境,可能需要调整某些配置参数。