巨匠電腦評價誌-掌握網路服務狀態 以利察覺主機可疑活動

2016-01-05
我喜歡此文章
Bang/巨匠電腦評價誌是巨匠電腦針對特定主題分享的相關集結內容,涵蓋了網路管理、室內設計、資料庫程式語言等,不定期會分享最新趨勢。巨匠電腦評價誌本次分享的是思科的最新發展趨勢,網路管理相關的千萬不可以錯過喔。

網路管理人員必須全面掌握目前主機上所有運行中的網路服務資訊,以避免有未控管的網路服務自行運作,因而發生潛在的資安問題。若想確切掌握系統上運作的網路服務,建議採用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安裝後所產生的執行檔 


由於本文僅是利用nmap的網路服務掃描功能來取得受測主機的網路服務資訊,因此就不多談nmap其他參數的使用方式,僅就nmap的網路服務掃描功能做討論。 

執行指令「nmap -sV <主機位址>」即可取得受測主機的網路服務資訊,如圖3所示。 
 
▲圖3 執行「nmap -sV <主機位址>」指令取得受測主機的網路服務資訊。


安裝nmap後,由於所輸出的資訊僅能導向至檔案,使用上較為不便,因此接下來繼續安裝pbnj模組,將nmap所輸出的網路服務資訊導向至資料庫,以利於運用。 

動手安裝pbnj 

pbnj是一個Perl模組,主要用來封裝nmap程式,並將nmap輸出的資訊導向至MySQL資料庫。在安裝pbnj之前,必須先安裝相關所需的Perl模組,可執行如下的指令來安裝pbnj所需的相關模組: 
 


安裝好所需的模組後,再執行「svn co https://pbnj.svn.sourceforge.net/svnroot/pbnj/branch pbnj」指令來取得pbnj模組最新的版本。接下來,利用下列指令安裝pbnj模組(#為註解): 
 


成功安裝pbnj模組後,需建立相關的資料庫表格。在本文中,pbnj模組所使用的資料庫名稱為「pbnj」。建好資料庫後,再建立相關的資料庫表格,如下所示(#為註解): 
 


緊接著設定pbnj的組態檔,檔名為「/root/.pbnj-2.0/config.yaml」,設定成如下列的資料庫組態: 
 


在相關程式以及資料庫均建立完成之後,接下來說明pbnj所提供的執行檔。本文主要是使用scanpbnj程式進行掃描,因此這裡僅說明主程式(scanpbnj)的用法。 

scanpbnj是主要的掃描程式,用來掃描主機,並將相關的資訊置入到資料庫中,它可簡單掃描單台主機或者使用CIDR的形式,相關指令格式為「scanpbnj  」,例如執行指令「scanpbnj 192.168.1.0/24」即是掃描192.168.1整個網段。 

如圖4所示為掃描結果,除了顯示結果外,另外也會將相關的資訊寫進資料庫內。 

 
▲圖4 執行「scanpbnj 」指令後所顯示的結果畫面。


scanpbnj所提供之常用選項,分別介紹如下: 

-i  :根據儲存在檔案內的IP資訊進行掃描。
-x  :用來解析nmap所輸出的XML檔案。
-n <目錄名稱>:指定nmap執行檔案所在的目錄。
-p <主機IP> :指定以PING的方式掃描主機是否還存活(alive)。 

在實務運用上,建議將執行此程式的指令寫入排程指令中(如cron等程式),讓它每隔一段時間就運作一次,並將網路服務相關資寫入資料庫,而後即可自行撰寫資料庫的存取程式來運用相關的網路服務資訊。 

結語 

一般網路服務監控系統總是著重在已知服務的監控,但從另一個角度來看,管理人員除了需要監控相關網路服務的運作情形外,對於目前主機上運作的所有網路服務資訊更要有所掌握,以避免有管理人員不知道的網路服務偷偷在運作而造成系統潛在的資安問題。本文中所介紹nmap結合pbnj模組的解決方案,即可協助管理人員全面掌握目前系統上所運作的網路服務資訊,藉此消除這一類潛在的資安問題。 

原文出處:http://www.netadmin.com.tw/article_content.aspx?sn=1504080004&jump=2

好文延伸閱讀分享↓ ↓ ↓ ↓
我的試聽旅程巨匠電腦評價cp值不錯~~
因評價電腦技能而行動, 巨匠電腦評價給我記住!!
10種不同類型移動UI設計模式, 巨匠電腦評價分

相關影片分享
↓ ↓ ↓ ↓


上一篇 下一篇