2008年2月26日 星期二

移轉 Trac 環境

由於原有的主機任務較為複雜,為了要讓專案版本管控(Version Control System)的環境單純化,以避免無謂的因素,影響了專案資料的保存。先前已針對 Subversion 的資料做了移轉,並由使用者重新自新主機取出專案資料,繼續開發專案;接下來的重頭戲就是 Trac 的資料移轉。
原有環境:
Debian:3.1
Kernel:2.6.8-2-686
Subversion: 1.1.4 (r13838)
Trac:0.8.1
sqlite:2.8.16
新環境:
Fedora release 7 (Moonshine)
Kernel:2.6.23.15-80.fc7
Subversion: 1.4.4(r25188)
Trac:0.10.4
sqlite3:3.4.2
1. Dump 專案之 Trac 資料庫的資料:
sqlite /path/to/project/db/trac.db ".dump" >> project_trac.sql
2. 調整專案資料庫 system 資料表,以利新主機適用:
INSERT INTO system VALUES('/path/svn/repos', 'svn:fc784ba1-7bb2-4f0b-9d6b-749d55304f83:/path/svn/repos');
3. 複製資料庫檔案:
scp -p project_trac.sql root@remote.ip:/root/
4. 在新環境中匯入專案資料,產生 Trac 的資料庫,將 Trac 的資料庫移動至新環境正確位置並修改適當權限,以利 apache 存取:
cat project_trac.sql | sqlite3 trac.db
mv trac.db /path/to/trac/project/db/
chown apache. -R /path/to/trac/project
5. 由於新環境的 Trac 版本較新,必須加此動作調整,讓 Trac 能順利讀取資料庫及整合 Subversion:
trac-admin /path/to/trac/project/ upgrade
trac-admin /path/to/trac/project/ resync
Trac 網站的詳細步驟

2008年2月19日 星期二

採用 SELinux 的 Slave DNS

這部主機其實準備很久了,不過一直沒空把它設好,今天終於花點時間搞定了。

前一陣子,在規劃 Master DNS 伺服器時,即採用了 Bind 9 中 View 的功能,允許使用者在不同定義的區域內,依據查詢的結果而使用不同的資源。當時也以最高規格為考量來建置這部主機,不但有 chroot 的環境,更加採用了一直不想去面對的 SELinux 的安全性能,幸好至目前為止,尚稱順利。

只不過 Slave DNS 伺服器因故一直沒能設定妥當,其間幸好有 Study Area 網站提供豐富的教材,參考站內諸多資訊後,終於順利把 SELinux 中的 Slave DNS 給設好了,多虧這些前輩們不吝貢獻寶貴經驗,讓我不至於多走冤枉路。

當 Master DNS 與 Slave DNS 都設置妥當後,在 Master 上看到的結果是均已正常將資訊傳送給 Slave,但是在 Slave 主機上卻一直發生權限不足,導致無法寫入檔案的問題。此時才記起,SELinux 的預設限制因素,它不允許 named 寫入 zone 的資訊,此時僅需做些修正,如此即可讓名稱解析服務正常運作了。
setsebool -P named_write_master_zones 1
Bind9 View 底下的 Master/Slave 設定方案

2008年2月14日 星期四

設定 Fedora 的 SSL

以前設定 Fedora Core 2 的 Apache 時,都是透過 openssl 的指令一步一步去產生憑證,心想怎麼這麼地麻煩啊。有天在 Debian 系統中使用 apache2-ssl-certificate 這個指令,天啊!省去了好多步驟喔,真是太簡單了,那麼在 Fedora 系統中,也應該早就有人這麼做了吧。

這幾天又有時間玩玩 Fedora 7 的 Apache SSL 了,發現現在的系統都整合地非常親切了,不需要去操作那些繁複的步驟,透過 openssl 中 certs 的 Makefile ,很輕鬆的就完成了這次的設定。

先修改 openssl.cnf ,把簽發憑證時需要設定的預設值填入,就可以省去重複打字時間了:
countryName_default
stateOrProvinceName_default
localityName_default
0.organizationName_default
commonName_default
emailAddress_default

1.產生 key:
make genkey server.key

2.處理 CSR:
make certreq server.crt

3.取消 key 的密碼設定,避免每次重新啟動 Apache 時,需要須入密碼:
cp server.key server.key.secure
openssl rsa -in server.key.secure -out server.key

4.調整 /etc/httpd/conf.d/ssl.conf ,套用新產生的憑證
SSLCertificateFile
SSLCertificateKeyFile

5.重新啟動 Apache 後,測試 SSL 是否生效:
https://server-ip
http://server-ip:443

2008年2月12日 星期二

解決 Microsoft 平台 DHCP 用戶端問題

