flat7th

+ ClamAntiVirus メモ

created 2025-11-02 modified 2025-11-03 

2024-06-01, Fedora40 のメモが元
2025-11-02, Fedora43 で動作確認したためWikiに上げました

Fedora43 に ClamAV というアンチウィルスソフトをセットアップする手順です。

1. インストールして手動スキャンするまで


インストール


sudo dnf install  clamav clamav-update


定義ファイル更新


sudo freshclam


スキャン


clamscan --infected --remove --recursive /home/keizo/ダウンロード/
----------- SCAN SUMMARY -----------
Known viruses: 8668382
Engine version: 1.0.1
Scanned directories: 1
Scanned files: 3
Infected files: 0
Data scanned: 0.28 MB
Data read: 0.12 MB (ratio 2.29:1)
Time: 15.581 sec (0 m 15 s)
Start Date: 2023:06:06 15:25:37
End Date:   2023:06:06 15:25:53
[keizo@fedora ~]$ 

すげー遅い。けど、さしあたり仕方がない。


2. デーモン方式に設定変更する


今まで、clamscan コマンドでスキャンしていた。これだと毎回データベースを読んで遅い。
clamd デーモンを起動し clamdscan コマンドでスキャンすると、データベース読み込み分速くなる。

clamd デーモンの起動設定が面倒で放置していたが、調べてやってみたらできたので、メモを残します。

インストール


sudo dnf install  clamd
(このとき、ユーザー clamscan ができる)

設定ファイル


/etc/clamd.d/scan.conf

以下を有効にした
LogFile /var/log/clamd.scan
LogSyslog yes
PidFile /run/clamd.scan/clamd.pid
LocalSocket /run/clamd.scan/clamd.sock

ログファイルまわり設定


rootで
touch /var/log/clamd.scan
chown clamscan:clamscan /var/log/clamd.scan

SELinuxまわり設定


rootで
restorecon -v /var/log/clamd.scan
setsebool -P antivirus_can_scan_system on 

systemctlによる起動コマンドとか


単発起動 (少し時間がかかる)
systemctl start clamd@scan
良さげなら以下で毎回起動にする
systemctl enable clamd@scan

起動しなかったとき調べるコマンド
systemctl status clamd@scan
journalctl -xeu clamd@scan.service

自分の使い方による、ディレクトリ構成


/home/keizo/ダウンロード/scanque/		# ここにファイルを置いて、scanv と実行すると
/home/keizo/ダウンロード/scanned/		# ここに移動するようにしたい

scanv コマンドは次で定義する。
デーモンを使う方式とする。内部でユーザー clamscan で実行するために sudo が必要。


スキャンコマンドの定義


bash の rc ファイル
/home/keizo/.bashrc.d/12-antivir.rc
にてシェル関数を書いた。


scanv()
{
	pushd ${HOME}/ダウンロード/scanque/
	trap "popd" SIGINT
	set -x

	## clamscan ユーザにて clamdscan を実行。
	## コマンドが成功したらディレクトリ内にはスキャン成功したファイルが残っているので、移動する
	sudo -u clamscan  /usr/bin/clamdscan --infected --remove && \
		find . -maxdepth 1 -mindepth 1 -exec mv {} ${HOME}/ダウンロード/scanned/ ';'

	set +x
	popd
}

(この定義を有効にするには、bash -l としてログインシェルを1つ深堀り起動してその中で続行するか、source ~/.bashrc.d/12-antivir.rc として読み込みます)

パスワード入力の省略設定


/etc/sudoers.d/50-keizo に以下の行を記載した。

# ユーザkeizo は 全ホスト上で ユーザclamscanに変身して /usr/bin/clamdscanを実行できる。パスワード不要とする
keizo   ALL = (clamscan) NOPASSWD:      /usr/bin/clamdscan


ホームディレクトリの権限変更


ここで微妙な問題。
ホームディレクトリ /home/keizo/ の権限が、クリーンインストール状態では 700 になっている。
これだと clamscan ユーザーが見れなくて、701 に変更すると動作成功した。
(700 とは "drwx------." )
(701 とは "drwx-----x." )

chmod 701 ~

動作確認


scanque に置いたファイルを

scanv

で、スキャンして、scanned に移動したことを確認。

ブラウザ設定


ダウンロードの標準格納先を、~/ダウンロード/scanque にしておく。