加入RUN!PC粉絲團
最近新增的精選文章
 
最多人點閱的精選文章
 
 
精選文章 - 中小企業專區
分享到Plurk
分享到FaceBook
 
免費IT建置--
IT自由軟體、開放原始碼與中小企業
文/柳百郁 2011/7/14 下午 05:57:56

自由軟體(Freeware)常伴隨著開放碼(Open Source)出現,基於後者原始程式碼開放予大眾使用、編輯、再釋出的精神,而有了自由軟體的名詞出現。在此,我們規劃了一系列開放原始碼/自由軟體的主題,以中小企業IT環境裡較常見的用途為主,介紹各種應用在企業環境裡所扮演的角色。

自由軟體與開放原始碼精神裡的Free指的是自由,『免費』則是它隨之而來的好處,在此前提下所釋出的軟體與應用,多半使用GPL的授權方式,供一般使用者自由下載,開發人員也能自由改寫,前提是改寫後的成品亦需承繼GPL精神提供自由下載,甚至還能自由收費,例如市面上有許多的分支套件,就有提供付費取得安裝光碟的管道。許多人將Free解讀為『免費』,對飽受泡沫經濟衝擊,想盡辦法縮減支出的中小型企業或大型企業,都紛紛對自由軟體開始產生興趣。

LAMP:建立在Linux上的元素

LAMP是Linux、Apache、MySQL與PHP等四個基本元素組成,以Linux為作業系統(分支套件可以是CentOS、RedHat、Ubuntu等等),使用Apache套件建立網頁伺服器,該伺服器背後支援的資料庫為MySQL,且網頁應用程式是由PHP語言所寫成,之後,也有人將P的部份以Perl詮釋,或說是Python。

現今廣受歡迎的部落格套件Wordpress,與多功能網站架設應用durpal基礎架構都可以用LAMP,透過模組化的Durpal,企業可以輕鬆建立各種類型的網站,當然也有許多非技術人員自行使用Wordpress,建立個人風格的部落格。

雖然Windows XP號稱不死的作業系統,但事實上微軟對XP的技術支援只到2014年,而XP之後的Vista與Win 7多少有些欲振乏力,既然從Windows XP到Win 7之路並不好走,何不試試版權費用更低廉,還能依自已的喜好與使用偏好選擇的Linux呢?

Linux對各種用途有不同的適合套件,近期推出的Ubuntu可以讓慣於使用XP的使用者覺得改變最少(當然不是沒有)、CentOS承繼RedHat企業版的穩定,不想花錢購入RedHatEnterprise的好手們,可以利用CentOS架設功能健全的伺服器。

Linux系統管理

所有Linux分支套件皆內建成千上百種的好用工具,無論是在網路狀態的查測、硬體設定調整、伺服器運作觀察,以及事件紀錄檔裡資訊的保留與解讀,都能夠全方位提供系統管理者將系統效能調整得更好,讓他們在系統出現異常時,能立即透過手邊就有基本工具找出問題並解決它。

以系統管理來說,筆者的經驗認為命令列指令一向比圖形界面的好用,例如透過top指令,可以瞭解現在耗用系統資源最多的程序,以及記憶體的使用狀況,利用netstat能查看主機正在聆聽的通訊埠有哪些,正與系統連結的主機又有哪些,nmap可以掃瞄整個企業網路,查看各個主機開放了哪些通訊埠、哪些IP位址未在使用中。有經驗的系統管理者,都有一套習慣的工具組,究竟是直接修改組態檔好?還是利用命令列調整設定?其實兩種作法都各有各的好,當系統管理是團隊合作的工作時,討論出一致的方式才是最重要的。以個人而言,可以用家裡已經不能用的電腦(老舊但硬體還沒壞),架設一套簡單的Linux平台,或者透過虛擬主機安裝Linux系統自修練功,並且盡可能瞭解每一種設定方式,因為你永遠不知道會面臨什麼樣的問題。

檔案共享與伺服器

無論企業規模大小或經營性質為何,兩台以上的電腦之間都可能出現檔案共享的需求,例如團隊合作的專案文件,或者是跨部門間的資訊共享。Windows世界裡的網路芳鄰,在Linux裡是透過Samba服務可以讓Linux與Linux彼此溝通,也可以建立Windows與Linux之間的檔案、印表機共享橋樑,透過Samba伺服器的建置,主機上的檔案與印表機就能與Linux、IBM System 390、OpenVMS與Windows的用戶端電腦共享。

