skip to main |
skip to sidebar
http://darkranger.no-ip.org/files/dr.htm
這是一支用 Python 撰寫、將三個常見的 Unix 搜尋指令:locate、find、grep 整合在一起的工具,其實靈感是來自於 Windows 的檔案搜尋功能……Windows 的檔案搜尋結合了索引式、非索引式的檔案搜尋,並且還可以搜尋內文。 DR 在 Linux 命令列底下做事情時,常常覺得若可以把上述三種功能的指令單純化會方便得多,於是就寫了這麼一支工具。之所以用 Python 是因為 DR 認為 Python 的控制性應該比 shell script 好,未來擴充功能會比較方便,並且也可以藉此順便學新語言……
這個工具原本是想在去年年底寫出來的,原因之一是 DR 赫然發現自製區在 2009 年竟然完全沒有新的專案(撇開不值得丟出來的),但無奈實在沒空,時至最近才有空研究怎麼寫。
附帶一提:DR 在入伍前有很多事務要處理,網站大概只會再更新個一兩次,所以不要期待近期內會看到什麼新文章……
上週日(11/08)一整天 DR 的網站(Fedora 10)都無法順利連結,而前因是 DR 在前一日、也就是週六做例行的套件更新以及自動關機程序,隔天出門前將伺服器開機後走人,後來發現網站連不上,等到晚上回家後才發現 httpd 因為 mod_secuity 模組的關係無法啟動。查看錯誤訊息是無法載入設定檔案,於是去檢查設定檔所在的目錄,發覺路徑不對,就調整了一下,但檔案也有缺,所以就想上網查清楚到底怎麼回事,才發現是套件出了包:
https://bugzilla.redhat.com/show_bug.cgi?id=533124
只要把套件從 2.5.10-1 更換成 2.5.10-2 即可,不過在那當下 yum 更新還抓不到最新的套件,DR 只好從這裡抓下來解決:
http://koji.fedoraproject.org/koji/buildinfo?buildID=140180
更新之後,httpd 可以啟動了,然而新的問題是 DR 網站裡一個叫做「document.gif」的圖檔被擋住了,查看 error.log 發現又是 mod_secuity 所為:
[Thu Nov 12 00:26:05 2009] [error] [client 61.64.173.115] ModSecurity: Warning. Operator GE matched 5 at TX:anomaly_score. [file "/etc/httpd/modsecurity.d/base_rules/modsecurity_crs_60_correlation.conf"] [line "41"] [msg "Transactional Anomaly Score (score 20): Detects very basic XSS probings"] [hostname "darkranger.no-ip.org"] [uri "/image/document.gif"] [unique_id "SvrlnX8AAAEAAC0TRNwAAAAA"]
查了一下什麼是 XSS,原來就是傳說中的「跨網站指令碼攻擊」,但是這個圖檔非常單純,憑什麼擋下來?所以 DR 做了點實驗,把 document.gif 重新命名為 document2.gif,竟然就過了,這規則也太腦殘了吧?然而 DR 的網頁都是手工的 HTML,為了一條有問題的規則動輒挖出所有網頁改內容,儘管用批次處理做得到卻不太應該,應該還是要從規則著手才是。
於是把 modsecurity_crs_60_correlation.conf 裡頭那行規則註解掉,再將 httpd reload,log 雖然沒訊息了,但圖檔還是被擋,這時 DR 陷入了極大的困惑和不解,並且驚覺自己對 mod_secuity 的設計非常非常的不熟!接下來 DR 查了點文件,認為 modsecurity_crs_60_correlation.conf 大概只是處理 log 的輸出,真正的抵擋規則在別的檔案,直接按字面上檢查 modsecurity_crs_41_xss_attacks.conf 卻看不出個所以然。只好使出殺手鐧,設定檔一個個給 httpd 載進去試,看是載了哪個檔案後被擋下來。然而最後一路到 modsecurity_crs_49_enforcement.conf 才擋下來,而裡頭的規則只是按分數執行抵擋結果而已,並沒有判定 XSS 攻擊的部份。顯然各個設定檔有交互參照性,試到這裡就夠了,還是有請專業吧。
最後 DR 把問題丟到 Core Rule Set 的 mailing list,得到以下的回覆:其實要檢查的是 modsec_audit.log,裡頭可以找到究竟是哪裡的規則把它擋下來,於是 DR 參照 log,鎖定 modsecurity_crs_41_phpids_filters.conf 這個檔案,將裡頭的一條規則註解掉解決,在還沒搞清楚如何撰寫規則前就先這樣處理了。
補充資料,以 mod_security 的中文文件來說,以下這篇是 DR 目前為止找到最「好看」的:
http://support.oss.org.tw/wiki/index.php/ModSecurity
三號機(也就是 DR 的個人網站伺服器)原本打算從 Fedora 9 升級到 Fedora 11,然而上網查了一下發現兩個版本之間的不相容性極高(主要是因為 rpm 套件管理工具的改版),於是為求慎重,就先升級到 Fedora 10,日後的升級則再看著辦。其實三號機所提供的服務非常簡單、單純,所以要直接重灌新系統也並不困難,只是若能使用 yum 直接升級當然也較方便,相關的升級資訊可參考:http://fedoraproject.org/wiki/YumUpgradeFaq
網路討論區上,總還是三不五時會有些使用者反應:使用 Linux 連 ADSL 時,出現含有「/sbin/adsl-start」、「Terminated」、「/dev/null」這類字串所組成的錯誤訊息,並且無法連線。而遇到這類問題,會想到的原因通常是 ADSL 連線設定有誤、或者網路卡(驅動)有問題。但 DR 今天卻意外挖掘出一個新的原因(以及解法)……話說 DR 二號機上的 Linux(Fedora),其實也有著相同的問題,連 ADSL 時會出現前文所述的錯誤訊息,但 DR 之所以不太在乎的原因是因為雖然它連第一次會出錯,但連第二次卻又可以連上,並且同樣在二號機上的 Windows 連 ADSL 就完全沒問題,因此既然它終究還是可以連線,DR 也就沒太放在心上。不過就在今天,DR 因為整理機器的關係,將二、三號機的線路對調,竟然發現狀況也跟著對調了,大驚之餘把網路線和 switch 接孔交叉測試,才發現原來改插另一個 switch 接孔就解決了。所以若有人有類似的狀況,不妨將線材或串接設備測試一下,也許可以解決問題。
一定有人會覺得:都已經出到 Fedora 11 beta 了,怎麼現在才貼個 Fedora 10 初用心得?呃,簡而言之就是 DR 沒有那麼閒,可以每推出一個新版本就馬上裝起來玩,最近才剛把二號機從 Fedora 8 換成 Fedora 10。而以下就是經過重點篩選的心得:1. NetworkManagerNetworkManager 是個注重桌面體驗的連線設定工具,原先 DR 以為它不過就是用來協助無線網路設置的工具,然而實際上它包辦了所有網路介面的設定和管理。由於 NetworkManager 在 Fedora 10 上預設是啟用的,於是 DR 便嘗試用 NetworkManager 進行 ADSL 和區域網路的連線。但卻發現它沒有辦法同時啟用 ADSL 和為網路卡指定 Private IP,所造成的結果是若連結網際網路,則區域網路不能通,反之亦然。意指 NetworkManager 一次只容許一個網路介面進行連線,這對單純使用 DHCP 或無線網路的使用者來說固然簡便,但對網路設置有進一步需要的人卻是大麻煩。因此 DR 決定繼續用傳統的方式設定網路。結論:關閉2. SELinuxSELinux 這個安全強化模組絕對不是什麼新玩意,雖然關閉 SELinux 是 DR 過去的習慣,但因為這次 Fedora 10 在 firstboot 的程序時,並沒有提供可對 SELinux 進行啟用或關閉的選項,另外再加上 DR 最近在架設伺服器時,也是有啟用 SELinux 的,於是就決定試試看以桌面使用者的角度來體驗 SELinux……最終的結果只能說:對於桌面使用者而言,DR 仍舊認為啟用 SELinux 是缺乏意義甚至會徒增困擾的。一來它對於桌面使用沒有實質的安全影響,二來在沒有實質安全影響的情況下,使用者還得面對它一狗票的輸出訊息,或者沒有必要的抵擋。結論:還是把它關了吧3. LXDELXDE 是嶄新的輕省桌面環境專案,就像 Xfce 一樣,但它比 Xfce 更吸引 DR 的注意。於是 DR 除了預設的 GNOME 桌面環境外,還裝了 Fedora 10 所提供的 LXDE,確實外觀亮眼、效能也不錯。然而相對應的問題是 bug 和功能性,LXDE 沒有虛擬桌面著實讓 DR 很不習慣,因為 DR 相當習於用虛擬桌面去分配工作視窗。另外,檔案瀏覽是很基本且相當要求穩定性的功能,LXDE 所附的 PCMan File Manager 還是有點 bug,在基本的工作上出現 bug 總是會令人困擾。由於 DR 的硬體配備還算 OK,所以其實不太需要去要求所謂的輕省,因此還是換回了 GNOME 桌面。總而言之,LXDE 是個尚在開發階段的專案,無論是 PCManFM 還是整個 LXDE,DR 都對其方向非常推崇且支持。結論:移除4. KompoZerKompoZer 不是 Fedora 裡的玩意,它是 DR 用來編寫網頁的軟體,之所以會提到它是因為 DR 發現它在 Fedora 10 底下不能跑了。一開始以為不過是 32bit 軟體在 64bit 系統上運作的問題,但幾個 32bit 的函式庫裝上去之後,雖然錯誤訊息沒了,軟體卻還是沒反應。索性就用 Wine 去跑 Windows 版的 KompoZer,但用著用著覺得實在是太 buggy 了,最後抓 KompoZer 的原始碼自己編譯才解決問題。結論:自行編譯
前幾天 DR 心血來潮,想說玩一下 Tribes 2,遊戲帳號卻無法登入,這才發現……話說 Sierra(現在的 Vivendi Games)決定關閉(也就是停止支援)旗下 20 款舊遊戲的 master server,以下網頁有完整的已停止支援遊戲列表:http://forums.vgames.com/ann.jspa?annID=332而其中也包含了 DR 最愛的 Tribes 2……關閉遊戲的 master server 就像 Blizzard 把 Battle.net 給關了一樣,玩家將無法經由 Internet 進行遊戲連線,這可是非常嚴重的問題……因此有玩家決定自行架設 Tribes 2 的 master server,並利用 Tribes 2 本身的 script 撰寫功能改寫了遊戲的通訊協定(真沒想到,Tribes 2 的 scripting 竟然拯救了它的延續性),讓 server 與 client 可以利用非官方的 master server 進行溝通。玩家(client)只需要下載 AlternateMasterSupport.vl2 並放置到遊戲的 base 目錄裡(Windows/Linux 皆是)再進入遊戲的區域網路模式就可連結至非官方的 master server 並進行搜尋。詳細資訊可參考:http://t2.plugh.us/另外,既然官方已停止 Tribes 2 的連線支援,而非官方的 master server 既不會也無能力進行(正版)帳號驗證,那麼它就可以算是一種「abandonware」了,因此光明正大的把它抓下來玩吧!網路上已有提供下載:Windows:http://www.ewo.tergen.net/Linux:http://t2.giantfriend.com/最近上網玩了一下 Tirbes 2 的「rabbit」模式,真的還是好好玩……
RPM Fusion 是新推出的 Fedora/RHEL 第三方擴充套件庫,由 Dribble、Freshrpms 以及 Livna 這三個套件庫整合而成。相信許多 Fedora 使用者都和 DR 一樣,非常依賴 Livna 和 Freshrpms 所提供的套件,另外也有一些使用者會用到 Dribble 套件庫(Dribble 主要提供遊戲 & 模擬器相關套件)。然而其中的麻煩是:Freshrpms 和 Livna 的套件是有所重複且可能衝突的,Dribble 和 Freshrpms 之間也是如此。因此這三個套件庫決定整合起來,避免衝突並且可讓使用者更加便利。RPM Fusion 的安裝流程可參考:http://rpmfusion.org/Configuration有些人可能會好奇:為什麼同樣也是相當知名的 ATrpms 沒有整合到 RPM Fusion 中呢?事實上是 ATrpms 那方拒絕了這項合併,因為 Livna 等擴充套件庫的一個打包原則是不替換掉任何原本 Fedora 的官方套件,而 ATrpms 並不依照這樣的原則。其實這樣的結果也不一定不好,第三方套件庫維持一點競爭性對使用者而言並不算壞,並且就經驗論,一些出於使用官方套件所產生的問題,可以用改安裝 ATrpms 套件的方式解決。總括而言,DR 建議 Fedora 使用者一般就使用 RPM Fusion 的套件庫,有特別的需要再使用 ATrpms。yum 和 rpm 套件庫的相關文件與操作可參考 DR 之前的 How-To:http://darkranger.no-ip.org/document/linux/yum.htm
相當知名的免費兼跨平台辦公軟體套裝 OpenOffice.org(以下簡稱 OOo)在近日釋出 3.0 RC4 中文測試版。由於 OOo 的中文正式版在英文正式版釋出後仍往往會拖延到一種驚人的境界……而且通常 RC 和正式版又相差無幾,所以 DR 建議若沒碰上什麼大問題,3.0 RC4 就可以直接取代原本的 2.x 版了。http://zh.openoffice.org/new/zh_tw/downloads.html
2008/11/22 更新:3.0 中文正式版已釋出。
有好段時間都停留在 0.8 版的 VLC 多媒體播放軟體最近悄悄的推出 0.9 版(或者應該說是 DR 後知後覺吧)。0.9 版有著許多功能的更新與修正,其中較為明顯的是介面變得漂亮了些。VLC 是 DR 在 Windows 平台上最常使用的播放軟體(事實上 VLC 是跨平台的,也有其它作業系統的版本),然而它最特別的是它不僅僅是一款播放軟體,它還另外具有媒體格式轉檔與串流輸出功能。http://www.videolan.org/
使用 id Tech 4 引擎開發的第一人稱射擊遊戲《獵魂》(Prey),最近悄悄的發佈了 Linux 試玩版,而正式版也會在近期內發佈。至於負責移植工程的就是……那位大家都以為現在應該在忙著移植 UT3 的 Ryan C. Gordon,DR 真覺得他簡直就是時間管理的神手啊!DR 原本對《獵魂》沒有太大的興趣,不過玩了一下試玩版後,發現其實它的遊戲性還頗流暢且挺有趣的,所以現在強烈考慮要去買套正式版回來。Prey for Linux:http://icculus.org/prey/
安裝程式(MojoSetup)有繁體中文介面,看到自己參與翻譯的內容被發佈出來還蠻高興的: