環境介紹:
PDC(域控制器)
作業系統: Windows server 2003 企業版
主機名:dc01.contoso.com
Netbios name:dc01
域名:contoso.com
IP 位址:172.20.5.240
用戶端:
作業系統:CentOS release 5.2 (Final)
主機名: vm12s00
Netbios name : linux
IP 位址:172.20.5.45
Samba 版本:3.0.28
配置過程:
1. 配置nsswitch.conf
[[email protected] ~]# cat /etc/nsswitch.conf |grep winbind
passwd: files winbind
group: files winbind
2.配置samba
[[email protected] ~]# vi /etc/samba/smb.conf
workgroup = contoso
netbiosname = linux
server string = Samba server
log file = /var/log/samba/%m.log
max log size = 50
security = domain
password server = dc01.contoso.com
socket options = TCP_NODELAY SO_RCVBUF=8192 SO_SNDBUF=8192
wins support = yes
dns proxy = no
idmap uid = 15000-20000
idmap gid = 15000-20000
template shell = /bin/bash
winbind use default domain = yes
winbind enum groups = yes
winbind enum users = yes
winbind separator = /
template homedir = /homes/%D/%U
3.配置kerberos
[[email protected] ~]# vi /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
forwardable = yes
[realms]
CONTOSO.COM = {
kdc = dc01.contoso.com:88
admin_server = dc01.contoso.com:749
default_domain = contoso.com
}
[domain_realm]
.contoso.com = CONTOSO.COM
contoso.com = CONTOSO.COM
[appdefaults]
pam = {
debug = false
ticket_lifetime = 36000
renew_lifetime = 36000
forwardable = true
krb4_convert = false
}
4.指定DNS Server在Linux
[[email protected] ~]# cat /etc/resolv.conf
nameserver 172.20.5.240
5.重新開機 network 服務,以使上面的設定生效
# service network restart
6.重新開機 samba 和 winbind 服務
# service smb restart
# service winbind restart
7.将linux加入windows 2003 域
[ro[email protected] ~]# net rpc join -S dc01.contoso.com -U administrator
Password:
Joined domain CONTOSO.
# 上面提示加入 test 域成功。
8.重新開機 samba 和 winbind 服務
# service smb restart
# service winbind restart
9.測試 samba 的域成員狀态
[[email protected] ~]# net rpc testjoin
Join to 'CONTOSO' is OK
10.到此為止,linux 已經成功加入域,這時候就可以在 AD 的 computer 處看到這台 linux 主機了。
11.用wbinfo指令檢視用winbindd服務連接配接PDC抓到的域内的使用者群組的資訊
[[email protected] ~]# wbinfo -u
administrator
guest
support_388945a0
krbtgt
xypan
child$
fuck
iwam_bl10e-11
iusr_bl10e-11
yrzheng
eric
[[email protected] ~]# wbinfo -g
domain computers
domain controllers
schema admins
enterprise admins
domain admins
domain users
domain guests
group policy creator owners
dnsupdateproxy
[[email protected] ~]# wbinfo -t
checking the trust secret via RPC calls succeeded
12.檢查PDC使用者(組)轉換為本地使用者(組)UID和GIU情況:
[[email protected] ~]# getent passwd |grep CONTOSO
administrator:*:15000:15000:Administrator:/homes/CONTOSO/administrator:/bin/bash
guest:*:15001:15001:Guest:/homes/CONTOSO/guest:/bin/bash
support_388945a0:*:15002:15000:SUPPORT_388945a0:/homes/CONTOSO/support_388945a0:/bin/bash
krbtgt:*:15003:15000:krbtgt:/homes/CONTOSO/krbtgt:/bin/bash
xypan:*:15004:15000:xinyu pan:/homes/CONTOSO/xypan:/bin/bash
child$:*:15005:15000:CHILD$:/homes/CONTOSO/child_:/bin/bash
fuck:*:15006:15000:fuck xxxx:/homes/CONTOSO/fuck:/bin/bash
iwam_bl10e-11:*:15007:15000:IWAM_BL10E-11:/homes/CONTOSO/iwam_bl10e-11:/bin/bash
iusr_bl10e-11:*:15008:15000:IUSR_BL10E-11:/homes/CONTOSO/iusr_bl10e-11:/bin/bash
yrzheng:*:15009:15000:yrzheng:/homes/CONTOSO/yrzheng:/bin/bash
eric:*:15010:15000:eric:/homes/CONTOSO/eric:/bin/bash
[[email protected] ~]# getent group
domain computers:*:15002:
domain controllers:*:15003:
schema admins:*:15004:administrator
enterprise admins:*:15005:administrator
domain admins:*:15006:xypan,administrator
domain users:*:15000:
domain guests:*:15001:
group policy creator owners:*:15007:administrator
dnsupdateproxy:*:15008:
13.配置實作用windows賬戶登入linux通過SSH,加入下面紅色3行
[[email protected] ~]# vi /etc/pam.d/sshd
#%PAM-1.0
auth sufficient pam_winbind.so
auth include system-auth
account sufficient pam_winbind.so
account required pam_nologin.so
account include system-auth
password include system-auth
session optional pam_keyinit.so force revoke
session include system-auth
session required pam_loginuid.so
session required pam_mkhomedir.so
14.通過别的機器ssh登入linux,直接進入smb.conf中指定的home目錄
[[email protected] ~]# ssh [email protected]
[email protected]'s password:
Creating directory '/homes/CONTOSO/eric'.
Creating directory '/homes/CONTOSO/eric/.kde'.
Creating directory '/homes/CONTOSO/eric/.kde/Autostart'.
Creating directory '/homes/CONTOSO/eric/.mozilla'.
Creating directory '/homes/CONTOSO/eric/.mozilla/plugins'.
Creating directory '/homes/CONTOSO/eric/.mozilla/extensions'.
[[email protected] ~]$ pwd
/homes/CONTOSO/eric
注意:如果在PDC域中建立了使用者或者為某個使用者修改了密碼,需要重新重新整理samba服務和winbind服務,如下
service smb stop
service winbind stop
rm -f /etc/samba/*.tdb
rm -f /var/cache/samba/*.tdb
net rpc join -S dc01.contoso.com -U Administrator
service smb start
service winbind start
附錄:關于是應該是使用 RPC 還是 ADS 的一點參考
我應該以ADS模式還是以RPC模式,把我的紅帽企業Linux Samba 3.0.x 伺服器加入到Windows 2000 或者 Windows 2003活動目錄域中?
解決方法:
對于Samba伺服器,有兩種域安全模式,加入到Windows 2000或者Windows 2003域控制器(DC‘s)控制的域中: RPC 模式 RPC(遠端過程調用)模式的域成員是"NT4"樣式的域成員,可以在/etc/samba/smb.conf中通過security=domain設定. 隻要域控制器運作在混合模式下,Samba的基于RPC的域成員代碼更加成熟和穩定可以很好地與Windows2000/2003域控制器工作。混合模式是Windows2000/2003域控制器的預設運作模式。
ADS 模式 ADS(活動目錄服務)模式的域成員,可以在 /etc/samba/smb.conf中通過設定security=ads和定義活動目錄域realm = YOUR.ACTIVE.DIRECTORY.NAME 來設定。
活動目錄域成員對于Samba 3.X 是比較新的,而RPC模式更加成熟一些。ADS模式可以不考慮Windows的域控制器工作在什麼模式下和域功能級别。
推薦:如果你的Windows2000/2003活動目錄(AD)域控制器(DC)工作在混合模式下,我們推薦Samba伺服器以RPC模式加入.當加入RPC模式時,Samba服務不會有顯著的網絡功能損失和不需要經常更新DC而導緻Samba伺服器不能和其他的網絡正确地工作。
如果DC的運作模式/域功能級别被更新到了2000或者2003主動模式,DC僅僅與以ADS模式加入的域成員通信.同時,記住一旦一個DC的運作模式被更新,在沒有删除和重建活動目錄時,是不能傳回到混合模式的.是以,為了達到最大的Samba相容性,我們推薦使用DC混合模式.
如果你想把一個基于紅帽企業版Linux 3的Samba伺服器加入到一個工作在ADS模式的AD域中,系統管理者應該首先保證Samba RPM軟體包的版本應該至少是3.0.9-1.3E.3.這個版本之前的Samba RPM軟體包不能在活動目錄環境中工作。3.0.9-1.3E.3的Samba RPM軟體包可以在紅帽網絡的更新頻道中獲得。