環境準備
必要條件:
1. 軟體:
- samba
- kerberos
- ntp
- 需要可以將samba server加入網域的帳號,這點非常重要,如果你不是AD的管理者,請務必一定要取得具有此權限的帳號才能執行最關鍵的動作。
設定步驟
- ntpdate [IP Address of the ad server]
- Configure /etc/samba/smb.conf
- Configure /etc/krb5.conf
- Configure /var/kerberos/krb5kdc/kdc.conf
- Configure kerberos so that kinit should work correctly. 有文件說要先讓kinit先可以正常執行,但是我的經驗裡光是設定/etc/krb5.conf似乎沒有辦法正常運作,samba的設定也要搭配才行。
- Join domain
- Services start.
實作
我的主機是用kvm來實作,我將他的hostname改為公司配發給我的電腦名稱,如此加入AD網域的時候可以減低出錯誤時Debug的痛苦。
1. 在/etc/hosts檔中寫上ad server的hostname,很重要!
[a00ylc00@allen127 ~]$ vi /etc/hosts
# Do not remove the following line, or various programs
# that require network functionality will fail.
127.0.0.1 allen127.allen.idv.tw allen127 localhost.localdomain localhost
::1 localhost6.localdomain6 localhost6
192.168.33.5 ad.allen.idv.tw ad <-----重要!
2. 修改/etc/samba/smb.conf中必要的關鍵字(如果沒有這個檔案,代表套件還沒有安裝,請先安裝套件)
--------------------------------------------------------------------------------------------
[root@allen127 ~]# yum install samba samba-client
安裝samba(server)與samba-client(自我測試samba server是否正常運作)
--------------------------------------------------------------------------------------------
在編輯任何檔案之前,永遠記得先複製一份。如此才能隨心所欲地惡搞,增進學習效率。
[root@allen127 ~]# cp /etc/samba/smb.conf /etc/samba/smb.conf.orig
[root@allen127 ~]# vi /etc/samba/smb.conf
[global]
unix charset = UTF-8
workgroup = AD <====視網域環境修改網域名稱
password server = ad.allen.idv.tw <====修改為AD Server名稱
realm = AD.allen.idv.tw <====視網域環境修改網域名稱
security = ads <=======修改為ads,用ad來做帳號的認證
idmap uid = 16777216-33554431 <======加入這行為的是讓ad吃進來的帳號跟本機帳號的UID錯開
idmap gid = 16777216-33554431 <======加入這行為的是讓ad吃進來的群組跟本機帳號的GID錯開
winbind separator = + <=======在下wbinfo -u 的時候,可以分辨本機uid或ad上的uid,比如ad+[帳號名稱]
template shell = /bin/bash
template homedir = /home/%U
winbind enum users = yes <====加上這個才可以正確地得到getent passwd的資料
winbind enum groups = yes <====加上這個才可以正確地得到getent passwd的資料
winbind use default domain = true
winbind offline logon = false
3. 修改/etc/krb5.conf及/var/kerberos/krb5kdc/kdc.conf中必要的關鍵字(如果沒有這個檔案,代表套件還沒有安裝,請先安裝套件)
--------------------------------------------------------------------------------------------
[root@allen127 ~]# yum install krb5-server krb5-workstation
--------------------------------------------------------------------------------------------
一樣,記得先備份要修改的檔案
[root@allen127 ~]# cp /etc/krb5.conf /etc/krb5.conf.orig
/etc/krb5.conf
-------------------------/etc/krb5.conf--------------------------
[libdefaults]
default_realm = AD.ALLEN.IDV.TW
dns_lookup_realm = true
dns_lookup_kdc = false
ticket_lifetime = 24h
forwardable = yes
[realms]
allen.idv.tw = {
kdc = 192.168.33.5:88
admin_server = 192.168.33.5:749
default_domain = AD.ALLEN.IDV.TW
}
[domain_realm]
.ad.allen.idv.tw = AD.ALLEN.IDV.TW
ad.allen.idv.tw = AD.ALLEN.IDV.TW
-----------------------/etc/krb5.conf---------------------------
/var/kerberos/krb5kdc/kdc.conf
------------------------------------------
[realms]
allen.idv.tw = {
#master_key_type = des3-hmac-sha1
acl_file = /var/kerberos/krb5kdc/kadm5.acl
dict_file = /usr/share/dict/words
admin_keytab = /var/kerberos/krb5kdc/kadm5.keytab
supported_enctypes = des3-hmac-sha1:normal arcfour-hmac:normal des-hmac-sha1:normal des-cbc-md5:normal des-cbc-crc:normal des-cbc-crc:v4 des-cbc-crc:afs3
}
------------------------------------------
4. 將ad server加入/etc/resolve.conf裡
nameserver 192.168.33.5
5. 加入ad
[root@allen127 ~]# net ads join -U samba
samba's password:
Using short domain name -- AD
DNS update failed! 看了頗礙眼,要讓這個訊息消失
Joined 'allen127' to realm 'AD.ALLEN.IDV.TW'
[root@allen127 ~]#
成功!
還有後續,實際做認證及存取資源的部份,給我時間再繼續寫。
沒有留言:
張貼留言
艾倫搜尋企業級的Open Source Solutions,提供簡易好上手的教學文件。