そういうのがいいブログ

SIerで働く30代サラリーマンSEがインフラエンジニアに憧れてLinux・クラウド・AWSの勉強をするブログ

Rocky Linux8.8ウィルス対策ソフトClam AntiVirusインストール手順

※[PR]当ブログの記事の中にはプロモーションが含まれています。

・Rocky Linux8.8にウィルス対策ソフト「Clam AntiVirus」をインストールする手順を知りたい。
・具体的な手順を分かりやすく教えてほしい。

こういった疑問に答えます。

本記事の内容

  1. Rocky Linux8.8にウィルス対策ソフト「Clam AntiVirus」をインストールする手順

サトナカ (@souiunogaii)

この記事を書いている私は、某SIerに勤務しながら、
WEB系エンジニア・インフラエンジニアに憧れて、プログラミングおよびインフラ技術の勉強をしています。

こういった私が、解説していきます。

私が実機で試したコマンドや画像を載せて書いています。
記事の信頼性担保に繋がると思います。

Rocky Linux8.8にウィルス対策ソフト「Clam AntiVirus」をインストールする手順

手順① epelリポジトリの追加

dnf install epel-release
[root@SV-VEGA ~]# dnf install epel-release
メタデータの期限切れの最終確認: 2:03:42 前の 20230621144244秒 に実施しました。
依存関係が解決しました。
====================================================================================================
 パッケージ                 アーキテクチャー     バージョン              リポジトリー         サイズ
====================================================================================================
インストール:
 epel-release               noarch               8-18.el8                extras                24 k

トランザクションの概要
====================================================================================================
インストール  1 パッケージ

ダウンロードサイズの合計: 24 k
インストール後のサイズ: 35 k
これでよろしいですか? [y/N]: y
パッケージのダウンロード:
epel-release-8-18.el8.noarch.rpm                                     20 kB/s |  24 kB     00:01
----------------------------------------------------------------------------------------------------
合計                                                                 14 kB/s |  24 kB     00:01
トランザクションの確認を実行中
トランザクションの確認に成功しました。
トランザクションのテストを実行中
トランザクションのテストに成功しました。
トランザクションを実行中
  準備             :                                                                            1/1
  インストール中   : epel-release-8-18.el8.noarch                                               1/1
  scriptletの実行中: epel-release-8-18.el8.noarch                                               1/1
Many EPEL packages require the CodeReady Builder (CRB) repository.
It is recommended that you run /usr/bin/crb enable to enable the CRB repository.

  検証             : epel-release-8-18.el8.noarch                                               1/1

インストール済み:
  epel-release-8-18.el8.noarch

完了しました!

手順② 「Clam AntiVirus」をインストール

dnf install clamav clamav-server-systemd clamav-update clamav-scanner-systemd
[root@SV-VEGA ~]# dnf install clamav clamav-server-systemd clamav-update clamav-scanner-systemd
Extra Packages for Enterprise Linux 8 - x86_64                      5.4 MB/s |  16 MB     00:02
メタデータの期限切れの最終確認: 0:00:05 前の 2023年06月21日 16時47分50秒 に実施しました。
依存関係が解決しました。
====================================================================================================
 パッケージ                   アーキテクチャー  バージョン                  リポジトリー      サイズ
====================================================================================================
インストール:
 clamav                       x86_64            0.103.8-3.el8               epel              339 k
 clamav-update                x86_64            0.103.8-3.el8               epel              131 k
 clamd                        x86_64            0.103.8-3.el8               epel              126 k
依存関係のインストール:
 clamav-filesystem            noarch            0.103.8-3.el8               epel               47 k
 clamav-lib                   x86_64            0.103.8-3.el8               epel              863 k
 libprelude                   x86_64            5.2.0-1.el8                 epel              326 k
 libtool-ltdl                 x86_64            2.4.6-25.el8                baseos             57 k

トランザクションの概要
====================================================================================================
インストール  7 パッケージ

