【Ubuntu】ウイルス対策ソフトClamAVのインストール

【Ubuntu】ウイルス対策ソフトClamAVのインストール サーバー

「サーバーのセキュリティを強化したい」
「Linuxでウイルスチェックを実施したい」
「Ubuntuにアンチウイルスソフトをインストールしたい」

このような場合には、この記事の内容が参考になります。
この記事では、Ubuntuにウイルス対策ソフトClamAVをインストールする方法を解説しています。

本記事の内容

  • ClamAVとは?
  • ClamAVのインストール
  • ClamAVにおけるウイルス定義データベースの更新
  • 【動作確認】ClamAVによるウイルスチェック

それでは、上記に沿って解説していきます。

ClamAVとは?

ClamAV(Clam Antivirus)は、UNIX系のシステムで動作するアンチウイルスソフトです。
ClamAVは、以下のパッケージから構成されています。

  • clamav – command-line interface
  • clamav-base – base package
  • clamav-daemon – scanner daemon
  • clamav-docs – documentation
  • clamav-freshclam – virus database update utility
  • clamav-milter – sendmail integration
  • clamav-testfiles – test files
  • libclamav-dev – development files
  • libclamav9 – library
  • libclamunrar9 – unrar support

この中でインストールするのは、以下の二つで十分です。

  • clamav
  • clamav-daemon

この二つで十分とは、公式で明示されています。
もちろん、依存関係のあるモノは自動的にインストールされますけどね。

あくまで利用するのは、以下のコマンドだけで良いということです。

apt install clamav
apt install clamav-daemon

では、これらのパッケージ情報を確認しておきましょう。
パッケージの確認は、次のOSを利用しています。

$ cat /etc/lsb-release 
DISTRIB_ID=Ubuntu 
DISTRIB_RELEASE=22.04 
DISTRIB_CODENAME=jammy 
DISTRIB_DESCRIPTION="Ubuntu 22.04 LTS"

まずは、clamavパッケージ。

$ sudo apt info clamav 
Package: clamav 
Version: 0.103.5+dfsg-1 
Priority: optional 
Section: utils 
Origin: Ubuntu 
Maintainer: Ubuntu Developers <ubuntu-devel-discuss@lists.ubuntu.com> 
Original-Maintainer: ClamAV Team <pkg-clamav-devel@lists.alioth.debian.org> 
Bugs: https://bugs.launchpad.net/ubuntu/+filebug 
Installed-Size: 719 kB 
Depends: clamav-freshclam (>= 0.103.5+dfsg) | clamav-data, libc6 (>= 2.34), libclamav9 (>= 0.103.5), libcurl4 (>= 7.16.2), libjson-c5 (>= 0.15), libssl3 (>= 3.0.0~~alpha1), zlib1g (>= 1:1.2.3.3) 
Recommends: clamav-base 
Suggests: libclamunrar, clamav-docs 
Homepage: https://www.clamav.net/ 
Download-Size: 134 kB 
APT-Sources: http://archive.ubuntu.com/ubuntu jammy/main amd64 Packages 
Description: Unix 向けアンチウィルスユーティリティ - コマンドラインインターフェース 
 Clam AntiVirus は Unix 向けアンチウィルスツールキットです。このソフトウェアの 主な目的は、メールサーバとの統合 
 (添付ファイルのスキャニング) です。 clamav-daemon パッケージは柔軟性が高くスケーラブルなマルチスレッドデーモンを、 clamav 
 パッケージはコマンドラインツールを、そして clamav-freshclam パッケージは 
 インターネット経由での自動更新ツールを提供します。プログラムは libclamav 
 に依存しており、このライブラリは他のソフトウェアからも利用できます。 
 . 
 This package contains the command line interface. Features: 
  - built-in support for various archive formats, including Zip, Tar, 
    Gzip, Bzip2, OLE2, Cabinet, CHM, BinHex, SIS and others; 
  - built-in support for almost all mail file formats; 
  - built-in support for ELF executables and Portable Executable files 
    compressed with UPX, FSG, Petite, NsPack, wwpack32, MEW, Upack and 
    obfuscated with SUE, Y0da Cryptor and others; 
  - built-in support for popular document formats including Microsoft 
    Office and Mac Office files, HTML, RTF and PDF. 
 . 
 For scanning to work, a virus database is needed. There are two options for getting it: 
  - clamav-freshclam: updates the database from Internet. This is 
    recommended with Internet access. 
  - clamav-data: for users without Internet access. The package is 
    not updated once installed. The clamav-getfiles package allows 
    creating custom packages from an Internet-connected computer.

次は、clamav-daemonパッケージです。

