Linux中國

在CentOS上配置基於主機的入侵檢測系統(IDS)

AIDE (「高級入侵檢測環境」的簡稱)是一個開源的基於主機的入侵檢測系統。AIDE通過檢查大量文件屬性的不一致性來檢查系統二進位文件和基本配置文件的完整性,這些文件屬性包括許可權、文件類型、索引節點、鏈接數、鏈接名、用戶、組、文件大小、塊計數、修改時間、添加時間、創建時間、acl、SELinux安全上下文、xattrs,以及md5/sha校驗值在內的各種特徵。

AIDE通過掃描一台(未被篡改)的Linux伺服器的文件系統來構建文件屬性資料庫,以後將伺服器文件屬性與資料庫中的進行校對,然後在伺服器運行時對被修改的索引了的文件發出警告。出於這個原因,AIDE必須在系統更新後或其配置文件進行合法修改後重新對受保護的文件做索引。

對於某些客戶,他們可能會根據他們的安全策略在他們的伺服器上強制安裝某種入侵檢測系統。但是,不管客戶是否要求,系統管理員都應該部署一個入侵檢測系統,這通常是一個很好的做法。

在 CentOS或RHEL 上安裝AIDE

AIDE的初始安裝(同時是首次運行)最好是在系統剛安裝完後,並且沒有任何服務暴露在互聯網甚至區域網時。在這個早期階段,我們可以將來自外部的一切闖入和破壞風險降到最低限度。事實上,這也是確保系統在AIDE構建其初始資料庫時保持乾淨的唯一途徑。(LCTT 譯註:當然,如果你的安裝源本身就存在安全隱患,則無法建立可信的數據記錄)

出於上面的原因,在安裝完系統後,我們可以執行下面的命令安裝AIDE:

 # yum install aide 

我們需要將我們的機器從網路斷開,並實施下面所述的一些基本配置任務。

配置AIDE

默認配置文件是/etc/aide.conf,該文件介紹了幾個示例保護規則(如FIPSR,NORMAL,DIR,DATAONLY),各個規則後面跟著一個等號以及要檢查的文件屬性列表,或者某些預定義的規則(由+分隔)。你也可以使用此種格式自定義規則。

FIPSR = p+i+n+u+g+s+m+c+acl+selinux+xattrs+sha256
NORMAL = FIPSR+sha512

例如,上面的例子說明,NORMAL規則將檢查下列屬性的不一致性:許可權(p)、索引節點(i)、鏈接數(n)、用戶(u)、組(g)、大小(s)、修改時間(m)、創建時間(c)、ACL(acl)、SELinux(selinux)、xattrs(xattr)、SHA256/SHA512校驗和(sha256和sha512)。

定義的規則可靈活地用於不同的目錄和文件(用正則表達式表示)。

條目之前的感嘆號(!)告訴AIDE忽略子目錄(或目錄中的文件),對於這些可以另外定義規則。

在上面的例子中,PERMS是用於/etc機器子目錄和文件的默認規則。然而,對於/etc中的備份文件(如/etc/.*~)則不應用任何規則,也沒有規則用於/etc/mtab文件。對於/etc中的其它一些選定的子目錄或文件,使用NORMAL規則替代默認規則PERMS。

定義並應用正確的規則到系統中正確的位置,是使用AIDE最難的一部分,但作一個好的判斷是一個良好的開始。作為首要的一條規則,不要檢查不必要的屬性。例如,檢查/var/log或/var/spool裡頭的文件的修改時間將導致大量誤報,因為許多的應用程序和守護進程經常會寫入內容到該位置,而這些內容都沒有問題。此外,檢查多個校驗值可能會加強安全性,但隨之而來的是AIDE的運行時間的增加。

可選的,如果你使用MAILTO變數指定電子郵件地址,就可以將檢查結果發送到你的郵箱。將下面這一行放到/etc/aide.conf中的任何位置即可。

MAILTO=root@localhost

首次運行AIDE

運行以下命令來初始化AIDE資料庫:

 # aide --init 

根據/etc/aide.conf生成的/var/lib/aide/aide.db.new.gz文件需要被重命名為/var/lib/aide/aide.db.gz,以便AIDE能讀取它:

 # mv /var/lib/aide/aide.db.new.gz /var/lib/aide.db.gz 

現在,是時候來將我們的系統與資料庫進行第一次校對了。任務很簡單,只需運行:

 # aide 

在沒有選項時,AIDE假定使用了--check選項。

如果在資料庫創建後沒有對系統做過任何修改,AIDE將會以OK信息來結束本次校對。

生產環境中管理AIDE

在構建了一個初始AIDE資料庫後,作為不斷進行的系統管理活動,你常常需要因為某些合法的理由更新受保護的伺服器。每次伺服器更新後,你必須重新構建AIDE資料庫,以更新資料庫內容。要完成該任務,請執行以下命令:

 # aide --update 

要使用AIDE保護生產系統,可能最好通過任務計劃調用AIDE來周期性檢查不一致性。例如,要讓AIDE每天運行一次,並將結果發送到郵箱:

 # crontab -e 
0 0 * * * /usr/sbin/aide --check | /usr/bin/mail -s "AIDE run for $HOSTNAME" your@email.com

測試AIDE檢查文件篡改

下面的測試環境將演示AIDE是如何來檢查文件的完整性的。

測試環境 1

讓我們添加一個新文件(如/etc/fake)。

# cat /dev/null > /etc/fake 

測試環境 2

讓我們修改文件許可權,然後看看它是否被檢測到。

 # chmod 644 /etc/aide.conf 

測試環境 3

最後,讓我們修改文件內容(如,添加一個注釋行到/etc/aide.conf)。

echo "#This is a comment" >> /etc/aide.conf 

上面的截圖中,第一欄顯示了文件的屬性,第二欄是AIDE資料庫中的值,而第三欄是更新後的值。第三欄中空白部分表示該屬性沒有改動(如本例中的ACL)。

結尾

如果你曾經發現你自己有很好的理由確信系統被入侵了,但是第一眼又不能確定到底哪些東西被改動了,那麼像AIDE這樣一個基於主機的入侵檢測系統就會很有幫助了,因為它可以幫助你很快識別出哪些東西被改動過,而不是通過猜測來浪費寶貴的時間。

via: http://xmodulo.com/host-intrusion-detection-system-centos.html

作者:Gabriel Cánepa 譯者:GOLinux 校對:wxy

本文由 LCTT 原創翻譯,Linux中國 榮譽推出


本文轉載來自 Linux 中國: https://github.com/Linux-CN/archive

對這篇文章感覺如何?

太棒了
0
不錯
0
愛死了
0
不太好
0
感覺很糟
0
雨落清風。心向陽

    You may also like

    Leave a reply

    您的電子郵箱地址不會被公開。 必填項已用 * 標註

    此站點使用Akismet來減少垃圾評論。了解我們如何處理您的評論數據

    More in:Linux中國