ダウンロードサイズの合計: 1.8 M
インストール後のサイズ: 169 M
これでよろしいですか? [y/N]: y
パッケージのダウンロード:
(1/7): clamav-filesystem-0.103.8-3.el8.noarch.rpm                   383 kB/s |  47 kB     00:00
(2/7): clamav-0.103.8-3.el8.x86_64.rpm                              1.7 MB/s | 339 kB     00:00
(3/7): clamav-update-0.103.8-3.el8.x86_64.rpm                       2.8 MB/s | 131 kB     00:00
(4/7): clamd-0.103.8-3.el8.x86_64.rpm                               2.5 MB/s | 126 kB     00:00
(5/7): clamav-lib-0.103.8-3.el8.x86_64.rpm                          3.8 MB/s | 863 kB     00:00
(6/7): libprelude-5.2.0-1.el8.x86_64.rpm                            3.6 MB/s | 326 kB     00:00
(7/7): libtool-ltdl-2.4.6-25.el8.x86_64.rpm                          81 kB/s |  57 kB     00:00
----------------------------------------------------------------------------------------------------
合計                                                                1.0 MB/s | 1.8 MB     00:01
Extra Packages for Enterprise Linux 8 - x86_64                      1.6 MB/s | 1.6 kB     00:00
GPG 鍵 0x2F86D6A1 をインポート中:
 Userid     : "Fedora EPEL (8) <epel@fedoraproject.org>"
 Fingerprint: 94E2 79EB 8D8F 25B2 1810 ADF1 21EA 45AB 2F86 D6A1
 From       : /etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-8
これでよろしいですか? [y/N]: y
鍵のインポートに成功しました
トランザクションの確認を実行中
トランザクションの確認に成功しました。
トランザクションのテストを実行中
トランザクションのテストに成功しました。
トランザクションを実行中
  準備             :                                                                            1/1
  scriptletの実行中: clamav-filesystem-0.103.8-3.el8.noarch                                     1/7
  インストール中   : clamav-filesystem-0.103.8-3.el8.noarch                                     1/7
  インストール中   : libtool-ltdl-2.4.6-25.el8.x86_64                                           2/7
  scriptletの実行中: libtool-ltdl-2.4.6-25.el8.x86_64                                           2/7
  インストール中   : libprelude-5.2.0-1.el8.x86_64                                              3/7
  scriptletの実行中: libprelude-5.2.0-1.el8.x86_64                                              3/7
  インストール中   : clamav-lib-0.103.8-3.el8.x86_64                                            4/7
  インストール中   : clamav-update-0.103.8-3.el8.x86_64                                         5/7
  scriptletの実行中: clamav-update-0.103.8-3.el8.x86_64                                         5/7
  インストール中   : clamav-0.103.8-3.el8.x86_64                                                6/7
  scriptletの実行中: clamav-0.103.8-3.el8.x86_64                                                6/7
  scriptletの実行中: clamd-0.103.8-3.el8.x86_64                                                 7/7
  インストール中   : clamd-0.103.8-3.el8.x86_64                                                 7/7
  scriptletの実行中: clamd-0.103.8-3.el8.x86_64                                                 7/7
  検証             : libtool-ltdl-2.4.6-25.el8.x86_64                                           1/7
  検証             : clamav-0.103.8-3.el8.x86_64                                                2/7
  検証             : clamav-filesystem-0.103.8-3.el8.noarch                                     3/7
  検証             : clamav-lib-0.103.8-3.el8.x86_64                                            4/7
  検証             : clamav-update-0.103.8-3.el8.x86_64                                         5/7
  検証             : clamd-0.103.8-3.el8.x86_64                                                 6/7
  検証             : libprelude-5.2.0-1.el8.x86_64                                              7/7