檔案傳輸另一個常用的方式是FTP,常用於取得網際網路上的檔案,用戶端透過FileZilla或CuteFTP等FTP用戶端軟體,連結遠端的FTP伺服器,取得所需的檔案。Linux分支套件幾乎都有提供FTP用戶端與伺服器的功能,使用預設的vsftpd建置FTP伺服器,幾乎只要選擇啟動即可使用,當然還是必須調整設定才能讓檔案傳輪更安全。

郵件伺服器與垃圾郵件

儘管已有許多供應商提供企業郵件架設的服務,使用者只需要在網路上作申請的動作,就能擁有企業級的郵件伺服器,但仍有許多大型企業基於安全性的理由或特殊功能需求,而使用自建郵件伺服器自行管理。

Sendmail是Linux裡郵件伺服器的老字號,Postfix與Qmail使用的人也不少。Postfix雖然具有簡單易用的特色,事實上仍提供許多郵件伺服器的必要功能,要讓它更安全好用仍需一番設定調整。因應近年來不斷升高的病毒、釣魚程式以及防不勝防的廣告垃圾郵件,Linux早有Spamassassin、sagator與dspam等,可提供垃圾郵件的防堵與病毒過濾等功能。

把Linux當Layer 4 Switch的主機

開放原始碼與自由軟體社群的諸多特性,能用老舊的、便宜的主機,替代一些昂貴的設備,LVS(Linux Virtual System)便是這種前提下的產物,它可以用來執行Layer 4 Switch部份功能,運作方式便是將所有相同服務,或伺服器串接在LVS主機背後,由LVS面對網際網路,處理來自用戶端的需求。

例如在LVS背後共有五台網頁伺服器提供服務,但事實上使用者並不知道背後處理服務的是哪一台,此舉除了可以分散伺服器的負載外,當其中某台伺服器需要停機更換硬體或是更新軟體後必須測試可用度時,只需要在LVS裡停用該伺服器,則另外四台伺服器繼續提供服務,使用者端不會有任何感覺,也不需要作任何變更。

防火牆

Linux系統主機不管是作網頁伺服器用途,或僅用於提供檔案共享的服務,都應該啟動預設的防火牆功能,達到建立自有防護的機制。RedHat體系預設的iptables套件產自netfilter專案,該專案提供相當多與網路相關的應用,其中iptables的功能除了用來當防火牆,防堵不應該進來或出去的封包外,內建的NAT(network address translation)域名轉換選項,也是常見到的應用方式,它可以將外部網際網路的IP位址,對應至內部網路裡的虛擬IP位址,避免外部網路的主機直接連線,到提供服務存有重要資料的主機本身。

在安裝圖形界面(例如Gnome或KDE)的主機上,管理者可以透過FirewallBuilder功能,利用GUI管理介面調整設定防火牆規則,讓管理者能夠在一開始使用時,就能快速瞭解規則完成設定,暫時不需要面對難懂的rule config,但是管理者還是必須對iptables的規則與運作有基本瞭解才行。

自動告警系統

系統或網路管理者不可能二十四小時監控企業內『所有』的主機與設備,如果有管理工具可以定時檢測服務,呈現運作中的狀態、主機設備連線狀況是否正常,便能夠讓管理人員事半功倍,把時間用在調整系統效能、吸收重要資訊等更有意義的工作上。

Nagios與BigSister都是不錯的告警系統應用,主機上線提供服務後,管理人員只要將它加入告警系統的監控清單裡,完成相關設定後,當目標主機出現異常時,警告系統會發出手機簡訊或傳送Email警告,只要管理人員介入處理,並將將狀況解除即可。

網路管理與監控

企業等級的網路管理程式openNMS從1999年開始至今,都屬於開放原始碼的軟體,在提供自由下載版本時,也有付費版的可以選擇。OpenNMS提供自動檢測、事件與通知的管理等基本功能,除了網路設備之外,網頁伺服器、郵件伺服器與資料庫等,也都在管轄範圍內。

OpenNMSc會將主機設備發生的事件,以嚴重程度高低區分為Critical(深紅色)、Major(粉紅)、Minor(橘色)、Warning(黃色)、Normal(綠色)、Cleared(淺灰)Indeterminate(黃綠色),管理者只需要登入管理頁面,便能直覺找到應優先處理的事件。

