分类: 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