Cent OS 5.3にrkhunterとchkrootkitをインストール
久々にちょっとCent OSをいじってますが、chkrootkit とrkhunterをインストールした。インストールしたと言ってもyumでインストールしたんですけどね。
昔は両方とも拾ってきてインストールだったんですが、yum search rkhunter、yum search chkrootkitしたら普通に両方あったので便利すぎとゆわけでインストールしました。
両方共、OSがrootkitで乗っ取られていないかチェックするツールです。出来れば両方インストールして毎日cronで動かしてメールで報告するようにしておくといいです。というか必須ですね。
とりあえずchkrootkitの方は
# yum install chkrootkit
で、インストール
インストールされたバージョンは0.48でした。
chkrootkitにはps、ls、unameなど基本的なコマンドプログラムが改変されていないかチェックする機能があるので、あらかじめ基本的なコマンドのバックアップをとっておいて、chkrootkitの実行時に比較チェックをするようにします。出来ればこの機能は使ったほうがいいですね。
/root/cmdbackにバックアップファイルを作成するには
cp `which –skip-alias awk cut echo egrep find head id ls netstat ps strings sed uname` cmdback/
とするとべんりです。
参考:rootkit検知ツール導入(chkrootkit) – Fedoraで自宅サーバー構築
僕は、/rootフォルダに下記のようなchkrootkit.shというシェルを書いてこれをcronで毎日呼び出すようにしています。
/root/chkrootkit.sh
/usr/sbin/chkrootkit -V
/usr/sbin/chkrootkit -p /root/cmdback
/usr/sbin/chkrootkit -V
-Vはバージョン表示です。cronの結果がメールで送られてきたときchkrootkitのバージョンが知りたかったので、チェックの前後に入れています。 –p /root/cmdbackが基本的はコマンドの改変チェックの指定です。
何も指定しなければそれ以外のチェックを行ないます。
crontabには下記のように書いて毎日1時50分に実行するようにしています。
50 01 * * * /root/chkrootkit.sh
rkhunterの方ですがインストールされたバージョンは1.3.6です。以下のようにyumでインストールしました。
# yum install rkhunter
試しに実行してみたのですが、まず、アップデートを実行
# rkhunter –update
それから、実行なのですが、以下のようなエラーがでました。
# rkhunter -c –cronjob –report-mode
Invalid option specified: –report-mode
この指定オプションは別のrkhunter1.2.7が入っているサーバーのシェルからコピッてきたものなのですが、どうやら「—report-mode」オプションは廃止になっているようなので、とって実行。(メールで送る際に余分な情報を省くために付けているオプションだったので別にチェック自体には問題がないので)
なんかエラーがでた、/etc/xinetd.confが無いと怒られました。
# rkhunter -c –cronjob
Invalid XINETD_CONF_PATH configuration option – non-existent pathname specified: /etc/xinetd.conf
実際にないので、病んでやねんと思って検索してみた。
とりあえず、参考になりそうなサイトを張っておきます。
◇rkhunter で Invalid XINETD_CONF_PATH configuration option エラー
◇ディスク障害多発によるディスク周り総取替作業ログとCentOS5の愚痴少々 | 俺のSyslog
◇くだらねえ質問はここに書き込め! Part 183 – 2ちゃんぬる
#
# This setting tells rkhunter where the xinetd configuration
# file is located.
#
#XINETD_CONF_PATH=/etc/xinetd.conf
僕は、一番上の参考リンクのfuturemixを参考にxinetd.confをコメントアウトする方法で対処しました。
そして、再度実行してみると、今度はエラーは発生せずに実行できました。
とはいっても、『–cronjob』をつけて入ると問題がなければ何も表示されなくて味気なかったので『–cronjob』をとってもう一度やってみた。
で、/root/rkhunter.shを作成。とりあえず下のようにしてみました。
/root/rkhunter.sh
/usr/bin/rkhunter –update
#/usr/bin/rkhunter -c –cronjob –report-mode
/usr/bin/rkhunter -c –cronjob
そして、cronに登録しました。毎晩深夜の2時6分に実行します。
crontabの内容(crontab –e)でcronの編集
06 02 * * * /root/rkhunter.sh
●追記2010.06.08
設定後に、届いたメールを見てた結果ですが、rkhunterの方は、勝手に『/etc/cron.daily』に登録されてて、logwatch同じタイミングで実行されて結果がメールで送られてきてました。なので、特に自分でcronに登録する必要ななさそうです。
というか、手動でも実行するたびにrootにメール送ってるみたいです。/etc/rkhunter.confのMAIL-ON-WARNING="root@localhost"でwarningがあったらrootにメールを送る様になってるみたいです。
というか、送られくるメールが「Please inspect this machine, because it may be infected.」で英語よくわからないけどinfected.とか怖い単語が貼ってるので機械翻訳してみると「それが感染しているかもしれないので、この機械を調べてください。」な感じで本当に怖い内容なんですが、確認の為に再度手動で実行しても特に感染してるっぽいメッセージはないので、とにかくwarningがあったらこの文言のメールが送られてくるみたいなので、慌てずにちゃんと調べましょう。かと言って、多分大丈夫でしょってのはダメですw。