叉他個蛋蛋Micro$oft AD

微軟一定是藍星侵略計劃的一部份-_-

以前常有的企鵝戰柏格人的論戰中,常有那種M$擁護者說你看Linux架東西都要下指令,反觀M$的系統操作跟設定都比較簡易,用起來舒服。我也明白雖然個人比較喜歡直接改設定檔調校,但有些人也是純粹想要一路按下一步讓系統自動幫它架一個基本能用的服務,那種心態我也不是不能理解。

可是實際上,就我最近搞AD的經驗,Windows系統拿來架server,最大的問題在它雖然提供了圖形介面,和操作簡易的架設與設定平台,可是如果你只使用這個介面來做設定,服務不是跑不起來就是會出現奇怪的錯誤。要讓這個service正常運作,你還是必須打開mmc慢慢調、開cmd跑support tools、或抱一包綠乖乖改登錄檔-_-

簡單來說就是那堆天真的柏格人把世界想的太美好,實際上用Windows架設服務也要手動修改設定檔,它能做到簡易親和的部份,也只有把檔案copy到系統裡對應的目錄(但不確定會跑)還有吐出讓人看不懂的錯誤訊息而已。

架設Active Directory下的Domain Controller,不管是主要或次要,都要先輸入dcpromo指令,不太能理解為什麼這一項就不能夠跟其他服務一樣擺在選單裡給人選。然後一路按下一步,除非你已經在要架DC的機器上先架好DNS server,否則一定吐錯誤訊息給你看。意思是說你要架幾個DC就要架幾個DNS,就算你只是一個小型辦公室,做兩個DC只是為了防止其中一台掛點…

我的目的是在Win2003上架設一台跟原有DC同步的secondary DC,然後再把這兩台的地位對調,因為舊機器以後要淘汰搬家。所以我需要先把Win2003加入domain,在上頭架一個DNS與舊機器的DNS同步,至此都是單用基本操作可以處理的部份。

可是再來呢,因為Win2003不允許使用者空密碼,且系統介面也沒有可以更改此policy的選項,故,必須開動mmc修改細部設定。問題在mmc裡也沒有修改此規則的選項,所以必須手動新增一個針對AD有效的user policy,然後再手動將此policy加進domain的group domain policy裡讓它active。如此我們才能夠透過修改這個新增的policy將其套用到domain裡。就這樣,我們終於可以將它的密碼規則關閉,這部份完全不是使用介面能提供的。

接著是在Win2000上使用adprep升級原有domain,以配合新的Win2003。這部份自然也是在command line下敲指令。

在Win2003執行dcpromo架好也設定好後,secondary DC在跟primary DC的複寫上出了問題。錯誤訊息是典型的「發生 1265 錯誤」(數字我亂打的)。你娘的我怎麼會知道這數字是啥意思啊?

接著就有趣了。錯誤訊息包括連接RPC失敗(這服務有開)、登入驗證失敗(防火牆沒開)、FRS無法解析機器名稱(DNS沒設錯,FRS也有開)…

經過一些調查後,主要問題在secondary DC上沒有SYSVOL和NETLOGON的net share。這大概就是replication error。於是針對這一些部份找尋M$的說明文件…

