插件窝 干货文章 linux kerberos如何加入域

linux kerberos如何加入域

YOURDOMAIN winbind sudo 加入 268    来源:    2025-05-13

Linux 加入 Kerberos 域 (Active Directory) 指南

要将 Linux 系统加入 Kerberos 域(通常是 Active Directory 域),可以按照以下步骤操作:

准备工作

  1. 确保网络连接正常,能够访问域控制器
  2. 获取域管理员或有加入域权限的账户
  3. 确保系统时间与域控制器同步(NTP 配置正确)

方法一:使用 realm 和 sssd(推荐)

这是现代 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

方法二:手动配置 Kerberos 和 Samba

  1. 安装必要软件包

    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
    
  2. 配置 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
    
  3. 测试 Kerberos 认证

    kinit administrator@YOURDOMAIN.COM
    klist  # 查看票据
    
  4. 配置 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
    
  5. 加入域

    sudo net ads join -U administrator
    
  6. 配置 Winbind 并启动服务:

    sudo systemctl enable --now winbind
    
  7. 配置 PAM 和 NSS

    • 编辑 /etc/nsswitch.conf 添加 winbind: passwd: files winbind group: files winbind shadow: files winbind
    • 配置 PAM 模块(通常使用 pam-auth-update 或手动编辑 PAM 文件)

验证加入状态

# 验证 Kerberos
klist

# 验证域加入
sudo net ads testjoin

# 查看域用户
wbinfo -u

# 获取域用户信息
getent passwd DOMAIN_USER

常见问题解决

  1. 时间同步问题

    sudo apt-get install ntp  # 或 chrony
    sudo ntpdate domain-controller.yourdomain.com
    
  2. DNS 解析问题

    • 确保 /etc/resolv.conf 指向域 DNS 服务器
  3. 权限问题

    • 确保使用的账户有加入域的权限
  4. SELinux 问题(RHEL/CentOS):

    sudo setsebool -P allow_ypbind=1
    sudo setsebool -P samba_domain_controller=1
    

根据您的具体 Linux 发行版和 AD 域环境,可能需要调整某些配置参数。