在CentOS 7上使用Tripwire 監控、檢測系統文件完整性

在CentOS 7上使用Tripwire監控和檢測修改的文件

Tripwire是一個免費的開源入侵檢測系統(IDS)。 它是用於監視和警告系統上文件更改的安全工具。 Tripwire是一個功能強大的IDS,能夠保護您的系統免受沒必要要的更改。 您可使用它來監控您的系統文件,包括網站文件,所以當有不須要的文件更改時,Tripwire會檢查您的系統,若是設置正確,能夠經過電子郵件提醒您。php

在本教程中,咱們將向您展現如何使用CentOS 7系統上的Tripwire監控和檢測系統文件中的任何更改。 咱們將向您展現如何在CentOS 7上安裝和配置Tripwire,如何生成Tripwire密鑰文件,配置和添加tripwire策略,檢查系統以及爲tripwire和cron設置啓用電子郵件通知。html

咱們將要作什麼

  1. 在CentOS 7上安裝Tripwire
  2. 爲CentOS 7配置Tripwire策略
  3. 驗證Tripwire配置
  4. 向Tripwire政策添加新規則
  5. 設置Tripwire電子郵件通知和Cron

先決條件

  • CentOS 7系統
  • 根特權

第1步 - 在CentOS 7上安裝Tripwire

咱們必須作的第一步是將Tripwire安裝到系統上。 默認狀況下,tripwire在CentOS 7存儲庫中可用。git

登陸到您的服務器並更新全部軟件包。github

ssh root@hakase-labs.co
sudo yum update -y數據庫

如今使用yum安裝Tripwire。vim

yum -y install tripwirecentos

安裝完成後,咱們須要生成新的密鑰文件。安全

Tripwire使用2個關鍵文件。bash

  1. site-key:它用於保護Tripwire配置。 所以,除非咱們再次生成配置,不然對tripwire配置所作的任何更改都不會生效,咱們會提示您輸入「site-key」密碼。
  2. local-key:它用於驗證tripwire二進制文件。 當咱們想要更新tripwire系統數據庫時,咱們須要運行tripwire命令,而且會提示咱們輸入'local-key'的密碼。

咱們使用下面的命令生成新的tripwire密鑰文件(站點和本地密鑰)。服務器

sudo tripwire-setup-keyfiles

該命令將生成兩個密鑰文件「site-key」和「local-key」,而且您將被要求輸入每一個密碼。

輸入您本身的「 網站密鑰 」密碼,而後按Enter鍵。

設置sitekey密碼

輸入您本身的「 本地密鑰 」密碼並再次按Enter鍵。

設置本地密鑰

接下來,使用'site-key'簽署tripwire配置。

輸入您的「 網站密鑰 」密碼。

配置站點密鑰

如今,爲了簽署Tripwire政策,請輸入您的「 本地密鑰 」密碼。

簽署tripwire政策

Tripwire已安裝在CentOS 7上,新的tripwire配置和密鑰位於'/ etc / tripwire'目錄中。

第2步 - 爲CentOS 7配置Tripwire策略

在咱們第一步討論的tripwire安裝以後,咱們須要初始化tripwire數據庫並確保沒有錯誤。

使用下面的tripwire命令初始化tripwire數據庫。

sudo tripwire --init

您將被問到「local-key」密碼短語,您可能會收到錯誤消息「no such directory」,以下所示。

在CentOS上配置tripwire策略

咱們獲得錯誤是由於系統沒有在tripwire配置中已經定義的目錄和文件。 爲了解決這個錯誤,咱們須要編輯tripwire配置'twpol.txt'並從新簽署tripwire配置。

如今使用下面的命令從tripwire生成日誌錯誤。

sudo sh -c "tripwire --check | grep Filename > no-directory.txt"

全部不存在於CentOS 7系統上的目錄和文件都列在文件'mo-directory.txt'中

cat no-directory.txt

cat no-directory.txt

使用如下bash腳本編輯tripwire配置'twpol.txt' - 在終端上運行此腳本。

for f in $(grep "Filename:" no-directory.txt | cut -f2 -d:); do
sed -i "s|\($f\) |#\\1|g" /etc/tripwire/twpol.txt
done

畢竟,咱們須要使用twadmin命令從新生成並從新簽署tripwire配置,以下所示。

sudo twadmin -m P /etc/tripwire/twpol.txt

輸入您的「網站密鑰」密碼。

從新初始化tripwire數據庫,並確保沒有錯誤。

sudo tripwire --init

從新初始化tripwire數據庫,沒有任何錯誤。

twadmin命令

第3步 - 驗證Tripwire配置和檢查系統

要驗證tripwire配置,咱們能夠運行系統檢查命令以下。

sudo tripwire --check

你應該獲得相似於如下的結果。

驗證Tripwire配置和檢查系統

因此這意味着在咱們的系統上沒有發現錯誤和系統違規。

