5154

Good Luck To You!

CentOS 6.5如何配置才能顺利加入Windows域?

在信息技术管理领域,将服务器纳入统一的身份认证体系是实现高效、安全运维的基础,对于许多仍在运行遗留系统的企业环境而言,将一台 CentOS 6.5 服务器加入现有的 Windows 域(通常是 Active Directory)是一项常见但至关重要的任务,这不仅允许域用户直接通过其域账户登录 Linux 服务器,还能实现统一的权限管理和资源访问控制,需要注意的是,CentOS 6.5 是一个非常古老的操作系统版本,早已停止官方支持,本文提供的方法仅适用于维护特定遗留环境的场景,强烈建议在生产环境中升级到受支持的现代系统。

CentOS 6.5如何配置才能顺利加入Windows域?

准备工作:前置条件与环境检查

在开始任何配置之前,确保以下基础条件已经满足,这是成功加入域的关键。

  • 网络连通性:CentOS 6.5 服务器必须能够通过网络访问域控制器(DC),使用 ping 命令测试与域控制器 IP 地址和域名的连通性。
  • DNS 配置:这是最关键的一步,服务器的 /etc/resolv.conf 文件必须配置为使用域控制器作为其 DNS 服务器,它必须能够正确解析域的 SRV 记录,以便找到域控制器。
  • 时间同步:Kerberos 协议对时间非常敏感,客户端与服务器之间的时间差通常不能超过 5 分钟,必须安装并配置 NTP 服务,确保 CentOS 服务器与域控制器的时间保持同步。
  • 域管理员凭据:需要一个具有足够权限将计算机加入域的域账户,通常是 Domain Admins 组的成员。

核心组件安装

CentOS 6.5 需要安装几个核心软件包来与 Windows 域进行交互,主要包括 Samba(用于文件和打印共享以及身份验证)、Winbind(用于将 Windows NT/AD 域用户和组解析为 UNIX UID/GID)以及 Kerberos 客户端工具。

打开终端,执行以下命令来安装必要的软件包:

yum install samba samba-common samba-winbind krb5-workstation
  • samba: 提供 SMB/CIFS 协议支持的核心软件包。
  • samba-winbind: Winbind 服务,使得 Linux 可以作为域成员。
  • krb5-workstation: 提供 Kerberos 认证客户端工具,如 kinit

配置 Kerberos 认证

Kerberos 是域环境中用于安全认证的核心协议,我们需要创建一个配置文件来告诉 Linux 客户端如何与 Kerberos 域(Realm)通信,编辑 /etc/krb5.conf 文件,内容如下,请将 YOUR.REALM.COMyour.realm.com 替换为您的实际域名。

[logging]
 default = FILE:/var/log/krb5libs.log
 kdc = FILE:/var/log/krb5kdc.log
 admin_server = FILE:/var/log/kadmind.log
[libdefaults]
 default_realm = YOUR.REALM.COM
 dns_lookup_realm = false
 dns_lookup_kdc = true
 ticket_lifetime = 24h
 renew_lifetime = 7d
 forwardable = true
[realms]
 YOUR.REALM.COM = {
  kdc = dc1.your.realm.com
  kdc = dc2.your.realm.com
  admin_server = dc1.your.realm.com
  default_domain = your.realm.com
 }
[domain_realm]
 .your.realm.com = YOUR.REALM.COM
 your.realm.com = YOUR.REALM.COM

配置要点说明

  • default_realm: 设置默认的 Kerberos 域,必须大写。
  • kdc: 指定域控制器的地址。
  • admin_server: 指定管理服务器的地址。
  • [domain_realm] 部分:将小写的域名映射到大写的 Kerberos 域。

配置 Samba 与 Winbind

配置 Samba 和 Winbind 以便它们能够与域交互,编辑 /etc/samba/smb.conf 文件,以下是一个基础但功能齐全的配置示例:

[global]
   workgroup = YOURDOMAIN
   realm = YOUR.REALM.COM
   server string = CentOS 6.5 Server
   security = ADS
   encrypt passwords = yes
   dns proxy = no
   # Winbind Settings
   idmap config * : backend = tdb
   idmap config * : range = 2000-9999
   idmap config YOURDOMAIN : backend = rid
   idmap config YOURDOMAIN : range = 10000-999999
   winbind use default domain = yes
   winbind enum users = yes
   winbind enum groups = yes
   template shell = /bin/bash
   template homedir = /home/%U
   # Logging
   log file = /var/log/samba/log.%m
   max log size = 50

