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":上網組名

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