ClamAV 以外で Linux Mint に入れられる無料で使える便利なウイルス対策ソフトはないかなと探したところ rkhunter という便利なツールがあることを知りました。そこで今回は Linux Mint への導入から初期設定、基本的な使用方法などを備忘録も兼ねてまとめていきたいと思います。
環境は Linux Mint 21.2 “Victoria” MATE Edition 64bit です。
rkhunterとは
rkhunter (Rootkit Hunter) は、Linux (Unix系OS)やUnixに潜むルートキットやバックドア、エクスプロイトを検出するルートキットスキャナーです。ちなみに rkhunter は、あくまでスキャナーなので検出はしますが駆除はしません。
公式サイトは以下になります。
rkhunterのインストールと初期設定
システムを更新する
まず最初にシステムを最新の状態にしておきます。
$ sudo apt update && sudo apt upgrade
rkhunterのインストール
以下のコマンドを実行して、rkhunterをインストールします。
$ sudo apt install rkhunter
インストールの途中で以下のような画面が出てきますので [了解] を選択して Enter キーをタイプします。
ここでは、設定なしを選択し [了解] を押します。
rkhunter.confの編集
このままの状態で rkhunter の定義ファイルを更新しようとすると以下の画像のように Invalid WEB_CMD configuration option: Relative pathname: “/bin/false” とエラーが出ます。
この問題を解決するには rkhunter.conf を編集する必要があります。
$ sudo nano /etc/rkhunter.conf
以下のように rkhunter.conf を書き換えて保存します。
### 書き換え前 ###
UPDATE_MIRRORS=0
MIRRORS_MODE=1
#PKGMGR=NONE
WEB_CMD="/bin/false"
UPDATE_LANG="en"
### 書き換え後 ###
UPDATE_MIRRORS=1
MIRROS_MODE=0
PKGMGR=DPKG
WEB_CMD=""
#UPDATE_LANG="en"
UPDATE_LANG=”en” をコメントアウトしない場合、以下の画像のように英語を除く全ての言語ファイルの更新がスキップされます。
また、自分の環境では WEB_CMD=curl にすると以下の画像のように Update failed と出て更新に失敗したので WEB_CMD=”” を指定しています。
定義ファイルの更新とハッシュ値の取得
rkhunterの定義ファイルの更新します。
$ sudo rkhunter --update
次にスキャンする各種ファイルのSHA256のハッシュ値を取得します。
$ sudo rkhunter --propupd
以上でインストールと初期設定は完了です。
rkhunterの基本的な使い方や色々な使用方法
rkhunterでシステムをスキャン
$ sudo rkhunter --check --skip-keypress
WARNING (警告) のみを表示させたい場合は、以下のように –report-warnings-only (あるいは –rwo) オプションを追記します。
$ sudo rkhunter --check --skip-keypress --report-warnings-only
ログを確認する
スキャンの結果は /var/log/rkhunter.log に保存されるので、以下のようにすることでログ内容を確認できます。
$ sudo grep Warning /var/log/rkhunter.log
Warningがいくつか出てきました。
rkhunter.log をもう少し詳しく読んでみます。
[02:48:41] Checking for suspicious (large) shared memory segments [ Warning ]
[02:48:41] Warning: The following suspicious (large) shared memory segments have been found:
[02:48:41] Process: /usr/bin/fcitx PID: 3137 Owner: xerus Size: 4.0MB (configured size allowed: 1.0MB)
[02:48:41] Process: /usr/bin/mate-panel PID: 3214 Owner: xerus Size: 4.0MB (configured size allowed: 1.0MB)
[02:48:41] Process: /usr/lib/mate-panel/wnck-applet PID: 3242 Owner: xerus Size: 1.0MB (configured size allowed: 1.0MB)
[02:48:41] Process: /usr/bin/caja PID: 3235 Owner: xerus Size: 4.0MB (configured size allowed: 1.0MB)
[02:48:41] Process: /usr/bin/caja PID: 3235 Owner: xerus Size: 64MB (configured size allowed: 1.0MB)
[02:48:41] Process: /usr/bin/mate-terminal PID: 4434 Owner: xerus Size: 16MB (configured size allowed: 1.0MB)
[02:48:45] Checking for hidden files and directories [ Warning ]
[02:48:45] Warning: Hidden directory found: /etc/.java
どれも問題ないものばかりなので、rkhunterの誤検出と思われます。
スクリプトファイルをホワイトリストに追加する
正常なスクリプトファイルが Warning として検出されてしまう場合は rkhunter.conf に問題のファイルをホワイトリストとして追記することで回避できます。以下の例では xxxxx、yyyyy、zzzzz の3つのスクリプトファイルをホワイトリストに追加しています。
$ sudo nano /etc/rkhunter.conf
### 以下のように追記します ###
SCRIPTWHITELIST="/usr/bin/xxxxx"
SCRIPTWHITELIST="/usr/bin/yyyyy"
SCRIPTWHITELIST="/usr/bin/zzzzz"
WARNINGを検出した際にコマンドを実行する
rkhunter.confを編集することで、WARNINGを検出した時にコマンドを実行することもできます。
以下の例では、WARNINGの検出時に mail コマンドを実行して xxxxx@test.com と yyyyy@example.net へ「[rkhunter] Warnings found for ${HOST_NAME}」というタイトルのメールを送信するという設定です。
MAIL-ON-WARNING=xxxxx@test.com yyyyy@example.net
MAIL_CMD=mail -s "[rkhunter] Warnings found for ${HOST_NAME}"
言語の変更
これは必要ないと思いますが、rkhunter.confを編集すればデフォルトの言語を英語から日本語など他の言語に切り替える事もできます。以下の例では、英語から日本語に変更しています。
### 書き換え前 ###
#LANGUAGE=en
UPDATE_LANG="en"
### 書き換え後 ###
LANGUAGE=ja
#UPDATE_LANG="en"
UPDATE_LANG は update オプションが使われた際に更新する言語ファイルを指定しますが、英語ファイルだけはこの UPDATE_LANG の指定の有無に関わらず更新されます。また、UPDATE_LANG を指定しない場合、全ての言語ファイルが更新されます。
コメント