配置要点说明

  • workgroup: 您的域的 NetBIOS 名称。
  • realm: Kerberos 域名称,与 krb5.conf 中的 default_realm 相同。
  • security = ADS: 指定 Samba 使用 Active Directory 安全模式。
  • idmap config * : backend = tdb: 为非域用户/组使用 TDB 作为后端。
  • idmap config YOURDOMAIN : backend = rid: 为域用户/组使用 RID(相对标识符)后端,这是一种简单且稳定的 ID 映射方式。
  • idmap config YOURDOMAIN : range: 为域用户/组分配的 UNIX UID/GID 范围,确保不与本地用户冲突。
  • winbind use default domain = yes: 允许直接使用 username 而不是 DOMAIN\username 来登录。
  • template shell: 为域用户设置默认的 Shell。
  • template homedir: 为域用户设置主目录的路径模板。

配置名称服务切换 (NSS)

为了让系统能够像查询本地用户一样查询域用户,需要修改 /etc/nsswitch.conf 文件,找到 passwd, group, 和 shadow 这几行,在末尾添加 winbind

CentOS 6.5如何配置才能顺利加入Windows域?

passwd:     files winbind
shadow:     files winbind
group:      files winbind

启动服务并加入域

配置完成后,按顺序启动相关服务,并将其设置为开机自启。

# 启动并设置 NTP 服务
service ntpd start
chkconfig ntpd on
# 启动并设置 Samba 服务
service smb start
chkconfig smb on
# 启动并设置 Winbind 服务
service winbind start
chkconfig winbind on

可以使用 net ads join 命令将计算机加入域,系统会提示输入域管理员密码。

net ads join -U administrator

如果命令执行成功,您会看到 "Joined ... to realm ..." 的提示信息,这表示您的 CentOS 6.5 服务器已成功成为域的一员。

验证与测试

进行一系列测试以确认配置生效。

  1. 测试域成员身份

    net ads testjoin

    如果返回 "Join is OK",则表示加入成功。

  2. 检查是否可以获取域用户和组

    wbinfo -u
    wbinfo -g

    这两个命令应该会分别列出域中的所有用户和组。

    CentOS 6.5如何配置才能顺利加入Windows域?

  3. 使用 getent 查询用户

    getent passwd 'your_domain_user'

    如果能返回该用户的详细信息(包括 UID、GID 和主目录),说明 NSS 配置正确。

  4. 尝试切换用户

    su - 'your_domain_user'

    如果能够成功切换到域用户 shell,即使提示没有主目录(下一个 FAQ 会解决这个问题),也基本表明认证流程已经打通。


相关问答FAQs

问题 1:除了 Winbind,还有其他方式可以将 CentOS 6.5 加入域吗? 解答:是的,除了 Samba Winbind,还可以使用 SSSD(System Security Services Daemon),SSSD 是一个更现代的系统服务,用于远程身份验证和域名解析,相比于 Winbind,SSSD 提供了更好的性能、更广泛的协议支持(如 LDAP、Kerberos、Proxy)以及离线缓存功能(即在与域控制器断开连接后,用户依然可以使用缓存的凭据登录),在 CentOS 6.5 的时代,Winbind 是更成熟和普遍的选择,但 SSSD 也是一个可行的替代方案,它通过编辑 /etc/sssd/sssd.conf 进行配置,并同样需要 Kerberos 和正确的 NSS 设置。

问题 2:AD 用户登录成功后,为什么提示 “Could not chdir to home directory: No such file or directory” 且没有家目录? 解答:这是一个非常常见的问题,默认情况下,PAM(可插拔认证模块)不会为首次登录的域用户自动创建主目录,您在 smb.conf 中设置的 template homedir 仅仅是指定了主目录的路径,但没有创建它的指令,要解决这个问题,需要修改 PAM 的配置,使其在用户首次登录时自动创建主目录,编辑 /etc/pam.d/system-auth-ac 文件(有时是 /etc/pam.d/system-auth),在 session 部分添加以下一行: session required pam_mkhomedir.so skel=/etc/skel/ umask=0022 这行配置的作用是,当一个会话建立时,如果用户的主目录不存在,pam_mkhomedir.so 模块会自动以 /etc/skel 为模板,使用 umask=0022 的权限创建它,添加后,域用户下次登录时,系统就会为其自动创建家目录了。

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

«    2025年11月    »
12
3456789
10111213141516
17181920212223
24252627282930
控制面板
您好,欢迎到访网站!
  查看权限
网站分类
搜索
最新留言
    文章归档
    网站收藏
    友情链接

    Powered By Z-BlogPHP 1.7.3

    Copyright Your WebSite.Some Rights Reserved.