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

Unix/Linux
Linux 备份 恢复方法
Linux玩CS反恐精英的方法
在一个ISO镜像中集成多个不同的linux发行版,可刻盘,可引导
Linux 快捷键使用
Linux DHCP 服务器配置方法介绍
Linux 22端口的修改方法
Linux 记录会话过程的命令
Linux 后台执行程序如何操作?
linux Wget命令来浏览网页的方法
Linux tail命令的巧妙应用
Wine 中文存在很多的乱码怎么解决方法
linux 新手教程之创建锁文件的方法
配置Linux 保证其系统的安全
Linux DHCP协议实现过程
Linux系统下破解SAM密码
linux/unix vi 编辑器用法详解
Linux 误删文件的解决方法
Linux系统下的历史记录删除方法
Red Hat Linux 安全设置指南
Linux基本命令-注销、关机、重启

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


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-11-01   浏览: 29 ::
收藏到网摘: 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.