分享
 
 
 

巧用Winbind服务来使Window200xPDC为你做认证

王朝system·作者佚名  2008-05-19
窄屏简体版  字體: |||超大  

也许你公司的服务器大多是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.so service=system-auth

session required /lib/security/pam_stack.so service=system-auth

session required /lib/security/pam_limits.so

session required /lib/security/pam_mkhomedir.so

session optional /lib/security/pam_console.so

其中两个含有pam_winbind.so的行是这加进去的,用来做winbind的认证。

含有pam_mkhomedir.so的行也是我加进去的,用来在域用户登录时自动给他建立主目录和登录脚本,不然你一登录就会在发现自己在根目录下。注意,主目录的路径是你在smb.conf文件中指定的Template shell变量,我这是/home/WY/用户名。/home/WY目录要手动建,不然是登不进去的。我把这个目录的权限设成 1777,好处是大家都能写,但只有属主可删,就象/tmp目录一样。

再其它机器上用ssh 连看试一下:

引用:

[wy@wy1 RPMS]$ ssh wy/wuying@172.16.130.35

wy/wuying@172.16.130.35's password:

Last login: Sat Oct 30 19:57:47 2004 from 172.16.130.36

[WY/wuying@LogBack wuying]$ id

uid=10003(WY/wuying) gid=10009(WY/Domain Users) groups=10009(WY/Domain Users)

[WY/wuying@LogBack wuying]$

OK,我们成功了。WY/wuying是“域名/用户名”的行式,这个域用户被map成为本地的uid号为1009的用户。

下面是我的/etc/pam.d/samba的配置文件:

引用:

[root@LogBack wy]# cat /etc/pam.d/samba

#%PAM-1.0

auth required pam_stack.so service=system-auth

account required pam_stack.so service=system-auth

然后vi smb.conf文件,在最后加上

引用:

[ADMshare]

comment = admin dir

path = /home/WY/administrator

valid users = "WY+Domain Admins"

public = no

writable = yes

printable = no

create mask = 0775

directory mask = 0775

这样就只有WY域中的Domain Admins组的成员才可以往ADMshare共享中写东西,是不是好管理多了呢。如果域用户的密码更改,我们也不用去每台linux服务器上改密码了,用winbind去win200xPDC上做认证,他怎么改都行,方便多了吧。

我这里只进了winbind和PAM的配置方法,如果大家对其中的一些概念还不明白的话,可以参考一下SAMBA3源码包samba-3.0.7.tar.gz解开后docs目录中的pdf文档。我讲的部分都在smaba-HOWTO-collection.pdf文档的第6及第20章中,相关的概念讲解得也不错,如果哪位高手有时间的话,把这些文档翻成中文,那真是CU朋友之福了。晚上23:15了,回家喽。

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有