免费注册 查看新帖 |

Chinaunix

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

[samba] 利用NTLM 验证整合Squid及Samba3实现Win2k3域用户认证(原创) [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2005-09-28 00:03 |只看该作者 |倒序浏览
利用NTLM 验证整合Squid及Samba3实现Win2k3域用户认证
Windows的IIS中有项配置使用集成的Windows验证,在AD的环境中我们可以通过启用集成的Windows验证来使用用户登陆Windows系统的帐号进行认证,在用户访问网页时,IE会将用户的帐号凭据发往服务器自动做认证,不需要用户输入用户名和密码。最好的例子就是用户登陆Outlook Web Access(OWA)。当我们利用Squid做代理服务器需要利用用户身份做认证是,用户每次访问网页,系统会提示用户输入用户名和密码,这样给用户带来很多麻烦,有没有方法集成Windows的帐号做认证呢?通过查找资料,发现实际上在Linux等系统下,利用SQUID集成SAMB同样可以集成windows的认证,用户在通过访问代理服务器时自动利用登陆计算机的帐号做身份验证,对用户完全透明,不需要手动输入用户名及密码。下面是我进行Squid集成Windows帐号认证的总结,希望对有这方面需求的朋友有所帮助,其中有什么不正确及有更好的方法也希望各位给予指点,共同研究进步。
1.        实现环境
FreeBSD 5.4 + Squid 2.5 + Samba 3.0 + Krb5
2.        软件包安装
Squid、Samba及Krb5均通过Ports安装最新版本。
3.        Kerberos配置
Win2003系统默认通过Kerberos做身份验证,Kerberos验证需要安装Krb5软件包。配置文件及测试都很简单。Krb5的配置文件为/etc/krb5.conf,配置如下

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

  5. [libdefaults]
  6. default_realm = TEST.COM (验证域的realm,必须全部大写)
  7. dns_lookup_realm = false
  8. dns_lookup_kdb = false

  9. [realms]
  10. TEST.COM = {
  11. kdc = 192.168.0.1:88  (域控制器名,可以是IP地址)
  12. default_domain = TEST.COM  (缺省域名,同样必须全部大写)
  13. }
复制代码

配置完成后可以通过Kinit工具进行测试方法如下
  1. root#  kinit administrator@TEST.COM
  2. Password for administrator@TEST.COM
复制代码

正确输入密码后系统返回
  1. kinit: NOTICE: ticket renewable lifetime is 1 week
复制代码

表示正确验证,如果返回有错误,检查krb5.conf文件设置。

4.        Samba配置
通常samba配置文件在/usr/local/etc/smb.conf,编辑smb.conf文件如下
注意,安装Samba是选择Winbind组件
  1. [global]
  2.         log file = /var/log/samba/log.%m
  3.         dns proxy = No
  4.         idmap gid = 10000-20000
  5.         server string = Samba Server
  6.         idmap uid = 10000-20000
  7.         password server = 192.168.0.1
  8.         workgroup = TEST   (域的NetBios名)
  9.         os level = 20
  10.         encrypt passwords = yes
  11.         security = ads  (设置为AD验证)
  12.         realm = TEST.COM (验证域realm,必须大写)
  13.         winbind use default domain = yes
  14.         max log size = 50
复制代码

  这里需要正确配置你的workgroup、Netbios名、realm,password servers(域控制器,可以有多台)。一旦配置正确,你可以使用net ads join将你的Samba主机加入AD中。输入
  1. root# net ads join –U administrator@TEST.COM
复制代码

将主机加入AD。
重新启动samba
  1. /usr/local/etc/rc.d/samba.sh restart
复制代码

同时winbind也将重新启动。
5.        确认Samba主机帐号在AD中正确注册
使用wbinfo –t验证Samba主机已成功加入AD
  1. root# wbinfo –t
复制代码

系统返回
  1. checking the trust secret via RPC calls succeeded
复制代码

说明主机信任已成功建立
使用wbinfo –u 可以列出AD中注册的帐号信息。Wbinfo –g可以返回AD中的组信息。
6.        测试ntlm_auth验证
  1. root# ntlm_auth –username=administrator
  2. Password:**************
  3. NT_STATUS_OK: NT_STATUS_OK (0x0)
复制代码

说明域帐号administrator已成功验证
7.        配制NSS
Nss为Name Service Switch,控制帐号的验证。编辑/etc/nsswitch.conf,如下
  1. passwd: files winbind
  2. group: files winbind
复制代码

8.        配置Squid
在squid.conf文件中增加
  1. auth_param ntlm program /usr/bin/ntlm_auth --helper-protocol=squid-2.5-ntlmssp
  2. auth_param ntlm children 5
  3. auth_param ntlm max_challenge_reuses 0
  4. auth_param ntlm max_challenge_lifetime 2 minutes
  5.        
  6. auth_param basic program /usr/bin/ntlm_auth --helper-protocol=squid-2.5-basic
  7. auth_param basic children 5
  8. auth_param basic realm Squid proxy-caching web server
  9. auth_param basic credentialsttl 5 hours
  10.        
  11. acl NTLMUsers proxy_auth REQUIRED
  12. http_access allow all NTLMUsers
复制代码

配置Squid使用ntlm_auth验证,并允许验证用户通过代理服务器访问。
这里要注意一点,用户要通过验证squid必须能访问winbind pipe,否则用户不能通过Squid验证,我刚配置完成时就是因为这里总是不能通过squid身份验证。修改winbind pipe权限
  1. root# chown -R root:squid /var/db/samba/winbindd_privileged
  2. root#chmod -R 750 /var/db/samba/winbindd_privileged
复制代码

9.        重新启动squid服务器,验证使用域用户身份验证。
如果使用域帐号登陆计算机,那么浏览网页时就不会提示输入用户名及密码认证,非域用户登陆计算机,通过代理访问网站时,IE将弹出用户身份验证窗口要求用户输入用户名及密码验证。
在squid.conf中同样可以设置允许访问的域用户,及不允许访问的域用户。对于windows域用户来说,说有的验证都是透明的。不需要手动输入用户名及密码,方便用户的使用。

论坛徽章:
0
2 [报告]
发表于 2005-09-30 09:59 |只看该作者

利用NTLM 验证整合Squid及Samba3实现Win2k3域用户认证(原创)

不错!

论坛徽章:
0
3 [报告]
发表于 2005-10-08 11:46 |只看该作者

利用NTLM 验证整合Squid及Samba3实现Win2k3域用户认证(原创)

http://ntlmaps.sourceforge.net/

论坛徽章:
0
4 [报告]
发表于 2005-10-12 11:52 |只看该作者

利用NTLM 验证整合Squid及Samba3实现Win2k3域用户认证(原创)

谢谢需要

论坛徽章:
1
荣誉版主
日期:2011-11-23 16:44:17
5 [报告]
发表于 2005-10-13 10:34 |只看该作者

利用NTLM 验证整合Squid及Samba3实现Win2k3域用户认证(原创)

鼓掌

论坛徽章:
1
2015元宵节徽章
日期:2015-03-06 15:50:39
6 [报告]
发表于 2005-12-01 11:39 |只看该作者
哥们,我按照你的方法,想将samba(linux)加入win2k ad域是出现了故障
scc:~# kinit cheui@example.com
Password for cheui@example.com:
kinit(v5): Clock skew too great while getting initial credentials
这个应该跟krb5有关,请问是什么原因呀?
期待大虾的答复。

论坛徽章:
1
2015元宵节徽章
日期:2015-03-06 15:50:39
7 [报告]
发表于 2005-12-01 18:49 |只看该作者
我知道了,需要将linux主机的时间跟域控制器的时间相差不过5分钟才行。

论坛徽章:
0
8 [报告]
发表于 2005-12-02 09:17 |只看该作者
学习了~

论坛徽章:
0
9 [报告]
发表于 2005-12-16 00:06 |只看该作者
net ads join –U administrator@TEST.COM

没有net这个命令啊

论坛徽章:
0
10 [报告]
发表于 2005-12-16 01:38 |只看该作者
哦,我装成samba2了,现在改成samba3就好了
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP