概要
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を有効化します。
- ClamAV daemon 状況確認
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/
最初はエラーになったので、再起動をします。
- ClamAV daemon 再起動
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
- バックグラウンドスキャン中に感染ファイルが見つかった場合: ログのみ (運用に合わせます)
設定後、「保存」をクリックして、設定完了です。