インストール済み:
  clamav-0.103.8-3.el8.x86_64                   clamav-filesystem-0.103.8-3.el8.noarch
  clamav-lib-0.103.8-3.el8.x86_64               clamav-update-0.103.8-3.el8.x86_64
  clamd-0.103.8-3.el8.x86_64                    libprelude-5.2.0-1.el8.x86_64
  libtool-ltdl-2.4.6-25.el8.x86_64

完了しました!

手順② ウィルス定義ファイルの更新

更新用の設定ファイル変更

vi /etc/freshclam.conf
[root@SV-VEGA ~]# vi /etc/freshclam.conf
148 # Send the RELOAD command to clamd.
149 # Default: no
150 #NotifyClamd /path/to/clamd.conf
151 NotifyClamd /etc/clamd.d/scan.conf  ★★追記

ウィルス定義ファイルの更新

freshclam
[root@SV-VEGA ~]# freshclam
ClamAV update process started at Wed Jun 21 16:49:46 2023
daily database available for download (remote version: 26945)
Time:    6.4s, ETA:    0.0s [========================>]   58.69MiB/58.69MiB
Testing database: '/var/lib/clamav/tmp.463aefc6af/clamav-4b7cb67ee4ee371c9c949a1080f49b77.tmp-daily.cvd' ...
Database test passed.
daily.cvd updated (version: 26946, sigs: 2037537, f-level: 90, builder: raynman)
main database available for download (remote version: 62)
Time:   17.5s, ETA:    0.0s [========================>]  162.58MiB/162.58MiB
Testing database: '/var/lib/clamav/tmp.463aefc6af/clamav-cd4573245c4a499c7325e2e6cb8a1f1d.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: 334)
Time:    2.0s, ETA:    0.0s [========================>]  285.12KiB/285.12KiB
Testing database: '/var/lib/clamav/tmp.463aefc6af/clamav-8e99158f78ac63a941255aedb95cf58c.tmp-bytecode.cvd' ...
Database test passed.
bytecode.cvd updated (version: 334, sigs: 91, f-level: 90, builder: anvilleg)
ERROR: NotifyClamd: No communication socket specified in /etc/clamd.d/scan.conf
ERROR: Can't send to clamd: Socket operation on non-socket

手順③ エラーが出ているので設定変更

vi /etc/clamd.d/scan.conf
[root@SV-VEGA tmp]# vi /etc/clamd.d/scan.conf
94 # Path to a local socket file the daemon will listen on.
95 # Default: disabled (must be specified by a user)
96 LocalSocket /run/clamd.scan/clamd.sock  ★★コメント解除して有効化
217 # Run as another user (clamd must be started by root for this option to work)
218 # Default: don't drop privileges
219 #User clamscan   ★★コメントアウトして無効化

手順④ 自動起動の設定

systemctl enable clamd@scan
systemctl start clamd@scan
[root@SV-VEGA ~]# systemctl enable clamd@scan
Created symlink /etc/systemd/system/multi-user.target.wants/clamd@scan.service → /usr/lib/systemd/system/clamd@.service.
[root@SV-VEGA ~]# systemctl start clamd@scan
[root@SV-VEGA ~]# systemctl status clamd@scan
● clamd@scan.service - clamd scanner (scan) daemon
   Loaded: loaded (/usr/lib/systemd/system/clamd@.service; enabled; vendor preset: disabled)
   Active: active (running) since Wed 2023-06-21 16:52:45 JST; 27s ago
     Docs: man:clamd(8)
           man:clamd.conf(5)
           https://www.clamav.net/documents/
 Main PID: 6547 (clamd)
    Tasks: 2 (limit: 12339)
   Memory: 1.2G
   CGroup: /system.slice/system-clamd.slice/clamd@scan.service
           mq6547 /usr/sbin/clamd -c /etc/clamd.d/scan.conf

 621 16:52:45 SV-VEGA clamd[6547]: ELF support enabled.
 621 16:52:45 SV-VEGA clamd[6547]: Mail files support enabled.
 621 16:52:45 SV-VEGA clamd[6547]: OLE2 support enabled.
 621 16:52:45 SV-VEGA clamd[6547]: PDF support enabled.
 621 16:52:45 SV-VEGA clamd[6547]: SWF support enabled.
 621 16:52:45 SV-VEGA clamd[6547]: HTML support enabled.
 621 16:52:45 SV-VEGA clamd[6547]: XMLDOCS support enabled.
 621 16:52:45 SV-VEGA clamd[6547]: HWP3 support enabled.
 621 16:52:45 SV-VEGA clamd[6547]: Self checking every 600 seconds.
 621 16:52:45 SV-VEGA systemd[1]: Started clamd scanner (scan) daemon.
