CyberPanelでModSecurityとCSFと共に安全かつ安定して動作させるためのClamAVのインストールガイド

これは、Linux上にClamAVをデプロイし、他のセキュリティシステムとシームレスに連携するように設定する方法の詳細な説明です。目標は、安全でリソース効率が高く、効果的なマルウェアの自動スキャン機能を備えた環境を作成することです。

1. システムの準備とリソース要件

開始する前に、現在のRAMとCPUの容量を評価する必要があります。ClamAVは快適に動作するために少なくとも2GBのRAMが必要ですが、適切に設定すれば1GBのRAMでも動作可能です。2GB未満のRAMを搭載したサーバーの場合、継続的なシステム全体のフルスキャンを制限し、ウェブサイトのフォルダ、アップロード、メールディレクトリなどの重要なディレクトリのみをスキャンする必要があります。

ModSecurityとCSFは本来、それほど多くのRAMを消費しないため、サーバーが2CPUおよび2GB RAM以上を搭載していれば、ClamAVを追加してもそれほど大きな負担にはなりません。リソースが安定していれば、これら3つのセキュリティシステムを同時に実行する能力はスムーズになるでしょう。

2. 公式リポジトリからのClamAVのインストール

CyberPanelで最も一般的に使用されるオペレーティングシステムであるAlmaLinux、Rocky Linux、またはCentOS Streamでは、ClamAVはEPELリポジトリに標準で含まれています。EPELを有効にしてインストールするだけで済みます。

ターミナルを開き、以下を実行します:

Bash

dnf install epel-release -y
dnf install clamav clamav-update -y

インストール後、ClamAVが最新のマルウェアサンプルを完全に識別できるように、ウイルスデータベースを更新する必要があります:

Bash

freshclam

一部のサーバーでは、freshclamはデーモンとして実行されます。バックグラウンドで実行されていることを示すメッセージが表示された場合は、再起動するだけで済みます:

Bash

systemctl restart clamav-freshclam

データベースが正常に更新されると、ClamAVは動作する準備が整います。

3. CyberPanelが管理するウェブディレクトリへのClamAVの統合

例として、CyberPanelではウェブサイトは/home/USERNAME/public_htmlに保存されます。ClamAVが正しいターゲットをスキャンするようにするには、ソースコードディレクトリを正確にスキャンするように設定する必要があります。

例:

Bash

clamscan -r /home --bell -i

このコマンドは、システム内で実行されているすべてのサイトをスキャンします。ただし、大規模なウェブサイトを多数所有している場合、/home全体をスキャンするには長い時間がかかる可能性があります。その場合は、個々のウェブサイトごとにスキャンを分割できます:

Bash

clamscan -r /home/domain1.com/public_html

最適なパフォーマンスのために、サーバーがトラフィック処理でビジーな日中のCPUへの影響を避けるため、スキャンを夜間に実行するようにスケジュール設定する必要があります。

4. Cronを使用した自動マルウェアスキャンスケジュールの作成

Cronは、負荷の低い時間帯に実行することで、ClamAVの動作をより効率的にします。例えば、アクセスが最も少ない時間である午前2時にスキャンするように設定できます。

スケジュールを追加します:

Bash

crontab -e

内容を入力します:

Bash

0 2 * * * clamscan -ri /home --log=/var/log/clamav/scan.log

これにより、ClamAVは自動的にスキャンを実行しレポートを保存するため、手動で実行する必要がなく、定期的に確認するだけで済みます。

5. ModSecurityとの互換性の確認

ModSecurityはClamAVとは完全に独立して動作します。OpenLiteSpeedが処理する前にHTTPリクエストを分析します。一方、ClamAVはリクエストが終了した後、またはユーザーがファイルをアップロードした後にのみファイルを読み取ります。これら2つのコンポーネント間で重複するプロセスはありません。

避けるべき唯一のことは、ClamAVがチェックする必要がある正当なファイルのアップロードをModSecurityがブロックすることです。これは、ウェブサイトが大きなzipファイルをアップロードする場合に発生する可能性があります。そのような状況に遭遇した場合は、ModSecurityのルールを適切に調整するだけで済みますが、これはClamAVとは関係ありません。

実際、展開された数百のCyberPanelシステムでは、ModSecurityとClamAVが直接的な競合を引き起こしたことは一度もありません。

6. CSFとの互換性と安定したファイアウォール設定

CSFはシステムファイアウォールとして機能し、ポートを監視し、接続速度を制限します。内部のファイルスキャン活動を監視したり、干渉したりすることはありません。したがって、ClamAVは特別なポートを開く必要がなく、CSFのパケットフィルタリングプロセスにも影響を与えません。

一部のサーバーでは、ClamAVがスキャンしているときにCSFが高いCPUアクティビティをログに記録する場合があります。これは競合ではなく、単なる通知です。警告を制限したい場合は、CSFの警告レベルを変更するか、CPUアクティビティが少ない時間にClamAVのスキャンサイクルを再設定することができます。

重要なのは、ClamAVはIPブロッキングを引き起こさず、ポートを開放せず、接続ログを記録しないため、CSFとは完全に分離されているということです。この組み合わせにより、CyberPanelのセキュリティレベルがさらに向上します。

7. CyberPanelでメールサーバーを使用している場合のメールスキャンの有効化

CyberPanelに付属のメールシステム(Postfix + Dovecot)を使用している場合は、ClamAVを統合して受信メールをスキャンできます。これにより、マルウェアが内部メールシステムを介して拡散するのを防ぎます。

まず、clamav-daemonをインストールします:

Bash

dnf install clamav-daemon -y
systemctl enable --now clamd@scan

その後、Postfixがソケット/var/run/clamd.scan/clamd.sockを介してClamAVを使用するように設定します。これは大規模なメールシステム向けの拡張設定ですが、ほとんどの通常のウェブ実行VPSでは、この機能を有効にする必要はありません。

8. 感染したファイルの処理とログの確認

ClamAVはリスクを避けるためにファイルを自動的に削除しません。マルウェアを検出すると、ログにファイルパスを記録します。以下を開くだけで済みます:

Bash

cat /var/log/clamav/scan.log

マルウェアとして確認されたら、削除できます:

Bash

rm -f /path/to/infected/file

それがウェブサイトのシステムファイルである場合は、CyberPanelのバックアップから復元するか、クリーンなソースコードを再アップロードする必要があります。

9. 小規模VPSでClamAVを使用する際のリソースの最適化

多くの人がClamAVがRAMを消費しすぎると心配しています。これは、ピーク時に継続的なスキャンを実行したり、1GB RAMのVPSで実行したりする場合に当てはまります。ただし、以下の方法で負荷を制限できます:

  • スキャンの頻度を一晩に1回に制限する。
  • ウェブディレクトリのみをスキャンし、サーバー全体はスキャンしない。
  • メールスキャンを使用しない場合は、clamdデーモンを無効にする。

これらの調整により、ClamAVは非常に軽量に動作し、1GB RAMのVPSにも適しています。