Tatsu still writes something... Fourth season

これからも私はなにかをしてなにかを書く

Ubuntu (20.04/22.04)にウイルススキャンソフトClamAVを入れて一通り使えるようにしてみた(2022/09/05加筆)

私とLinux

今までも適当に仮想マシンLinuxを入れていました。そこでは、気分転換とかCGIの開発をやっていました。最近はふとしたことからデスクトップLinuxを使うことが多くなってきました。

実用としてのLinux

HDDの遅いノートPCのメインとしてのLinux

前に書いたようにテレワーク用端末のノートPCをテレワークに使わないときにHDDではWindows 10の起動が遅くてやってられないので起動がそれなりの時間で済んで機能も十分なシステムとしてノートPCにXubuntuを入れて使っています。ノートPCではネット閲覧とかしかやらないので、Xubuntuで十分な使い心地です。むしろ、フォントが整っているのでWindows 10より見た目のがよくて気分がいいです。こちらは普通に使うので安全レベルを上げるためウイルス対策ソフトを入れようとみてみたらClamAVくらいしかなかったので、ClamAVを入れました。

Windows 11が出ますが、動作要件が厳しいのでまだまだ使えるマシンでも入れられないというケースは多いかと思います。そんな時に今からLinuxを入れて慣れておくのもよいかと思います。第6,7世代Coreiシリーズあたりで動くLinuxデスクトップ、早くていじりまくりで面白いだろうな。

仮想マシンでメインOSを汚さないLinux

私は今のメインマシンを組むときに、何年も使えばメモリの規格も変わるのでいざメモリを買い足したいときに変えないということを防ぐため大目にメモリを盛ってマシンを組みました。

せっかくメモリがあるので、仮想マシンUbuntuを入れました。最初はMicrosoft Solitire Collectionの30秒広告がうざいのでフリーセルマシンとして使っていました。

Xubuntu使っていて、MSゴシックもメイリオも游ゴシックもヒラギノもないLinuxではWebページの文字の見た目が大体一緒になるので落ち着いていていいなと思ったのと、隔離されたLinuxWebブラウザ動かしたら安全だろうなということでFirefoxの設定を詰めてみました。そうすると、Linuxでもアンチウイルスないと自分は安全でも人に迷惑かけるなとということに気づきました。

ということで、UbuntuにウイルススキャンソフトClamAVを入れて一通り使えるようにしてみました。その時の手順を最低の手数でできるように書いてみました。この後の手順はネットで書いてあることの寄せ集めなので、間違っているところがあったらネットで調べてください。

それでは前置きが長くなりましたが、ClamAVをこうやって実用にもっていったということを書いていきます。

ClamAVのセットアップ

全部コマンドラインでやっていきます。

必要物のインストール

以下のコマンドを打ち込んでいきます。

sudo apt install clamav
sudo apt install clamav-daemon
sudo apt install apparmor-utils -y
sudo aa-complain clamd

設定ファイルの修正

次に、設定ファイルを修正します。

sudo vi /etc/clamav/clamd.conf

を実行し、clamd.confを修正します。

LocalSocketGroup clamavとあるところを
LocalSocketGroup root

に変えます。

User clamavとあるところを
User root

に変えます。

また、最後に以下のコマンドを追加します。

OnAccessPrevention false
OnAccessExtraScanning true
OnAccessExcludeUID 0
VirusEvent /opt/clamav-utils/clamd-response.sh
OnAccessIncludePath /home
OnAccessIncludePath /etc
OnAccessIncludePath /media
OnAccessIncludePath /mnt
OnAccessIncludePath /opt
OnAccessIncludePath /snap
OnAccessIncludePath /tmp
OnAccessIncludePath /usr
OnAccessIncludePath /var
OnAccessMountPath /home
OnAccessMountPath /etc
OnAccessMountPath /media
OnAccessMountPath /mnt
OnAccessMountPath /opt
OnAccessMountPath /snap
OnAccessMountPath /tmp
OnAccessMountPath /usr
OnAccessMountPath /var

OnAccessIncludePathとOnAccessMountPathは/と書いてフルスキャンという手はいつからかわからないけど取れなくなったので、思い当たるところを手当たり次第に書いてます。これがWindowsだったらいくつ書くことになるんでしょう。

Ubuntu 22.04では以下の行も追加する必要があります。

OnAccessExcludeRootUID yes
OnAccessExcludeUname root

ウイルス検知時のアクション

ウイルス検知時に自動でウイルスを削除するため、以下のコマンドを実行します。

sudo mkdir -p /opt/clamav-utils
sudo vi /opt/clamav-utils/clamd-response.sh

vimが起動したら、以下の内容を入力します。

#!/bin/sh
# ClamAVのウイルス検知イベントをログに記述
echo "$(date) - $CLAM_VIRUSEVENT_VIRUSNAME > $CLAM_VIRUSEVENT_FILENAME" >> /var/log/clamav/infected.log
# マルウェアファイルを削除
rm $CLAM_VIRUSEVENT_FILENAME

ファイルを保存したら、シェルスクリプトを実行できるようにします。

sudo chmod 755 /opt/clamav-utils/clamd-response.sh

 

オンアクセススキャンの有効化

ウイルス検知時を自動で行うため、以下のコマンドを実行します。

cd /lib/systemd/system
sudo vi clamonacc.service

vimが起動したら、以下の内容を入力します。

# /etc/systemd/system/clamonacc.service
[Unit]
Description=ClamAV On Access Scanner
Requires=clamav-daemon.service
After=clamav-daemon.service syslog.target network.target

[Service]
Type=simple
User=root
ExecStart=/usr/sbin/clamonacc -F --log=/var/log/clamav/clamonacc
Restart=on-failure
RestartSec=120s

[Install]
WantedBy=multi-user.target

 

ウイルススキャン自動実行の登録

以下のコマンドを入力します。

sudo touch /var/log/clamav/clamonacc
sudo systemctl enable clamonacc.service sudo systemctl enable clamav-daemon sudo systemctl enable clamav-freshclam sudo systemctl restart clamav-freshclam.service
sudo systemctl restart clamonacc.service

これでClamAVが動き出します。

確認

Firefoxでも立ち上げてeicarをダウンロードして保存してみましょう。保存後、eicarが消えて、/var/log/clamav/infected.logに消えたことが表示されます。

おまけ

GUIでウイルススキャンを行うため、以下のコマンドを実行してClamTkをインストールすることでGUIでウイルススキャンなどを行うことができるようになります。

sudo install clamtk

これで、Ubuntuでもリアルタイムでウイルススキャンが行われるようになったので、多少の無茶しても安全になるかと思います。もちろん、変なサイトに行かないとかの基本は一緒ですが。

追記

Xubuntu 22.04でも試して、同様の手順で使うことができることを確認しました。