systemctl enable clamav-freshclam
systemctl start clamav-freshclam
[root@SV-VEGA ~]# systemctl enable clamav-freshclam
Created symlink /etc/systemd/system/multi-user.target.wants/clamav-freshclam.service → /usr/lib/systemd/system/clamav-freshclam.service.
[root@SV-VEGA ~]# systemctl start clamav-freshclam

手順⑤ テスト

clamdscan -c /etc/clamd.d/scan.conf --remove
[root@SV-VEGA ~]# clamdscan -c /etc/clamd.d/scan.conf --remove
/root: OK

----------- SCAN SUMMARY -----------
Infected files: 0
Time: 0.060 sec (0 m 0 s)
Start Date: 2023:06:21 16:54:42
End Date:   2023:06:21 16:54:42

手順⑥ cronで日次スケジュール実行の設定

vi /etc/cron.daily/clamdscan
[root@SV-VEGA ~]# cat /etc/cron.daily/clamdscan
#!/bin/bash

# 設定ファイル
CONFIG=/etc/clamd.d/scan.conf

# スキャン実行
# ※ウイルス検知時は隔離ディレクトリへ隔離
CLAMSCANLOG=`mktemp`
QUARANTINEDIR=/tmp/clamdscan-quarantinedir-$(date +%Y%m%d)
mkdir -p ${QUARANTINEDIR}
clamdscan -c ${CONFIG} --move=${QUARANTINEDIR} / > ${CLAMSCANLOG} 2>&1

# ウイルス検知時のみroot宛にメール通知
if [ -z "$(grep FOUND$ ${CLAMSCANLOG})" ]; then
    rm -rf ${QUARANTINEDIR}
else
    grep -A 1 FOUND$ ${CLAMSCANLOG} | mail -s "Virus Found in `hostname` => ${QUARANTINEDIR}" root
fi

# スキャンログをシスログに出力
cat ${CLAMSCANLOG} | logger -t $(basename ${0})
rm -f ${CLAMSCANLOG}

実行権限追加

[root@SV-VEGA ~]# chmod +x /etc/cron.daily/clamdscan

除外ディレクトリ設定

[root@SV-VEGA ~]# echo ExcludePath ^/tmp/clamdscan-quarantinedir-.*/ >> /etc/clamd.d/scan.conf
[root@SV-VEGA ~]# echo ExcludePath ^/proc/ >> /etc/clamd.d/scan.conf
[root@SV-VEGA ~]# echo ExcludePath ^/sys/ >> /etc/clamd.d/scan.conf

設定変更後の再起動

[root@SV-VEGA ~]# systemctl restart clamd@scan

参考にしたページ

centossrv.com

参考書籍

Rocky Linux & AlmaLinux実践ガイド

LinuxにおけるITプロ向け定番書籍がRocky Linux 8 & AlmaLinux 8に対応
Rocky Linux 8 & AlmaLinux 8の運用管理にかかわるシステム管理者を対象に、
システム管理の基礎、ネットワーク、ストレージ、パフォーマンスチューニング、
バックアップ、障害対応など、
IT現場で役立つ幅広いシステム管理手法を網羅しています。
Rocky Linux 8 & AlmaLinux 8.5対応

Rocky Linux & AlmaLinux実践ガイド
impress top gearシリーズ