59 lines
1.5 KiB
Bash
59 lines
1.5 KiB
Bash
#!/usr/bin/env bash
|
|
set -euo pipefail
|
|
source ./lib.sh
|
|
|
|
log "ClamAV (clamav-daemon) installieren/konfigurieren …"
|
|
|
|
# Flags laden
|
|
set +u
|
|
[ -r /etc/mailwolt/installer.env ] && . /etc/mailwolt/installer.env
|
|
set -u
|
|
CLAMAV_ENABLE="${CLAMAV_ENABLE:-0}"
|
|
|
|
# Pakete
|
|
if ! dpkg -s clamav-daemon >/dev/null 2>&1; then
|
|
apt-get update -qq
|
|
apt-get install -y clamav clamav-daemon
|
|
fi
|
|
|
|
# Signaturen aktualisieren (erst Freshclam starten)
|
|
systemctl stop clamav-freshclam 2>/dev/null || true
|
|
freshclam || true
|
|
systemctl start clamav-freshclam || true
|
|
|
|
# clamd LocalSocket setzen
|
|
sed -i 's|^#\?LocalSocket .*|LocalSocket /run/clamav/clamd.ctl|' /etc/clamav/clamd.conf || true
|
|
install -d -m 0755 /run/clamav
|
|
chown clamav:clamav /run/clamav
|
|
|
|
# Dienst nach Flag
|
|
if [[ "$CLAMAV_ENABLE" = "1" ]]; then
|
|
systemctl enable --now clamav-daemon
|
|
else
|
|
systemctl disable --now clamav-daemon || true
|
|
fi
|
|
|
|
# Rspamd-Integration (nur wenn aktiv)
|
|
AV_CONF="/etc/rspamd/local.d/antivirus.conf"
|
|
if [[ "$CLAMAV_ENABLE" = "1" ]]; then
|
|
cat >"$AV_CONF" <<'EOF'
|
|
clamav {
|
|
symbol = "CLAM_VIRUS";
|
|
type = "clamav";
|
|
servers = "/run/clamav/clamd.ctl";
|
|
scan_mime_parts = true;
|
|
scan_text_mime = true;
|
|
max_size = 50mb;
|
|
log_clean = false;
|
|
action = "reject";
|
|
}
|
|
EOF
|
|
chown root:_rspamd "$AV_CONF" || true
|
|
chmod 0640 "$AV_CONF" || true
|
|
systemctl reload rspamd || systemctl restart rspamd
|
|
else
|
|
rm -f "$AV_CONF" || true
|
|
systemctl reload rspamd || true
|
|
fi
|
|
|
|
log "[✓] ClamAV (ENABLE=${CLAMAV_ENABLE}) konfiguriert." |