您好,欢迎访问三七文档
当前位置:首页 > 金融/证券 > 综合/其它 > 用samba做Linux和Windows域的整合
网络技术应用网测试环境:DC&DNS:WindowsServer2003sp2企业版.计算机名为:DCip:192.168.255.1客户机:RedHatEnterpriseLinuxES5hostname为serverip:192.168.255.2域名:yanchun.com2.试验目的:将Linux加入到Windows域,并实现Windows域帐户登陆Linux服务器.3.准备工作:a.在一台机器上安装WindowsServer2003,并升级为DC,同时集成DNS服务.b.Linux的准备工作也很简单,主要是检查以下几个包是否被安装:samba-3.0.23c-2samba-common-3.0.23c-2samba-client-3.0.23c-2//samba的相关包krb5-libs-1.5-17krb5-workstation-1.5-17krb5-devel-1.5-17pam_krb5-2.2.11-1//kerberos相关的软件包主要就用到这些包,由于各Linux发行版本的不同,包的版本或许会有差异.4.配置步骤:a.修改ip和dns我就不做介绍了.但是要注意防火墙(iptables)和SELinux.你可以把iptables规则清空,并禁用SELinux.清空iptables规则命令如下:iptables-F禁用SELinux方式如下:vi/etc/selinux/config将其中的SELINUX=enforcing改成SELINUX=disableb.修改/etc/krb5.conf文件,该文件是kerberos的配置文件。典型的krb5.conf文件如下:[logging]default=FILE:/var/log/krb5libs.logkdc=FILE:/var/log/krb5kdc.logadmin_server=FILE:/var/log/kadmind.log[libdefaults]default_realm=EXAMPLE.COMdns_lookup_realm=falsedns_lookup_kdc=false[realms]EXAMPLE.COM={kdc=kerberos.example.com:88admin_server=kerberos.example.com:749default_domain=example.com}网络技术应用网[domain_realm].example.com=EXAMPLE.COMexample.com=EXAMPLE.COM[kdc]profile=/var/kerberos/krb5kdc/kdc.conf[appdefaults]pam={debug=falseticket_lifetime=36000renew_lifetime=36000forwardable=truekrb4_convert=false}其中需要我们修改的地方很少,以我的例子为例,修改后的文件如下:[logging]default=FILE:/var/log/krb5libs.logkdc=FILE:/var/log/krb5kdc.logadmin_server=FILE:/var/log/kadmind.log[libdefaults]default_realm=YANCHUN.COM//改成你的域名dns_lookup_realm=falsedns_lookup_kdc=false[realms]YANCHUN.COM={//改成你的域名kdc=dc.yanchun.com:88//改成你DC的FQDN或者是IP,两者没什么区别admin_server=dc.yanchun.com:749default_domain=yanchun.com//改成你的域名,注意和上面的不同.(大小写)}[domain_realm].example.com=YANCHUN.COMexample.com=YANCHUN.COM//接着改[kdc]profile=/var/kerberos/krb5kdc/kdc.conf[appdefaults]pam={debug=falseticket_lifetime=36000renew_lifetime=36000forwardable=truekrb4_convert=false}修改完毕后运行下面的命令查看kerberos文件是否有误:网络技术应用网@YANCHUN.COM其中administrator是域管理员账户,YANCHUN.COM是你的域名.回车键后,会提示你输入密码,如果没有什么错误.在你输入密码回车后,会自动返回到Linux命令提示符下.在这里要注意的小问题就是Linux本地的时间要和DC的时间差问题,我们都知道,在DC上的策略中,时间差允许的范围是5分钟,所以,在运行上述的命令前,最好先同步下Linux和DC的时间:ntpdate192.168.255.1c.这一步是最主要的步骤了,就是修改/etc/samba/smb.conf配置文件.samba的主配置文件选项很多,在加上各版本中默认的选项都有所差异,在这里我就不列举典型的smb.conf文件了,我只把我的smb.conf文件帖出来,以供各位参考:[global]workgroup=YANCHUN//需要加入的域的netbios名,注意是域的netbios名,要大写netbiosname=Linux//本机器的netbios名,有的版本没有这一项会没有这个,要手动添加serverstring=SambaServer//对该服务器的描述printcapname=/etc/printcaploadprinters=yescupsoptions=rawlogfile=/var/log/samba/%m.logmaxlogsize=50security=ads//ads验证方式必须有realm项realm=YANCHUN.COM//增加这一行,注意这里是域名.passwordserver=dc.yanchun.com//这里是DC的FQDN,也可以写ip,但是有时候会出问题,建议写FQDNencryptpasswords=yes//加密在网络上传输的用户密码socketoptions=TCP_NODELAYSO_RCVBUF=8192SO_SNDBUF=8192dnsproxy=nowinbindseparator=///用户的域名和用户名之间的间隔,用什么随你心情idmapuid=1000000-2000000idmapgid=1000000-2000000//域用户映射成Linux本地用户时所有的uid和gid范围.templatehome=/home/%D/%U//与home文件夹中定义的作用相同.两者定义一个就行(我没加这行)templateshell=/bin/bash//用户登陆后所使用的shellwinbindusedefaultdomain=yes//用户登陆使用默认的域winbindenumusers=yeswinbindenumgroups=yes//有人说是自动创建用getentpasswd[group]看到的用户和组的信息.具体有什么用,我也说不清楚网络技术应用网[homes]comment=HomeDirectoriesbrowseable=nowritable=yescreatemode=0777directorymode=0777//创建的文件和目录的默认权限path=/home/%D/%U//用户主目录的相关设置[printers]comment=AllPrinterspath=/var/spool/sambabrowseable=noguestok=nowritable=noprintable=yes以上红色的部分都是要修改的,其余的都保持默认就行.好了,修改完成后,保存退出.然后用下面的命令测试smb.conf是否有误:testparm显示的结果如下:在这里注意两个地方就行,一个是LoadedservicesfileOK.//说明你的配置文件没有错还有一个就是:Serverrole:ROLE_DOMAIN_MEMBER//说明你的服务器已经是域的准成员了.好了,做了这些测试后,先把smb和winbind两个服务开启成随系统自动启动:chkconfigsmbonchkconfigwinbindon然后重启samba服务:servicesmbrestart//写到这里,我想起一点好玩的事来,在fedora9中(其他版本我不知道),smb和nmb服务是分开的,也就是说你用这条命令只能重启动smb,不能重启nmb,你还要打servicenmbrestart才行.....然后就可以加入域了:netadsjoin-WYANCHUN.COM-Sdc-Uadministrator然后会要求你输如管理员的password,输入后,正常情况下会提示加入域成功.网络技术应用网在这里我插一句,有时候用netadsjoin会不好使,这时候就试试netrpcjoin这种方式.到这里,我们就已经把samba服务器加入到域里了,这时,在DC上,computers这个OU里就应该可以看到你的samba服务器了.这时,我们重启winbind服务:servicewinbindrestart重启完成后,我们就可以用下面的几条命令来进行测试了:wbinfo-t//测试该samba服务器与域的信任关系wbinfo-u//查看域用户的映射信息wbinfo-g有时候会出现这样的错误信息,解决办法如下:先停掉winbind和smb服务:servicesmbstopservicewinbindstop然后删除下面两个目录里的.tdb文件:/etc/samba和/var/cache/samba据我理解,这些应该是在加入域过程中,产生的一些缓存文件,但是有时候这些缓存会造成一些错误信息,就象我们刚才看到的那样,删除后,重启服务,让他重新生成就行了.fedora9会稍有不同,目录我记不太清楚了,好像是/var/lib/samba你可以用命令搜索下:find/-name*.tdb删除完成后,重新启动smb服务.servicesmbstart网络技术应用网在次运行加入域的命令:netadsjoin-WYANCHUN.COM-Sdc-Uadministrator重启动winbind服务.servicewinbindstart然后在用命令查看信息就OK了.到这里呢,我们的samba服务器就成功的加入到域里了,但是呢,却还不能实现域账户在Linux终端上的登陆.想要实现这个目的,其实也很简单,只需要修改下面几个文件就可以了:/etc/nsswitch.conf//修改这个文件,影响Linux查找用户,组,和他们密码的行为修改项如下:passwd:winbindfilesshadow:winbindfilesgroup:winbindfiles/etc/pam.d/sysconfig-auth//让pam认证支持以winbind为源进行用户的查找和匹对.修改项如下:authsufficient/lib/security/pam_winbind.so//增加这一行authrequired/lib/security/$ISA/p
本文标题:用samba做Linux和Windows域的整合
链接地址:https://www.777doc.com/doc-6243961 .html