为什么说要linux加域呢!    因为之前在公司是做vmware的,然后呢vmware的horizon桌面云虚拟化都是通过域来管理的,开始使用的都是Windows桌面,后来开发的人员说要使用linux工作,然后linux呢又需要加入域进行管理,所以我就琢磨了几天,百度啊,看别人的博客啊都没有什么很好的解决方案,我就通过结合他们的文章自己整了个完整的加域过程,如下:

----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

这里域为:vsphere.com
IP为:172.16.124.240
我这里linux版本为6.7

1.linux做如下配置。。
a.修改计算机名:
vim /etc/sysconfig/network
##主机名后缀为vsphere.com(我这里是linux.vsphere.com),且主机名不能重复

b.修改DNS:
vim /etc/resolv.conf
##修改为如下内容
search vsphere.com
nameserver 172.16.124.240

c.删除本机计算机解析
vim /etc/hosts(删除里面的所有东西,有几行就输入几dd,比如有3行,3dd)

d. 不关闭防火墙(我这里是iptables,7.0之前没有firewall)做防火墙策略, 添加两条策略,允许本机与DC之间的全部通讯:
vim /etc/sysconfig/iptables
-A OUTPUT -m state --state NEW -m tcp -p tcp -d 172.16.124.240 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp -s 172.16.124.240 -j ACCEPT

重启服务生效(服务很多 我直接重启电脑,重启命令reboot或者init 6)

2.时间同步
a.编辑计划任务,加入时间同步
vim /etc/crontab
##加入如下时间同步内容,实现每小时与服务器同步一次时间
00 * * * * root /usr/sbin/ntpdate
vsphere.com;/usr/sbin/hwclock -w

b.将crond服务加入到开机启动,并立即重启crond服务
#chkconfig crond on
#service crond restart

3.安装samba和krb5:
a.安装支持软件(需要先配置yum源):
yum -y install pam_krb5* krb5-libs* krb5-workstation* krb5-devel* krb5-auth samba samba-winbind* samba-client* samba-swat*
##(安装之前用rpm -qa|grep 查看是否已安装)

b.检查krb5相关组件是否全部安装
#rpm -qa|grep krb
(会有5项相关内容,如果没有直接用yum -y install krb5*把带krb5的所有 软件包全部安装)

c.检查samba组件是否全部安装:
#rpm -qa|grep samba
(会有6项才算全部安装,默认Samba和samba-swat是没安装的,需要先安装samba才能安装samba-swat)

d.验证samba基础库支持:(没安装Samba是显示不出基础库的)
#smbd -b|grep LDAP

#smbd -b|grep KRB

#smbd -b|grep ADS

#smbd -b|grep WINBIND

至此,samba和krb5的基本已经安装完成

加域:
a.启动相关服务并设置开机启动:
#service winbind start
#chkconfig winbind on

b.使用setup配置工具,并选择“验证配置”,选择下面三项:
“use winbind” ##对应的中文意思
“use kerberos”##对应中文“使用kerberos”
“use winbind authertication” ##对应中文“使用winbind验证”
------------------然后点击“下一步”-----------------
域:vsphere.com
KDC:WIN-GKNVD58B4QL.vsphere.com
管理服务器:WIN-GKNVD58B4QL.vsphere.com
##并勾选下面两个选项
(之所以之前一直加域不成功,是因为这里的KDC需要填域控制器的名称,这里的域控制器是AD域的计算机名可以到AD域里面Domain Controllers里面的计算机名加域名)
------------------然后点击“下一步”-----------------
安全模型:ADS
域:VSPHERE
域控制器:WIN-GKNVD58B4QL.vsphere.com
ADS域:vsphere.com
模板shell:/bin/bash
----------------------点击加入域---------------------
回弹出个报错信息,这时不用理会,
然后输入:authconfig-gtk(linux版本7.0之前才有这个命令,7.0以后的版本这个命令被取消)

用户账户数据库:winbind
winbind域:VSPHERE(注意大小写)
安全模型:ads
winbind ADS域:VSPHERE.COM(注意大小写)
winbind域控制器:WIN-GKNVD58B4QL.vsphere.com
模板shell:/bin/bash
---------------------点击加入域--------------------
这是输入域管理员administrator和对应密码,输入完成后会返回验证配置界面

然后输入:net ads join -U [email protected](这里的administrator可以换成是域上面的任意成员)

然后会返回一个错误信息:大致的意思是DNS无法自动创建更新
这时我们就要去DNS上面手动添加一条DNS更新策略
在DNS———点击vsphere.com———右边会显示很多更新条目———鼠标右键———新建主机———名称:centos(我的linux主机名是centos,填对应的Linux主机名)———IP地址:172.16.124.103(对应的LinuxIP地址)———勾选允许所有经过身份验证

回到Linux:
a.测试是否加域成功:
#wbinfo -t ##测试RPC通讯,提示succeeded表示成功
checking the trust secret for domain VSPHERE via RPC calls succeeded

#wbinfo -u ##查看域用户
(会有很多域成员)
如果有表示读取正常

#wbinfo -g ##查看域组
(一样会有很多域组)
如果有表示读取正常

上诉两个命令执行后如果可以看到域中的用户和组则正常。如果提示如下,则表示与域控制器同步还未完成

测试ntlm组件
ntlm_auth --username=administrator
password:##输入密码

验证代域:
#net ads testjoin
Join is OK

b.使用域账户登录
此时就可以使用su - ***@vsphere.com这样的域用户登录Linux服务器了,如果登录后显示如下:

Could not chdir to home directory /home/VSPHERE/barlowliu:No such file or directory
-bash-4.1$

##这表示没有自动创建用户的家目录,下面就来解决这个问题

c.解决域用户登录后没有加目录的问题:
1.建立域用户家目录:
#mkdir /home/VSPHERE
#chmod 1777 /home/VSPHERE

2.编辑/etc/samba/smb.conf配置文件,添加如下一行:
(在最下面添加)
template homedir = /home/%D/%U
##修改如下一行就可以实现在登录时不需要输入域名
winbind use default domain = true

3.编辑/etc/pam.d/system-auth,增加如下一行:
session required pam_mkhomedir.so skel=/etc/skel umask=0077

4.vim /etc/pam.d/sshd 统一增加上面一行:
session required pam_mkhomedir.so skel=/etc/skel umask=0077

完成后就可以使用域账号正常登录了,但是还需要配合安全要求,设置每台允许SSH登录和允许运行su和sudo命令的用户

05-06 11:14