AmazonLinux2でClamAVを動かす
はじめに
AmazonLinux2で動かしていたClamAVがエラーで動かなくなったので、調査しました。以前は独自でepelリポジトリから入れてたんだけど、amazon-linux-extrasコマンドでEPELを有効化できることがわかったので、こっちのやり方でやってみました。
導入~動かすまで
まず古いclamavは削除しました
yum remove clamd clamav-filesystem clamav-lib clamav-updateEPELを有効化
sudo amazon-linux-extras install epelあらためて、ClamAVをインストールします
sudo yum install -y clamav clamav-update clamd
定義ファイルを更新してみます。エラーがでなければOK
freshclam ClamAV update process started at Wed May 29 14:38:40 2019 main.cvd is up to date (version: 58, sigs: 4566249, f-level: 60, builder: sigmgr) daily.cld is up to date (version: 25463, sigs: 1583021, f-level: 63, builder: raynman) bytecode.cvd is up to date (version: 328, sigs: 94, f-level: 63, builder: neo)
設定ファイルを修正します
vi /etc/clamd.d/scan.conf #Example ExcludePath ^/proc/ ExcludePath ^/sys/ LogVerbose yes
ここで、clamscan, clamdscan, clamd@scanとか複数のコマンドがあることがわかって、ちょっと躓いた。以下の手順で進めました
デーモンではないスタンドアロン版の実行(clamscan)
以下のコマンドで実行。オプションはヘルプみながら適当に選んだ
clamscan -r -i / --exclude-dir=^/proc --exclude-dir=^/sys > /var/log/clamscan.log結果
# cat /var/log/clamscan.log ----------- SCAN SUMMARY ----------- Known viruses: 6140217 Engine version: 0.101.2 Scanned directories: 8259 Scanned files: 63307 Infected files: 0 Data scanned: 3566.84 MB Data read: 6079.06 MB (ratio 0.59:1) Time: 377.097 sec (6 m 17 s)
OKぽい。ただ、スタンドアロン版は処理が重いとのことで、定期的に実行するならデーモン版のほうが良さそう
デーモンに処理をまかせる
clamdscanコマンドを実行するためには、clamdのサービスが起動した状態である必要があります。
状態確認
# systemctl list-unit-files --type=service | grep clam clamd@.service static clamd@scan.service disabledclamd@scanを有効化します。
systemctl enable clamd@scanスキャン実行
systemctl start clamd@scanエラー
Job for clamd@scan.service failed because the control process exited with error code. See "systemctl status clamd@scan.service" and "journalctl -xe" for details.原因確認
#journalctl -xe -- Unit clamd@scan.service has begun starting up. May 29 14:53:04 e2info-web01 clamd[10306]: Received 0 file descriptor(s) from systemd. May 29 14:53:04 e2info-web01 clamd[10306]: Please define server type (local and/or TCP). May 29 14:53:04 e2info-web01 clamd[10306]: ERROR: Please define server type (local and/or TCP). May 29 14:53:04 e2info-web01 systemd[1]: clamd@scan.service: control process exited, code=exited status=1 May 29 14:53:04 e2info-web01 systemd[1]: Failed to start Generic clamav scanner daemon.Please define server type (local and/or TCP).ってことなのでローカルに変更してみる
vi /etc/clamd.d/scan.conf #LocalSocket /var/run/clamd.scan/clamd.sock ↓ LocalSocket /var/run/clamd.scan/clamd.sock起動したっぽい
systemctl start clamd@scan
うごいた!
# clamdscan /var/log: OK ----------- SCAN SUMMARY ----------- Infected files: 0 Time: 33.055 sec (0 m 33 s)
ついでに日時処理を自動化
vi /etc/cron.d/clamav-scan 0 2 * * * root /bin/clamdscan > /var/log/clamdscan.log