自從架好 DHCP 伺服器之後,三不五時就會有人抱怨無法上網,根據已知的任何錯誤訊息來看,完全摸不清任何頭緒,這問題真是令人頭痛。新春才第一天上班而已,我就遇到同樣地問題,無法獲得 DHCP 伺服器配發 IP 位址,亦即我的電腦目前無法連上網路。

我知道 Microsoft 的安裝光碟中,都附有 Windows Support Tools 可提供更多的工具指令,便利用其中的 dhcploc.exe 指令,試圖找尋任何的蛛絲馬跡,最少也能有更多的錯誤訊息可供參考。但結果卻不如預期,僅得到『 OpenReceiveSocket failed 10049. 』這樣的資訊而已,似乎幫助不大。

再重新看一次設定手冊吧。

什麼!關於伺服器設定的部份,一開頭就已提及,而我居然漏掉了,自從加上這個路由 IP 位址之後,『 route add -host 255.255.255.255 dev eth0 』,看來問題就解決了。為了以防萬一,怕主機重新開機後這個設定又跑了,也直接加到『 /etc/rc.d/rc.local 』這個檔案中,由系統開機後逕行加上這個路由。
In order for dhcpd to work correctly with picky DHCP clients (e.g., Windows 95), it must be able to send packets with an IP destination address of 255.255.255.255. Unfortunately, Linux insists on changing 255.255.255.255 into the local subnet broadcast address (here, that's 192.5.5.223). This results in a DHCP protocol violation, and while many DHCP clients don't notice the problem, some (e.g., all Microsoft DHCP clients) do. Clients that have this problem will appear not to see DHCPOFFER messages from the server.
ISC 網站
DHCP mini-HOWTO

後來找到那段中文譯文:
為了讓 dhcpd 能夠正確地服務過分挑剔的 DHCP 用戶端(例如,Windows 95),dhcpd 必須能夠送封包到 255.255.255.255 的 IP 位址上。不幸的是,Linux 會將 255.255.255.255 做為本地子網路的廣播位址(此處為 192.5.5.223)。這將違反 DHCP 通訊協定,然而許多 DHCP 用戶端並不受影響,有些(例如,所有 Microsoft DHCP 用戶端)卻會。有此類問題 的用戶端,將會看不到來自伺服器的 DHCPOFFER 訊息。

mini HOWTO:DHCP(DHCPd/DHCPcd)

2008年2月9日 星期六

變更授權金鑰

前些天,Andrea 說,近日智慧財產權觀念的逐漸暢行,都是拜資本強國之賜,目的無非是要賺我們的錢才弄出來的玩意,還真有道理。不過身處在這個現實社會中,除非你比人家強,不然只有依照人家訂的遊戲規則,不然只會處處受限而已。這時能跟大家說,Open Source 的產品有多好,大概只會被白眼吧。不是有一個美國人因不買大陸製( Made in China )的產品,而造成家人生活上極大的不方便,就是一例。

許多軟體也都日漸強調正版軟體的重要性,對於使用有版權的軟體,我當然樂觀其成,用起來也比較安心。但是,對於曾經使用非正版 M 牌的電腦來說,更新正版的授權金鑰似乎是不可避免了。為避免每次都需上網搜尋許久,才能找到變更的步驟,紀錄在自己熟析的地方,也方便快速查詢。

1. 開始 → 執行 → regedit → 確定。
2. 變更機碼 HKEY_LOCAL_MACHINE\Software\Microsoft\WindowsNT\Current Version\WPAEvents\OOBETimer 登錄項的任一值。
3. 開始 → 執行 → %systemroot%\system32\oobe\msoobe.exe /a → 確定。
4. 選擇『是,我想要打電話給客戶服務代表來啟用 Windows 』,按『下一步』。
5. 選擇『變更產品金鑰』,在『新金鑰』的視窗中輸入新的產品金鑰,再按『更新』。
6. 返回前一個視窗後,選擇『稍後提醒我』,並重新啟動電腦。
7. 重複步驟3.,確認 Windows 是否已經啟用。

Microsoft 的技術文件


當然啦,既然作業系統有此需求,那麼伴隨著而來的當然是 M 牌的文書處理軟體囉。變更的方式視版本的不同而略有差異,需依照安裝軟體的版本找尋相對應的關鍵值,這裡示範的僅適用於 Microsoft Office 2003 版本,不過 Microsoft 的網頁有提過需先備份這個登錄檔的機碼,這就看需不需要了。

1. 開始 → 執行 → regedit → 確定。
2. 刪除 HKEY_LOCAL_MACHINE\Software\Microsoft\Office\11.0\Registration 子機碼中的 DigitalProductID 及 ProductID 登錄項。
3. 開啟任一 Microsoft Office 的程式,輸入正確的產品金鑰即可。

Microsoft 的技術文件