本文将实现Windows+Linux的异构环境
Windows的AD在企业中的广泛应用,和Linux的稳定性,我们各取所长,构建一个既方便又安全、稳定的环境。 配置方法一: Linux在启动级别3, 所有的操作都是在命令行下。 Windows正常环境,升级为AD,同时集成了DNS,提升林功能级别为2003纯模式,林级别为20003 纯模式。 1.在Linux系统中安装相应的软件包 samba-3.0.23c-2 samba-common-3.0.23c-2 samba-client-3.0.23c-2 //samba的相关包 krb5-libs-1.5-17 krb5-workstation-1.5-17 krb5-devel-1.5-17 pam_krb5-2.2.11-1 2.禁用selinux vi /etc/selinux/config 修改 SELINUX=enforcing (强制) 改成 SELINUX=disable (禁用) 修改iptables 清空iptables规则命令如下: iptables -F 3. 配置dns vi /etc/resolve.conf nameserver 192.168.1.2 //windows DNS服务器的ip地址 4. 修改/etc/krb5.conf文件,该文件是kerberos的配置文件。(Windows的登录相关) [logging] [libdefaults] [realms] [domain_realm] [kdc] [appdefaults] 测试: 在这里要注意的小问题就是Linux本地的时间要和DC的时间差问题,我们都知道,在DC上的策略中,时间差允许的范围是5分钟,所以,在运行上述的命令前,最好先同步下Linux和DC的时间: ntpdate -b 192.168.1.2 //同步为AD的时间 使用命令:kinit [email protected] (注意大写的部分) 遇到的一些问题: 1) [root@Gh0st CentOS]# kinit [email protected] kinit(v5): Cannot find KDC for requested realm while getting initial credentials 原因:客户端主DNS未指向域控制器 解决: 编辑文件/etc/resolv.conf,将nameserver的值修改成域控制器的IP地址。 2) [root@Gh0st CentOS]# kinit [email protected] Password for [email protected]: kinit(v5): Clock skew too great while getting initial credentials 原因: 客户端与认证服务器的时间差距太大,将客户端与认证服务器的时间同步即可 解决: 安装ntp软件,执行ntpdate –b 192.168.6.37(域控制器的IP),时间被同步 [root@Gh0st CentOS]# ntpdate -b 192.168.6.37 17 Sep 12:32:05 ntpdate[10302]: step time server 192.168.6.37 offset 2537.194742 sec 3) [root@Gh0st CentOS]# kinit [email protected] Password for [email protected]: kinit(v5): KDC reply did not match expectations while getting initial credentials 解决:使用大写的域名 [root@Gh0st CentOS]# kinit [email protected] Password for [email protected]: [root@Gh0st CentOS]# 4)net rpc join -W @A.COM -S 192.168.1.50 -U administrator 解决办法:把ip地址改为dc的FQDN即可 5. 配置samba vi /etc/samba/smb.conf [global] log file = /var/log/samba/%m.log security = ads //ads验证方式必须有realm项 realm = A.COM //增加这一行,注意这里是域名. encrypt passwords = yes //加密在网络上传输的用户密码 dns proxy = no winbind separator = / //用户的域名和用户名之间的间隔,用什么随你心情 winbind cache type = x (winbind同步账户时间,可以没有) [homes] comment = Home Directories [printers] 测试:[root@localhost ~]# testparm //测试samba配置文件的命令 Load smb config files from /etc/samba/smb.conf Processing section "[homes]" Processing section "[printers]" Loaded services file OK. //语法测试通过 Server role: ROLE_DOMAIN_MEMBER //验证级别为 域成员 Press enter to see a dump of your service definitions //回车将显示起作用的配置 [global] workgroup = A netbios name = LINUX realm = A.COM server string = Samba Server security = ADS password server = 192.168.1.2 encrypt passwords = yes log file = /var/log/samba/%m.log max log size = 50 dns proxy = no idmap uid = 16777216-33554431 idmap gid = 16777216-33554431 template shell = /sbin/nologin winbind separator = / winbind enum users = yes winbind enum groups = yes winbind use default domain = yes cups options = raw [homes] comment = Home Directories path = /home/%D/%U read only = no create mask = 0777 directory mask = 0777 browseable = no [printers] comment = All Printers path = /usr/spool/samba printable = yes browseable = no 6. 启动相关的服务: service winbind restar service smb restart chkconfig --levels 35 winbind on chkconfig --levels 35 smb on 7. 将Linux加入Windows域 net ads join -W A.COM -S dc1(AD的主机名) -U administrator 有时候用net ads join 会不好使,这时候就试试net rpc join 这种方式. 有时候会出现这样的错误信息,解决办法如下: 先停掉winbind和smb服务: service smb stop service winbind stop 然后删除下面两个目录里的.tdb文件: /etc/samba 和 /var/cache/samba 据我理解,这些应该是在加入域过程中,产生的一些缓存 文件,但是有时候这些缓存会造成一些错误信息,就象我们刚才看到的那样,删除后,重启服务,让他重新 生成就行了. 重新启动相关的服务,在执行加入域操作。 测试: wbinfo -t //测试域的信任关系 wbinfo -u //查看域用户 wbinfo -g //查看域用户组 8. 修改Linux的密码查找顺序 vi /etc/nsswitch.conf 修改相关记录 passwd: winbind files 修改 /etc/pam.d/system-auth (应该是登录Linux系统本机的验证方式,如果作文文件服务器,不让普通用户登录,不设置应该也可以) vi /etc/pam.d/system-auth auth sufficient pam_winbind.so //增加这一行 account sufficient pam_winbind.so //增加这一行,注意这两行的位置 9. 建立相关用户文件 修改完毕后,根据上面smb.conf文件的配置,我们就可以实现用户的登陆了,不过还有一点要说明,就是在用户登陆前,必须手动创建他们的登陆主目录,并且赋予他们完全控制的权限. 比如,我想让administrator用户登陆Linux,实现步骤如下: cd /home mkdir A cd A mkdir administrator chown administrator: administrators administrator //在home目录下创建YANCHUN域目录,并在该目 录下创建要登陆用户administrator的目录,更改目录权限. 这样在终端上就可以实现域用户账户的登陆了.
做到这里,恭喜你Linux和Windows的整合已经完成。 小提示:Linux做文件服务器,没必要让域用户在Linux本地登录。所有[homes]字段可以没有,家目录也可以没有。 此文档由 秘飞虎 (qq:815889476 mail:[email protected]) 花了很长时间,查了好多资料才完成的,如果转载,请保留作者,及联系方式。 |