当前位置: 首页 > 图文教程 > 操作系统 > Unix/Linux > 巧用winbind服务来使window200xPDC为你做认证 (原作者:eagerlinuxer )

Unix/Linux
mysql+httpd+gd+php+zend
automake 小回顾
unix黑客精神的最好诠释
www
sun t3存储的设置
RPM简明中文手册
Linux爱好者入门教程 序章 (持续更新)
第一章 Linux基础知识 (飘心)
linux下进程与线程
浅谈如何学习linux
第二章 Linux安装
硬件安装指南
Windows 2000 的桌面不見了的解決方法
部分的ADSL路由器默认帐号密码
如何设定安全log服务器呢?
iptables 规则速查
网友学习 Linux 的七点忠告
sniffer的含义及原理
Linux编程白皮书 第二章 内存管理
Linux编程白皮书 第二章 内存管理 2.1.1 请求调页 --2.1.5 访问控制

Unix/Linux 中的 巧用winbind服务来使window200xPDC为你做认证 (原作者:eagerlinuxer )


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-11-01   浏览: 41 ::
收藏到网摘: n/a

也许你公司的服务器大多是windows200x的,而且已经建了WIN200x的域来对公司的所有机器及用户做管理,而且这个域工作得很不错,所有用户的权限设置的也已经十分的合理。这时你想加一台linux或BSD的机器进去,来为公司的用户提供如ftp、samba等服务,因为在linux及BSD下的这些软件比在windows下的工作效率更高,更安全。你也许会碰到的一个问题是,在每台新架的linux及BSD服务器上都得重新加入很多用户,设置这些用户的权限、密码,如果你公司的员工很多的话,这个活还是很累人的。 但既然已经在域中有了所有用户的认证信息,为什么不好好的利用它呢:)。SAMBA3中的winbind服务就为我们提供了这样的一个途径。首先你把这linux台服务器加到win200x域中,成为域中的成员服务器,然后用winbind服务把认证信息发给PDC,由PDC来做用户的认证。只要适当的设置winbind服务、PAM,你就能通过PDC来为你linux或BSD服务器上的ftp、samba、ssh服务来做认证,是不是很不错呢? 下面是我在redhat7.3上用winbind+PAM实现对sshd、samba服务PDC认证的过程:
1、使用的相关软件: samba-3.0.7 pam-0.75-32 (这些软件的安装过程我就不讲了,参考CU上的相关文件吧:) 2、实现方法: 1) 在samba安装完成后,考贝libnss_winbind.so库到/lib目录下 cp ../samba/source/nsswitch/libnss_winbind.so /lib ln -s /lib/libnss_winbind.so /lib/libnss_winbind.so.2 2) vi /etc/nsswitch.conf 做如下修改,使winbind成为passwd及group的认证信息源 passwd: files winbind shadow: files group: files winbind 3)用ldconfig命令来使winbind使用libnss_winbind.so库,这样就不用重启机器了,如果不行,就重启一下机器 。 /sbin/ldconfig -v | grep winbind 4)vi smb.conf ,在[global]设置中加入下面几行 # separate domain and username with '/', like DOMAIN+username winbind separator = / # use uids from 10000 to 20000 for domain users idmap uid = 10000-20000 # use gids from 10000 to 20000 for domain groups idmap gid = 10000-20000 # allow enumeration of winbind users and groups winbind enum users = yes winbind enum groups = yes # give winbind users a real shell (only needed if they have telnet access) template homedir = /home/%D/%U template shell = /bin/bash winbind separator是域名与用户名和组名之间的分隔符,我设成’/’, idmap uid 和 idmap gid是设置winbind把win200x域用户、组map成本地用户、组所使用的ID号范围,如果你的用户很多,可以加大这两个值之间的差。Template homedir是用户登录后的主目录,我设置成/home/域名/用户名。Template shell是用户登录后的shell,如果你想用PDC给你的sshd做认证,就可以加上这个,给用户一个shell,不错吧。 5)用samba3的net join命令把这台机器加入到windows200x域中 /usr/local/samba/bin/net rpc join -S PDC -U Administrator 然后输入域管理员密码,administrator是域管理员帐号。PDC是你的域名,可以用NETBIOS名。 6)启动winbindd服务 /usr/local/samba/sbin/winbindd 7)用wbinfo 命令查看你用winbindd服务连接PDC抓到的域内的用户和组的信息。 引用:[root@LogBack wy]# wbinfo -u WY/Administrator WY/Guest WY/krbtgt WY/wuying WY/wy 其中’/’前的是域名,我这是WY,’/’后的是域用户名。 引用:[root@LogBack wy]# wbinfo -g BUILTIN/System Operators BUILTIN/Replicators BUILTIN/Guests BUILTIN/Power Users BUILTIN/Print Operators BUILTIN/Administrators BUILTIN/Account Operators BUILTIN/Backup Operators BUILTIN/Users WY/Domain Admins WY/Domain Users WY/Domain Guests WY/Domain Computers WY/Domain Controllers WY/Cert Publishers WY/Schema Admins WY/Enterprise Admins WY/Group Policy Creator Owners WY/DnsUpdateProxy 其中’/’前的是域名,我这是WY,’/’后的是域组名。 用getnet passwd 和getnet group你可以看到本地服务器及域服务器上所有的用户及组的信息。 到这儿,我们的工作已经完成一大半了。Winbindd服务已经可以正常工作了:) 8)到samba-3.0.7的源码目录source下,编译pam_winbind.so认证模块,CP到/lib/security下: make nsswitch/pam_winbind.so cp ../samba/source/nsswitch/pam_winbind.so /lib/security 9)下面是设置PAM了,在设置前请先备份你的/etc/pam.d目录。如果是设sshd等关建登入服务的PAM,改错了,可能ssh就登不进去,所以要小心操作。 下面是我改过的/etc/pam.d/sshd的配置文件: 引用:[root@LogBack wy]# cat /etc/pam.d/sshd #%PAM-1.0 auth sufficient /lib/security/pam_winbind.so auth required /lib/security/pam_stack.so service=system-auth auth required /lib/security/pam_nologin.so account sufficient /lib/security/pam_winbind.so account required /lib/security/pam_stack.so service=system-auth password required /lib/security/pam_stack.