歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux綜合 >> Linux資訊 >> 更多Linux

aide使用手冊

什麼是AIDE AIDE(Adevanced Intrusion Detection Environment,高級入侵檢測環境)是一個入侵檢測工具,主要用途是檢查文件的完整性。 AIDE能夠構造一個指定文件的數據庫,它使用aide.conf作為其配置文件。AIDE數據庫能夠保存文件的各種屬性,包括:權限(permission)、索引節點序號(inode number)、所屬用戶(user)、所屬用戶組(group)、文件大小、最後修改時間(mtime)、創建時間(ctime)、最後訪問時間(atime)、增加的大小以及連接數。AIDE還能夠使用下列算法:sha1、md5、rmd160、tiger,以密文形式建立每個文件的校驗碼或散列號。 在系統安裝完畢,要連接到網絡上之前,系統管理員應該建立新系統的AIDE數據庫。這第一個AIDE數據庫是系統的一個快照和以後系統升級的准繩。數據庫應該包含這些信息:關鍵的系統二進制可執行程序、動態連接庫、頭文件以及其它總是保持不變的文件。這個數據庫不應該保存那些經常變動的文件信息,例如:日志文件、郵件、/proc文件系統、用戶起始目錄以及臨時目錄。 一旦發現系統被侵入,系統管理員可能會使用ls、ps、netstat以及who等系統工具對系統進行檢查,但是所有這些工具都可能被特洛伊木馬程序代替了。可以想象被修改的ls程序將不會顯示任何有關入侵的文件信息,ps也不會顯示任何入侵進程的信息。即使系統管理員已經把關鍵的系統文件的日期、大小等信息都打印到了紙上,恐怕也無法通過比較知道它們是否被修改過了,因為文件日期、大小等信息是非常容易改變的,一些比較好的rootkit可以很輕松地對這些信息進行假冒。 雖然文件的日期、大小等信息可能被假冒,但是假冒某個文件的一個加密校驗碼(例如:mk5)就非常困難了,更不要說假冒所有AIDE支持的校驗碼了。在系統被侵入後,系統管理員只要重新運行AIDE,就能夠很快識別出哪些關鍵文件被攻擊者修改過了。 不過,要注意這也不是絕對的,因為AIDE可執行程序的二進制文件本身可能被修改了或者數據庫也被修改了。因此,應該把AIDE的數據庫放到安全的地方,而且進行檢查時要使用保證沒有被修改過的程序。 編譯 快速安裝 如果你已經安裝了所有所需的軟件,只要輸入以下命令,就可以安裝好AIDE了。 #tar zxvf aide-版本號.tar.gz #cd aide-版本號 #./configure #make #make install 獲取所需的軟件 在編譯安裝AIDE之前,應該首先獲取以下軟件: ANSI C編譯器(例如:GCC)。 GNU Flex GNU Bison GNU Make Aide源代碼 如果你想要mhash支持需要安裝mhash庫。 如果你想使用PostgreSql保存AIDE數據庫,需要安裝PostgreSql開發庫 然後,就可以解壓aide源代碼包,准備安裝了 tar zxvf aide-版本號.tar.gz 配置編譯選項 下面,你就可以使用configure腳本對各種編譯選項進行配置了。可以輸入./configure --help命令獲得幫助信息。其中的大部分選項,你不必關心。一般只需要設置以下選項: --with-mhash 使用這個選項加入mhash的支持。 --with-gnu-regeXP 使用GNU正則表達式庫 --prefix= 改變默認的安裝路徑 --with-psql 加入對PostgreSQL的支持 編譯安裝 輸入make命令進行安裝,然後輸入make install命令將aide安裝到指定的目錄。 配置 接下來,你需要建立一個配置文件。aide的配置文件是aide.conf,其語法和Tripwire的配置文件極為相似,Tripwire的配置文件tw.conf可以很輕松轉換為aide.conf。 aide.conf文件中的內容是大小寫敏感的,而且開頭和結尾的空格都被忽略。 aide.conf文件中有三種類型的語句: 配置選項 設置配置參數以及定義/取消定義變量。 選擇選項 選擇加入數據庫的文件。 宏 這些選項中,只有選擇選項是必須的。以#開頭的行是注釋行,它們將被忽略。 配置選項 配置選項的一般格式是參數=值。 database aide要讀的數據庫。只能有一個,如果定義多個,aide就會使用第一個,默認值是./aide.db。 database_out 要輸出的新數據庫。只能有一個,如果定義了多個,aide就會使用第一個,默認值是./aide.db.new。 verbose 輸出信息的級別。值可以在0-255之間。這個參數只能被定義一次。如果運行aide時,使用了--verbose或者-V命令行,aide就會使用這個參數定義的值。默認是5。在執行--check或者--update操作時,如果這個值是20,aide就會輸出額外的報告信息。 report_url 報告信息從哪個URL輸出。這個參數可以定義多個事例。aide會把輸出送到所有定義的URL。默認值是標准輸出(stdout)。 gzip_dbout 是否對輸出的數據庫進行壓縮。有效的值有yes、true、no、false。默認值是no。只有編譯時連接了zlib庫,這個選項才會生效。 組定義 如果參數不是上面的任何參數,AIDE就認為這是一個組的定義。值就被認作是一個表達式。表達式是如下格式: <預定義的組><表達式>+<預定義的組> <表達式>-<預定義的組> 請參考DEFAULT GROUPS關於默認預定義組的解釋。 有一個特別的組叫作ignore_list。這個預定義組列出不在最後的報告中顯示的組。 選擇選項 選擇選項有三種類型:regular、negative、equals。以/開始就是正則(regular)選擇選項;以!開頭就是否定(negative)選擇選項;以=打頭就是等於(equals)選擇選項。AIDE將把這些符號之後的字符串看作對文件名(包括目錄)進行匹配的正則表達式。要獲得更深入的解釋,請參考配置選項。 宏 @@define VAR var 把變量VAR的值定義為var。 @@undef VAR 取消VAR變量的定義。 @@ifdef VAR,@@ifndef VAR @@ifdef是一個if狀態的開始,一個if狀態必須以@@endif宏結束。@@ifdef和@@endif之間的選項取決於變量VAR是否被定義。如果在@@ifdef和@@endif之間使用了@@else宏,就表示如果VAR變量已經定義就使用@@ifdef和@@else之間的選項;否則就使用@@else和@@endif之間的選項。@@ifndef在邏輯上和@@ifdef相反的,用法差不多。 @@{VAR} 使用VAR變量的值代替@@{VAR}。如果變量VAR沒有定義就使用一個空字符串。 @@ifhost hostname,@@ifnhost hostname 用法和@@ifdef類似。檢查hostname是否等於運行AIDE的主機名。hostname是主機名,不包括域名。 @@else if狀態else部分的開始 @@endif if狀態的結束 URL AIDE當前支持的URL如下。注意:輸入的URL不能和輸出的URL相同,反之亦然。 stdout,stderr 輸出到標准輸出設備或者標准錯誤輸出設備 stdin 從標准輸入設備輸入 file://filename 從文件filename輸入,或者輸出到文件filename。 fd:number 從文件描述符number輸入或者輸出。 aide的後續版本將會支持更多的URL,例如:email報告,syslog等。 DEFAULT GROUPS AIDE默認的組有以下這些: p 權限 inode 索引節點 n 連接數量 u 用戶 g 用戶組 s 大小 m 最後一次修改時間 a 最後一次訪問時間 c 創建時間 S 檢查增加的大小 md5 md5校驗 sha1 sha1校驗 rmd160 校驗 tiger tiger校驗 R p+i+n+u+g+s+m+c+md5 L p+i+n+u+g E 空組 > 增長的日志文件p+u+g+i+n+S 如果在編譯時,加入了mhash庫的支持,還可以使用如下的組: crc32 crc32校驗 haval haval校驗 gost gost校驗 例子 / R 將機器上的所有文件都加入數據庫。使用md5對文件的權限、索引節點、連接數量、用戶、用戶組、大小、最後修改時間以及創建時間進行校驗。 !/dev 忽略/dev目錄 =/tmp$ 只把/tmp目錄加入到數據庫,不包括其子目錄。 ALL=p+i+n+u+g+s+m+c+a+md5+sha1+tiger+rmd160 定義了一個新的組。包括所有的屬性和所有的md校驗功能。 通常,進行配置時,要盡量忽略經常8變動的目錄和文件,例如:臨時目錄、郵件spool目錄、日志目錄、porc文件系統、用戶起始目錄、WEB正文目錄以及其它經常變動的目錄和文件。此外,要盡量包含所有的系統二進制文件、庫文件、包含文件、系統源文件。其它一些你不經常注意的文件和目錄,例如:/dev、usr/man/*、/usr/包含在內。 注意:如果你只想包含單個文件,就應該在表達式的結尾加$。例如:=/tmp$,表示只把tmp目錄加入,而不包括其子目錄。 使用 使用AIDE的第一件事當然是建立一個數據庫,以便將來檢查。這項工作要在系統或者應用程序安裝完畢以後,要連接到網絡上之前進行。可以使用以下參數啟動AIDE完成這項工作: aide --init 數據庫產生後一定要放到一個安全的地方。 aide有兩種參數:命令參數和選項參數,以下是aide的命令參數: --check 檢查數據庫的一致性。需要一個初始化的AIDE數據庫。也是AIDE的默認命令選項。 --init 初始化一個數據庫 --update 檢查數據庫,並且以非交互的方式升級數據庫。輸入的數據庫和輸出的數據庫必須是不同的。 選項參數: --config=configfile 指定configfile文件作為配置文件,不使用默認的./aide.conf。如果使用-,aide就從標准輸入中讀取。 --before=configparameters 在讀取配置文件之前,首先處理configparameters指定的配置選項。 --after=configparameters 處理完配置文件設置的配置選項以後,再處理configparameters設置的配置選項。 --verbose=verbosity_level,-V verbosity_level 控制aide信息顯示的冗余程度。值在0到255之間。 --report=reporter,-r 指定報告輸出的URL。 --version,-v 顯示版本號 --help,-h 顯示幫助信息 aide是一個Tipwire的替代和擴展軟件,它有一些Tripwire所不具備的特征。aide當前具備的特征包括:多種完整性檢驗算法、把數據庫輸出到標准輸出設備/文件的能力、通過配置文件進行配置以及數據庫壓縮支持。將來aide會提高更多的特征。






Copyright © Linux教程網 All Rights Reserved