免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 5989 | 回复: 3
打印 上一主题 下一主题

[samba] 用winbind实现用WIN2003 PDC作SAMBA认证 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2007-02-12 09:18 |只看该作者 |倒序浏览
1、使用的相关软件:
samba
Krb
openldap
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) 对/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)修改smb.conf ,在[global]设置中加入下面几行
   idmap uid = 15000-20000
   idmap gid = 15000-20000
   winbind enum groups = yes
   winbind enum users = yes
   winbind separator = +
   winbind use default domain = no
   template homedir = /homes/%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,不错吧。

然后再配置 /etc/krb5.conf

[logging]
default = FILE:/var/log/krb5libs.log
kdc = FILE:/var/log/krb5kdc.log
admin_server = FILE:/var/log/kadmind.log

[libdefaults]
ticket_lifetime = 24000
default_realm =WIN2K.COM  \\域名按按自身需求配置
dns_lookup_realm = false
dns_lookup_kdc = false

[realms]
WIN2K.COM = {
kdc = 192.168.1.1:88  \\服务器IP地址按自身需求配置
admin_server = 192.168.1.1:749
default_domain = WIN2K.COM
}

[domain_realm]
.example.com = WIN2K.COM
example.com = WIN2K.COM

[kdc]
profile = /var/kerberos/krb5kdc/kdc.conf \\将该文件域名配置成你的域名

[appdefaults]
pam = {
debug = false
ticket_lifetime = 36000
renew_lifetime = 36000
forwardable = true
krb4_convert = false
}

配置samba  
修改/etc/samba/smb.conf如下几行  
workgroup = WIN2K.COM
netbios name = linux
server string = linux  

realm = WIN2K.COM // 活动目录服务器域名  
security = ADS // 采用活动目录认证方式  
encrypt passwords = yes // 采用加密的口令

5)修改 PAM认证配置文件/etc/pam.d/system-auth为如下:
#%PAM-1.0
# This file is auto-generated.
# User changes will be destroyed the next time authconfig is run.
auth        required      /lib/security/$ISA/pam_env.so
auth        sufficient    /lib/security/$ISA/pam_unix.so likeauth nullok
auth        sufficient    /lib/security/$ISA/pam_winbind.so use_first_pass
auth        required      /lib/security/$ISA/pam_deny.so

account     required      /lib/security/$ISA/pam_unix.so broken_shadow
account     [default=bad success=ok user_unknown=ignore] /lib/security/$ISA/pam_winbind.so
account     required      /lib/security/$ISA/pam_permit.so

password    required      /lib/security/$ISA/pam_cracklib.so retry=3 type=
password    sufficient    /lib/security/$ISA/pam_unix.so nullok use_authtok md5 shadow
password    sufficient    /lib/security/$ISA/pam_winbind.so use_authtok
password    required      /lib/security/$ISA/pam_deny.so

session     required      /lib/security/$ISA/pam_limits.so
session     required      /lib/security/$ISA/pam_unix.so

在smb.conf中,winbind已经定义了winbind 分割符,再设置winbind use default domain=no
6)启动winbindd服务
/usr/local/samba/sbin/winbindd
7)用wbinfo 命令查看你用winbindd服务连接PDC抓到的域内的用户和组的信息。

用getnet passwd 和getnet group命令你可以看到本地服务器及域服务器上所有的用户及组的信息。
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的配置文件:


#%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/域名/用户名。/home/域名/这个目录要手动建,不然是登不进去的。把这个目录的权限设成 1777,好处是大家都能写,但只有属主可删,就象/tmp目录一样。
再其它机器上用ssh 连看试一下:

:
# ssh 域名/用户名@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)

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

再修改/etc/pam.d/samba的配置文件为如下:
# cat /etc/pam.d/samba
#%PAM-1.0
auth required pam_stack.so service=system-auth
account required pam_stack.so service=system-auth

这里只谈winbind和PAM的配置方法,可参考SAMBA安装包中docs目录中的pdf帮助文档。
要修改的配置文件有如下几个:
a. /etc/samba/smb.conf
b. /etc/krb5.conf
c. /var/kerberos/krb5kdc/kdc.conf
d. /etc/nssswitch.conf
e. /etc/pam.d/*
完成后用service smb restart 和service winbind restart 命令重新启动服务看是否成功。
经过测试我已经成功地用WIN2003的域认证实现到LINUX下的SAMBA认证中。
我是第一次写文档的。一定会有些错漏的地方。希望大家帮忙指正。在配置的过程中我也得到了CU里一些好朋友的大力帮助。才能使我配置成功。。谢谢大家。。公司今天开始放假了。期待过完年后与大家再讨论LINUX的相关问题。。
我的MSN是 skygdipwa@hotmail.com

论坛徽章:
0
2 [报告]
发表于 2007-02-13 18:09 |只看该作者
不知道楼主的方式在freeBSD6下能不能通用.

论坛徽章:
0
3 [报告]
发表于 2008-01-13 14:21 |只看该作者

限制特定AD用户组访问共享

很久前的帖子别我翻出来了,呵呵,正好最近也在折腾这些东西。楼上的问题可能早已解决了,关于如何限制某个组的成员可以访问文件共享的问题,我搜到一些相关的东西:

http://wiki.samba.org/index.php/Samba_%26_Active_Directory

其中这一段:
Authenticating share users and groups against active directory

Yeah, this one took me about a day too.

[Pictures]

   comment = Directory for storing pictures by jims users
   path= /usr/local/pictures
   Valid Users =@NETWORK+archival NETWORK+billybob NETWORK+jane
  ; public=no
   writable=yes
   browseable=yes

So what has this done? @NETWORK+archival gives any member of the archival group on NETWORK access to this share. NETWORK+billybob NETWORK+jane gives billybob and jane, both single user members of NETWORK, access to this share.

--Nimbius 13:11, 31 October 2006 (CST)
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP