linux 加入到 windows域

1samba
首先確保你的Linux系統中安裝了samba包,並用下述命令來檢查samba包的基礎庫支持,一般的RPM安裝都不會有問題。

# smbd -b | grep LDAP
HAVE_LDAP_H
HAVE_LDAP
HAVE_LDAP_DOMAIN2HOSTLIST
...
# smbd -b | grep KRB
HAVE_KRB5_H
HAVE_ADDRTYPE_IN_KRB5_ADDRESS
HAVE_KRB5
...
# smbd -b | grep ADS
WITH_ADS
WITH_ADS
# smbd -b | grep WINBIND
WITH_WINBIND
WITH_WINBIND
2
krb5配置
編輯/etc/krb5.conf中以下三節: 假設你的域名是SZ.AAA.COM,域控制器是dc01.sz.aaa.com/192.168.1.200
[libdefaults]
default_realm = SZ.AAA.COM
dns_lookup_realm = false
dns_lookup_kdc = true
[realms]
SZ.AAA.COM= {
  kdc = 192.168.1.200:88
  admin_server = 192.168.1.200:749
  default_domain = SZ.AAA.COM
}
[domain_realm]
  .SZ.AAA.COM= SZ.AAA.COM
  SZ.AAA.COM= SZ.AAA.COM
        
確保你的配置嚴格區分大小寫,否則你可能在用kinit測試連接時可能遇到錯誤 “Cannot find KDC for requested realm while getting initial credentials”.
# kinit
[email][email protected][/email]
Password for
[email][email protected][/email]
3
Samba配置
編輯修改/etc/samba/smb.conf如下:
[global]
workgroup = SZ
realm = SZ.AAA.COM
security = ADS
password server = 192.168.1.200
encrypt passwords = yes
winbind separator = +
idmap uid = 10000-20000
idmap gid = 10000-20000
winbind use default domain = Yes
[homes]
comment = Home Directories
valid users = %S
read .ly = No
browseable = No
保存並用testparm來檢查配置中可能的語法錯誤。
若無錯誤,(重)啓動samba服務。

然後用 net ads join -S 192.168.1.200 -U Administrator來加入域,這時需要輸入域管理員密碼。
4
winbind配置
編輯/etc/nsswitch.conf,更改passwdgroup(files需視你linux系統配置NIS與否,如配置NIS,則爲
compat)
passwd:  files winbind  
group:  files winbind  
保存後(重)啓動samba服務。(重)啓動winbind

wbinfo -u檢索用戶,wbinfo -g檢索用戶組來測試winbind是否正常。
5
ApacheNTLM用戶校驗模塊,用下面的鏈接可以得到其源代碼。
[url]http://samba.org/ftp/unpacked/lorikeet/mod_auth_ntlm_winbind/[/url]
該源代碼需要APACHE源碼安裝版本後的apxs,把apxs路徑設入PATH變量或在Makefile中更改執行make install,進入模塊目錄,執行如下安裝:
autoconf
./configure
apxs -DAPACHE2 -c -i mod_auth_ntlm_winbind.c
應該在/usr/local/apache2/modules下生成mod_auth_ntlm_winbind.so模塊。
6
Apache配置
httpd.conf中加入
LoadModule auth_ntlm_winbind_module modules/mod_auth_ntlm_winbind.so
並在需要NTLM校驗的DIRECTORY配置如下內容:
  AuthName "SZ.AAA.COM"
  NTLMAuth .
  NTLMAuthHelper "/usr/bin/ntlm_auth --helper-protocol=squid-2.5-ntlmssp"
  NTLMBasicAuthoritative .
  AuthType NTLM
  require valid-user
  
並對相應目錄可以設置域用戶/用戶組權限。

經驗總結:
1
、據winbind開發者說CentOS自帶的samba+winbind會帶來許多意料不到的問題,用Version 3.0.26a-SerNet-RedHat(可從
[url]http://enterprisesamba.com/index.php?id=64[/url]
得到需要的client,common, winbind).
CentOS 4.2(2.6.9-22)
帶的是samba 3.0.10-1.4E.2

2
Version 3.0.26a-SerNet-RedHat版的/var/lib/samba/winbindd_privileged(CentOS集成samba版的/var/cache/samba/winbindd_privileged)文件權限爲777,否則Apache可能報500 internal server error
3
、在重啓winbind服務前,手工刪除2中所述文件,否則重啓會因該文件權限更改了導致失敗。
4
kinit net ads join -S 用戶不一定要administrator,一致既可,當然該用戶必須要有加Windows NT域的權限。
5
、通過更改/etc/pam.d/下相關驗證配置文件,可以很容易地爲su, ssh, login, ftp等配置domain user集成。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章