Linux
 Computer >> コンピューター >  >> システム >> Linux

CentOS / RHELにClamAVアンチウイルスをインストールして使う方法を徹底解説

ClamAVはオープンソースのアンチウイルスソフトウェアで、ウイルス、トロイの木馬、マルウェアなどの検出に使用されます。主にLinuxプラットフォームで利用されており、FTPやSamba経由でアクセスされるユーザーディレクトリ、Webサイトの公開ディレクトリ、メールサーバー上のメール(MTAエージェントとして)などをスキャンする用途で広く採用されています。

本記事では、CentOSまたはRHELが稼働するサーバーにClamAVをインストールし、基本設定から実際のウイルススキャンまでの手順を詳しく解説します。

CentOS/RHELへのClamAVのインストール

ClamAVは標準のLinuxリポジトリには含まれていないため、インストールにはEPELリポジトリを利用する必要があります。まず、以下のコマンドでEPELリポジトリを追加します。

# yum install epel-release -y

リポジトリの準備ができたら、ClamAV関連パッケージをインストールします。パッケージ管理にはyumを使用します(CentOS 8の場合はdnfコマンドに読み替えてください)。

# yum -y install clamav-server clamav-data clamav-update clamav-filesystem clamav clamav-scanner-systemd clamav-devel clamav-lib clamav-server-systemd

CentOS / RHELにClamAVアンチウイルスをインストールして使う方法を徹底解説

LinuxにおけるClamAVの基本設定

独自のClamAV設定を行うには、まず設定ファイル/etc/clamd.d/scan.conf内のデフォルト設定(Example行)をコメントアウトして無効化します。

# sed -i -e "s/^Example/#Example/" /etc/clamd.d/scan.conf

続いて、設定ファイルを編集用に開きます。

# nano /etc/clamd.d/scan.conf

ファイル内の以下の行のコメントを解除してください。

LocalSocket /run/clamd.scan/clamd.sock

必要に応じて、ログの有効化や最大接続数の設定など、その他の項目もコメント解除してカスタマイズできます。
/etc/clamd.d/scan.confファイルには、各設定項目に関する詳細な説明が記載されているため、編集前に一読することをおすすめします。

ClamAVのウイルス定義データベースを更新するには、freshclamを使用します。まず、現在の設定ファイルをバックアップしておきましょう。

# cp /etc/freshclam.conf /etc/freshclam.conf.bak

次に、以下のコマンドでデフォルト設定を無効化します。

# sed -i -e "s/^Example/#Example/" /etc/freshclam.conf

そして、ウイルス定義を更新します。

# freshclam

CentOS / RHELにClamAVアンチウイルスをインストールして使う方法を徹底解説

更新中にダウンロードエラーが表示されることがありますが、freshclamは自動的に別のミラーサーバーを探して更新を完了させますので、心配は不要です。

freshclamに自動で定義更新を確認させたい場合は、-dオプション(デーモンモード)を付けて実行します。

# freshclam -d — この場合、2時間ごとに更新の有無をチェックします。

CentOS / RHELにClamAVアンチウイルスをインストールして使う方法を徹底解説

運用を簡単にするため、freshclam用のsystemdサービスファイルを作成しましょう。

# nano /usr/lib/systemd/system/freshclam.service

以下の内容を記述します。

[Unit]
Description = freshclam
After = network.target
[Service]
Type = forking
ExecStart = /usr/bin/freshclam -d -c 4
Restart = on-failure
PrivateTmp = true
RestartSec = 10sec
[Install]
WantedBy=multi-user.target

systemdデーモンをリロードします。

# systemctl daemon-reload

その後、サービスを起動し、システム起動時に自動実行されるよう登録します。

# systemctl start freshclam.service
# systemctl enable freshclam.service
# systemctl status freshclam.service

CentOS / RHELにClamAVアンチウイルスをインストールして使う方法を徹底解説

freshclamと同様の手順で、ClamAV(clamd)本体のサービスも作成します。テンプレートとなるユニットファイルはすでに存在しているため、ファイル名を変更するだけで利用できます。

