ClamAVでウィルススキャンを実行する手順を記載します。
Table of Contents
1 clamscanでウィルススキャンを実行する
clamavパッケージをインストールします。
$ sudo dnf install -y clamav
clamscanでウィルススキャンを実行します。
- -rオプションでディレクトリを再帰的に走査します。
- -iオプションで検出ファイルのみ表示します。
- –moveオプションで検出ファイルを指定のディレクトリへ移動します。
$ mkdir ~/virus $ clamscan -r -i --move=$HOME/virus .
2 手動でウィルスデータベースを更新する
ウィルスデータベースを更新するにはfreshclamコマンドを実行します。freshclamコマンドはclamav-updateパッケージに含まれます。
$ sudo dnf install -y clamav-update $ sudo freshclam
3 自動的にウィルスデータベースを更新する
clamav-updateパッケージをインストールすると3時間毎に/usr/share/clamav/freshclam-sleepを実行するcronジョブが有効になります。
freshclam-sleepは/etc/sysconfig/freshclamで設定されるFRESHCLAM_DELAYがdisabled-warnとdisabledでない場合にfreshclamを実行します。/etc/sysconfig/freshclamのデフォルトではFRESHCLAM_DELAYはdisable-warnが設定されておりfreshclam-sleepはfreshclamを実行しません。
よって、自動的にウィルスデータベースを更新するには、clamav-updateパッケージをインストールして、/etc/sysconfig/freshclamでFRESHCLAM_DELAYにdisabled-warnやdisabledを設定しないようにします。
$ sudo dnf install -y clamav-update $ sudo sed -e 's/^FRESHCLAM_DELAY/#FRESHCLAM_DELAY/g' \ -i /etc/sysconfig/freshclam
ウィルスデータベースの更新間隔を変更するには以下のファイルを編集します。
/etc/cron.d/clamav-update
4 clamdでウィルススキャンを実行する
clamdは予めデータベースを読み込み、clamdscanコマンドのリクエストに答えてウィルススキャンを実行するデーモンです。データベースの分だけ常にメモリを消費しますが、clamdscanはclamscanに比べて実行速度が段違いに早いです。clamscanとは異なり、clamdscanの挙動はclamdに依存します。
WEBサイトにアップロードされるファイルをスキャンする場合はこちらを利用すべきでしょう。
clamdの動作に必要なパッケージをインストールします。
$ sudo dnf install -y clamav-server clamav-server-systemd clamav-scanner
clamd@scan.serviceが読み込む/etc/clamd.d/scan.confを編集します。
$ sudo sed -e 's/^Example/#Example/g' \ -e 's/^User.*/User root/g' \ -e 's/^#LocalSocket /LocalSocket /g' \ -e 's/^#LocalSocketGroup.*/LocalSocketGroup clamscan/g' \ -e 's/^#LocalSocketMode /LocalSocketMode /g' \ -e 's/^#FixStaleSocket /FixStaleSocket /g' \ -e 's/^#ExcludePath /ExcludePath /g' \ -i /etc/clamd.d/scan.conf
clamd@scan.serviceを有効にします。
$ sudo systemctl enable clamd@scan
clamdscanコマンドが利用する/etc/clamd.confを/etc/clamd.d/scan.confのシンボリックリンクにします。
$ sudo ln -s /etc/clamd.d/scan.conf /etc/clamd.conf
clamdの動作に必要なSELinuxの設定を許可します。
$ sudo setsebool -P antivirus_can_scan_system 1 $ sudo setsebool -P clamd_use_jit 1
clamdscanを実行するユーザをclamscanグループに所属させます。
$ sudo gpasswd -a "${USER}" clamscan
gpasswdの設定を反映させる為に一度再起動します。
$ sudo reboot
再起動後にclamdscanが実行できるようになります。
$ clamdscan <file-or-dir>
5 clamtkパッケージでウィルススキャンを実行する
clamtkパッケージはclamavをGUI操作できるようにするパッケージです。デスクトップで使うのに向いています。
$ sudo dnf install -y clamtk
起動画面は以下の通りです。各項目を選択するのにダブルクリックする必要があります。
Settingsで"scan directories recursively"にチェックを入れておきます。
"Scan a directory"からホームディレクトリを再帰的にスキャンできます。