smb域驗(yàn)證
實(shí)例使用NTLM 驗(yàn)證整合Squid 及Samba3實(shí)現(xiàn)AD 域用戶認(rèn)證08-04-10 10:45 發(fā)表于:《藍(lán)色航標(biāo)》 分類:未分類實(shí)例使用NTLM 驗(yàn)證整合Squid 及Samba3實(shí)現(xiàn)AD
實(shí)例使用NTLM 驗(yàn)證整合Squid 及Samba3實(shí)現(xiàn)AD 域用戶認(rèn)證
08-04-10 10:45 發(fā)表于:《藍(lán)色航標(biāo)》 分類:未分類
實(shí)例使用NTLM 驗(yàn)證整合Squid 及Samba3實(shí)現(xiàn)AD 域用戶認(rèn)證
Windows 的IIS 中有項(xiàng)配置使用集成的Windows 驗(yàn)證,在AD 的環(huán)境中我們可以通過啟用集成的Windows 驗(yàn)證來使用用戶登陸Windows 系統(tǒng)的帳號(hào)進(jìn)行認(rèn)證,在用戶訪問網(wǎng)頁(yè)時(shí),IE 會(huì)將用戶的帳號(hào)憑據(jù)發(fā)往服務(wù)器自動(dòng)做認(rèn)證,不需要用戶輸入用戶名和密碼。最好的例子就是用戶登陸 Outlook Web Access(OWA )。當(dāng)我們利用Squid 做代理服務(wù)器需要利用用戶身份做認(rèn)證是,用戶每次訪問網(wǎng)頁(yè),系統(tǒng)會(huì)提示用戶輸入用戶名和密碼,這樣給用戶帶來很多麻煩,有沒有方法集成Windows 的帳號(hào)做認(rèn)證呢?通過查找資料,發(fā)現(xiàn)實(shí)際上在Linux 等系統(tǒng)下,利用SQUID 集成SAMB 同樣可以集成 windows的認(rèn)證,用戶在通過訪問代理服務(wù)器時(shí)自動(dòng)利用登陸計(jì)算機(jī)的帳號(hào)做身份驗(yàn)證,對(duì)用戶完全透明,不需要手動(dòng)輸入用戶名及密碼。下面是我進(jìn)行 Squid集成Windows 帳號(hào)認(rèn)證的總結(jié),希望對(duì)有這方面需求的朋友有所幫助,其中有什么不正確及有更好的方法也希望各位給予指點(diǎn),共同研究進(jìn)步。
1. 實(shí)現(xiàn)環(huán)境
Fedora 7 Squid 2.6 Samba 3.0 Krb5
2. 軟件包安裝
Squid 、Samba 及Krb5均通過yum 安裝最新版本。
3. Kerberos配置
Win2003系統(tǒng)默認(rèn)通過Kerberos 做身份驗(yàn)證,Kerberos 驗(yàn)證需要安裝Krb5軟件包。配置文件及測(cè)試都很簡(jiǎn)單。Krb5的配置文件為
/etc/krb5.conf,配置如下
CODE:
,[logging]
default = FILE:/var/log/krb5libs.log
kdc = FILE:/var/log/krb5kdc.log
admin_server = FILE:/var/log/kadmind.log
[libdefaults]
default_realm = TEST.COM (驗(yàn)證域的realm ,必須全部大寫) dns_lookup_realm = false
dns_lookup_kdb = false
[realms]
TEST.COM = {
kdc = 192.168.0.1:88 (域控制器名,可以是IP 地址)
default_domain = TEST.COM (缺省域名,同樣必須全部大寫) }
[domain_realm]
.test.com = TEST.COM
test.com = TEST.COM
配置完成后可以通過Kinit 工具進(jìn)行測(cè)試方法如下
CODE:
root# kinit administrator@TEST.COM
Password for administrator@TEST.COM
正確輸入密碼后系統(tǒng)返回
CODE:
kinit: NOTICE: ticket renewable lifetime is 1 week
表示正確驗(yàn)證,如果返回有錯(cuò)誤,檢查krb5.conf 文件設(shè)置。
,4. Samba配置
通常samba 配置文件在/etc/samba/smb.conf,編輯smb.conf 文件如下 注意,安裝Samba 帶有Winbind 組件
CODE:
[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.0.1
workgroup = TEST (域的NetBios 名)
os level = 20
encrypt passwords = yes
security = ads (設(shè)置為AD 驗(yàn)證)
realm = TEST.COM (驗(yàn)證域realm ,必須大寫)
winbind use default domain = yes
max log size = 50
這里需要正確配置你的workgroup 、Netbios 名、realm,password
servers(域控制器,可以有多臺(tái)) 。一旦配置正確,你可以使用net ads join 將你的Samba 主機(jī)加入AD 中。輸入
CODE:
root# net ads join –U administrator@TEST.COM 或 net rpc join -S win2k3.test.com -U administrator
將主機(jī)加入AD 。
重新啟動(dòng)samba
CODE:
,service smb restart
同時(shí)winbind 也要重新啟動(dòng)。
service winbind restart
5. 確認(rèn)Samba 主機(jī)帳號(hào)在AD 中正確注冊(cè)
使用wbinfo –t 驗(yàn)證Samba 主機(jī)已成功加入AD
CODE:
root# wbinfo –t
系統(tǒng)返回
CODE:
checking the trust secret via RPC calls succeeded
說明主機(jī)信任已成功建立
使用wbinfo –u 可以列出AD 中注冊(cè)的帳號(hào)信息。Wbinfo –g 可以返回AD 中的組信息。
6. 測(cè)試ntlm_auth驗(yàn)證
CODE:
root# ntlm_auth --username=administrator
Password:**************
NT_STATUS_OK: NT_STATUS_OK (0x0)
說明域帳號(hào)administrator 已成功驗(yàn)證
7. 配制NSS
Nss 為Name Service Switch ,控制帳號(hào)的驗(yàn)證。編輯/etc/nsswitch.conf,如下
CODE:
passwd: files winbind
group: files winbind
8. 配置Squid
在squid.conf 文件中增加
,CODE:
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 //這二行在squid
2.6中不能識(shí)別,不知道何原因,所以我實(shí)際上已經(jīng)注釋掉了 ^_^
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 NTLMUsers proxy_auth REQUIRED
配置Squid 使用ntlm_auth驗(yàn)證,并允許驗(yàn)證用戶通過代理服務(wù)器訪問。 這里要注意一點(diǎn),用戶要通過驗(yàn)證squid 必須能訪問winbind pipe,否則用戶不能通過Squid 驗(yàn)證, 我剛配置完成時(shí)就是因?yàn)檫@里總是不能通過squid 身份驗(yàn)證。修改winbind pipe權(quán)限
CODE:
root# chown -R root:squid /var/cache/samba/winbindd_privileged root#chmod -R 750 /var/cache/samba/winbindd_privileged
9. 重新啟動(dòng)服務(wù)器,驗(yàn)證使用域用戶身份驗(yàn)證。
如果使用域帳號(hào)登陸計(jì)算機(jī),那么瀏覽網(wǎng)頁(yè)時(shí)就不會(huì)提示輸入用戶名及密碼認(rèn)證,非域用戶登陸計(jì)算機(jī),通過代理訪問網(wǎng)站時(shí),IE 將彈出用戶身
,份驗(yàn)證窗口要求用戶輸入用戶名及密碼驗(yàn)證。
在squid.conf 中同樣可以設(shè)置允許訪問的域用戶,及不允許訪問的域用戶。對(duì)于windows 域用戶來說,說有的驗(yàn)證都是透明的。不需要手動(dòng)輸入用戶名及密碼,方便用戶的使用。
======================================
附:
ADS 模式還是以RPC 模式
Configuring Samba 3.0 To Use The ADS Security Mode (CentOS) http://www.howtoforge.com/samba_ads_security_mode
官方英文文檔: http://us3.samba.org/samba/docs/man/Samba-HOWTO-Collection/domain-member.html#ads-member