$ sudo apt info clamav-daemon 
Package: clamav-daemon 
Version: 0.103.5+dfsg-1 
Priority: optional 
Section: utils 
Source: clamav 
Origin: Ubuntu 
Maintainer: Ubuntu Developers <ubuntu-devel-discuss@lists.ubuntu.com> 
Original-Maintainer: ClamAV Team <pkg-clamav-devel@lists.alioth.debian.org> 
Bugs: https://bugs.launchpad.net/ubuntu/+filebug 
Installed-Size: 1,013 kB 
Depends: adduser, clamav-base (= 0.103.5+dfsg-1), clamav-freshclam (>= 0.103.5+dfsg) | clamav-data, dpkg (>= 1.16.1), lsb-base (>= 3.2-13), procps (>= 1:3.3.2), ucf, debconf (>= 0.5) | debconf-2.0, libc6 (>= 2.34), libclamav9 (>= 0.103.5), libcurl4 (>= 7.18.2), libncurses6 (>= 6), libsystemd0, libtinfo6 (>= 6), zlib1g (>= 1:1.2.0.2) 
Recommends: clamdscan 
Suggests: libclamunrar, apparmor, clamav-docs, daemon 
Homepage: https://www.clamav.net/ 
Download-Size: 216 kB 
APT-Sources: http://archive.ubuntu.com/ubuntu jammy/main amd64 Packages 
Description: anti-virus utility for Unix - scanner daemon 
 Clam AntiVirus は Unix 向けアンチウィルスツールキットです。このソフトウェアの 主な目的は、メールサーバとの統合 
 (添付ファイルのスキャニング) です。 clamav-daemon パッケージは柔軟性が高くスケーラブルなマルチスレッドデーモンを、 clamav 
 パッケージはコマンドラインツールを、そして clamav-freshclam パッケージは 
 インターネット経由での自動更新ツールを提供します。プログラムは libclamav 
 に依存しており、このライブラリは他のソフトウェアからも利用できます。 
 . 
 This package contains the daemon featuring: 
  - fast, multi-threaded daemon; 
  - easy integration with MTA's; 
  - support for on-access scanning; 
  - remote scanning; 
  - able to be run supervised by daemon.

各パッケージの詳細は、上記を確認してください。
clamavだけでもClamAVとして機能します。

ただ、それを都度動かすのは面倒です。
セキュリティソフトであれば、常時機能することが望まれます。

そのため、ClamAVをデーモン化(常駐化)しようという要望が出てきます。
そのデーモン化を実現するのが、clamav-daemonということです。

デーモン(サービス)については、次の記事で説明しています。

以上、ClamAVについて説明しました。

ClamAVのインストール

ClamAVのインストールは、次のパッケージをインストールすればよかったです。

  • clamav
  • clamav-daemon

次のコマンドでまとめてインストールします。

sudo apt install -y clamav clamav-daemon

インストールは、すぐに終わります。
インストールが完了したら、以下のコマンドでバージョンを確認しましょう。

$ clamd -V 
ClamAV 0.103.5/26563/Sun Jun  5 17:06:31 2022

事前に確認したバージョンのClamAVがインストールされています。

以上、ClamAVのインストールを説明しました。
次は、ClamAVにおけるウイルス定義データベースの更新を説明します。

ClamAVにおけるウイルス定義データベースの更新

ClamAVでは、ウイルス定義データベースを利用してウィルスの検出を行っています。
そして、このウイルス定義データベースは日々更新されています。

日々進化するウィルスに対応しないといけませんからね。
そのため、ClamAVでもウイルス定義データベースを更新し続ける必要があります。

このための作業を説明します。
まず、ウイルス定義データベースの更新は次のパッケージ(コマンド)で対応します。

clamav-freshclam - virus database update utility

clamav-freshclam -は、clamavをインストールした際に自動的にインストールされています。
そして、すでに起動済みです。

$ sudo systemctl status clamav-freshclam 
● clamav-freshclam.service - ClamAV virus database updater 
     Loaded: loaded (/lib/systemd/system/clamav-freshclam.service; enabled; vendor preset: enabled) 
     Active: active (running) since Mon 2022-06-06 16:40:40 JST; 6min ago 
       Docs: man:freshclam(1) 
             man:freshclam.conf(5) 
             https://docs.clamav.net/ 
   Main PID: 2229 (freshclam) 
      Tasks: 1 (limit: 9496) 
     Memory: 230.8M 
        CPU: 14.753s 
     CGroup: /system.slice/clamav-freshclam.service 
             └─2229 /usr/bin/freshclam -d --foreground=true
~

ウイルス定義データベースを手動で更新するために、一旦clamav-freshclamを停止します。

$ sudo systemctl stop clamav-freshclam

停止したかどうか確認。

$ sudo systemctl status clamav-freshclam 
○ clamav-freshclam.service - ClamAV virus database updater 
     Loaded: loaded (/lib/systemd/system/clamav-freshclam.service; enabled; vendor preset: enabled) 
     Active: inactive (dead) since Mon 2022-06-06 16:58:46 JST; 14s ago
~

では、次のコマンドでウイルス定義データベースを更新します。

sudo freshclam

実行した結果は、以下。

