+ 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 にしておく。