# mv /usr/lib/systemd/system/clamd\@.service /usr/lib/systemd/system/clamd.service

ここでは扱いやすくするために、ファイル名から\@を削除しました。

さらに、ファイル内の設定を以下のように書き換えます。

[Unit]
Description = clamd scanner daemon
After = syslog.target nss-lookup.target network.target
[Service]
Type = forking
ExecStart = /usr/sbin/clamd -c /etc/clamd.d/scan.conf
# Reload the database
ExecReload=/bin/kill -USR2 $MAINPID
Restart = on-failure
TimeoutStartSec=420
[Install]
WantedBy = multi-user.target

これで、アンチウイルスサービスを起動し、自動起動を有効化できます。

# systemctl start clamd.service
# systemctl enable clamd.service

CentOS / RHELにClamAVアンチウイルスをインストールして使う方法を徹底解説

ClamAVでウイルスをスキャンする方法

ClamAVサービスの設定が完了したら、サーバー上の任意のディレクトリをスキャナーとしてスキャンできます。指定したディレクトリのウイルス検査には、次のコマンドを使用します。

# clamscan --infected --remove --recursive /var/www/

CentOS / RHELにClamAVアンチウイルスをインストールして使う方法を徹底解説

上記のパラメーターを指定すると、感染が確認されたファイルは即座に削除されます。誤削除のリスクを避けたい場合は、疑わしいファイルを隔離ディレクトリへ移動する--moveオプションの利用がおすすめです。

# clamscan --infected --recursive --move=/tmp/clamscan /var/www

このコマンドは、指定ディレクトリ内のすべてのファイルをスキャンし、疑わしいファイルを/tmp/clamscanへ移動します。

CentOS / RHELにClamAVアンチウイルスをインストールして使う方法を徹底解説

実行結果を見ると、感染ファイルが指定したディレクトリへ正しく移動されていることが確認できます。

CentOS / RHELにClamAVアンチウイルスをインストールして使う方法を徹底解説

また、--log=/var/log/clamscan.logオプションを追加すれば、スキャン処理の詳細な情報を指定したログファイルに記録できます。

CentOS / RHELにClamAVアンチウイルスをインストールして使う方法を徹底解説

特定のディレクトリをスキャン対象から除外したい場合は、--exclude-dirオプションを使用します。

# clamscan -i --recursive --move=/tmp/clamscan --log=/var/log/clamscan.log --exclude-dir="/var/www/administrator" /var/www

定期的にウイルススキャンを自動実行したい場合は、希望するスケジュールでcronジョブを設定しておくと便利です。

なお、ClamAVにはClamTkというGUIフロントエンドも用意されており、コマンドライン操作が苦手な方でも直感的にスキャンを実行できます。

  1. CentOS/RHELでBashの自動補完(タブ補完)をインストールして有効化する方法

    Bash(Bourne Again Shell)は、間違いなく最も広く使われているLinuxシェルです。多くのLinuxディストリビューションでデフォルトシェルとして採用されているのも納得でしょう。Bashの魅力的な機能の一つが、組み込みの「自動補完(オートコンプリート)」機能です。 この機能は「TAB補完」とも呼ばれ、コマンドの入力を簡単に完成させることができます。コマンドの一部を入力した状態で[Tab]キーを押すと、残りのコマンドや引数が自動的に補完されます。候補が複数ある場合は、すべての候補が一覧表示されます。 Bashだけでなく、近年のほぼすべてのモダンなLinuxシェルにはコマンド補

  2. AndroidにMicrosoft Edgeをインストールして使いこなす方法

    Microsoftの「Edge」は、標準ブラウザとして快適に使える機能が満載です。すでにサポートが終了したInternet Explorerとは比べものにならないほど完成度の高いブラウザです。Edgeがお気に入りの方なら、スマートフォンでも同じ体験を楽しめるようにするのがおすすめです。この記事では、AndroidにEdgeブラウザをインストールする手順と、その後の便利な使い方について詳しく解説します。AndroidへのEdgeのインストール手順Android版Edgeは、GoogleやFacebook、Microsoftなどが共同開発したブラウザエンジン「Blink」をベースにしており、PC版