ルートキットに関しては Wikipedia さんにお任せで。
インストール
いつも通りyumでインストール。
yum install epel-release
yum install rkhunter
アップデート
定義ファイルを最新にアップデートする。
rkhunter --update
rkhunter --propupd
実行
実行してみる。
rkhunter --check --skip-keypress
[ Rootkit Hunter version 1.4.6 ]
Checking system commands...
Performing 'strings' command checks
Checking 'strings' command [ OK ]
・
・
・
かなり長いログがでるので注意。
--report-warnings-onlyをつけることでエラーのみの表示にでもできる。
rkhunter --check --skip-keypress --report-warnings-only
設定
SSHをパスワードではなく鍵認証とかにしているとWarningがでたりする。
これはrkHunterのチェック設定とSSHの設定が不一致になっているため。
rkHunter側の設定をSSH側に合わせるよう修正する。
- rkhunter.confを修正
vi /etc/rkhunter.conf
#ALLOW_SSH_ROOT_USER=unset #コメントアウト ALLOW_SSH_ROOT_USER=no #追加 SSH側の設定に合わせる
-
設定の変更を反映
rkhunter --propupd
定期実行
定期的に検査を行えるよう、cronに登録を行っておく。
- スクリプト作成
/etc/cron.dailiyフォルダ内にrkhunterという名前でスクリプトを作成する。vi /etc/cron.daily/rkhunter
#!/bin/bash MAIL_TO=root MAIL_SUBJECT="`hostname -s` `date +%Y%m%d_%H-%M-%S` Rootkit Hunter" LOG_FILE=`mktemp /tmp/rkhunter.temp.XXXXXX` /bin/rkhunter --update > /dev/null 2>&1 /bin/rkhunter --check --skip-keypress --cronjob --report-warnings-only 2>&1 > ${LOG_FILE} if [ -s ${LOG_FILE} ]; then grep Warning ${LOG_FILE} | mail -s "$MAIL_SUBJECT NG" $MAIL_TO else echo "$MAIL_SUBJECT OK" | mail -s "$MAIL_SUBJECT OK" $MAIL_TO fi rm -f ${LOG_FILE}
-
パーミッション変更
chmod 744 /etc/cron.daily/rkhunter
ログローテーション
お好みでログローテーションを修正する。
vi /etc/logrotate.d/rkhunter
/var/log/rkhunter/*.log {
daily
notifempty
missingok
rotate 30
dateext
compress
delaycompress
create 640 root root
}
ローテーション間隔をデイリーに変更、過去のログを圧縮、保存期間は30日に変更。
終わり
状況にもよるけど、数日見て運用できているようなら、チェックOKの時はメールを送るのをやめてもいいかも。