Squid安装及设置Windows AD账号认证

1. 实现环境 
RHEL6.2 + squid-3.1.10 + samba-3.5.10 + Krb5 
2. 软件包安装 
yum install samba*

yum install krb5*

yum intall squid
3. Kerberos配置 
Win2003系统默认通过Kerberos做身份验证,Kerberos验证需要安装Krb5软件包。配置文件及测试都很简单。Krb5的配置文件为/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 = CONTOSO.COM
 dns_lookup_realm = false
 dns_lookup_kdc = false
 ticket_lifetime = 24h
 renew_lifetime = 7d
 forwardable = true

[realms]
 CONTOSO.COM = {
  kdc = testdc01.contoso.com:88
  admin_server = testdc01.contoso.com:749
  default_domain = contoso.com
 }

[domain_realm]
 .contoso.com = CONTOSO.COM
 contoso.com = CONTOSO.COM

[kdc]
 profile = /var/kerberos/krb5kdc/kdc.conf

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

配置完成后可以通过Kinit工具进行测试方法如下 
代码: 
root# kinit administrtor
Password for [email protected]:

正确输入密码后系统返回
表示正确验证,如果返回有错误,检查krb5.conf文件设置。 
4. Samba配置 
通常samba配置文件在/etc/samba/smb.conf,编辑smb.conf文件如下 
注意,安装Samba是选择Winbind组件 
代码: 
[global] 
log file = /var/log/samba/log.%m 
dns proxy = No 
idmap gid = 10000-20000 
server string = Samba Server 
idmap uid = 10000-20000 
password server = 192.168.1.100
workgroup = CONTOSO (域的NetBios名) 
os level = 20 
encrypt passwords = yes 
security = ads (设置为AD验证) 
realm = CONTOSO.COM (验证域realm,必须大写) 
winbind use default domain = yes 
max log size = 50 
这里需要正确配置你的workgroup、Netbios名、realm,password servers(域控制器,可以有多台)。一旦配置正确,你可以使用net ads join将你的Samba主机加入AD中。输入 
代码: 
root# net ads join –U administrator 

(注:这里如果不先加入域,winbind无法正常启动)
将主机加入AD。 
重新启动samba,winbind
代码: 
service smb restart

service nmb restart

service winbind restart 
5. 确认Samba主机帐号在AD中正确注册 
使用wbinfo –t验证Samba主机已成功加入AD 
代码: 
root# wbinfo –t 
系统返回 
代码: 
checking the trust secret via RPC calls succeeded 
说明主机信任已成功建立 
使用wbinfo –u 可以列出AD中注册的帐号信息。Wbinfo –g可以返回AD中的组信息。 
6. 测试ntlm_auth验证 
代码: 
root# ntlm_auth --username=administrator 
Password:************** 
NT_STATUS_OK: NT_STATUS_OK (0x0) 
说明域帐号administrator已成功验证 
7. 配制NSS 
Nss为Name Service Switch,控制帐号的验证。编辑/etc/nsswitch.conf,如下 
代码: 
passwd: files winbind 
group: files winbind 
8. 配置Squid 
在squid.conf文件中增加 
代码: 
auth_param ntlm program /usr/bin/ntlm_auth --helper-protocol=squid-2.5-ntlmssp 
auth_param ntlm children 5 
auth_param ntlm max_challenge_reuses 0 
auth_param ntlm max_challenge_lifetime 2 minutes 
auth_param basic program /usr/bin/ntlm_auth --helper-protocol=squid-2.5-basic
auth_param basic children 5 
auth_param basic realm Squid proxy-caching web server 
auth_param basic credentialsttl 5 hours 
acl squid_user proxy_auth REQUIRED 
http_access allow all squid_user 

 

http_port 3128

cache_mem 1024 MB

cache_swap_low 90

access_log /var/log/squid/access.log

cache_swap_high 95

maximum_object_size 32768 KB

maximum_object_size_in_memory 1024 KB

visible_hostname  testserver.contoso.com

cache_mgr  [email protected]

http_access allow all

配置Squid使用ntlm_auth验证,并允许验证用户通过代理服务器访问。 
这里要注意一点,用户要通过验证squid必须能访问winbind pipe,否则用户不能通过Squid验证,我刚配置完成时就是因为这里总是不能通过squid身份验证。修改winbind pipe权限 
代码: 
root# chown -R root:squid /var/lib/samba/winbindd_privileged 
root#chmod -R 750 /var/lib/samba/winbindd_privileged 
9. 重新启动squid服务器,验证使用域用户身份验证。 
如果使用域帐号登陆计算机,那么浏览网页时就不会提示输入用户名及密码认证,非域用户登陆计算机,通过代理访问网站时,IE将弹出用户身份验证窗口要求用户输入用户名及密码验证。 
在squid.conf中同样可以设置允许访问的域用户,及不允许访问的域用户。对于windows域用户来说,说有的验证都是透明的。不需要手动输入用户名及密码,方便用户的使用。
如果想通过域组的验证,可在
auth_param ntlm program /usr/bin/ntlm_auth --helper-protocol=squid-2.5-ntlmssp 和auth_param basic program /usr/bin/ntlm_auth --helper-protocol=squid-2.5-basic 后加上这一句
--require-membership-of=DCDomain\\internet
"DCDomain":域名 "internet":上网组名

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章