LinuxにClamAVを導入してウイルス対策を行う方法を学ぼう!

eyecatch-linux-clamav
目次

Clam AntiVirus(ClamAV)とは?

概要

Clam AntiVirus(以下、ClamAV)は、主にUNIX系OS向けに開発されたオープンソースのアンチウイルスソフトウェアです。ClamAVはもともと2002年にTomasz Kojmによって開発され、現在はCisco Systemsがメンテナンスを行っています。対応OSはUNIX系(Linux、BSD、Solarisなど)に限らず、Windows、macOSと幅広いプラットフォームに対応しています。個人的にはLinuxの無料アンチウイルスソフトと言えばClamAVが定番ではないかと思います。

機能面では、ファイルやディレクトリ、メールの添付ファイルなどをスキャンしてウイルスやマルウェアを検出するウイルススキャン、リアルタイムで特定のファイルやディレクトリに対してスキャンを行うリアルタイムスキャン、定期的に更新されるウイルスデータベースによる最新の脅威への対応などがあります。

これらの機能を利用することでメールサーバーのウイルススキャンとして使用されたり、ウェブサーバーでアップロードファイルのチェックに利用されたりします。加えて、高速なスキャンエンジンを持ち、特に大規模なメールサーバーやファイルサーバーでの使用に適しています。

またClam AVはウィルスやマルウェアスキャンに特化しているため、不正アクセスよる操作(ルートキット攻撃)を防止するにはRKHunterなどのツールを利用することも考慮する必要があります。なおこの2つは共存が可能です。

ClamAVのインストールとウィルス検知

前提

ubuntu 20.04 LTS

インストールと設定

ClamAVの公式サイトを参考に下記のコマンドでClamAVをインストールします。公式ページにはいろいろなパッケージが掲載されていますが、clamav clamav-daemonで十分との記載があります。最後にclamd -vでバージョン情報が表示されていればインストール完了です。

sudo apt update
sudo apt install -y clamav clamav-daemon
clamd -v

続いてClamAVの設定をしていきます。ここではroot権限で実行するように設定をすることでスキャンの漏れを防ぎます。まずはclamd.confで設定を変更します。

vi /etc/clamav/clamd.conf

#User clamav
User root

さらにウイルススキャンを確実に行うようにするためウイルス定義ファイル最新とCPUの高負荷防止対策にします。特に後者のCPU高負荷対策はこちらの記事にあるようにスキャン中にCPUの高負荷状態が続くことによるウイルススキャンの誤動作を防止します。

# ウイルス定義ファイルの更新
sudo systemctl stop clamav-freshclam.service
freshclam
sudo systemctl start clamav-freshclam.service

# CPU高負荷防止対策
vi /lib/systemd/system/clamav-daemon.service
[Service]

TimeoutStartSec=420
CPUQuota=50% <-追記
systemctl daemon-reload
systemctl restart clamav-daemon.service

最後にサービスの状態を確認します。下記のコマンドを実行し6行目のようにactive(running)で動作確認ができれば設定は終了です。

sudo systemctl status clamav-daemon.service
 clamav-daemon.service - Clam AntiVirus userspace daemon
     Loaded: loaded (/lib/systemd/system/clamav-daemon.service; enabled; vendor preset: enabled)
    Drop-In: /etc/systemd/system/clamav-daemon.service.d
             mqextend.conf
     Active: active (running) since Sun 2024-06-16 22:38:23 JST; 4 days ago
       Docs: man:clamd(8)
             man:clamd.conf(5)
             https://docs.clamav.net/
   Main PID: 662 (clamd)
      Tasks: 2 (limit: 2279)
     Memory: 4.6M
     CGroup: /system.slice/clamav-daemon.service
             mq662 /usr/sbin/clamd --foreground=true

AppArmor Utilsの設定

AppArmor Utilsはセキュリティ対策ツールの1つであり、アプリケーションのファイルやデバイスへのアクセスを制御します。UbuntuではAppArmorはデフォルトでインストールされており、root で実行できるアプリケーションを制限しています。ClamAVをroot実行させるため下記のコマンドを実行します。

aa-complain clamd
Setting /usr/sbin/clamd to complain mode.

テスト用ウイルスのダウンロードとウイルス検知テスト

テスト用ウイルスはこちらのサイトからダウンロードできます。

cd 
wget https://secure.eicar.org/eicar.com.txt -O ./eicar.com.txt
wget https://secure.eicar.org/eicar_com.zip -O ./eicar_com.zip

それでは実際に無害なウィルスをダウンロードしてClamAVが正常に動作しているかテストしたいと思います。下記のclamscan --infected --remove --recursiveコマンドを実行し結果を確認して下さい。(なお細かいオプションについてはこちらの記事に詳細が記載されています)

clamscan --infected --remove --recursive
root/eicar_com.zip: Win.Test.EICAR_HDB-1 FOUND
/root/eicar_com.zip: Removed.
/root/eicar.com.txt: Win.Test.EICAR_HDB-1 FOUND
/root/eicar.com.txt: Removed.

----------- SCAN SUMMARY -----------
Known viruses: 8694775
Engine version: 0.103.5
Scanned directories: 15
Scanned files: 12
Infected files: 2
Data scanned: 0.13 MB
Data read: 0.07 MB (ratio 1.94:1)
Time: 22.618 sec (0 m 22 s)
Start Date: 2024:06:21 05:36:59
End Date:   2024:06:21 05:37:22

3行目と5行目からダウンロードした2つのテスト用ウイルスファイルが除去されており、12行目でファイルが2つ検出されていることがわかりますね。これでClamAVによるウイルススキャンができていることが確認できました!

まとめ

本記事ではClamAVによるウイルス対策について紹介しました。ClamAVは無料とはいえ歴史も古く信頼できるウイルス対策ソフトの1つですので、linuxを構築する際はぜひ利用してみてくださいね!

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

Hack Luck Labの管理人hakula(ハクラ)です。2012年にSIerに新卒入社し、SE、新規事業、情シスを担当。その後、ITコンサルを経て、現在はバックエンドエンジニア。過去にはC#、SQL Server、JavaScriptで開発を行い、現在はPython、Rest Framework、Postgresql、Linux、AWSなどを使用しています。ノーコードツールやDX関連も興味あり。「技術は価値を生むために使う」ことが信条で、顧客や組織への貢献を重視しています。

目次