有名なのはTripwireかもしれないけど、ここでは昔から使い慣れたaideを導入する。
aideではコンフィグファイルに記述することで、どのファイル、ディレクトリについてどのような検知方法をするかを設定することができる。
改竄されてから導入しても意味がないので、aideやTripwireはインストールしたらすぐに導入するのがいいだろう。
aideが導入されているかを調べる。
# yum list aide Loading "installonlyn" plugin Setting up repositories core 100% |=========================| 1.1 kB 00:00 updates 100% |=========================| 1.2 kB 00:00 extras 100% |=========================| 1.1 kB 00:00 Reading repository metadata in from local files primary.xml.gz 100% |=========================| 1.6 MB 00:05 ################################################## 5232/5232 Available Packages aide.i386 0.12-2.fc6.1 extras
一見「インストールされているのかな?」と思ってしまうかもしれないが、aide.i386の行の一番右側を見ると「extras」となっており、インストールされていないことがわかる。
(インストールされている場合は、「extras」ではなく「installed」となる。)
インストールされている場合は、次の手順まで読み進む。
インストールされていない場合は、下記のようにyumを利用してインストールする。
「yum -y install aide」と入力することで、途中の「Is this ok [y/N]: y」部分での入力が不要になる。
# yum install aide Loading "installonlyn" plugin Setting up Install Process Setting up repositories Reading repository metadata in from local files Parsing package install arguments Resolving Dependencies --> Populating transaction set with selected packages. Please wait. ---> Downloading header for aide to pack into transaction set. aide-0.12-2.fc6.1.i386.rp 100% |=========================| 6.0 kB 00:00 ---> Package aide.i386 0:0.12-2.fc6.1 set to be updated --> Running transaction check --> Processing Dependency: libmhash.so.2 for package: aide --> Restarting Dependency Resolution with new changes. --> Populating transaction set with selected packages. Please wait. ---> Downloading header for mhash to pack into transaction set. mhash-0.9.2-5.i386.rpm 100% |=========================| 4.2 kB 00:00 ---> Package mhash.i386 0:0.9.2-5 set to be updated --> Running transaction check Dependencies Resolved ============================================================================= Package Arch Version Repository Size ============================================================================= Installing: aide i386 0.12-2.fc6.1 extras 113 k Installing for dependencies: mhash i386 0.9.2-5 extras 141 k Transaction Summary ============================================================================= Install 2 Package(s) Update 0 Package(s) Remove 0 Package(s) Total download size: 254 k Is this ok [y/N]: y Downloading Packages: (1/2): aide-0.12-2.fc6.1. 100% |=========================| 113 kB 00:00 (2/2): mhash-0.9.2-5.i386 100% |=========================| 141 kB 00:00 Running Transaction Test Finished Transaction Test Transaction Test Succeeded Running Transaction Installing: mhash ######################### [1/2] Installing: aide ######################### [2/2] Installed: aide.i386 0:0.12-2.fc6.1 Dependency Installed: mhash.i386 0:0.9.2-5 Complete!
インストールが完了したら、aideのデータベースを初期化する。
# aide --init AIDE, version 0.12 ### AIDE database at /var/lib/aide/aide.db.new.gz initialized.
初期化が完了したら、aideのデータベースファイルをコピーする。
# cp /var/lib/aide/aide.db.new.gz /var/lib/aide/aide.db.gz
これでファイルを改竄を検知する用意ができたので、早速チェックしてみる。
aideのオプションは「–update」を利用する。
「–check」では、新しくデータベースを作りなおさないので、1度検知したものが永遠に検知され続ける。
# aide --update AIDE, version 0.12 ### All files match AIDE database. Looks okay! ### New AIDE database written to /var/lib/aide/aide.db.new.gz
上の例では、改竄されたファイルが見つからなかった。
aideではupdateオプションを使用した際、/var/lib/aide/aide.db.new.gzというファイルが更新されるが、 /var/lib/aide/aide.db.gzに上書きしないと、いつまでも古いデータベースがつかわれ続けることになるので、スクリプトを作成し、自動的にチェックしたらデータベースを更新するようにする。
# mkdir /root/mainte # vi /root/mainte/aide.sh #!/bin/bash /usr/sbin/aide --update /bin/cp -fr /var/lib/aide/aide.db.new.gz /var/lib/aide/aide.db.gz # chmod 755 /root/mainte/aide.sh
自動的にデータベースを更新するスクリプトを作成したら、crondを利用して定期的にチェックするようにする。
# vi /etc/cron.d/aide 00 02 * * * root /root/mainte/aide.sh
これで毎日、午前2時にチェックするように設定ができた。
00の部分が、分、02の部分が時を表しているので、環境によって変えても良い。
*の後ろに書いてあるrootは実行するユーザの名前だが、aideはroot権限でないと、読み込めないファイルがあるため、rootとする。
crondを利用した場合、標準出力があると実行したユーザ宛てに標準出力をメールで送信するため、この設定では、aideで検知した内容はroot宛てにメールで飛ぶようになっている。
コメント