Actualiser system_hardening_optimized.sh
This commit is contained in:
parent
48bcbd8a0e
commit
b038d8af80
|
|
@ -46,7 +46,7 @@ readonly DEFAULT_UMASK="027"
|
|||
: "${AUTO_CLEANUP_SSH:=no}"
|
||||
: "${AUTO_CHANGE_ROOT_PWD:=yes}"
|
||||
|
||||
TOTAL_STEPS=33
|
||||
TOTAL_STEPS=32
|
||||
CURRENT_STEP=1
|
||||
|
||||
# Variables de contrôle
|
||||
|
|
@ -573,7 +573,7 @@ show_help() {
|
|||
echo " $0 --yes"
|
||||
echo ""
|
||||
echo " # Mode autonome sans certains composants"
|
||||
echo " AUTO_ENABLE_CLAMAV=no AUTO_ENABLE_AIDE=no $0 --unattended"
|
||||
echo " AUTO_ENABLE_CLAMAV=yes AUTO_ENABLE_AIDE=yes $0 --unattended"
|
||||
echo ""
|
||||
echo -e "${RED}⚠ AVERTISSEMENT:${NC}"
|
||||
echo " En mode autonome, le script prend des décisions automatiques."
|
||||
|
|
@ -1193,14 +1193,143 @@ configure_clamav() {
|
|||
|
||||
print_step "Configuration de ClamAV"
|
||||
|
||||
print_info "Mise à jour de la base de données ClamAV..."
|
||||
# Créer les répertoires nécessaires avec les bonnes permissions
|
||||
print_info "Création des répertoires ClamAV..."
|
||||
mkdir -p /var/log/clamav
|
||||
mkdir -p /var/lib/clamav
|
||||
mkdir -p /run/clamav
|
||||
|
||||
# Vérifier si l'utilisateur clamav existe, sinon le créer
|
||||
if ! id -u clamav >/dev/null 2>&1; then
|
||||
print_info "Création de l'utilisateur clamav..."
|
||||
useradd -r -M -d /var/lib/clamav -s /bin/false -c "Clam AntiVirus" clamav 2>/dev/null || true
|
||||
fi
|
||||
|
||||
# Définir les permissions correctes
|
||||
chown -R clamav:clamav /var/log/clamav 2>/dev/null || true
|
||||
chown -R clamav:clamav /var/lib/clamav 2>/dev/null || true
|
||||
chown -R clamav:clamav /run/clamav 2>/dev/null || true
|
||||
|
||||
chmod 755 /var/log/clamav 2>/dev/null || true
|
||||
chmod 755 /var/lib/clamav 2>/dev/null || true
|
||||
chmod 755 /run/clamav 2>/dev/null || true
|
||||
|
||||
# Créer les fichiers de log avec les bonnes permissions
|
||||
touch /var/log/clamav/freshclam.log 2>/dev/null || true
|
||||
touch /var/log/clamav/clamav.log 2>/dev/null || true
|
||||
|
||||
chown clamav:clamav /var/log/clamav/freshclam.log 2>/dev/null || true
|
||||
chown clamav:clamav /var/log/clamav/clamav.log 2>/dev/null || true
|
||||
|
||||
chmod 640 /var/log/clamav/freshclam.log 2>/dev/null || true
|
||||
chmod 640 /var/log/clamav/clamav.log 2>/dev/null || true
|
||||
|
||||
# Configuration de freshclam
|
||||
if [[ -f /etc/clamav/freshclam.conf ]]; then
|
||||
backup_file "/etc/clamav/freshclam.conf"
|
||||
|
||||
# S'assurer que le fichier de log est bien configuré
|
||||
sed -i 's|^#UpdateLogFile.*|UpdateLogFile /var/log/clamav/freshclam.log|' /etc/clamav/freshclam.conf
|
||||
sed -i 's|^UpdateLogFile.*|UpdateLogFile /var/log/clamav/freshclam.log|' /etc/clamav/freshclam.conf
|
||||
|
||||
# S'assurer que DatabaseOwner est défini
|
||||
if ! grep -q "^DatabaseOwner" /etc/clamav/freshclam.conf; then
|
||||
echo "DatabaseOwner clamav" >> /etc/clamav/freshclam.conf
|
||||
fi
|
||||
fi
|
||||
|
||||
# Configuration de clamd
|
||||
if [[ -f /etc/clamav/clamd.conf ]]; then
|
||||
backup_file "/etc/clamav/clamd.conf"
|
||||
|
||||
# S'assurer que le fichier de log est bien configuré
|
||||
sed -i 's|^#LogFile.*|LogFile /var/log/clamav/clamav.log|' /etc/clamav/clamd.conf
|
||||
sed -i 's|^LogFile.*|LogFile /var/log/clamav/clamav.log|' /etc/clamav/clamd.conf
|
||||
fi
|
||||
|
||||
# Arrêter les services avant la mise à jour
|
||||
print_info "Arrêt temporaire des services ClamAV..."
|
||||
systemctl stop clamav-freshclam 2>/dev/null || true
|
||||
freshclam --quiet 2>/dev/null || print_warning "Échec mise à jour ClamAV"
|
||||
systemctl stop clamav-daemon 2>/dev/null || true
|
||||
|
||||
# Attendre que les processus se terminent
|
||||
sleep 2
|
||||
|
||||
# Mise à jour de la base de données
|
||||
print_info "Mise à jour de la base de données ClamAV..."
|
||||
|
||||
# Tenter la mise à jour avec freshclam en tant qu'utilisateur clamav
|
||||
if su - clamav -s /bin/bash -c "freshclam --quiet" 2>&1 | tee -a "$LOG_FILE"; then
|
||||
print_success "Base de données ClamAV mise à jour"
|
||||
else
|
||||
# Si ça échoue, essayer en root avec les bonnes permissions
|
||||
print_warning "Tentative de mise à jour en root..."
|
||||
if freshclam --user=clamav --quiet 2>&1 | tee -a "$LOG_FILE"; then
|
||||
print_success "Base de données ClamAV mise à jour"
|
||||
else
|
||||
print_warning "Échec mise à jour ClamAV - les services démarreront avec l'ancienne base"
|
||||
fi
|
||||
fi
|
||||
|
||||
# Vérifier que les fichiers de base de données existent
|
||||
if [[ ! -f /var/lib/clamav/main.cvd ]] && [[ ! -f /var/lib/clamav/main.cld ]]; then
|
||||
print_warning "Base de données principale ClamAV manquante"
|
||||
print_info "Tentative de téléchargement manuel..."
|
||||
|
||||
cd /var/lib/clamav
|
||||
wget -q http://database.clamav.net/main.cvd 2>/dev/null || \
|
||||
print_warning "Impossible de télécharger la base principale"
|
||||
wget -q http://database.clamav.net/daily.cvd 2>/dev/null || \
|
||||
print_warning "Impossible de télécharger la base quotidienne"
|
||||
wget -q http://database.clamav.net/bytecode.cvd 2>/dev/null || \
|
||||
print_warning "Impossible de télécharger la base bytecode"
|
||||
|
||||
chown clamav:clamav /var/lib/clamav/*.cvd 2>/dev/null || true
|
||||
cd - > /dev/null
|
||||
fi
|
||||
|
||||
# Activer et démarrer les services
|
||||
print_info "Démarrage des services ClamAV..."
|
||||
|
||||
systemctl enable clamav-freshclam 2>/dev/null || true
|
||||
systemctl start clamav-freshclam 2>/dev/null || true
|
||||
systemctl enable clamav-daemon 2>/dev/null || true
|
||||
systemctl start clamav-daemon 2>/dev/null || true
|
||||
|
||||
if systemctl start clamav-freshclam 2>&1 | tee -a "$LOG_FILE"; then
|
||||
print_success "Service freshclam démarré"
|
||||
else
|
||||
print_warning "Service freshclam non démarré"
|
||||
fi
|
||||
|
||||
# Attendre un peu avant de démarrer le daemon
|
||||
sleep 3
|
||||
|
||||
if systemctl start clamav-daemon 2>&1 | tee -a "$LOG_FILE"; then
|
||||
print_success "Service clamav-daemon démarré"
|
||||
else
|
||||
print_warning "Service clamav-daemon non démarré"
|
||||
fi
|
||||
|
||||
# Vérification du statut
|
||||
echo ""
|
||||
print_info "Vérification des services ClamAV..."
|
||||
|
||||
if systemctl is-active --quiet clamav-freshclam 2>/dev/null; then
|
||||
echo " ✓ freshclam: actif"
|
||||
else
|
||||
echo " ⚠ freshclam: inactif"
|
||||
fi
|
||||
|
||||
if systemctl is-active --quiet clamav-daemon 2>/dev/null; then
|
||||
echo " ✓ clamav-daemon: actif"
|
||||
else
|
||||
echo " ⚠ clamav-daemon: inactif"
|
||||
fi
|
||||
|
||||
# Afficher la version de la base de données
|
||||
if command -v sigtool > /dev/null 2>&1; then
|
||||
local db_version=$(sigtool --info /var/lib/clamav/main.cvd 2>/dev/null | grep "Version" | head -1)
|
||||
[[ -n "$db_version" ]] && echo " • Base de données: $db_version"
|
||||
fi
|
||||
|
||||
print_success "ClamAV configuré"
|
||||
mark_step_done "$step_name"
|
||||
|
|
|
|||
Loading…
Reference in New Issue