linux加入windows域之完美方案Word下载.docx
《linux加入windows域之完美方案Word下载.docx》由会员分享,可在线阅读,更多相关《linux加入windows域之完美方案Word下载.docx(25页珍藏版)》请在冰豆网上搜索。
krb5-workstation-1.6.1-25.el5
[root@filesrvCentOS]#rpm-qa|grepsamba
samba-swat-3.0.28-0.el5.8
samba-common-3.0.28-0.el5.8
samba-client-3.0.28-0.el5.8
samba-3.0.28-0.el5.8
如果centos在安装的时候没有取消默认选中的”Base”,则krb5的包是默认全部安装
如果没有选择安装samba可以这样安装
[root@filesrvCentOS]#rpm-ivhxinetd-2.3.14-10.el5.i386.rpm
[root@filesrvCentOS]#rpm-ivh--aidsamba*.rpm
2.配置kerberos和samba
因为笔者用的系统为centos所以为保证一次成功的准确率,这里就使用字符界面下的图形工具来配置了。
运行setup工具
认证配置
选择:
“usewinbind”
“usekerberos”
“usewinbindauthertication”
删除adminserver其余的改成真实情况
Realm为域名,KDC为域服务器的ip
配置winbind
Domain为你的域的,左面第一个”.”前面的东东
选择”joindomain”,提示是否先保存配置信息,肯定是yes了。
嘿嘿,看到这个画面是不是想到了xp机器加入到域的情景?
没错就是那个!
输入ad域的管理员密码吧
不出意外的话,你就到达了最后一个界面,肯定ok,然后退出了。
一般来说,只要两台机器的时间上下不差五分钟,且项都配置正确的话,你就会看到下面这个图片。
看到这个图片说明你的linux成功加入到ad域啦!
OK,用图形的好处就是方便快捷,但是这样只适合rh系统。
别的linux系统咋办呢?
别急。
这个工具其实就是编辑以下三个配置文件:
/etc/nsswitch.conf
passwd:
fileswinbind(就是先读files然后再通过winbind认证)
shadow:
fileswinbind
group:
/etc/krb5.conf
[logging]
default=FILE:
/var/log/krb5libs.log
kdc=FILE:
/var/log/krb5kdc.log
admin_server=FILE:
/var/log/kadmind.log
[libdefaults]
default_realm=RAINBIRD.NET(默认的域名)
dns_lookup_realm=false
dns_lookup_kdc=false
ticket_lifetime=24h
forwardable=yes
[realms]
EXAMPLE.COM={
kdc=:
88
admin_server=:
749
default_domain=
}
RAINBIRD.NET={
kdc=192.168.1.241:
88(域服务器)
kdc=192.168.1.241
[domain_realm]
=EXAMPLE.COM
=RAINBIRD.NET
[appdefaults]
pam={
debug=false
ticket_lifetime=36000
renew_lifetime=36000
forwardable=true
krb4_convert=false
/etc/samba/smb.conf
workgroup=RAINBIRD//域名
passwordserver=192.168.1.241//域服务器
realm=RAINBIRD.NET
security=ads//必须启用
idmapuid=16777216-33554431
idmapgid=16777216-33554431
templateshell=/bin/bash
winbindusedefaultdomain=false(改成true)
winbindofflinelogon=false(改成true)
templatehomedir=/home/%U
winbindseparator=/
winbindenumusers=Yes
winbindenumgroups=Yes
红色部分就是工具自动修改的了,但是smb.conf修改的不彻底,还不能满足我们的要求,怎么办呢?
手动把蓝色部分加上,并把那两个false改成ture,然后设置samba的开机自动启动chkconfigsmbon,servicesmbon启动服务,然后就是手工把linux加入到windows了
[root@filesrv~]#netadsjoin-Uadministrator@RAINBIRD.NET
administrator@RAINBIRD.NET'
spassword:
Theworkgroupin/etc/samba/smb.confdoesnotmatchtheshort
domainnameobtainedfromtheserver.
Usingthename[RAINBIRD]fromtheserver.
Youshouldset"
workgroup=RAINBIRD"
in/etc/samba/smb.conf.
Usingshortdomainname--RAINBIRD
Joined'
FILESRV'
torealm'
RAINBIRD.NET'
提示“Joined”哟,不是这个提示就是有问题,再仔细检查。
OK,重启linux,这时候用一个域用户登陆linux如果提示用户或密码验证失败,说明你重启之前的东西没配置对。
仔细检查一下哪里不对呢?
如果提示如下,那么恭喜你,可以继续下一个话题了。
3.自动创建用户目录.
用到的文件pam_mkhomedir.so
在/etc/pam.d/sysconf-auth文件中的sesson部分添加一行
sessionrequiredpam_mkhomedir.sosilentskel=/etc/skelumask=0077
silent不打印创建目录信息
skel告诉pam_mkhomedir.so拷贝/etc/skel里的文件到新创建的目录里.
umask是创建的目录的权限
创建哪个目录是在smb.conf里的templatehomedir定义的
如图:
保存退出,重启一下X-window。
再次用域用户登陆,是不是成功看到了久违的linux桌面呢?
Ok,到此为止,linux加入windows的故事就讲完了。
而samba服务器通过ad域认证并实现每个用户500M的共享空间,且当用户登陆windows域的时候自动挂载已经成型,近期放出,敬请期待。
本文实现了samba服务被访问的时候通过windows域服务器进行用户名和密码验证;
认证通过的用户可以自动分配500M的共享空间;
在用户通过windows域登陆系统的时候可以自动把这块空间映射成一块硬盘。
环境说明:
文件服务器用的Centos5.3,域控用的Win2k3sp2,Domain是。
IP:
192.168.1.245
Samba:
3.0.33-3.7.el5
Ok,let’smove!
因为是服务器配置,所以本文的操作都是在字符界面下直接编辑文件。
当然为了提高工作效率其中一部分配置是可以在图形界面下配的。
前提是你必须是redhat/centos系统。
如果是的话,可以参考我上一篇文章<
<
linux加入windows域之完美方案>
>
来做
2.配置kerberos(关键)
下面配置参数让Kerberos进程知道处理活动目录服务器,对/etc/krb5.conf做适当的修改,修改时需要注意的是Kerberos是大小写敏感的。
这是我的krb5.conf配置文件:
[logging]
/var/log/krb5libs.log
/var/log/krb5kdc.log
/var/log/kadmind.log
[libdefaults]
ticket_lifetime=24000
default_realm=RAINBIRD.NET//默认域名
dns_lookup_realm=false
dns_lookup_kdc=false
[realms]
RAINBIRD.NET={
88//域服务器ip
#admin_server=:
749
default_domain=RAINBIRD.NET
}
[domain_realm]
.=RAINBIRD.NET
=RAINBIRD.NET
[kdc]
profile=/var/kerberos/krb5kdc/kdc.conf
[appdefaults]
pam={
debug=false
ticket_lifetime=36000
renew_lifetime=36000
forwardable=true
krb4_convert=false
3.测试kerberos
kinitadministrator@RAINBIRD.NET
kinit命令将测试服务器间的通信,administrator为域内存在的用户,RAINBIRD.NET是你的活动目录的域名,必须大写。
正确操作的提示:
[root@filesrv~]#kinitadministrator@RAINBIRD.NET
Passwordforadministrator@RAINBIRD.NET:
(正确输入密码后直接返回)
[root@filesrv~]#
可能遇到的几个常见错误:
域名错误:
kinit(v5):
CannotfindKDCforrequestedrealmwhilegettinginitialcredentials.
密码错误,验证失败:
Preauthenticationfailedwhilegettinginitialcredentials.
用户不存在:
ClientnotfoundinKerberosdatabasewhilegettinginitialcredentia
时间不一致:
Clockskewtoogreatwhilegettinginitialcredentials
4.修改/etc/nsswitch.conf
5.配置samba
修改/etc/samba/smb.conf如下几行
workgroup=RAINBIRD
serverstring=Filesrv
passwordserver=AD1.RAINBIRD.NET//域服务器,可以用ip也可以用域名
realm=RAINBIRD.NET//活动目录服务器域名
security=ads//采用活动目录认证方式
templateshell=/sbin/nologin
winbindusedefaultdomain=true
winbindofflinelogon=true
winbindenumgroups=yes
winbindenumusers=yes
红色部分是要修改的,蓝色部分是要新增的。
建议直接把已经存在的注释掉,把这里列出来的东西,直接放进去,这样在一块方便查找。
我们现在把samba服务器加入windows域。
[root@filesrv1samba]#netadsjoin-Uadministrator@RAINBIRD.NET
FILESRV1'
提示是”Joined”哟~
加入失败可能的原因:
两台机器的时间不一致!
重新启动服务
servicesmbrestart
servicewinbindrestart
设定服务开机自动启动
chkconfigsmbon
chkconfigwinbindon
咱们去Windows2003服务器上检查一下:
打开活动目录用户和计算机,查看其中的条目,如果成功的话,就可以看到你的Linux服务器。
这里样你可以用wbinfo做一些测试
验证Samba主机已成功加入AD
[root@filesrvsamba]#wbinfo-t
checkingthetrustsecretviaRPCcallssucceeded
说明主机信任已成功建立
使用wbinfo–u可以列出AD中注册的帐号信息
[root@filesrvsamba]#wbinfo-u
administrator
guest
support_388945a0
krbtgt
rainbird
rainbow
a
a1
a2
root
a3
a4
a5
a6
a7
a8
a9
a10
Wbinfo–g可以返回AD中的组信息
[root@filesrvsamba]#wbinfo-g
domaincomputers
domaincontrollers
schemaadmins
enterpriseadmins
domainadmins
domainusers
domainguests
grouppolicycreatorowners
dnsupdateproxy
可能的错误
如果你wbinfo–t测试的时候提示如下:
checkingthetrustsecretviaRPCcallsfailed
errorcodewas(0x0)
Couldnotchecksecret
说明你winbind服务没起动,重启一下就OK了
当然了有必要说一下,winbind如果提示启动成功但没有启动的话,有可能是因为你没有加入到域,所以严格按本文的操作步骤来做,你不会错过
6.自动创建用户目录
细心的朋友可能发现从开篇一直到现在除了操作方式不一定以外,所做的事情和<
没有太大的区别。
嗯,笔者不置可否,估且这么理解吧。
希望有点小细节您注意到了,在smb.conf中,有一句templateshell=/sbin/nologin。
是的,samba服务器,我们只希望他提供samba服务,不希望有用户登陆。
在上一篇文章中解决用户登陆时主目录不存在的问题,用的是pam_mkhomedir.so这个东东。
在文件共享这块,笔者意外的发现,这个文件,对于通过samba访问过来的请求不会创建主目录!
这可如何是好?
这就是脚本mkhome.sh存在的原因。
#!
/bin/bash
user=$1
group=$2
home=/home/$1
if[!
-d$home];
then
mkdir-p$home
chown$user$home
chgrp$group$home
chmod700$home
edquota-padministrator-u$user
fi
这个脚本接受两个参数,一个是用户名,一个是组名。
然后给这个用户创建目录,并分配权限,然后再给分配一下用户空间。
Ok,回头看一下smb.conf文件。
[homes]
comment=HomeDirectories
path=/home/%U//共享的目录
validusers=//认证的用户,前面必须加哟
readonly=No
browseable=No
rootpreexec=/root/mkhome.sh%U%G//执行创建目录的操作。
这段配置中最帅的就是这个mkhome.sh的存在。
因为这个脚本的执行者是root,所以我们脚本的权限设置700即可。
再往下我们将继续探索它的神奇魔力。
写完这段保存一下,重启smb:
servicesmbrestart。
这样,在一台xp的机器上,用域用户登陆,然后访问\\192.168.1.246,是不是看到了一个以你登陆的域用户名命名的一个文件夹呢?
没错,就是它!
你现在可以试下删写文件了。
怎么有问题?
有问题就自己检查一下,为什么吧
7.设置磁盘配额
因为磁盘配额只能在一块单独的分区上启用,所以笔者专门添加了一块分区挂载到home目录下,这点要注意。
编辑fstab
[root@filesrv1~]#vi/etc/fstab
/dev/hdb1/homeext3defaults,usrquota,grpquota
选择分区,将defaults选项改为:
“defaults,usrquota,grpquota”(针对用户和组做磁盘配额)或“defaults,usrquota"
(针对用户做磁盘配额)或"
defaults,grpquota"
(针对组做磁盘配额)
重新挂载文件系统:
[root@filesrv1~]#mount–oremount/home
创建配额文件
[root@filesrv1~]#quotacheck–cmug/home
启动配额
[root@filesrv1~]#quotaon-av
配额设置
[root@filesrv1~]#edquota-uadministrator
Diskquotasforuseradministrator(uid16777216):
Filesystemblocksquotalimitgracefilesquotalimitgrace
/dev/sdb105000005120001000
(其中:
blocks,已用磁盘空间;
soft,磁盘空间软限制,hard:
磁盘空间硬限制;
inodes:
已写多少个