非AWS VPC内的Ubuntu服务器如何加入AWS Simple AD?
解决方案:外部Ubuntu服务器接入AWS Simple AD步骤
一、打通网络连通性
外部服务器要先和Simple AD所在VPC建立通信通道,同时开放必要端口:
- 建立跨网络连接:根据外部服务器所在环境,选择AWS Site-to-Site VPN、Direct Connect实现私有网络连通;如果外部服务器在公网,可给Simple AD开启公网访问(注意配置严格的安全策略)。
- 开放AD服务端口:在VPC安全组、网络ACL中放行以下端口,同时确保外部服务器防火墙允许 outbound 流量到这些端口:
- DNS:53(UDP/TCP)
- LDAP:389(TCP/UDP)
- LDAPS:636(TCP)
- Kerberos:88(UDP/TCP)、464(UDP/TCP)
二、配置DNS解析(核心前提)
realm discover依赖DNS获取AD的SRV记录,必须确保外部Ubuntu能正确解析AD域名:
- 获取Simple AD的DNS服务器IP:在AWS Directory Service控制台找到目标Simple AD实例,查看详情页的DNS服务器地址(通常是两个私有IP)。
- 配置Ubuntu的DNS:
- 若使用systemd-resolved,编辑
/etc/systemd/resolved.conf:
重启服务:DNS=Simple_AD_DNS_IP_1 Simple_AD_DNS_IP_2sudo systemctl restart systemd-resolved - 若直接修改resolv.conf,编辑
/etc/resolv.conf添加:
(部分系统会自动覆盖该文件,可通过nameserver Simple_AD_DNS_IP_1 nameserver Simple_AD_DNS_IP_2chattr +i /etc/resolv.conf锁定,或用系统自带的DNS配置工具)
- 若使用systemd-resolved,编辑
- 验证解析:执行
nslookup example.com应返回AD服务器IP;执行dig example.com SRV应能看到Kerberos和LDAP的SRV记录。
三、安装并配置AD客户端工具
安装依赖包并配置Kerberos:
- 安装工具:
sudo apt update && sudo apt install realmd sssd sssd-tools adcli krb5-user packagekit - 配置Kerberos:
- 手动编辑
/etc/krb5.conf,替换为以下内容(大写域名):[libdefaults] default_realm = EXAMPLE.COM dns_lookup_kdc = true dns_lookup_realm = true [realms] EXAMPLE.COM = { kdc = Simple_AD_DNS_IP_1 admin_server = Simple_AD_DNS_IP_1 } - 测试Kerberos认证:
kinit admin@EXAMPLE.COM,输入AD管理员密码,无报错则成功;用klist可查看生成的票据。
- 手动编辑
四、发现并加入域
- 执行域发现:
sudo realm discover example.com,此时应能返回AD的域名、服务器等信息。 - 加入域:
sudo realm join example.com -U admin,输入AD管理员密码等待执行完成。 - 验证结果:
- 执行
realm list可查看已加入的域信息; - 执行
id admin@example.com,若能返回用户UID/GID等信息,说明配置生效。
- 执行
五、可选优化配置
- 调整SSSD策略:编辑
/etc/sssd/sssd.conf,在[domain/example.com]段添加allow_groups = Domain Users,限制允许登录的AD用户组; - 配置PAM:执行
sudo pam-auth-update,勾选sssd选项,确保AD用户能通过PAM登录系统。
内容的提问来源于stack exchange,提问作者Yvette Lau
相关产品推荐
相关产品推荐

