FreeBSD のパッケージコレクションにある ルートキットスキャンツール、rkhunter の存在を初めて知りました。
新しいことを始めると、巡り合いがあるもので、ソースからFreeBSD全体をビルドし直す方法を調べている時 rkhunter というツールに遭遇しました。
Windows とは異なり、Unix系サーバーであるFreeBSDには定番セキュリティーツールというものは売られていません。売れられているとしても超高価で買えないでしょうけど。市販セキュリティーソフトを使わなくても、Unix系OSは Windowsに比べて守りやすいことも事実。
私の場合、
- アクセスコントロール
- ファイヤーウォール
- ロギング
の 3つをしっかりやることで対策しています。用途とアクセス範囲を限定すれば、利用対象以外をガチガチにブロックできるので、まあ、侵入はできないだろう という前提で運用しています。
それでも、管理の隙間というものは生じるもので、何年か前、私が管理しているサーバーのうちの一台に、バックドアを仕掛けられるという事件が起きました。Webサーバーのプログラムを更新出来ないタイミングで侵入を許してしまい、踏み台にされていた可能性がありました。アクセス数が少ないサーバーだと、ログチェックに油断が生じてしまう。気づけたからよかったけど、一度侵入されてしまうと、アクセスできる範囲にはアクセスできちゃうから、日々実行可能なスキャンツールがあればありがたいわけです。
今回、RPI2にFreeBSD 13.2 を入れて、Tier2 FreeBSDの管理方法に関して把握中。第一歩は、毎日届くレポートに含まれる脆弱性への対応。これは、前のドキュメントに記録中ですが、本家サイトの情報を調べている途中、FreeBSD ドキュメントの 第13章 セキュリティ 13.2.6 に rkhunter というツールの存在が紹介されていました。
これは、root kit を見つけ出すオプションパッケージ。
root kit とは、対象マシンの root 権限で悪さをする外部プログラム。普通は管理者が操作を間違えない限り、root kit が組み込まれる恐れはありません。組み込めるとすると、最初からOSに組み込まれているようなケース。Android 端末がそうですね。中国製、韓国製 Android 端末などは、購入直後に root kit が見つかるという話を聞きます。それを見つけ出してくれるのが root kit スキャンツール。
なんてこったい!こんなに便利なものがあったのか?
というのが今の気持ち。
rkhunter を入れて、セットアップすると、デイリー(weeklyでもいいけど)に root kit が仕組まれていないかスキャンしてくれる。残念ながら FreeBSD13.2 には最初からは入っていないので、
pkg install rkhunter
でインストールする必要がありました。
以下はインストールの様子。
# pkg install rkhunter Updating FreeBSD repository catalogue... FreeBSD repository is up to date. All repositories are up to date. The following 2 package(s) will be affected (of 0 checked): New packages to be INSTALLED: p5-Digest-SHA1: 2.13_2 rkhunter: 1.4.6_2 Number of packages to be installed: 2 The process will require 1 MiB more space. 239 KiB to be downloaded. Proceed with this action? [y/N]: y [1/2] Fetching rkhunter-1.4.6_2.pkg: 100% 223 KiB 228.5kB/s 00:01 [2/2] Fetching p5-Digest-SHA1-2.13_2.pkg: 100% 16 KiB 16.7kB/s 00:01 Checking integrity... done (0 conflicting) [1/2] Installing p5-Digest-SHA1-2.13_2... [1/2] Extracting p5-Digest-SHA1-2.13_2: 100% [2/2] Installing rkhunter-1.4.6_2... [2/2] Extracting rkhunter-1.4.6_2: 100% ===== Message from rkhunter-1.4.6_2: -- You should keep your rkhunter database up-to-date. This can be done automatically by putting this line to periodic.conf(5) files: security_rkhunter_update_enable="YES" security_rkhunter_update_period="daily" security_rkhunter_update_flags="--update --nocolors" Also, you can run rkhunter as a part of the daily security check by putting this line to periodic.conf(5) files: security_rkhunter_check_enable="YES" security_rkhunter_check_period="daily" security_rkhunter_check_flags="--checkall --nocolors --skip-keypress"
最後に上記の赤行を、/etc/periodic.conf を新しく作成して書き込めば設定は終了。
root で コマンドラインから、
rkhunter -c
と実行すれば、初回スキャンが終了し、上記設定により、あとは毎日スキャンしてくれるらしい。
スキャン結果は、/var/log/rkhunter.log に出力されています。
ログを読んでみると、pkg でインストールした ggrep を置き換えたような記述があって、どこまでやるんだ?という多少不安な気持ちもありますが、公開サーバーにてしばらく使ってみる予定。