「如果 KCC 器無法建立自動連線,系統管理員應該介入藉由建立手動連線物件為與輸入或輸出連線到或從其他網域中的網域控制站沒有網域控制站。」(來自這裡

「是目前不一致的 FRS 複本組的成員可以執行的所有檔案和資料夾完整同步處理 SYSVOL 樹狀目錄中比成員可以處理積存的變更外寄的上游複寫協力電腦記錄檔位於更快。」(來自這裡

這是踢牙老奶奶嗎(…)

雖然在這些文件上頭都有這段︰

注意:本文是不經人為參與的自動機器翻譯系統翻譯完成。這些文章是Microsoft為非英語系國家使用者所提供,讓使用者可以了解文章的內容。Microsoft 不保證翻譯的語言品質也不對由於內容的錯譯或客戶針對內容使用所發生的任何直接或間接可能的問題負責。

可是,「讓使用者可以了解文章的內容」???老實說,比起看這種東西,我覺得瞎子摸象還比較有用。

於是我改讀英文文件,卻翻了好多篇都無法解決問題。最後我是用google亂掃,看到有人碰上一樣的問題,回文裡出現「看起來像是時間不同步」,才發現問題徵結,兩邊系統時間有十分鐘的差距。從錯誤的log中完全讓人無法把它與時間同步聯想在一起,這種只有錯誤3788號的記錄根本就沒他屁用。

接著,再次對柏格人說一聲,在Win2000和Win2003裡,要設定NTP Server自動對時,這種小事情也是只能開登錄檔硬改喔XD

所以,要在Win2000的domain中架一台Win2003的secondary DC,單靠該服務的管理介面所提供的功能是完全不可能辦到。等於只有把該裝進去的檔案裝一裝,然後起動一個根本沒辦法用的服務…

至於將primary和secondary互換,需要轉換的FSMO步驟中,五項要轉換的角色裡只有四項可以在管理介面中找到,第五項要自己手動加。為什麼要這樣搞,天曉得…

反正我突然間覺得LDAP真是太可愛了。雖然一切手動,每個record都是自己一筆一筆key進去,不過只要寫個程式轉換就一次好幾百筆,要架新機器、備份記錄或轉換也只需export/import就搞定,哪裡出問題也一看就知道…最重要的是不用看火星文找答案-_-

半年前本來還嫌ldapbrowser不是很順手說XD

在〈叉他個蛋蛋Micro$oft AD〉中有 12 則留言

  1. 用到現在我覺得 Mac OS X 的Open Directory 最順手,
    要簡單的使用按來按去新增什麼都很方便,要複雜的一筆一筆硬上也行。

    當然,要當他是一個單純的 Open LDAP Server也可以 :p

  2. Samba + OpenLDAP也不錯用啊, 還有人寫了一系列的工具 (smbldap-*), 我這個UNIX白癡, 在Linux上, 也”只用了一個月”就把這些鬼東西都搞定了, 包含了Domain Controller, 使用者帳號, blabla

    使用OpenLDAP管帳號實在蠻方變的, 心情不好還可以直接去ldap內改資料. 要重灌Server只要把ldap的資料庫拷出來, 相關的設定檔拷出來, 作業系統重裝, rpm裝一裝, 設定檔蓋回去, 帳號資料拷回去, 重開機就好了. 定期備份帳號資料也比M$的DC容易多了, 反正全存在var/lib/ldap下面的那幾個檔案; 也可以在加入Domain的Windows Client上維護帳號, Samba和UNIX帳號都會自動開好

    以前也覺得用M$的方案很方便, 但AD出了幾次問題後, 發現維護相關的資料難找又難看, 而且還不一定有用, 且最糟的狀況是AD一掛就很難處理

    畢業後應該抽空把這些步驟全都寫下來, 架這些鬼東西其實沒有很難, 就是要把散佈在網路上的資料找出來, 然後一步一步地嘗試, 對第一次架設的新手真的很花時間 (…)

  3. 我本來就是用OpenLDAP在管理e-mail/portal帳號啊XD

    要不是因為公司內有套系統需要user登入domain, 其實我們根本就不需要有AD. 可是我先前有找過AD和LDAP的整合方案, 想把AD徹底消滅, 只是找不到-_-

    能分享一下整合的方式嗎? 基本上只需要讓client端可以登入domain就好…

  4. AD可能沒有辦法做到, M$的AD實在有點神秘, 但若是NT4時代的Domain, 雖然沒辦法做到100%相容, 但讓使用者登入Domain, 或是電腦加入Domain, 基本上是沒有大問題的, 不過要容忍event log內有些礙眼的事件. 當然, AD沒架好, event log中也會有一堆礙眼的訊息

    我是參考一份Linux Samba-OpenLDAP Howto的文件, 新版本可以在下面的網址找到
    http://download.gna.org/smbldap-tools/docs/samba-ldap-howto/
    我看的舊版本是一個pdf檔, 新版本有啥差異, 目前沒空研究 -_-

    不過TSL等加密連線, 我通通沒有建起來 (嗚, 我的研究主題還是密碼學(…) ), 所以ldap只敢開放本機連線, 也因此沒有架設BDC. 另外, 設定的過程中也被SELinux整的很慘 \_/

  5. 不知道我有沒有弄錯Foxx的意思, 用Samba + OpenLDAP架Domain應該參考那份文件就夠了

    而mail帳號是直接透過PAM, 所以LDAP內有帳號的人, 就能telnet/ssh連到伺服器, 也能用網芳連上伺服器, e-mail帳號就像傳統UNIX系統的account@server internet domain name一樣, 當然要配合DNS的MX record設定
    而用LDAP當通訊錄等功能, 對我來說就有待研究了

    portal帳號是指公司內部的網頁登入用的帳號嗎? httpd的部份, 我是跳過PAM, 直接用LDAP server當AuthProvider, 而它到底去抓使用者的UNIX密碼還是Samba密碼就不知道了, 反正寫好script讓兩個密碼會一起改 XU

  6. LDAP做通訊錄, 啊就只是在mail client端的program上加進base DN吧@_@

    只要ldap本身在建帳號時有把階層分好(當然要同一層塞幾百筆也不是不行啦…), base DN設對的情況下就可以拿它來找. 當然最好是在建每一筆資料時就把需要的欄位填上, 像是部門 分機 之類的…

    幹, 剛剛重開win2k3 server後系統不能用, 查老半天才發現原來firewall在重開機時被神不知鬼不覺的重新啟動了…微軟你他媽白癡啊\_/

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。