概要
NextcloudとClamAVを連携させます。
環境
Ubuntu 22.04
Nextcloud 28.02
ClamAV 0.103
さっくりとした手順
clamav-daemonを有効化します。
ウイルス定義ファイル(freshclam)を定期的に実行させます。
NextcloudにAntivirusを導入します。
NextcloudのAntivirusを連携させます。
参考にした手順:https://rair.dev/nextcloud-clamav-antivirus/
前提
性質上、かなりリソースを消費します。ある程度のマシンスペックを覚悟してください。
ClamAVをインストールしていることが条件です。
ClamAVを有効化します。
sudo systemctl status clamav-daemon.service
実行結果
○ clamav-daemon.service - Clam AntiVirus userspace daemon
Loaded: loaded (/lib/systemd/system/clamav-daemon.service; enabled; vendor preset: enabled)
Drop-In: /etc/systemd/system/clamav-daemon.service.d
└─extend.conf
Active: inactive (dead)
Condition: start condition failed at Tue 2024-02-20 16:09:56 JST; 19h ago
└─ ConditionPathExistsGlob=/var/lib/clamav/daily.{c[vl]d,inc} was not met
Docs: man:clamd(8)
man:clamd.conf(5)
https://docs.clamav.net/
最初はエラーになったので、再起動をします。
sudo systemctl restart clamav-daemon.service
sudo systemctl status clamav-daemon.service
● clamav-daemon.service - Clam AntiVirus userspace daemon
Loaded: loaded (/lib/systemd/system/clamav-daemon.service; enabled; vendor preset: enabled)
Drop-In: /etc/systemd/system/clamav-daemon.service.d
└─extend.conf
Active: active (running) since Wed 2024-02-21 11:44:33 JST; 4s ago
Docs: man:clamd(8)
man:clamd.conf(5)
https://docs.clamav.net/
Process: 54279 ExecStartPre=/bin/mkdir -p /run/clamav (code=exited, status=0/SUCCESS)
Process: 54280 ExecStartPre=/bin/chown clamav /run/clamav (code=exited, status=0/SUCCESS)
Main PID: 54281 (clamd)
Tasks: 1 (limit: 18920)
Memory: 955.7M
CPU: 4.215s
CGroup: /system.slice/clamav-daemon.service
└─54281 /usr/sbin/clamd --foreground=true
今度はOKです。この結果を見てもわかるように、消費メモリが1GBほど。
netstat -a|grep clam
unix 2 [ ACC ] STREAM LISTENING 1516341 /var/run/clamav/clamd.ctl
freshclamを定期実行させます。
cat <<- __EOF__ | sudo tee -a /etc/systemd/system/freshclam.service
[Unit]
Description=Freshclam virus database updater
[Service]
Type=simple
ExecStart=/usr/bin/freshclam -d -c 4
# -c 数字で 頻度を指定します。ここでは日に4回(6時間おき)に更新します
[Install]
WantedBy=multi-user.target
__EOF__
sudo chmod +x /etc/systemd/system/freshclam.service
sudo systemctl daemon-reload
sudo systemctl start freshclam.service
sudo systemctl enable freshclam.service
systemctl status freshclam.service
Active :inactive (dead)と表示されますが、 freshclam.service: Deactivated successfully.と出ていれば動作に問題はありません。
NextcloudでAntiVirusをインストール
Nextcloudに管理者権限でログインします。
アプリから「Antivirus for files」を検索してインストールします。
Nextcloud Antivirus for files設定
管理者メニューの「セキュリティ」に進みます。
ファイルのウイルス対策で、以下の通り設定します。
モード: ClamAV Daemon (Socket)
ソケット: /var/run/clamav/clamd.ctl
ストリームの長さ: 262144000 (アップロードできるファイルの容量に合わせます)
File size limit for periodic background scans and chunked uploads, -1 means no limit:-1
Check only first bytes of the file, -1 means no limit :-1
バックグラウンドスキャン中に感染ファイルが見つかった場合: ログのみ (運用に合わせます)
設定後、「保存」をクリックして、設定完了です。