modified a few things
This commit is contained in:
151
fix-clamav.sh
Executable file
151
fix-clamav.sh
Executable file
@@ -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"
|
||||||
@@ -137,8 +137,15 @@ install_packages() {
|
|||||||
spamassassin \
|
spamassassin \
|
||||||
clamav \
|
clamav \
|
||||||
clamav-daemon \
|
clamav-daemon \
|
||||||
clamav-freshclam \
|
clamav-freshclam
|
||||||
clamav-unofficial-sigs
|
|
||||||
|
# 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
|
# Install OpenDKIM
|
||||||
apt install -y opendkim opendkim-tools
|
apt install -y opendkim opendkim-tools
|
||||||
|
|||||||
Reference in New Issue
Block a user