2011年4月6日 星期三

年度專題 - samba4架設免費AD網域


samba是Linux平台用來架設CIFS網路芳鄰的服務,藉此可與Windows平台互通檔案,發展至今Samba3版廣為流通,不僅各Linux distro都支援,連常見的市售NAS也是利用Samba達到資料共享的目的,那麼Samba並不只有提供檔案分享這麼簡單的功能,甚至可以加入AD網域、建立網域PDC,進一步取代Windows AD網域的地位。

在Samba3的時代架設AD是非常辛苦的,因為Samba只負責Linux本地端的帳密認證來提供user檔案分享,若要模擬為AD網域還需要另外架設LDAP服務,並將LDAP上的User&Group對應至Linux本機,還有就是本機Samba帳密與LDAP用戶帳密間的無縫接合,這一切的一切都將徹底摧毀諸如本文作者這般Linux Noob的自信心,幸好,Samba.org秘密研發多年的Samba4版本將為以上的繁瑣步驟提出了解決方案。

Samba4將過往繁瑣的步驟全都串了起來,資訊人員在安裝時只需要針對Samba4與DNS做設定即可,簡直是佛心來的啊!在這個moment...Samba取代微軟WindowsAD的鐘聲已悄悄響起,佛心來低可不止有簡化安裝服務的流程,透過偉大的逆向工程,Samba4在各項功能的實現幾乎已經可以取代企業現有的Windows AD環境,那麼究竟Samba4可以做到什麼程度呢?這也是本次tomy年度專題所要探究的!




開始安裝

測試平台依舊是我最愛的Ubuntu 10.10/64bit
APT預設安裝的Samba4版本是Alpha13


安裝套件
[root@ub1010 ~]# apt-get update
[root@ub1010 ~]# apt-get install samba4 samba4-clients bind9

將系統舊有的smb.conf更名
[root@ub1010 ~]# mv /etc/samba/smb.conf /etc/samba/smb.confbak

修正alpha13版的小BUG,編輯/usr/lib/python2.6/dist-packages/samba/provision.py

重頭戲!建立AD網域(密碼需自行輸入符合標準複雜度的)
[root@ub1010 ~]# LD_PRELOAD=/usr/lib/libdcerpc.so.0.0.1 /usr/share/samba/setup/provision --realm=samba4.example.com --domain=SAMBA4 --adminpass=12345678 --server-role='domain controller'

再次修正samba服務執行檔的小Bug...

修正Bug,這是Samba遺失的Library連結

Alpha版好多小Bug啊!新增兩個軟連結後啟動Samba4服務...
[root@ub1010 ~]# ln -s /usr/local/sbin/samba /usr/local/sbin/samba_dnsupdate
[root@ub1010 ~]# ln -s /usr/local/sbin/samba /usr/local/sbin/samba_spnupdate
[root@ub1010 ~]# service samba4 start

那麼來試試本地端的samba服務是否正確存取吧!

接下來設定DNS的部分,新增最下方那行字串於你的設定檔。

Apparmor的設定檔也請插入紅色框框中的字串。

大功告成,apparmor與bind9服務更新與啟動!
[root@ub1010 ~]# service apparmor reload
[root@ub1010 ~]# service bind9 restart

在這裡Linux本機如同WindowsAD一樣,將DNS指向自己。
[root@ub1010 ~]# vi /etc/resolv.conf
nameserver 127.0.0.1

kerberos的設定檔拷貝一份到etc目錄裡。
[root@ub1010 ~]# cp /var/lib/samba/private/krb5.conf /etc/

kerberos驗證DNS查詢,若成功應該會有紀錄顯示。
[root@ub1010 ~]# host -t SRV _kerberos._udp.samba4.example.com




看看Samba網域的使用情況

以上步驟我們等於是完成了Windows Server的dcpromo指令,現在活生生的免費AD網域已經出現在你眼前啦!相較於微軟伺服器的CAL授權魔咒,這省下的費用一不小心都可能破10萬台幣呢,那麼接下來就由tomy帶各位導覽一下這個由Samba4所建構的AD網域吧!


Client端我們採用萬年XP來加入網域。

成功的加入samba所建置的AD網域!

XP重開機後登入網域Administrator,不僅可以管理AD,還可以操作GPO群組原則呢!

企業常用到的個人網路硬碟也可以做設定

以下是在Windows Server2008-R2環境下用戶babu登入網域後自動掛載的網路硬碟




小結

雖然說本篇文章的目的除了個人自修功課以外,分享回饋給網海茫茫的網友也是重點之一,但畢竟我不是Samba產品整合銷售業務,所以windows方面的應用我並不打算再多花時間截圖來便利網友的眼睛,本文自此其實就已經花了我不少時間撰文與截圖,那麼Samba4網域與Windows平台結合的部分就容我用文字來替各位說明。

其實企業採用微軟Windows Server™ 2003/2008方案來建置AD環境主要就是為了帳戶管理、檔案權限控管、檔案與印表機的存取與分享,在本次tomy年度專題的測試後,很遺憾的Samba Alpha版本目前還不支援印表機的分享列印,並且我在DNS的部分仍未完全掌握,例如說當我們要ping網域中的任一台電腦在Windows的cmd中只要ping對方的hostname即可,可是在Samba4網域中我還沒成功,這也許是Samba4版本仍在alpha階段的遺珠之憾,但其實目前的版本幾乎就已經可以實戰部分企業環境了,先說AD帳戶控管,只要內網中的一台XP充當DC的GUI,安裝Windows Server 2003 系統管理工具包與GPMC群組原則管理介面,就可以控管網域帳戶並制定GPO來管理user,檔案分享更是沒問題,承襲LDAP優良血脈與samba windows ACL的支援,在權限的操作與Windows Server AD並無二樣,管理員也可以替每位user設定個人硬碟槽、利用Linux的Quota來對用戶或群組做配額限制、編寫batch檔讓user登入網域後載入,這些再常見不過的WindowsAD應用目前Samba4都可以做到!在測試期間tomy採用了windows xp/windows 7/windows 2008R2等作為Client來Join Domain,證實了Samba4網域對於用戶端作業系統的支援也得到了進化,實在是令人對Samba4充滿了期待,現在就等samba.org何時能夠Release正式版的Samba4與大家見面,相信這會是一套非常經濟實惠的企業網域建置方案。





延伸思考

Q1. samba網域中帳密原則該如何設置
Q2. 如何查詢用戶or群組的SID、UID、GID
Q3. samba網域中印表機分享的解決方案
Q4. 企業環境中該如何針對帳戶or群組配置Quota
Q5. 群組原則的套用測試
Q6. 如何解決DNS無法動態更新的問題。




To be continue...

0 意見: