分享

Linux下的安全工具

 农夫子oice 2007-12-22
■Linux下的安全工具

一、摘要
資訊科技的進步帶給人們極大的方便,尤其是企業更需要資訊科技的幫助。但是相對
之下,安全的議題就更為重要了。如果企業的資料被竊取或是系統被入侵而導致的阻斷服
務等等損失,皆是難以估計的。然而人們總是等到系統被駭客入侵或接收到安全事件報告
時,才會去注意到安全環境的重要性。為了進一步強化系統的安全性,本文介紹了一些在
Linux 環境下,如在強化系統、系統監控、網路監控上重要常用的安全工具。

二、安全工具簡介
1.Nmap
Nmap 是一套免費的開放原始碼工具,它可以探測網路或安全稽核。俗語說的好:「
水可載舟,亦可覆舟」,Nmap 也常常被當作駭客進行入侵偵測的基本工具。Nmap 可
以探測網路上的主機有開啟什麼樣的服務,正在執行的作業系統版本,以及是否有使
用封包過濾器或防火牆。對一個系統管理者來說 Nmap 提供了系統基本安全測試,可
以使得我們知道現有網路設備提供怎樣的資訊給入侵者,以及如何對這些弱點進行更
新。至於對於一位有心的入侵者,Nmap 更提供了許多有力的資訊。

Nmap 可以在 http://www./nmap/ 取得,而其更新的版本提供了更強大
的功能。Nmap 可以針對一個網段進行掃描,也可針對單一主機進行更高階的掃描,
例如 stealth scanning,即想要得到對方主機資訊同時也不希望在對方主機上留下
任何掃描的資訊所使用的方式。Nmap 也可以使用 SYN Scan,這種掃描技巧通常稱為
half-open scanning,因為我們通常並不是真的去建立一個連線,只是讓對方以為我
們要建立連線。有時候在掃描的時候,連 SYN Scan 都不夠秘密而被某些防火牆或是
filter 監控紀錄,便會使用其他比較特殊的掃描方式,送出一些定義未明的封包來
做掃描如 Stealth FIN, Xmas Tree, 或 Null scan。Nmap 除了利用 TCP 協定之外
,也利用了 UDP 協定來掃描,許多進階的掃描技術都可以參考 Nmap 的指令說明。

2.Nessus
在介紹完 Nmap 之後,我們繼續介紹一另個功能強大、免費、執行速度快的弱點掃描
軟體。系統管理者可以搭配 Nmap 掃描出系統所開的服務之後,再依照所設定要掃描
的項目去逐一掃描系統上所有的服務。Nessus 是針對伺服器作業系統以及所提供服
務的弱點所設計出來的掃描的軟體,而 Nessus 其實可以視為一種攻擊工具,掃描程
式以 NASL 寫成 script,而每種弱點都寫成一隻 plugin,這種 plugin 的架構在維
護更新攻擊測試程式是迅速方便的。

Nessus 可以在 http://www. 中找到免費的原始碼,而目前的 plugin 種
類眾多,有Backdoors, CGI abuses, Denial of Service, Finger abuses,
Firewalls, FTP, Gain a shell remotely, Gain root remotely, General, Misc.,
NIS, Port scanners, Remote file access, RPC, SMTP problems, Useless
services, Windows。而且在 Nessus 的網站上會定期的發布最新的 plugin 提供下
載,而 Nessus 的掃描也可是自動化的(cron jobs)。在掃描的結果方面,Nessus 提
供了很詳細的資訊,會將弱點分成低、中、高,三個等級,並且也有描述解決方式,
供管理者方便去更新軟體漏洞。Nessus 是一種 client-server 的架構,server 負
責對所欲測試的電腦或網段進行攻擊,client 則是負責監看掃描的結果。Nessus 不
會拘泥於 IANA 所定的埠號來決定服務的項目,它不會因為 FTP server 開啟不是 21
port 的服務就識別不出來此為 FTP 服務。