如今咱們將嘗試在根目錄下添加一個新文件,並使用tripwire再次檢查。

轉到根目錄並建立一個新文件'hakase-labs.txt'。

cd ~/
touch hakase-labs.txt

如今使用tripwire命令再次檢查系統。

sudo tripwire --check

您將在系統中獲得嚴重程度爲100的新違規的結果,以下所示。

tripwire檢查

在這個階段,Tripwire爲CentOS 7系統安裝和配置。

第4步 - 將新規則添加到Tripwire策略

在這一步中,咱們將向您展現如何將新規則添加到tripwire策略配置「twpol.txt」。

要執行這項工做,咱們須要定義規則名稱,嚴重程度,監視目錄和文件類型。 在這一步中,咱們將在'/ var / www /'目錄下爲咱們的WordPress安裝建立一個名爲'Wordpress Data'的新規則,嚴重程度爲'HIGH / SIG_HI',而且該目錄中的全部文件都是關鍵的以及源代碼不能更改)。

轉到tripwire配置目錄'/ etc / tripwire'並使用vim編輯配置文件'twpol.txt'。

cd /etc/tripwire/
vim twpol.txt

轉到該行的末尾,並在那裏粘貼如下WordPress規則。

# Ruleset for Wordpress
 (
   rulename = "Wordpress Data",
   severity= $(SIG_HI)
 )
 {
         /var/www        -> $(SEC_CRIT);
 }

保存並退出。

使用twadmin命令從新生成並從新簽名配置,以下所示。

sudo twadmin -m P /etc/tripwire/twpol.txt

輸入您的「網站密鑰」密碼。

如今咱們須要再次從新生成tripwire數據庫。

sudo tripwire --init

輸入「本地密鑰」密碼。

新的規則集已添加並應用於Tripwire策略配置。

從新簽署配置

使用下面的tripwire命令檢查您的系統。

sudo tripwire --check

你應該獲得結果說沒有錯誤和違反。

使用tripwire檢查違規行爲

如今進入'/ var / www /'目錄並在其中建立一個新文件。

cd /var/www/
touch hakase-labs.php

建立一個測試文件

再次使用tripwire進行系統檢查。

sudo tripwire --check

而且您將在安全級別爲高100的'/ var / www /'目錄中獲得說明系統違規的結果。

測試結果

新規則已添加並應用於Tripwire策略配置。

第5步 - 安裝Tripwire電子郵件通知和Cron

在這一步中,咱們將爲特定tripwire規則集策略配置通知,並配置用於自動系統檢查的cronjob。 咱們會將任何違反'WordPress數據'規則的報告發送到電子郵件地址' myemail@gmail.com '。

對於電子郵件通知,tripwire在配置中提供了一個'emailto'功能。 默認狀況下,tripwire使用Postfix或Sendmail經過電子郵件發送報告。

在配置電子郵件通知以前,請使用如下命令測試tripwire通知功能。

sudo tripwire --test --email email@gmail.com

檢查你的電子郵件,你應該從你的服務器獲得電子郵件報告以下。

Tripwire經過電子郵件報告

如今進入'/ etc / tripwire'目錄並編輯'twpol.txt'配置。

cd /etc/tripwire/
vim twpol.txt

在'WordPress數據'規則中添加新行'emailto',以下所示。

# Ruleset for Wordpress
 (
   rulename = "Wordpress Data",
   severity= $(SIG_HI),
   emailto = myemail@gmail.com
 )
 {
         /var/www        -> $(SEC_CRIT);
 }

保存並退出。

使用twadmin命令從新生成並簽署配置。

sudo twadmin -m P /etc/tripwire/twpol.txt

輸入您的「網站密鑰」密碼。

並從新生成tripwire數據庫。

sudo tripwire --init

輸入您的tripwire'local-key'密碼。

Tripwire電子郵件通知的配置已完成。

生成並簽署配置

如今經過在'/ var / www /'目錄中再次建立一個新文件來作一些測試。

cd /var/www/
touch hakase.txt

使用下面的命令再次檢查您的系統。

sudo tripwire --check --email-report

注意:

  • --email-report:將系統報告發送到每一個規則中定義的電子郵件地址。

檢查你的電子郵件,你應該在電子郵件中獲得以下結果。

電郵報告

Tripwire的電子郵件通知已啓用並應用。

接下來,咱們將使用cron setup啓用自動Tripwire系統檢查。 爲此,請使用下面的crontab命令在root用戶下建立一個新的cron腳本。

sudo crontab -e -u root

粘貼如下cron配置。

0 0 * * * tripwire --check --email-report

保存並退出。

注意:

  • - cron腳本將天天進行tripwire系統檢查。

如今從新啓動CentOS 7上的crond服務。

systemctl restart crond

設置tripwire cronjob

如今,您將天天收到tripwire報告通知到您的電子郵件。

Tripwire已經安裝並配置用於CentOS 7系統。

參考:

相關文章
相關標籤/搜索