From 5f6d922073553617e7292b025727f3df1620a368 Mon Sep 17 00:00:00 2001 From: Tommy Parnell Date: Sun, 3 Aug 2025 11:58:07 -0400 Subject: [PATCH] modified a few things --- fix-clamav.sh | 151 ++++++++++++++++++++++++++++++++++++++++++ setup-email-server.sh | 11 ++- 2 files changed, 160 insertions(+), 2 deletions(-) create mode 100755 fix-clamav.sh diff --git a/fix-clamav.sh b/fix-clamav.sh new file mode 100755 index 0000000..34854dd --- /dev/null +++ b/fix-clamav.sh @@ -0,0 +1,151 @@ +#!/bin/bash + +# Quick Fix Script for ClamAV Installation Issues +# Run this if the main setup script failed due to clamav-unofficial-sigs + +set -euo pipefail + +# Colors +RED='\033[0;31m' +GREEN='\033[0;32m' +YELLOW='\033[1;33m' +BLUE='\033[0;34m' +NC='\033[0m' + +info() { + echo -e "${BLUE}INFO: $1${NC}" +} + +success() { + echo -e "${GREEN}SUCCESS: $1${NC}" +} + +warning() { + echo -e "${YELLOW}WARNING: $1${NC}" +} + +error() { + echo -e "${RED}ERROR: $1${NC}" >&2 + exit 1 +} + +# Check if running as root +if [[ $EUID -ne 0 ]]; then + error "This script must be run as root" +fi + +info "Fixing ClamAV installation issues..." + +# Update package lists +apt update + +# Install core ClamAV packages +info "Installing ClamAV packages..." +apt install -y \ + clamav \ + clamav-daemon \ + clamav-freshclam + +# Try alternative methods for unofficial signatures +info "Setting up ClamAV unofficial signatures..." + +# Method 1: Try installing from different repository +if apt-cache show clamav-unofficial-sigs >/dev/null 2>&1; then + apt install -y clamav-unofficial-sigs + success "Installed clamav-unofficial-sigs from repository" +else + warning "clamav-unofficial-sigs not available in repositories" + + # Method 2: Manual installation of unofficial signatures script + info "Installing unofficial signatures manually..." + + # Download and install the script manually + cd /tmp + if wget -q https://github.com/extremeshok/clamav-unofficial-sigs/archive/master.zip; then + apt install -y unzip + unzip -q master.zip + cd clamav-unofficial-sigs-master + + # Install the script + cp clamav-unofficial-sigs.sh /usr/local/bin/ + chmod +x /usr/local/bin/clamav-unofficial-sigs.sh + + # Create configuration + mkdir -p /etc/clamav-unofficial-sigs + cp config/user.conf /etc/clamav-unofficial-sigs/ + + # Set up cron job for updates + echo "0 */6 * * * /usr/local/bin/clamav-unofficial-sigs.sh" | crontab - + + success "Manually installed clamav-unofficial-sigs" + else + warning "Could not download unofficial signatures script - continuing without it" + fi +fi + +# Ensure ClamAV is properly configured +info "Configuring ClamAV..." + +# Update virus definitions +info "Updating virus definitions..." +if freshclam; then + success "Virus definitions updated" +else + warning "Failed to update virus definitions - this may be temporary" +fi + +# Start and enable ClamAV services +info "Starting ClamAV services..." +systemctl enable clamav-daemon +systemctl enable clamav-freshclam + +# Stop freshclam service temporarily to avoid conflicts +systemctl stop clamav-freshclam 2>/dev/null || true + +# Start daemon +if systemctl start clamav-daemon; then + success "ClamAV daemon started" +else + warning "ClamAV daemon failed to start - checking configuration..." + + # Check for common issues + if [[ ! -f "/var/lib/clamav/main.cvd" ]]; then + info "Missing virus database, updating..." + freshclam + systemctl start clamav-daemon + fi +fi + +# Restart freshclam service +systemctl start clamav-freshclam + +# Verify installation +info "Verifying ClamAV installation..." +if systemctl is-active --quiet clamav-daemon; then + success "ClamAV daemon is running" +else + error "ClamAV daemon is not running" +fi + +if systemctl is-active --quiet clamav-freshclam; then + success "ClamAV freshclam is running" +else + warning "ClamAV freshclam is not running (this may be normal)" +fi + +# Test ClamAV +info "Testing ClamAV..." +if echo "X5O!P%@AP[4\PZX54(P^)7CC)7}\$EICAR-STANDARD-ANTIVIRUS-TEST-FILE!\$H+H*" | clamdscan --stream 2>/dev/null | grep -q "FOUND"; then + success "ClamAV is working correctly" +else + warning "ClamAV test inconclusive - may still be starting up" +fi + +success "ClamAV setup completed!" +echo +echo "You can now continue with the main email server setup script." +echo "The absence of clamav-unofficial-sigs will not affect core functionality." +echo +echo "To check ClamAV status later:" +echo " systemctl status clamav-daemon" +echo " systemctl status clamav-freshclam" diff --git a/setup-email-server.sh b/setup-email-server.sh index e2e2e13..49b687c 100755 --- a/setup-email-server.sh +++ b/setup-email-server.sh @@ -137,8 +137,15 @@ install_packages() { spamassassin \ clamav \ clamav-daemon \ - clamav-freshclam \ - clamav-unofficial-sigs + clamav-freshclam + + # Try to install clamav-unofficial-sigs if available + if apt-cache show clamav-unofficial-sigs >/dev/null 2>&1; then + apt install -y clamav-unofficial-sigs + info "Installed clamav-unofficial-sigs" + else + warning "clamav-unofficial-sigs package not available, skipping (this is normal on newer systems)" + fi # Install OpenDKIM apt install -y opendkim opendkim-tools