Chinaunix首页 | 论坛 | 博客
  • 博客访问: 236889
  • 博文数量: 49
  • 博客积分: 3040
  • 博客等级: 少校
  • 技术积分: 450
  • 用 户 组: 普通用户
  • 注册时间: 2009-12-29 09:28
文章分类

全部博文(49)

文章存档

2011年(8)

2010年(16)

2009年(25)

分类: LINUX

2009-12-29 10:40:31

看了好几个文章,花了一天时间,总算将squid代理集成windows 2003的AD认证搞出来了。感觉比较开心!

环境配置:CentOS 5.3    Squid2.6.STABLE21 Krb5

具体配置:

1.前提:安装好CentOS 以及配置好Squid,并可以代理上网。

接下来就是做我样今天的安装啦。


2.首先要安装并配置好Krb5,这个包可以通过yum来安装,具体包名:krb5-workstatio krb5-libs krb5-devel pam_krb5。

配置krb5.

vi /etc/krb5.conf

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

[libdefaults]
default_realm = YOUR.DOMAIN.NAME(记得一定要大写)
dns_lookup_realm = false
dns_lookup_kdc = false
ticket_lifetime = 24h
forwardable = yes

[realms]
YOUR.DOMAIN.NAME = {
kdc = domainIP:88
default_domain = YOUR.DOMAIN.NAME
}

[domain_realm]
.ese.winadroot.com = YOUR.DOMAIN.NAME
ese.winadroot.com = YOUR.DOMAIN.NAME

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

接下来,你就可以测试一下,你的krb5配置的有没有问题啦:
kinit domainadmin@YOUR.DOMAIN.NAME
Password for domainadmin@YOUR.DOMAIN.NAME
输入域管理员密码如果没有提示错误,则安装配置正确。
如果出现错误,请更正后继续。
3.将机器加入域。
net ads join –U domainadmin@YOUR.DOMAIN.NAME
输入密码。就可以将机器加入啦。
建议加入后,重新启动机器。
测试下下
输入 wbinfo –t
系统返回
checking the trust secret via RPC calls succeeded
说明主机信任已成功建立
使用wbinfo –u 可以列出AD中注册的帐号信息。Wbinfo –g可以返回AD中的组信息。
4.测试ntlm_auth验证
root# ntlm_auth --username=username
Password:**************
NT_STATUS_OK: NT_STATUS_OK (0x0)

说明域帐号username已成功验证
5.配置Squid.
auth_param ntlm program /usr/bin/ntlm_auth --helper-protocol=squid-2.5-ntlmssp
auth_param ntlm children 20
auth_param ntlm keep_alive on

auth_param basic program /usr/bin/ntlm_auth --helper-protocol=squid-2.5-basic
auth_param basic children 10
auth_param basic realm Squid proxy-caching web server
auth_param basic credentialsttl 2 hours
auth_param basic casesensitive off

acl NTLMUsers proxy_auth REQUIRED
http_access allow NTLMUsers

这时候你可以squid -z 看有没有错误,如果没有,那么就可以
service squid reload,加载配置啦。

备注:这时候,你可能去测试的时候发现总是输入用户名密码,不能登录,记得用户名的格式这domainusername.
另外,我还遇到比较奇怪的事情是,我做了以下的动作。
chkconfig winbind on
service winbind restart

怀里配置Squid使用ntlm_auth验证,并允许验证用户通过代理服务器访问。
这里要注意一点,用户要通过验证squid必须能访问winbind pipe,否则用户不能通过Squid验证,我刚配置完成时就是因为这里总是不能通过squid身份验证。修改winbind pipe权限

root# chown -R root:squid /var/cache/samba/winbindd_privileged
root#chmod -R 750 /var/cache/samba/winbindd_privileged

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

2009-11-20 Johnson 于Intertek

阅读(2836) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~