3.TCPWrappers
當我們關閉系統上的所有服務時,可以確保系統在安全機制上不易被入侵,但是這卻
是不可能的,因為我們一定會在系統上執行一些服務,例如 FTP 或 Telnet。而
TCPWrapper 就是一個簡單易用的網路存取控制工具,主要的功能在紀錄並攔截由
inetd 管理的 TCP 服務,一旦有連線被建立得時候,TCPWrapper 會由 inetd 所啟
動。如 BBS一樣,server 端會送訊息給 client 端,TCPWrapper 也具有 DNS 反查
的功能,比對連線 IP 和主機名稱,可以檢查是否相符,供日後分析。TCPWrappers
支援簡單形式的存取控制,可以對每個服務或主機或結合二者來進行控制,存取控制
也可以限制使用者連到適當的服務,例如當在國內時,gopher 或 www 資料庫會顯示
當地的語言,如果是連線到國外就顯示英文。

但是 TCPWrappers 還是有一些缺點,例如它對於 IP Spoofing 的攻擊沒有辦法有效
的阻擋,因為 TCPWrappers 對 IP 所採用的認證機制,而這正好讓駭客利用 IP
Spoofing 的技術進行入侵。而比較好的防治辦法就是在防火牆上設定規則,有可能
類似 IP Spoofing 的封包就加以攔截。另一個缺點是,TCPWrapper 對 UDP 的支援
較少,而有些功能不適用於 UDP 服務,故伺服器會接收來源不名的封包。

4.Tripwire
Tripwire 其實是一種入侵偵測系統 (IDS),但是由於它對於檔案監控的強大功能,
使得大多數的系統管理者使用此功能勝於其入侵偵測的功能。Tripwire 與其它偵測
入侵系統軟體不同的是,它並非用來偵測系統的異常或被誤用,而是專注在系統的完
整性上。系統管理者必須對 Tripwire 加以認識的是,一般的偵測系統大都以過濾
syslog 或稽核追蹤,來找出可能被攻擊的證據,而 Tripwire 卻是將焦點集中在偵
測系統檔案是否被未經授權者竄改。Tripwire 會針對檔案系統做完整稽核的保護,
可以很快地發現檔案以及目錄是否遭到修改,以及利用電子郵件通知管理者,以便管
理者能很快地將遭受攻擊的檔案做復原。Tripwire 採用的技術為數位簽章,就是對
所欲監控的文件或檔案,產生一份簽章,而以後在稽核文件的時候也對同一份文件產
生簽章,用來比對是否一致,才可知道是否被竄改了。

Tripwire 可以追縱系統上所安裝、移除或修改的軟件,對於惡意的程式碼、探測器
(sniffers)、木馬 (trojans) 或任何後加於系統的軟件都能有效的控制。Tripwire
也可以用來當作電腦鑑識 (forensics)的功能,它提供有利的證據對於想要告發的入
侵者。

5.Logcheck
記錄和稽核各系統每日所發生的事件是必須做的事,這樣一來可以使系統管理員更有
效地做稽核追蹤來發現異常事件,早一步阻止入侵和被破壞。但是每日的日誌檔案實
在是太多了,系統管理員根本無法從這些大量的檔案去檢查,太浪費時間與成本了。
而 Logcheck 可以自動地將正常的日誌檔案刪除,一些有問題的日誌檔案將會被郵寄
給系統管理原來審核。Logcheck 會處理來自於由系統 daemons、TCPWrappers、log
daemons 所產生的日誌檔案。Logcheck 利用一個叫 logtail 的程式記住上次讀過日
誌檔案的位置,然後下一次在從此位置繼續讀取新的日誌檔案。

Logcheck 的通知沒有那麼即時,但是相對於 swatch (即時的日誌監控工具) 它更適
合於分散式日誌文件系統。因為它不必為每個日誌文件建立一個處理序。

6. Snort
Snort 為一個免費開放原始碼的網路入侵偵測系統,它能執行即時的流量分析和封
包偵測,具有網路資料即時分析、報告以及日誌的能力。它也能執行通訊協定分析
、內容搜尋與比對、以及可使用來偵測各種攻擊,例如:CGI 攻擊、緩衝區溢出、
異常埠的掃描、作業系統特徵攻擊…等等,可以將警告資訊寫到 syslog、或特定的
文件檔;如果有人試著 telnet 或是 ftp 你的機器時,你可將這些動作紀錄或是設
定用 Winpopup 的方式告知其他 windows 的機器。

