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

Unix/Linux
linux查看内存的大小
在linux下写的代码,用的是utf-8,结果拿到XP下运行的时候,所有的中文都成乱码
linux su和sudo命令的区别
linux cron 下的定时执行工具使用技巧
linux 查找进程及终止进程操作的相关命令
redhat linux 安装 gcc编译器
Linux Mplayer播放各种格式的电影
一起回顾一下linux常用命令
Linux 网站项目发布要做哪些配置
linux SSH配合SecureCRT的密匙完美使用方法
GD 编译出错解决方法
Facebook Open Platform编译FAQ
Linux 系统硬盘 优化
linux 挂载详解
linux crontab定时命令
Linux 系统中确保访问三级域名畅通的方法
Linux 特权帐号VS普通帐号
确保Linux系统安全的前提条件 漏洞防护
Linux 监视系统资源使用率
Red Hat Linux上使用BIND建立DNS服务器

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


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