Ubuntu 22.04 サーバー / ClamAV のインストールと使用方法
Ubuntu 22.04 サーバーに ClamAV をインストールするには、clamav と clamav-freshclam パッケージをインストールし、ウイルスデータベースを更新してから、clamscan を使用して希望するファイルまたはディレクトリをスキャンします。この方法では、要求に応じてスキャンを実行し、インストールするだけでリアルタイム監視が有効になるわけではありません。
ClamAV とスキャン前の準備
ClamAVはマルウェアを検出するためのオープンソースツールのコレクションです。freshclamは検出に使用されるデータベースを更新し、clamscanは指定されたターゲットをスキャンするために実行中にデータベースを読み取り、clamscanは別途スキャンデーモンclamdを実行する必要はありません。
この記事はUbuntu 22.04 Server向けのパッケージとsystemdサービスに基づいています。パッケージリポジトリと署名データベースにアクセスするためのネットワーク接続、インストールのためのsudo権限、データベースとスキャン用の十分なディスク容量とメモリが必要です。運用中のサーバーでは、スキャンの範囲と負荷を考慮して、アイドル時に実行してください。
ClamAVのインストール
パッケージリストを更新し、スキャナとアップデータをインストールします。
sudo apt update
sudo apt install clamav clamav-freshclam
インストールが完了したら、バージョンと更新サービスの状態を確認してください。
clamscan --version
systemctl status clamav-freshclam --no-pager
サービスが実行中の場合、自動更新が設定されています。ステータスにエラーがある場合やサービスが存在しない場合は、以下の更新およびトラブルシューティングのセクションを参照してください。出力はインストールされているバージョンやデータベースの状態によって異なります。
署名データベースの更新
スキャンを行う前に最新のデータベースが必要です。clamav-freshclamサービスが実行中の場合はバックグラウンドで更新されるため、まず状態と最新の記録を確認してください。
systemctl status clamav-freshclam --no-pager
journalctl -u clamav-freshclam -n 30 --no-pager
手動で更新が必要で、サービスが稼働している場合は、両方の更新プロセスが同じログやデータベースを同時に使用しないように、実行前にサービスを一時的に停止してください。
sudo systemctl stop clamav-freshclam
sudo freshclam
更新が成功したか失敗したかに関わらず、元々稼働していたサービスを再起動し、ステータスを確認してください。サービスが元々停止していた場合は、勝手に起動せず、既存の運用設定に従ってください。
sudo systemctl start clamav-freshclam
systemctl status clamav-freshclam --no-pager
ダウンロードに失敗した場合や古いバージョンに関する警告が表示された場合は、インターネット、DNS、プロキシ設定、およびパッケージの更新状況を確認してください。リクエスト制限やエラーに関する説明については ClamAV の FreshClam トラブルシューティング文書 を参照してください。
ファイルおよびディレクトリのスキャン
例えば、現在のユーザーのダウンロードディレクトリ(サブディレクトリを含む)をスキャンするには、次のように実行します。スキャンしたい実際のパスに置き換えてください。
clamscan -r "$HOME/Downloads"
-r を指定するとサブディレクトリもスキャンします。単一のファイルをスキャンするには、clamscan /path/to/file のようにファイルパスを指定してください。出力が多い場合は、検出された項目のみを表示するために --infected を追加できます。
clamscan -r --infected "$HOME/Downloads"
スキャンアカウントが読み取れないファイルはスキャンできないため、権限エラーを確認してください。他のユーザーのファイルを含む /home のような管理者権限が必要な領域については、sudo clamscan -r /home を使用して権限と影響を確認した後でスキャンできます。ファイルシステム全体をスキャンするには時間がかかり、他のファイルシステムが含まれる場合もあるため、まず範囲を確認してください。
スキャン結果の確認
スキャンされたファイルの数と出力の最後にあるInfected filesおよびSCAN SUMMARYを確認してください。FOUNDが付いている項目は、検出されたファイルと検出名を示します。読み取りエラーやサイズ制限のためにスキャンできなかった項目があった場合、検出数が0であってもすべてのファイルが安全であるとは限りません。
コマンド実行直後にecho $?で終了ステータスを確認してください: 0は検出なし、1は検出あり、2はエラーを意味します。他のコマンドが先に実行された場合、確認すべき値は変わります。詳細なオプションと終了ステータスについては、Ubuntu 22.04 clamscanマニュアルを参照してください。
検出されたファイルの処理時
検知が誤検知である可能性があるため、ファイルパスと検知名を記録し、そのファイルの目的と出所を確認してください。重要なサービスファイルやユーザーデータを即座に削除すると、サービスの中断やデータの損失を引き起こす可能性があります。アクセスを制限し、対応を行う前に組織のインシデント対応手順に従ってさらなる分析とバックアップの確認を行うことを推奨します。
--move=DIRECTORY は検出されたファイルを指定されたディレクトリに移動し、--remove はそれらを削除します。両方のオプションは実際のファイルを変更するため、標準スキャンには含めないでください。移動が必要な場合は、まずスキャン範囲外の制限付き隔離場所、書き込み権限、復旧方法、サービスへの影響を確認してください。--copy はコピーを作成しますが、元のファイルはそのまま保持します。ClamAV スキャンのドキュメント も、誤検知の可能性があるため自動削除には注意することを推奨しています。
更新やスキャンが失敗した場合
- データベースが見つかりません: 更新サービスのログとネットワーク接続を確認し、データベースのダウンロードが完了したら再スキャンしてください。
- ログロックエラー: 別の
freshclamプロセスが実行中か確認してください。手動アップデート中にサービスを停止した場合は、タスク後に再起動してください。 - 権限エラーまたはスキャンの省略: ファイルの読み取り権限とエラーメッセージを確認し、必要に応じて権限を昇格させてください。暗号化されたファイルや設定サイズの制限もスキャン範囲に影響を与える可能性があります。
ClamAVは有用な検出ツールですが、すべてのマルウェアを検出できる保証はありません。定期的な更新、バックアップ、アクセス制御と併用して使用し、リアルタイム監視が必要な場合は、別の設定や運用方法を検討してください。




