CentOS7にClamAVを導入する

セキュリティ

0.前書き

公開ウェブサーバ用のウイルス対策を行うことにした。

(ファイルアップロードされたりしないので、必要ない気もする…)

先人の知恵を丸パクリしてお借りして構築できたので、備忘録として残していく。

 

1.前提条件

本サーバではSELinuxが無効になっているため、

有効の状態で本手順を行うと、不都合が生じる可能性があります。

 

2.ClamAV導入

今回はClamAVを導入する上でEPELを利用するため、EPELを有効にする。

$ sudo yum -y install epel-release

 

続いてパッケージのインストールを実行する。

$ sudo yum -y install clamav clamav-update clamd

 

インストールが終わったら、以下の通り「freshclam.conf」の編集を行う。

$ sudo vi /etc/freshclam.conf

 

150行目の「#NotifyClamd /path/to/clamd.conf」を

NotifyClamd /etc/clamd.d/scan.conf」に変更または、151行目に追記する。

 

筆者は行っていないがここで権限の変更を行ったほうがいい可能性あり。

$ sudo chmod 744 /etc/clamd.d/scan.conf

 

ウイルス定義データベースの作成

$ sudo freshclam

※ここでエラーになるため、権限の設定を事前に行うべきだったか。

ClamAV update process started at Sat Mar 19 19:25:52 2022
daily database available for download (remote version: 26486)
Time: 0.9s, ETA: 0.0s [========================>] 55.37MiB/55.37MiB
Testing database: ‘/var/lib/clamav/tmp.b97db90d42/clamav-e8447726b74a5f7bd5779cd0db920646.tmp-daily.cvd’ …
Database test passed.
daily.cvd updated (version: 26485, sigs: 1976247, f-level: 90, builder: raynman)
Received an older daily CVD than was advertised. We’ll retry so the incremental update will ensure we’re up-to-date.
daily database available for update (local version: 26485, remote version: 26486)
Current database is 1 version behind.
Downloading database patch # 26486…
Time: 0.0s, ETA: 0.0s [========================>] 15.00KiB/15.00KiB
Testing database: ‘/var/lib/clamav/tmp.b97db90d42/clamav-3667efc3494995c403dc55ce932a92ce.tmp-daily.cld’ …
Database test passed.
daily.cld updated (version: 26486, sigs: 1976332, f-level: 90, builder: raynman)
main database available for download (remote version: 62)
Time: 1.9s, ETA: 0.0s [========================>] 162.58MiB/162.58MiB
Testing database: ‘/var/lib/clamav/tmp.b97db90d42/clamav-b8d9bf6075a228a7d0dfc080509ac65c.tmp-main.cvd’ …
Database test passed.
main.cvd updated (version: 62, sigs: 6647427, f-level: 90, builder: sigmgr)
bytecode database available for download (remote version: 333)
Time: 0.0s, ETA: 0.0s [========================>] 286.79KiB/286.79KiB
Testing database: ‘/var/lib/clamav/tmp.b97db90d42/clamav-ffbd7cc5a1208804c8c4c42bc9b58392.tmp-bytecode.cvd’ …
Database test passed.
bytecode.cvd updated (version: 333, sigs: 92, f-level: 63, builder: awillia2)
ERROR: NotifyClamd: No communication socket specified in /etc/clamd.d/scan.conf
ERROR: Can’t send to clamd: Socket operation on non-socket

権限の変更を行った後、sudo freshclamを実行すると、

以下の表記になり成功したかどうか不明…

ClamAV update process started at Sat Mar 19 19:34:41 2022
daily.cld database is up-to-date (version: 26486, sigs: 1976332, f-level: 90, builder: raynman)
main.cvd database is up-to-date (version: 62, sigs: 6647427, f-level: 90, builder: sigmgr)
bytecode.cvd database is up-to-date (version: 333, sigs: 92, f-level: 63, builder: awillia2)

 

ともあれ構築を続行し、以下の通り「scan.conf」を編集する。

$ sudo vi /etc/clamd.d/scan.conf

8行目の「Example」を「#Example」に変更または9行目に追記

219行目の「User clamscan」を「User root」変更または220行目に追記

最終行に「LocalSocket /var/run/clamd.scan/clamd.sock」を追記

 

clamd@scanの有効化と起動を行う。

$ sudo systemctl enable clamd@scan
$ sudo systemctl start clamd@scan

 

ウイルスチェック用のテストファイルをダウンロードする。

$ sudo wget http://www.eicar.org/download/eicar.com

 

テストファイルがダウンロードされたことを確認して、

以下コマンドにて、ウイルススキャンを実行する。

$ sudo clamdscan /

 

スキャンが成功すれば以下のように表示される。

/root/eicar.com: Win.Test.EICAR_HDB-1 FOUND

———– SCAN SUMMARY ———–
Infected files: 1
Time: 56.503 sec (0 m 56 s)
Start Date: 2022:03:19 22:42:16
End Date: 2022:03:19 22:43:12

これでClamAVの導入は完了となる。

 

3.シェルスクリプトの作成とCron設定

次にパターンファイルの更新とウイルススキャン後のファイル削除を

自動化するためにBashスクリプトとCronで設定を行う。

 

まず、スクリプトファイルを作成する。

$ sudo vi virus_scan.sh

#!/bin/bash

# ClamAV update
/usr/bin/freshclam

# Virus scan
/bin/clamdscan / –remove

 

スクリプトを実行し、動作確認する。

$ sudo bash virus_scan.sh

 

テストファイルが存在する状態で、スクリプトが動作すると

以下のように表示される。

ClamAV update process started at Sat Mar 19 22:42:16 2022
daily.cld database is up-to-date (version: 26486, sigs: 1976332, f-level: 90, builder: raynman)
main.cvd database is up-to-date (version: 62, sigs: 6647427, f-level: 90, builder: sigmgr)
bytecode.cvd database is up-to-date (version: 333, sigs: 92, f-level: 63, builder: awillia2)
/root/eicar.com: Win.Test.EICAR_HDB-1 FOUND
/root/eicar.com: Removed.

———– SCAN SUMMARY ———–
Infected files: 1
Time: 56.503 sec (0 m 56 s)
Start Date: 2022:03:19 22:42:16
End Date: 2022:03:19 22:43:12

 

ファイルが削除されていることを確認し、クーロン設定のために

権限の付与を行う。

 

$ sudo chmod 744 /root/virus_scan.sh

 

今回はAM5:00に実行するようにCronの設定を行う。

$ sudo crontab -e
0 5 * * * /root/virus_scan.sh

 

※以下のように設定すると毎分設定になり、すぐに検証することが可能。

* * * * * /root/virus_scan.sh

 

また、以下のコマンドで、Cronの実行ログを確認できる。

$ less /var/log/cron

 

これで毎朝5:00にClamAVでのにパターンファイルの更新と

ウイルススキャン後のファイル削除を行う設定が完了となる。

 

4.参考サイト

オープンソースのアンチウイルスソフトウェア、ClamAVをCentOS 7にインストールする - Qiita
TL;DRCentOSにClamAVをインストールしたいEPELからインストールするのが簡単clamdおよびfreshclamの設定をするclamdscanを定期的に実行できるようにするC…
CentOS7へclamavインストール(epelリポジトリ使用)
CentOS7にepelリポジトリで提供されているClamAV(アンチウイルスソフト)をインストールする手順です。【2017.04.20追記】 freshclamの設定作業に漏れがあったので追記しました。対象ファイルは「/etc/fresh

コメント

タイトルとURLをコピーしました