对于帐户统一管理系统或软件来说,在 Linux 下你可能知道 NIS、OpenLDAP、samba 或者是 RedHat、IBM 的产品,在 Windows 下当然就是最出名的活动目录 (AD)了,这里就来探讨一下如何让 Linux 的计算机加入 AD 域。
江干网站制作公司哪家好,找成都创新互联!从网页设计、网站建设、微信开发、APP开发、响应式网站等网站项目制作,到程序开发,运营维护。成都创新互联公司2013年成立到现在10年的时间,我们拥有了丰富的建站经验和运维经验,来保证我们的工作的顺利进行。专注于网站建设就选成都创新互联。
首先,先简单介绍一下 AD 域。自 Windows 2000 以来,AD 一直是 Windows 的身份验证和目录服务,AD 基于 LDAP 实现其功能,其使用 DNS 进行主机名的解析,使用 Kerberos V5 进行用户身份验证,使用 LDAP V3 进行统一的帐户管理。
目标:在 AD 域中,将 Linux 服务器加入 AD,以使 Domain Admins 用户组成员可以登录操作 Linux 服务器,不需要在 Linux 服务器中单独创建帐户。
环境:一台 Windows Server 2012 R2 操作系统的服务器,安装有 AD 并作为域控制器(DC),同时也作为 DNS 服务器和时间服务器;一台 RedHat Enterprise Linux 6.x 的服务器,请自行配置好网络及 YUM 源。有关 AD 域服务器的搭建,由于比较简单,请自行查阅资料完成,这里不再详述。
这里以 Windows 服务器地址为 192.168.2.122,域名为 contoso.com,主机名为 ad.contoso.com;Linux 服务器地址为 192.168.2.150,主机名为 lemon20.contoso.com。
1、安装所需软件:
# yum -y install samba samba-client samba-common samba-winbind samba-winbind-clients krb5-workstation ntpdate
2、设置服务自启动并启动服务:
# chkconfig smb on
# chkconfig winbind on
# service smb start
# service winbind start
3、修改 /etc/hosts 文件,添加主机对应记录:
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.2.150 lemon20.contoso.com lemon20
4、设置 DNS 地址并与 AD 服务器同步时间:
# echo "nameserver 192.168.2.122" /etc/resolv.conf
# ntpdate ad.contoso.com
5、设置 Kerberos 票据(可选):
销毁已经存在的所有票据:
# kdestroy
查看当前是否还存在票据:
# klist
klist: No credentials cache found (ticket cache FILE:/tmp/krb5cc_0)
生成新的票据,注意域名大写。
# kinit administrator@CONTOSO.COM
# klist
Ticket cache: FILE:/tmp/krb5cc_0
Default principal: administrator@CONTOSO.COM
Valid starting Expires Service principal
08/02/16 22:35:26 08/03/16 08:35:29 krbtgt/CONTOSO.COM@CONTOSO.COM
renew until 08/09/16 22:35:26
6、以命令方式设置 samba 与 Kerberos,并加入 AD 域:
#authconfig --enablewinbind --enablewins --enablewinbindauth --smbsecurity ads --smbworkgroup=CONTOSO --smbrealm CONTOSO.COM --smbservers=ad.contoso.com --enablekrb5 --krb5realm=CONTOSO.COM --krb5kdc=ad.contoso.com --krb5adminserver=ad.contoso.com --enablekrb5kdcdns --enablekrb5realmdns --enablewinbindoffline --winbindtemplateshell=/bin/bash --winbindjoin=administrator --update --enablelocauthorize --enablemkhomedir --enablewinbindusedefaultdomain
注意命令中的大小写,此步骤也可以使用 authconfig-tui 完成。
7、增加 sudo 权限(可选):
# visudo
加入下列设置:
%MYDOMAIN\\domain\ admins ALL=(ALL) NOPASSWD: ALL
8、确认是否正确加入 AD 域:
查看 AD 的相关信息
# net ads info
查看 MYDOMAIN\USERID 的使用者帐户
# wbinfo -u
补充:
如果启用 selinux 的话,需要安装 oddjobmkhomedir 并启动其服务,这样才能确保系统对创建的家目录设置合适的 SELinux 安全上下文。
Linux无法加入域的原因是域名输入方式不对,通信可能出现不正常。
解决方法:打开终端管理器,输入setup,选择运行工具、选中全部用户信息和验证、输入正确的域名即可、选中/bin/bash这个选项然后选中加入域、选择是、输入域的管理员密码,点击确定即可。
拓展:
Linux,全称GNU/Linux,是一种免费使用和自由传播的类UNIX操作系统,其内核由林纳斯·本纳第克特·托瓦兹于1991年10月5日首次发布,它主要受到Minix和Unix思想的启发,是一个基于POSIX的多用户、多任务、支持多线程和多CPU的操作系统。它能运行主要的Unix工具软件、应用程序和网络协议。它支持32位和64位硬件。Linux继承了Unix以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。Linux有上百种不同的发行版,如基于社区开发的debian、archlinux,和基于商业开发的Red Hat Enterprise Linux、SUSE、Oracle Linux等。
1.配置DNS
# vi /etc/resolv.conf
nameserver 192.168.2.30
nameserver 192.168.2.32
# vi /etc/host.conf
# nslookup 192.168.2.32 DNS查找
# net time SET 192.168.2.32 时间同步,客户端以服务器时间为准
2.samba
首先确保Linux系统中安装了samba包,并用下述命令来检查samba包的基础库支持,一般的RPM安装都不会有问题。
# smbd -b | grep LDAP
HAVE_LDAP_H
HAVE_LDAP
HAVE_LDAP_DOMAIN2HOSTLIST
...
# smbd -b | grep KRB
HAVE_KRB5_H
HAVE_ADDRTYPE_IN_KRB5_ADDRESS
HAVE_KRB5
...
# smbd -b | grep ADS
WITH_ADS
WITH_ADS
# smbd -b | grep WINBIND
WITH_WINBIND
WITH_WINBIND
3.krb5配置
配置编辑/etc/krb5.conf,配置完成后,执行
# kinit administrator@HXBANK.COM
4.Samba配置
编辑配置/etc/samba/smb.conf后,重启samba服务
# service samba restart
# net ads join -U administrator@HXBANK.COM 加入域,这时需要输入域管理员密码
5.winbind配置
编辑/etc/nsswitch.conf,更改passwd和group为(files需视你linux系统配置NIS与否,如配置NIS,则为compat)
passwd: files winbind
group: files winbind
保存后(重)启动samba服务。(重)启动winbind。
用 wbinfo -u检索用户,wbinfo -g检索用户组来测试winbind是否正常。
1.配置DNS
# vi /etc/resolv.conf
nameserver 192.168.2.30
nameserver 192.168.2.32
# vi /etc/host.conf
# nslookup 192.168.2.32 DNS查找
# net time SET 192.168.2.32 时间同步,客户端以服务器时间为准
2.samba
首先确保Linux系统中安装了samba包,并用下述命令来检查samba包的基础库支持,一般的RPM安装都不会有问题。
# smbd -b | grep LDAP
HAVE_LDAP_H
HAVE_LDAP
HAVE_LDAP_DOMAIN2HOSTLIST
...
# smbd -b | grep KRB
HAVE_KRB5_H
HAVE_ADDRTYPE_IN_KRB5_ADDRESS
HAVE_KRB5
...
# smbd -b | grep ADS
WITH_ADS
WITH_ADS
# smbd -b | grep WINBIND
WITH_WINBIND
WITH_WINBIND
3.krb5配置
配置编辑/etc/krb5.conf,配置完成后,执行
# kinit administrator@HXBANK.COM
4.Samba配置
编辑配置/etc/samba/smb.conf后,重启samba服务
# service samba restart
# net ads join -U administrator@HXBANK.COM 加入域,这时需要输入域管理员密码
5.winbind配置
编辑/etc/nsswitch.conf,更改passwd和group为(files需视你linux系统配置NIS与否,如配置NIS,则为compat)
passwd: files winbind
group: files winbind
保存后(重)启动samba服务。(重)启动winbind。
用 wbinfo -u检索用户,wbinfo -g检索用户组来测试winbind是否正常。