對這文章發表回應
發表限制: 非會員 可以發表
整理:debian 下samba用windows 2003 AD進行身份驗證成功
關鍵字: samba ad參考:http://bbs2.chinaunix.net/thread-968948-1-1.html 
 
前幾天使用ubuntu 8.04配置不成功,後來安裝了debian,配置成功了。方法如下: 
按照上面的參考文檔我使用了第二種方法,也就是使用winbind。 
 
1.實現環境 
Debian 4.2+Samba 3.0 + Krb5 
2.軟件包安裝 
Samba及Krb5都是用新立得安裝 
 
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 = TEST.COM 
dns_lookup_realm = false 
dns_lookup_kdc = false 
ticket_lifetime = 24h 
forwardable = yes 
 
[realms] 
TEST.COM = { 
       kdc = dc.test.com:88 
       admin_server = dc.test.com:749 
       default_domain = TEST.COM 
} 
 
[domain_realm]
.test.com = TEST.COM 
test.com = TEST.COM 
 
[appdefaults] 
pam = { 
debug = false 
ticket_lifetime = 36000 
renew_lifetime = 36000 
forwardable = true 
krb4_convert = false 
} 
4.SAMBA配置 
 
[global]: 
                 workgroup = TEST 
                 netbios name = debian 
                 server string = Samba &ADS Test Server 
                 security = domain 
                 password server = dc.test.com 
                 preferred master = no 
                 domain master = no 
                 domain logons = no 
                    log file = /var/log/samba.log 
idmap uid = 10000-20000 
idmap gid = 10000-20000 
winbind enum groups = no 
winbind enum users = no 
註:此二行表示為是否在linux下添加AD帳號,只有加了此二行,在使用getent passwd和gentent group才能顯示AD上面的帳號和組 
winbind separator = / 
winbind use default domain = yes 
template homedir = /home/test/%U 註:此處可以自己設定在/home/%D/%U 
template shell = /bin/bash 
 
 
[homes] 
                 comment = User's Home Directories 
                path = /home/test/%U       和上面 template homedir的值一樣 
                browseable = no 
                valid users = %U 
 
特別注意:此二處為一定要是%U,而不能使用%S ,%U 需要的客戶端用戶名即登錄用戶名,而%S是 當前共享名 
                 writable = yes 
 
[A組] 
             comment = Group A 
             path = /usr/keynetsamba/a 
             browseable = yes 
             vaild users = @gpa
             writable = yes 
             create mode = 755 
             directory mode = 0755 
 
[B組] 
             comment = Group B 
             path = /usr/keynetsamba/b 
             browseable = yes 
             vaild users = @gpb 
             writable = yes 
             create mode = 755 
             directory mode = 0755 
 
 
 
這些設置的一個簡單的說明如下: 
 
- idmap uid - 指定一個uid範圍,該範圍內的uid被用來映射UNIX用戶到windows用戶SID,而且要確保這個id範圍內沒有被本地或者NIS用戶佔用,winbind啟動以後,也不能在該ID範圍內添加用戶。 
 
- idmap gid - 指定一個gid範圍,該範圍內的gid被用來映射UNIX用戶到windows的組SID,而且要確保這個id範圍內沒有被本地或者NIS組佔用,winbind啟動以後,也不能在該ID範圍內添加新組。 
- winbind separator - 指定一個字符作為分隔符,winbind將使用該分隔符來用戶或組名。使用該配置將使得域用戶表示為 "MYDOMAIN+username",域組被表示為"MYDOMAIN+Domain Users" 
 
- winbind enum groups和winbind enum users - 指定winbind是否在系統上創建域的組/用戶,一般情況下都要設置為yes,除非你處於某種原因希望關閉該功能。 
 
- template homedir - 用來指定為域用戶產生主目錄。上面的示例中使用了變量替換,將使得winbind把用戶主目錄設置為/home/MYDOMAIN/username。 
 
需要注意的是如果希望特定域或者所有域用戶在samba目錄有主目錄,那麼管理員必須手工創建,雖然template homedir控制samba在哪裡尋找域用戶的主目錄,但是不會自動創建,所以要自己手動創建,並設定權限。 
 
5. 配製NSS 
 
Nss為Name Service Switch,控制帳號的驗證修改/etc/nsswitch.conf文件,這樣winbind能實現使用域上的用戶,內容如下: 
 
         passwd:              files winbind 
         group:               files winbind 
         shadow:              files winbind 
 
         hosts:               files dns wins 
         bootparams:nisplus [NOTFOUND=retum] files 
 
         protocols:           db files 
         services:            files 
         ethers:              db files 
         rpc:                 files 
         networks:            files dns 
         netmasks:            files 
 
         netgroup:            files 
 
         publickey:           nisplus 
 
         automount:           files 
         aliases:             files nisplus 
 
6.重啟samba與winbind服務
         sudo /etc/init.d/samba restart 
         sudo /etc/init.d/winbind restart 
 
7.將debian加入2003域 
         net rpc join -S dc.test.com -U administrator 
如果遇到錯誤提示類似為: Failed to open /var/lib/samba/secrets.tdb 
請執行:sudo chmod 777 /var/lib/samba/secrets.tdb 
 
8.  確認Samba主機帳號在AD中正確註冊 
         wbinfo –t 
         checking the trust secret via RPC calls succeeded 
         說明主機信任已成功建立 
 
         使用wbinfo -u列出AD中註冊的帳號信息。Wbinfo –g可以返回AD中的組信息。 
 
此時可以使用windows客戶端來訪問samba服務器了。 
 
註:如果samba服務器上安裝有iptables服務,而且filter鏈裡的INPU 為DROP,請打開以下端口,方能正常使用samba服務: 
TCP: 139,445 
UDP:137,138 
TCP:88(此為krb5驗證端口) 
 
歡迎大家和我一起探討l!!!! 
QQ:232565592
新問題:如何實現對用戶進行quota
原文出處:整理:debian 下samba用windows 2003 AD進行身份驗證成功 - 整理,轉載,方便個人查閱 - JavaEye技術網站
 
			
