「サーバーのセキュリティを強化したい」
「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によるウイルスチェックを説明しました。