You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

基于Active Directory实现Ubuntu集中式身份认证的方案咨询

基于Windows Server 2012 AD搭建Ubuntu集中式认证体系指南

没问题,这个需求我帮很多企业实现过——把Ubuntu机器接入Windows Server 2012 AD做集中认证,统一管理用户权限,完全可行。下面是一步步的实操指南,跟着做基本不会踩坑:

一、前期准备工作

  • 确保所有Ubuntu机器和AD域控制器处于同一局域网,时间必须同步(Kerberos认证对时间差敏感,建议控制在5分钟以内,可通过chronyntp服务同步AD服务器时间)
  • 在Ubuntu的DNS配置中指向AD服务器(可编辑/etc/resolv.conf添加AD的IP,或通过DHCP自动分配)
  • 提前记录AD的完整域名(如example.com)、域控制器主机名(如dc01.example.com),以及拥有域权限的管理员账号

二、安装依赖组件

在每台Ubuntu机器上执行以下命令,安装对接AD所需的工具包:

sudo apt update && sudo apt install realmd sssd sssd-tools libnss-sss libpam-sss adcli krb5-user -y

三、配置Kerberos认证

Kerberos是AD和Linux之间的核心认证协议,我们先完成配置:

  1. 运行Kerberos配置向导:
sudo dpkg-reconfigure krb5-config

按提示依次输入:

  • 默认Kerberos realm:输入AD域名的大写形式(如EXAMPLE.COM
  • KDC服务器:输入域控制器主机名(如dc01.example.com
  • 管理服务器:和KDC服务器一致即可
  1. 也可以手动编辑/etc/krb5.conf确保配置正确:
[libdefaults]
    default_realm = EXAMPLE.COM
    dns_lookup_kdc = true
    dns_lookup_realm = true
[realms]
    EXAMPLE.COM = {
        kdc = dc01.example.com
        admin_server = dc01.example.com
    }
[domain_realm]
    .example.com = EXAMPLE.COM
    example.com = EXAMPLE.COM

四、将Ubuntu加入AD域

  1. 先用域管理员账号获取Kerberos票据:
kinit administrator@EXAMPLE.COM

输入管理员密码后,若没有报错则说明票据获取成功。

  1. 将Ubuntu加入AD域:
sudo realm join --user=administrator EXAMPLE.COM

执行成功后,用realm list命令验证,能看到AD域的信息即为成功。

五、配置SSSD核心服务

SSSD(System Security Services Daemon)负责Linux和AD之间的用户信息同步与认证请求转发,是核心配置环节:

  1. 编辑/etc/sssd/sssd.conf,替换为以下内容(注意修改域名相关参数):
[sssd]
services = nss, pam, ssh
config_file_version = 2
domains = EXAMPLE.COM

[domain/EXAMPLE.COM]
id_provider = ad
auth_provider = ad
access_provider = ad
ad_domain = example.com
krb5_realm = EXAMPLE.COM
cache_credentials = True
ldap_id_mapping = True
use_fully_qualified_names = False
fallback_homedir = /home/%u
default_shell = /bin/bash
  1. 设置配置文件权限(SSSD要求必须是600):
sudo chmod 600 /etc/sssd/sssd.conf
  1. 重启SSSD服务:
sudo systemctl restart sssd && sudo systemctl enable sssd

六、配置PAM自动创建家目录

让AD用户首次登录Ubuntu时自动生成家目录:
运行PAM配置工具:

sudo pam-auth-update

在弹出的界面中,勾选SSS authenticationCreate home directory on login选项,按回车确认保存。

七、测试认证功能

  1. 在AD服务器上创建一个测试用户(如testuser
  2. 在Ubuntu上执行id testuser,若能返回用户的UID、GID等信息,说明用户信息同步成功
  3. 尝试切换用户:su - testuser,输入AD用户密码后成功登录,且自动生成了/home/testuser目录
  4. 也可以通过SSH远程登录测试,验证跨机器的集中认证效果

八、可选优化配置

  • 限制特定AD组登录:在sssd.conf[domain/EXAMPLE.COM]段添加ad_access_filter = (memberOf=CN=LinuxAllowedUsers,OU=Groups,DC=example,DC=com),仅允许指定组的用户登录Ubuntu
  • 配置sudo权限:创建sudoers规则文件sudo touch /etc/sudoers.d/ad_sudo,添加%linuxallowedusers ALL=(ALL) ALL(组名对应AD中的组,注意小写),让指定AD组拥有sudo权限

九、常见问题排查

  • 登录失败时,查看SSSD日志:journalctl -u sssdcat /var/log/sssd/sssd_EXAMPLE.COM.log
  • 时间不同步导致Kerberos认证失败:执行sudo chronyc tracking查看时间同步状态,确保和AD服务器时间一致
  • DNS解析问题:用dig dc01.example.com验证AD服务器是否能被正常解析

内容的提问来源于stack exchange,提问作者dmx

火山引擎 最新活动