$ sudo freshclam 
Mon Jun  6 17:00:06 2022 -> ClamAV update process started at Mon Jun  6 17:00:06 2022 
Mon Jun  6 17:00:06 2022 -> ^Your ClamAV installation is OUTDATED! 
Mon Jun  6 17:00:06 2022 -> ^Local version: 0.103.5 Recommended version: 0.103.6 
Mon Jun  6 17:00:06 2022 -> DON'T PANIC! Read https://docs.clamav.net/manual/Installing.html 
Mon Jun  6 17:00:06 2022 -> daily.cvd database is up-to-date (version: 26563, sigs: 1985557, f-level: 90, builder: raynman) 
Mon Jun  6 17:00:06 2022 -> main.cvd database is up-to-date (version: 62, sigs: 6647427, f-level: 90, builder: sigmgr) 

インストールしたClamAVのバージョンが古いと指摘されています。
古いと言われても、ClamAV 0.103.5がUbuntu 22.04 LTSにおけるOS標準なんですよね・・・

でも、「DON’T PANIC!」と言ってくれています。
それに、ウイルス定義データベースの更新は成功しています。

あくまで、これは警告レベルのメッセージということです。
今回は、警告ということで無視しましょう。

では、今後はfreshclamコマンドを自動で発行するように設定しましょう。

$ sudo systemctl enable clamav-freshclam 
Synchronizing state of clamav-freshclam.service with SysV service script with /lib/systemd/systemd-sysv-install. 
Executing: /lib/systemd/systemd-sysv-install enable clamav-freshclam

これにより、OS再起動時に自動的にclamav-freshclamが立ち上がります。
あとは、clamav-freshclamを起動しておきます。

$ sudo systemctl start clamav-freshclam

なお、clamav-freshclamの設定は以下のファイルに記載されています。

$ cat /etc/clamav/freshclam.conf 
# Automatically created by the clamav-freshclam postinst 
# Comments will get lost when you reconfigure the clamav-freshclam package 
DatabaseOwner clamav 
UpdateLogFile /var/log/clamav/freshclam.log 
LogVerbose false 
LogSyslog false 
LogFacility LOG_LOCAL6 
LogFileMaxSize 0 
LogRotate true 
LogTime true 
Foreground false 
Debug false 
MaxAttempts 5 
DatabaseDirectory /var/lib/clamav 
DNSDatabaseInfo current.cvd.clamav.net 
ConnectTimeout 30 
ReceiveTimeout 0 
TestDatabases yes 
ScriptedUpdates yes 
CompressLocalDatabase no 
Bytecode true 
NotifyClamd /etc/clamav/clamd.conf 
# Check for new database 24 times a day 
Checks 24 
DatabaseMirror db.local.clamav.net 
DatabaseMirror database.clamav.net

これより、1日に24回(Checks 24)もチェックを行うことがわかります。
設定を変更する場合は、このファイルを変更します。

以上、ClamAVにおけるウイルス定義データベースの更新を説明しました。
次は、【動作確認】ClamAVによるウイルスチェックを説明します。

【動作確認】ClamAVによるウイルスチェック

最新のウイルス定義を用意できました。
この状態により、ウィルスチェックを行いましょう。

clamscanコマンドを用いて、スキャンを行います。
clamscanコマンドのヘルプは、以下のコマンドで確認できます。

sudo clamscan -h

今回は、tmpディレクトリをスキャンします。

$ sudo clamscan /tmp/ 
----------- SCAN SUMMARY ----------- 
Known viruses: 8617620 
Engine version: 0.103.5 
Scanned directories: 1 
Scanned files: 0 
Infected files: 0 
Data scanned: 0.00 MB 
Data read: 0.00 MB (ratio 0.00:1) 
Time: 12.068 sec (0 m 12 s) 
Start Date: 2022:06:06 17:24:19 
End Date:   2022:06:06 17:24:31

スキャンに12秒の時間が、かかりました。
結果は、何も見つかりませんでした。

本来は何もないのが望ましいです。
しかし、万が一の場合に備えて、ウィルスの検出を試してみましょう。

無害のウィルスをダウンロードします。

$ wget -P /tmp  http://www.eicar.org/download/eicar.com

再度、tmpディレクトリにウィルスチェックを行います。

$ sudo clamscan /tmp/ 
/tmp/eicar.com: Win.Test.EICAR_HDB-1 FOUND 
----------- SCAN SUMMARY ----------- 
Known viruses: 8617620 
Engine version: 0.103.5 
Scanned directories: 1 
Scanned files: 1 
Infected files: 1 
Data scanned: 0.00 MB 
Data read: 0.00 MB (ratio 0.00:1) 
Time: 12.535 sec (0 m 12 s) 
Start Date: 2022:06:06 17:36:40 
End Date:   2022:06:06 17:36:52

「Infected files: 1」となりました。
ウィルスを検知できていることが、確認できました。

以上、【動作確認】ClamAVによるウイルスチェックを説明しました。

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