只要把OpenNMS放在網路裡,應用程式會去找到網路裡所提供的服務,當然也可以手動設定。在事件的管理上,OpenNMS擁有自有事件格式,也能接收外部來源的事件,例如SNMP Traps、syslog或TL/1,可以用來作為網路事件資料流的倉儲中心,透過內建的管理功能,自動化整理或刪去重複的訊息。

無獨有偶,OpenNMS和雲端同樣採用了服務層級協議(Service Level Agreements;SLAs),這是由於OpenNMS要監控的東西實在太多,從ping產生的ICMP request、到通訊埠的檢查,甚至是複雜的網站服務監控,因此詳盡的報告雖然很重要,但讓客戶能夠自定採樣比率、客製化排程停機的時間同樣是不可或缺的功能。

為資料設定一個確切的臨界值,然後以正規表示式寫成文字檔讓網頁伺服器存取,就能讓應用程式與OpenNMS整合,搜集所需的資料,這些資料可以作成圖檔,而『Ton N』的功能更可以輕鬆找出網路裡的問題點。


▲ OpenNMS Web管理介面(擷自官方網站試用版)

版本控制與專案進度管理

軟體版本控制與專案進度追蹤,對許多軟體設計、研發企業是非常重要,尤其對擁有眾多分公司與全球化企業影響更大。多數開發人員都曾面臨客戶或老闆的要求一改再改,以致於軟體版本不斷更新的狀況,這時透過軟體開發專案追蹤系統Trac,集中管理版本更新的動作,不僅讓開發團隊在過程中有所依循,也可以讓他們將專案開發過程中的問題,甚至是使用者試用之後回傳的issue記錄下來,不僅作為工作進度的提醒,也能夠讓團隊成員參考或共同解決問題。Trac不但管理bug、issue以及wiki,同時也是Subversion版本控制系統的介面,掌管軟體開發的各個步驟。

近年來,功能更強大、更好用的Git與Repo,已經成為Android程式碼控制的重要工具,其中版本控制系統-Git,就是為了處理具多個軟體倉儲點的大型專案而設計,而repo則是建置在Git上的工具,可以一次處理數個Git軟體倉儲、更新版本控制系統與自動化開發流程,例如只用單一repo指令,就把數個軟體倉儲裡的檔案下載到工作目錄下。

入侵偵測系統

Snort應該算Linux國度裡最有名的入侵偵測系統(IDS),是用來預防網路上不具權限的存取與入侵行為,還能隨時偵測網路狀態。網路上什麼人都有,有些會透過別人的郵件伺服器散發垃圾郵件,甚至是以不正當手段進入他人電腦竊取機敏資料。

存在於網際網路上服務的伺服器,原本就應該作好應有的安全性設定,例如本機防火牆、服務存取限制等,但對更講究隱私的企業型態來說,需要的防護更多更複雜,且不見得企業都有求助於專業資安公司的觀念。IT部門最快的自救方式,就是利用手邊現有的資源、建立自有入侵偵測系統,透過完整的Snort設定與保持高度警覺性,即便是自建系統也能達到不錯的防護功能。

samhain則是另一套主機式的入侵偵測系統,可以針對系統中檔案(例如設定檔或事件紀錄檔)的一致性定期檢測,並且提出詳盡的報告,讓管理者能定期了解系統裡檔案、通訊埠與程序的執行狀況,以便發現異常時便能立即處理。

共用檔案系統與串接網路裝置

GFS是搭配GNBD所使用的檔案系統,GNBD將四散各地的儲存空間集結起來,讓需要使用這個空間的使用者或伺服器,看起來就像只是使用一個容量很大的空間,或許現在能夠透過雲端解決方案完成,但在早期有限資源的環境下,能透過GFS與GNBD讓舊資源再利用,無疑是一項了不起的發明。

分散式的網路檔案系統Coda也有異曲同工之妙,透過網路的方式將檔案系統串接在一起,以共享為前提但提供完整的權限管理,以確保這個檔案系統的安全性。


▲ 分散式網路檔案系統coda

總結

從上述的摘要中可以發現,在開放原始碼的世界裡,應用或功能不會只有一選擇,近期許多優質的開放碼組織,更紛紛推出更多功能或技術支援的付費版,但也同時提供自由下載的開放原始碼版,以符合自由、免費的精神。

未來,我們將針對上述主題順序陸續介紹各種套件,儘管在同一個應用下,軟體選擇會因應環境變化而有所調整,而唯一不變的是,在開放源碼的世界裡永遠有新鮮貨。