Snort 有三種主要模式:封包嗅探器、封包記錄器或成熟的侵入探測系統。遵循開
發/自由軟體最重要的慣例,Snort 支援各種形式的插件、擴充和定制,包括資料庫
或是 XML 記錄、統計的異常探測等。封包有效載荷探測是 Snort 最有用的一個特
點,這就意味著很多額外種類的敵對行可以被探測到。 Snort 使用一個較彈性規
則的語言來描述需要收集或略過的流量,以及一個使用模組化 plugin 架構的偵測
引擎。Snort 有三個主要的使用方式,它可以直接被當作如 tcpdump 一樣的封包嗅
探器,或當做網路流量的封包日誌,或當作一個完整的網路入侵偵測系統。Snort
屬於一種輕量級的網路入侵偵測系統 (NIDS),它容易安裝設定,它目前可以偵測超
過1100種潛在的安全弱點。

三、其他安全工具
因為篇幅的關係,沒辦法繼續介紹其他有用的安全工具。在此簡列一些常用的安全工
具:

工具名稱(工具作用)
Sxid(檢查系統中的 suid,sgid 以及沒有主人的文件)
skey(一次性密碼工具)
logrotate(日誌循環工具)
logcheck(日誌管理工具)
swatch(日誌管理工具,比 logcheck 即時)
Ssh(openssh)(提供安全的連線認證)
openssl(提供加密的資料傳送和認證)
Portsentry(反掃瞄工具,監視自己的udp和tcp連接埠)
gnupg(對單個文件進行加密以及建立數位簽章)
hostsentry(基於主機的入侵偵測,將連線記入日誌)
ipchains(Linux發行版內建的封包過濾形防火牆)
CFS和TCFS(密碼文件系統和透明的密碼文件系統實作目錄下所有文件加密,基於 NFS)
Anti-sniff(反嗅探工具,檢查網路中是否有探測器)
Freeswan(在 linux 實作 VPN 的工具)
Syslog-ng(替代 syslog 的日誌文件系統)
Scandns(進行 dns 檢查追蹤的工具)
Whisker Cgi(掃瞄器)
Snoopy(透過追蹤 execve 系統呼叫記錄執行的指令)
Linux kernel patch(核心的安全修正檔,防止緩衝區溢位等)
krnsniff(一個基於核心的監聽模組)
iptable(用來替代ipchains的封包過濾防火牆)
Imsafe(透過追蹤系統呼叫來偵測緩衝區溢位等問題)
Iplog(對來往的封包進行日誌記錄)
Solaris designer(核心修正檔,防止緩衝區溢位等)
Stackguard(作為修正檔修補gcc,防止緩衝區溢位)
DTK(Honey port欺騙式防禦)
Antiroute(阻止和記錄基於路由的追蹤)

(資料來源:http://www2.tw.ibm.com/developerWorks/tutorial/SelectTutorial.do?
tutorialId=268)

四、結論
沒有一個系統是完美無缺的,根據資料顯示 Linux 最新版的內核升級距上次升級不
到二個月,由此可知系統漏洞實在是無可避免的。我們所能做的就是盡量維護系統的安全
,時時關心最新安全漏洞以及安全新聞,定時的將系統或應用程式更新,以防被入侵。而
本篇也介紹了一些常用的安全工具,雖然不一定能確保系統能百分之百安全,但是讓一般
使用者也能知道如何做到防範您的Linux系統安全。

參考資料:
1.Bobby S. Wen, Security Tools in Linux Distributions,Linux Journal 2002
2.TCPWrippers工具簡介
http://www./
http://www./README.tcpwrappers
3.Tripwire工具簡介
http:///securitypronews-24-20020226An-Introduction-to-Tripwire.html
http://www./qanda/index.php#1
http://www2.tw.ibm.com/developerWorks/tutorial/SelectTutorial.do?tutorialId=268
3.Logcheck工具簡介
Securing and Optimizing Linux: RedHat Edition -A Hands on Guide, Chapter 14.
Software -Security/Monitoring, Logcheck.
http://www./docs/Securing-Optimizing-v1.3/chap14sec114.html
http://www./articles/3540/
4.Nmap工具簡介
http://www./nmap/index.html
http://www./nmap/nmap_doc.html
5.Snort工具簡介
http://www./about.html
http://www./cgi-bin/classnotes/wiki.pl?UNIX03/Introduction_To_Snort
6.Nessus工具簡介
http://www./intro.html
http://www./features.html
 

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多