はじめに

皆様、こんにちは。
3回目の投稿になります。宜しくお願い致します。

今回のテーマは、「ClamAVでウイルススキャンをしてみる(その1)」です。
ClamAVはウイルススキャン機能を備えたフリーソフトで、簡単に導入・利用することが出来ます。

また、フリーソフトなのでコストを抑える事が出来るのも魅力の一つです。
いろんな魅力がつまったClamAVを投稿テーマに取り上げて、ご紹介します。

本稿は、定期スキャン利用を想定した内容をお送りしますが、第2弾でリアルタイムスキャンについて投稿したいと考えています。

過去に投稿した記事はこちらです♪
●ローカルピアリングゲートウェイを使ってみた!
●OCIで簡単なWebサーバを作ってみた!

ClamAVとは?

オープンソースのアンチウイルスソフトです。
主にLinux環境で使用されていますが、WindowsやMacでも使用できます。

ClamAVは、以下の機能があります。

  • ウイルススキャン
  • オンデマンドスキャン
  • リアルタイム保護

インストールしてみます

OCI上に、Oracle Linux 9 のインスタンスを作成し、インストールしました。

まずは、EPEL(Extra Packages for Enterprise Linuxを有効にして、パッケージをダウンロード・インストールします。
Red Hat Enterprise Linux (RHEL) 系Linuxディストリビューション向けオプションパッケージ群です。
LinuxのメディアやYumリポジトリに含まれないパッケージ入手先になります。

[root@test-ol-clam ~]# yum repolist all
repo id repo name status
ol9_MODRHCK Latest RHCK with fixes from Oracle for Oracle Linux 9 (x86_64) disabled
ol9_RDMA Oracle Linux 9 (x86_64) RDMA disabled
ol9_UEKR7 Oracle Linux 9 UEK Release 7 (x86_64) disabled
ol9_UEKR8 Oracle Linux 9 UEK Release 8 (x86_64) enabled
ol9_addons Oracle Linux 9 Addons (x86_64) enabled
ol9_appstream Oracle Linux 9 Application Stream Packages (x86_64) enabled
ol9_baseos_latest Oracle Linux 9 BaseOS Latest (x86_64) enabled
ol9_codeready_builder Oracle Linux 9 CodeReady Builder (x86_64) - (Unsupported) disabled
ol9_developer Oracle Linux 9 Development Packages (x86_64) disabled
ol9_developer_EPEL Oracle Linux 9 EPEL Packages for Development (x86_64) disabled             ←--- 無効化されている
ol9_developer_UEKR7 Developer Preview of UEK Release 7 (x86_64) disabled
ol9_developer_kvm_utils Oracle Linux 9 KVM Utilities for Development and test (x86_64) disabled
ol9_distro_builder Oracle Linux 9 Distro Builder (x86_64) - (Unsupported) disabled
ol9_ksplice Ksplice for Oracle Linux 9 (x86_64) enabled
ol9_kvm_utils Oracle Linux 9 KVM Utilities (x86_64) disabled
ol9_oci_included Oracle Linux 9 OCI Included Packages (x86_64) enabled
ol9_u0_baseos_base Oracle Linux 9 BaseOS GA (x86_64) disabled
ol9_u1_baseos_base Oracle Linux 9.1 BaseOS (x86_64) disabled
ol9_u2_baseos_base Oracle Linux 9.2 BaseOS (x86_64) disabled
ol9_u3_baseos_base Oracle Linux 9.3 BaseOS (x86_64) disabled
ol9_u3_security_validation Oracle Linux 9 Update 3 (x86_64) Security Validations disabled
ol9_u4_baseos_base Oracle Linux 9.4 BaseOS (x86_64) disabled
ol9_u5_baseos_base Oracle Linux 9.5 BaseOS (x86_64) disabled
ol9_u6_baseos_base Oracle Linux 9.6 BaseOS (x86_64) disabled
ol9_x86_64_userspace_ksplice Ksplice aware userspace packages for Oracle Linux 9 (x86_64) disabled

[root@test-ol-clam ~]# yum-config-manager --enable ol9_developer_EPEL
[root@test-ol-clam ~]# yum repolist all
repo id repo name status
ol9_MODRHCK Latest RHCK with fixes from Oracle for Oracle Linux 9 (x86_64) disabled
ol9_RDMA Oracle Linux 9 (x86_64) RDMA disabled
ol9_UEKR7 Oracle Linux 9 UEK Release 7 (x86_64) disabled
ol9_UEKR8 Oracle Linux 9 UEK Release 8 (x86_64) enabled
ol9_addons Oracle Linux 9 Addons (x86_64) enabled
ol9_appstream Oracle Linux 9 Application Stream Packages (x86_64) enabled
ol9_baseos_latest Oracle Linux 9 BaseOS Latest (x86_64) enabled
ol9_codeready_builder Oracle Linux 9 CodeReady Builder (x86_64) - (Unsupported) disabled
ol9_developer Oracle Linux 9 Development Packages (x86_64) disabled
ol9_developer_EPEL Oracle Linux 9 EPEL Packages for Development (x86_64) enabled             ←--- 有効化する
ol9_developer_UEKR7 Developer Preview of UEK Release 7 (x86_64) disabled
ol9_developer_kvm_utils Oracle Linux 9 KVM Utilities for Development and test (x86_64) disabled
ol9_distro_builder Oracle Linux 9 Distro Builder (x86_64) - (Unsupported) disabled
ol9_ksplice Ksplice for Oracle Linux 9 (x86_64) enabled
ol9_kvm_utils Oracle Linux 9 KVM Utilities (x86_64) disabled
ol9_oci_included Oracle Linux 9 OCI Included Packages (x86_64) enabled
ol9_u0_baseos_base Oracle Linux 9 BaseOS GA (x86_64) disabled
ol9_u1_baseos_base Oracle Linux 9.1 BaseOS (x86_64) disabled
ol9_u2_baseos_base Oracle Linux 9.2 BaseOS (x86_64) disabled
ol9_u3_baseos_base Oracle Linux 9.3 BaseOS (x86_64) disabled
ol9_u3_security_validation Oracle Linux 9 Update 3 (x86_64) Security Validations disabled
ol9_u4_baseos_base Oracle Linux 9.4 BaseOS (x86_64) disabled
ol9_u5_baseos_base Oracle Linux 9.5 BaseOS (x86_64) disabled
ol9_u6_baseos_base Oracle Linux 9.6 BaseOS (x86_64) disabled
ol9_x86_64_userspace_ksplice Ksplice aware userspace packages for Oracle Linux 9 (x86_64) disabled

yumコマンドを利用して、ClamAVをインストールしています。
インストールするパッケージは以下の通りです。

  • clamav-filesystem
  • clamav-lib
  • clamav-freshclam
  • clamav
  • clamd
  • clamav-data
# yum install clamav-filesystem clamav-lib clamav-freshclam clamav clamd clamav-data
Oracle Linux 9 EPEL Packages for Development (x 55 MB/s | 32 MB 00:00
================================================================================
 Package Arch Version Repository Size
================================================================================
Installing:
clamav x86_64 1.0.8-1.el9 ol9_developer_EPEL 352 k
clamav-data noarch 1.0.8-1.el9 ol9_developer_EPEL 223 M
clamav-filesystem noarch 1.0.8-1.el9 ol9_developer_EPEL 18 k
clamav-freshclam x86_64 1.0.8-1.el9 ol9_developer_EPEL 102 k
clamav-lib x86_64 1.0.8-1.el9 ol9_developer_EPEL 2.6 M
clamd x86_64 1.0.8-1.el9 ol9_developer_EPEL 101 k
Transaction Summary
================================================================================
Install 6 Packages
(省略)
Installed:
 clamav-1.0.8-1.el9.x86_64 clamav-data-1.0.8-1.el9.noarch
 clamav-filesystem-1.0.8-1.el9.noarch clamav-freshclam-1.0.8-1.el9.x86_64
 clamav-lib-1.0.8-1.el9.x86_64 clamd-1.0.8-1.el9.x86_64

Complete!

configファイルを設定します

configファイル(/etc/clamd.d/scan.conf)を編集します。
下記では設定内容のみ記載します。
※コメントアウトされている部分を外したり、設定内容を変更したりして、編集しています。

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

LogFile /var/log/clamd.scan
LogFileMaxSize 2M
LogTime yes
LogSyslog yes
LogRotate yes
FixStaleSocket yes
TCPSocket 3310
TCPAddr localhost
OnAccessExtraScanning yes
OnAccessExcludeRootUID yes

設定ファイル編集後、各サービスを有効化・起動します。
(test-ol-clamは、今回のインスタンス名だから、気にしないでください)

# systemctl enable clamd@scan
Created symlink /etc/systemd/system/multi-user.target.wants/clamd@scan.service → /usr/lib/systemd/system/clamd@.service.
# systemctl start clamd@scan
# systemctl status clamd@scan
● clamd@scan.service - clamd scanner (scan) daemon
Loaded: loaded (/usr/lib/systemd/system/clamd@.service; enabled; preset: disabled)
Active: active (running) since Mon 2025-09-22 03:57:32 GMT; 9s ago
Docs: man:clamd(8)
man:clamd.conf(5)
https://www.clamav.net/documents/
Process: 39378 ExecStart=/usr/sbin/clamd -c /etc/clamd.d/scan.conf (code=exited, status=0/SUCCESS)
Main PID: 39379 (clamd)
Tasks: 2 (limit: 72746)
Memory: 1.2G
CPU: 10.809s
CGroup: /system.slice/system-clamd.slice/clamd@scan.service
mq39379 /usr/sbin/clamd -c /etc/clamd.d/scan.conf

Sep 22 03:57:32 test-ol-clam clamd[39379]: Mail files support enabled.
Sep 22 03:57:32 test-ol-clam clamd[39379]: OLE2 support enabled.
Sep 22 03:57:32 test-ol-clam clamd[39379]: PDF support enabled.
Sep 22 03:57:32 test-ol-clam clamd[39379]: SWF support enabled.
Sep 22 03:57:32 test-ol-clam clamd[39379]: HTML support enabled.
Sep 22 03:57:32 test-ol-clam clamd[39379]: XMLDOCS support enabled.
Sep 22 03:57:32 test-ol-clam clamd[39379]: HWP3 support enabled.
Sep 22 03:57:32 test-ol-clam clamd[39379]: OneNote support enabled.
Sep 22 03:57:32 test-ol-clam clamd[39379]: Self checking every 600 seconds.
Sep 22 03:57:32 test-ol-clam systemd[1]: Started clamd scanner (scan) daemon.

# systemctl enable clamav-freshclam
Created symlink /etc/systemd/system/multi-user.target.wants/clamav-freshclam.service → /usr/lib/systemd/system/clamav-fr eshclam.service.
# systemctl start clamav-freshclam
# systemctl status clamav-freshclam
● clamav-freshclam.service - ClamAV virus database updater
Loaded: loaded (/usr/lib/systemd/system/clamav-freshclam.service; enabled; preset: disabled)
Active: active (running) since Mon 2025-09-22 04:00:04 GMT; 47s ago
Docs: man:freshclam(1)
man:freshclam.conf(5)
https://docs.clamav.net/
Main PID: 39627 (freshclam)
Tasks: 1 (limit: 72746)
Memory: 66.7M
CPU: 6.086s
CGroup: /system.slice/clamav-freshclam.service
mq39627 /usr/bin/freshclam -d --foreground=true

Sep 22 04:00:06 test-ol-clam freshclam[39627]: WARNING: downloadPatch: Can't download daily-27674.cdiff from https://database.clamav.net/daily-27674.cdiff
Sep 22 04:00:06 test-ol-clam freshclam[39627]: WARNING: Incremental update failed, trying to download daily.cvd
Sep 22 04:00:07 test-ol-clam freshclam[39627]: Testing database: '/var/lib/clamav/tmp.4533796ebd/clamav-25006a567d0b6a7b262b2dbd6e205402.tmp-daily.cvd' ...
Sep 22 04:00:12 test-ol-clam freshclam[39627]: Database test passed.
Sep 22 04:00:12 test-ol-clam freshclam[39627]: daily.cvd updated (version: 27769, sigs: 2076849, f-level: 90, builder: raynman)
Sep 22 04:00:12 test-ol-clam freshclam[39627]: main.cvd database is up-to-date (version: 62, sigs: 6647427, f-level: 90, builder: sigmgr)
Sep 22 04:00:12 test-ol-clam freshclam[39627]: bytecode database available for update (local version: 336, remote version: 339)
Sep 22 04:00:12 test-ol-clam freshclam[39627]: Testing database: '/var/lib/clamav/tmp.4533796ebd/clamav-b5ccac76e33a20738f6563cbd6630321.tmp-bytecode.cld' ...
Sep 22 04:00:12 test-ol-clam freshclam[39627]: Database test passed.
Sep 22 04:00:12 test-ol-clam freshclam[39627]: bytecode.cld updated (version: 339, sigs: 80, f-level: 90, builder: nrandolp)

# systemctl enable clamonacc
Created symlink /etc/systemd/system/multi-user.target.wants/clamav-clamonacc.service → /usr/lib/systemd/system/clamav-clamonacc.service.
# systemctl start clamonacc
# systemctl status clamonacc
● clamav-clamonacc.service - ClamAV On-Access Scanner
Loaded: loaded (/usr/lib/systemd/system/clamav-clamonacc.service; enabled; preset: disabled)
Active: active (running) since Mon 2025-09-22 04:03:58 GMT; 6s ago
Docs: man:clamonacc(8)
man:clamd.conf(5)
https://docs.clamav.net/
Main PID: 39691 (clamonacc)
Tasks: 7 (limit: 72746)
Memory: 1.9M
CPU: 7ms
CGroup: /system.slice/clamav-clamonacc.service
mq39691 /usr/sbin/clamonacc -F --config-file=/etc/clamd.d/scan.conf

Sep 22 04:03:58 test-ol-clam systemd[1]: Started ClamAV On-Access Scanner.
Sep 22 04:03:58 test-ol-clam clamonacc[39691]: ERROR: ClamInotif: Please specify at least one path with OnAccessIncludePath

clamonaccは、第2弾で取り上げます!

ウイルススキャンしてみます

ウイルススキャンが出来るかテストをしてみます。
/tmpディレクトリに、EICARテストファイルを配置しておきます。
https://secure.eicar.org/というサイトからダウンロードが出来ます。

EICAR が開発したアンチウイルス (AV) ソフトウェアの応答をテストするためのファイルです。

# wget https://secure.eicar.org/eicar.com.txt -O /tmp/eicar.com.txt
--2025-09-22 04:09:41-- https://secure.eicar.org/eicar.com.txt
Resolving secure.eicar.org (secure.eicar.org)... 89.238.73.97, 2a00:1828:1000:2497::2
Connecting to secure.eicar.org (secure.eicar.org)|89.238.73.97|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 68 [text/plain]
Saving to: ‘/tmp/eicar.com.txt’

/tmp/eicar.com.txt 100%[=============================================>] 68 --.-KB/s in 0s

2025-09-22 04:09:43 (112 MB/s) - ‘/tmp/eicar.com.txt’ saved [68/68]
# ls -l /tmp
total 4
-rw-r--r-- 1 root root 68 Jan 3 2025 eicar.com.txt

clamdscanというコマンドを使って、ディレクトリをスキャンします。
clamscanというコマンドもあるのですが、大量のディレクトリをスキャンしたい場合は、前述のコマンドが便利です。

# clamdscan /tmp
/tmp/eicar.com.txt: Win.Test.EICAR_HDB-1 FOUND

----------- SCAN SUMMARY -----------
Infected files: 1
Time: 0.004 sec (0 m 0 s)
Start Date: 2025:09:22 04:11:25
End Date: 2025:09:22 04:11:25

EICARテストファイルが検知され、Summaryに「Infected files : 1」と結果が出ました。

これで、無事に検知することが出来ました。

最後に

今回は、OCI上のインスタンスに、ClamAVをインストールし、ウイルススキャンしました。

弊社にはOCIに詳しいエンジニアが多数在籍しております。何かご不明なことやご興味を持たれたことがございましたら、お気軽に当社までお問い合わせください。

次回はリアルタイムスキャンについての記事を投稿させていただく予定ですので、ぜひお楽しみにお待ちください。

Oracleの課題、専門家が解決します


Oracleの相談を今すぐ依頼する

豊富な実績で最適な解決策をご提供

投稿者プロフィール

技術チーム
技術チーム
DBひとりでできるもんを盛り上げるべく、技術チームが立ち上がり早8年。ひとりでできるもんと言いつつ、技術者が読んでプッとなるような、極めてピンポイントでマニアックな技術ネタを執筆しています!
最新技術情報や資格情報をチェックしたいアナタ!毎日遊びに来てください。きっとお役に立てます。