KaliLinux 2017.1: AIDEでファイルの整合性をチェックする

AIDEでファイルの整合性をチェックする方法について記載します。

1 AIDEをインストールする前に

あらかじめこちらの手順でPostfixをインストールしておきます。

2 AIDEのインストール

aideパッケージをインストールします。

$ sudo apt install -y aide

3 /etc/aide/aide.conf.d/10_aide_distributionの修正

aideinitを実行すると以下のエラーが発生します。

$ sudo aideinit
Running aide --init...
77:syntax error:Rolling
77:Error while reading configuration:Rolling
Configuration error
AIDE --init return code 17

以下のように/etc/aide/aide.conf.d/10_aide_distributionを修正します。

$ sudo sed -e \
"s;head -n 1 /etc/debian_version;head -n 1 /etc/debian_version | sed 's/[[:space:]]\\\+/_/g';g" \
-i /etc/aide/aide.conf.d/10_aide_distribution

4 データベースの作成

aideinitでデータベースを作成します。aideinitはaide –initのラッパースクリプトです。

aideinitはデータベースaide.db.newを作成してaide.dbへコピーします。

/var/lib/aide/aide.db.new
/var/lib/aide/aide.db

他のディストリと異なり、設定ファイルは/etc/aide.confではなく、以下のファイルになります。/etc/aide.confがないので、直接aideを実行するとエラーになります。/etc/aide/aide.conf.d/*は各種パッケージ向けの設定が記述されています。

/etc/aide/aide.conf
/etc/aide/aide.conf.d/*

5 ファイルの整合性をチェックする

aide.wrapper –checkでファイルの整合性をチェックします。aide.wrapper –updateでファイルの整合性をチェックしつつ、新たなデータベースaide.db.newを作成します。aide.dbへのコピーが必要です。

$ sudo aide.wrapper --check
<snip>
$ echo $?
0

ファイルに変更があった場合は戻り値が0以外の値になります。

$ sudo mv /usr/sbin/ip /usr/sbin/ip.orig
$ echo "modified" | sudo tee /usr/sbin/ip
$ sudo aide.wrapper --check
<snip>
$ echo $?
4

なお、aide.wrapperを実行するよりもcronジョブの/etc/cron.daily/aideを実行すると良いでしょう。

$ sudo /etc/cron.daily/aide

6 aideを実行するcronジョブ

aide.wrapper –updateと作成されたデータベースaide.db.newをaide.dbへコピーするcronジョブが用意されています。結果をメール送信してくれます。

/etc/cron.daily/aide

このcronジョブの設定ファイルは以下のファイルです。メールの送信先は${MAILTO}@${FQDN}です。

/etc/default/aide

/etc/default/aideでFQDNを定義しない場合はhostname -fの値が使われます。この記事ではFQDNをlocalhostに設定します。MAILTOのデフォルト値はrootです。必要に応じて変更してください。

$ sudo sed -e 's/^# FQDN=/FQDN=localhost/g' \
       -e 's/^MAILTO=root/MAILTO=root@${FQDN}/g' \
       -i /etc/default/aide

これ以降、1日1回root@localhostへメールが送信されます。Postfixの設定でgmailに送信できるようにしておけば、gmailへも送信できます。