網路管理人員必須全面掌握目前主機上所有運行中的網路服務資訊,以避免有未控管的網路服務自行運作,因而發生潛在的資安問題。若想確切掌握系統上運作的網路服務,建議採用nmap結合pbnj模組的解決方案。
系統管理人員最主要的任務,就是維持所掌管的網路服務(Service)順暢以及不中斷,也因此經常會部署相關的服務監控系統,此類系統在開源碼社群中最有名的解決方案莫過於nagios這個軟體。
一般而言,服務監控系統的架構圖如圖1所示,透過檢測封包來檢測受測的主機之網路服務,並根據網路服務回覆的狀態來判別該服務是否仍然正常地運作,最後管理者再經由管理介面來得知相關網路服務目前的服務狀態。
|
▲圖1 服務監控系統架構示意圖。 |
以監控網路服務功能而言,上述機制或許可謂完備,但網路服務的正常與否,往往不是系統管理人員最害怕的事,畢竟網路服務當掉就再重啟,重啟不成就重灌,大概就可以解決絕大部分的問題。其實,系統管理人員最擔憂的莫過於掌管的系統遭到入侵卻渾然不覺。
就大部分的入侵事件而言,駭客在入侵系統後,通常會在系統內植入後門程式,以便日後可直接透過此後門程式來控制受駭主機。
而後門程式表現在受駭主機的行為,是在該主機上開啟相關網路服務以等待接受駭客的控制(亦即會在受駭主機上開啟一個網路服務),因此要偵測此類資安問題,就必須利用通訊埠掃描服務(在開源碼社群中以nmap為代表)定時為被監控主機進行掃描,來即時掌握目前主機所開啟的網路服務資訊,並從中發掘出是否有異常的網路服務正在運行。
對此,本文將介紹如何結合nmap(通訊埠掃描軟體,本文所使用的版本為6.47)的網路服務掃描功能及pbnj(一種Perl的模組,可將nmap所掃描出來網路服務相關資訊儲存至資料庫內,而在此所使用的資料庫為MySQL),相關架構圖如圖2所示,而所使用的相關軟體如表1所示。
|
▲圖2 實作架構圖。 |
表1 實作時所需軟體
認識nmap
nmap是一個網路安全工具,可用於發現主機網路服務(Network Discovery)和安全掃描(Security Auditing),可利用nmap提供的Script功能來撰寫弱點偵測程式以掃描系統的漏洞。使用者一般會使用nmap來掃描主機的網路服務,例如網路服務的名稱或所使用的通訊協定等資訊。本文也將借助nmap優異的網路服務掃描功能來取得相關資訊,並藉此判別主機上是否有未經允許的網路服務正在運作。
首先安裝nmap軟體,連至nmap官方網站下載(http://nmap.org/dist/nmap-6.47.tar.bz2),本文使用的版本為6.47。解壓縮後,利用原始碼的編譯方式進行安裝。
接著執行指令「configure --prefix=/usr/local/nmap」組態nmap並設定安裝目錄(/usr/local/nmap),指定此目錄是因為筆者習慣將檔案安裝在某個目錄中,如果要移除nmap,直接刪除此目錄即可。如果讀者不需要,不一定要指定「--prefix」參數,直接執行「./configure」就會自動將nmap安裝在系統的標準目錄內。
然後,編譯nmap原始碼,並將nmap相關的程式安裝至指定的目錄,此處為「/usr/local/nmap」:
安裝後,檢查是否已經產生如表2所示的執行檔。
表2 nmap安裝後所產生的執行檔