Ajouter install_security_tools.sh
This commit is contained in:
parent
d71e56eda4
commit
35c6fb79a6
|
|
@ -0,0 +1,485 @@
|
||||||
|
#!/bin/bash
|
||||||
|
#
|
||||||
|
# Script d'installation et configuration de rkhunter et ClamAV
|
||||||
|
# pour la détection de rootkits et malwares sur Debian 12
|
||||||
|
#
|
||||||
|
# Idempotent et professionnel
|
||||||
|
# Usage: sudo ./install_security_tools.sh
|
||||||
|
|
||||||
|
set -euo pipefail
|
||||||
|
|
||||||
|
# Couleurs pour l'output
|
||||||
|
readonly RED='\033[0;31m'
|
||||||
|
readonly GREEN='\033[0;32m'
|
||||||
|
readonly YELLOW='\033[1;33m'
|
||||||
|
readonly NC='\033[0m'
|
||||||
|
|
||||||
|
# Constantes
|
||||||
|
readonly LOG_FILE="/var/log/security_tools_install.log"
|
||||||
|
readonly RKHUNTER_CONF="/etc/rkhunter.conf"
|
||||||
|
readonly RKHUNTER_LOCAL_CONF="/etc/rkhunter.conf.local"
|
||||||
|
readonly CLAMAV_CONF="/etc/clamav/clamd.conf"
|
||||||
|
readonly AIDE_CONF="/etc/aide/aide.conf"
|
||||||
|
|
||||||
|
#################################################################
|
||||||
|
# CONFIGURATION DES EXCEPTIONS - FAUX POSITIFS CONNUS
|
||||||
|
#################################################################
|
||||||
|
# Ajoutez ici les fichiers/commandes qui génèrent des faux positifs
|
||||||
|
# Format: un chemin complet par ligne
|
||||||
|
readonly RKHUNTER_EXCEPTIONS=(
|
||||||
|
"/usr/bin/lwp-request"
|
||||||
|
"/usr/bin/GET"
|
||||||
|
"/usr/bin/HEAD"
|
||||||
|
"/usr/bin/POST"
|
||||||
|
"/usr/sbin/unhide"
|
||||||
|
# Ajoutez vos propres exceptions ici
|
||||||
|
# "/chemin/vers/votre/fichier"
|
||||||
|
)
|
||||||
|
|
||||||
|
# Vérifier les privilèges root en premier
|
||||||
|
if [[ $EUID -ne 0 ]]; then
|
||||||
|
echo -e "${RED}ERREUR: Ce script doit être exécuté avec les privilèges root${NC}"
|
||||||
|
echo -e "${YELLOW}Utilisation: sudo $0${NC}"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Fonction de logging
|
||||||
|
log() {
|
||||||
|
echo -e "${GREEN}[$(date +'%Y-%m-%d %H:%M:%S')]${NC} $*" | tee -a "$LOG_FILE"
|
||||||
|
}
|
||||||
|
|
||||||
|
log_error() {
|
||||||
|
echo -e "${RED}[$(date +'%Y-%m-%d %H:%M:%S')] ERROR:${NC} $*" | tee -a "$LOG_FILE"
|
||||||
|
}
|
||||||
|
|
||||||
|
log_warning() {
|
||||||
|
echo -e "${YELLOW}[$(date +'%Y-%m-%d %H:%M:%S')] WARNING:${NC} $*" | tee -a "$LOG_FILE"
|
||||||
|
}
|
||||||
|
|
||||||
|
# Vérifier les privilèges root
|
||||||
|
check_root() {
|
||||||
|
if [[ $EUID -ne 0 ]]; then
|
||||||
|
log_error "Ce script doit être exécuté en tant que root"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
# Vérifier la distribution
|
||||||
|
check_distribution() {
|
||||||
|
if [[ ! -f /etc/debian_version ]]; then
|
||||||
|
log_error "Ce script est conçu pour Debian 12"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
local version
|
||||||
|
version=$(cat /etc/debian_version | cut -d. -f1)
|
||||||
|
if [[ "$version" != "12" ]]; then
|
||||||
|
log_warning "Version Debian détectée: $version (recommandé: 12)"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
# Mise à jour du système
|
||||||
|
update_system() {
|
||||||
|
log "Mise à jour de la liste des paquets..."
|
||||||
|
if ! apt-get update -qq; then
|
||||||
|
log_error "Échec de la mise à jour des paquets"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
# Installation de rkhunter
|
||||||
|
install_rkhunter() {
|
||||||
|
log "Vérification de l'installation de rkhunter..."
|
||||||
|
|
||||||
|
if command -v rkhunter &> /dev/null; then
|
||||||
|
log "rkhunter est déjà installé ($(rkhunter --version | head -n1))"
|
||||||
|
return 0
|
||||||
|
fi
|
||||||
|
|
||||||
|
log "Installation de rkhunter..."
|
||||||
|
if ! apt-get install -y rkhunter; then
|
||||||
|
log_error "Échec de l'installation de rkhunter"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
log "rkhunter installé avec succès"
|
||||||
|
}
|
||||||
|
|
||||||
|
# Configuration de rkhunter
|
||||||
|
configure_rkhunter() {
|
||||||
|
log "Configuration de rkhunter..."
|
||||||
|
|
||||||
|
# Backup du fichier de configuration original
|
||||||
|
if [[ -f "$RKHUNTER_CONF" && ! -f "${RKHUNTER_CONF}.backup" ]]; then
|
||||||
|
cp "$RKHUNTER_CONF" "${RKHUNTER_CONF}.backup"
|
||||||
|
log "Backup de la configuration: ${RKHUNTER_CONF}.backup"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Configuration recommandée
|
||||||
|
sed -i 's/^UPDATE_MIRRORS=.*/UPDATE_MIRRORS=1/' "$RKHUNTER_CONF"
|
||||||
|
sed -i 's/^MIRRORS_MODE=.*/MIRRORS_MODE=0/' "$RKHUNTER_CONF"
|
||||||
|
sed -i 's/^WEB_CMD=.*/WEB_CMD=""/' "$RKHUNTER_CONF"
|
||||||
|
|
||||||
|
# Activer les mises à jour automatiques de la base de données
|
||||||
|
if ! grep -q "^CRON_DAILY_RUN=" "$RKHUNTER_CONF"; then
|
||||||
|
echo "CRON_DAILY_RUN=true" >> "$RKHUNTER_CONF"
|
||||||
|
else
|
||||||
|
sed -i 's/^CRON_DAILY_RUN=.*/CRON_DAILY_RUN=true/' "$RKHUNTER_CONF"
|
||||||
|
fi
|
||||||
|
|
||||||
|
if ! grep -q "^CRON_DB_UPDATE=" "$RKHUNTER_CONF"; then
|
||||||
|
echo "CRON_DB_UPDATE=true" >> "$RKHUNTER_CONF"
|
||||||
|
else
|
||||||
|
sed -i 's/^CRON_DB_UPDATE=.*/CRON_DB_UPDATE=true/' "$RKHUNTER_CONF"
|
||||||
|
fi
|
||||||
|
|
||||||
|
log "Configuration de rkhunter terminée"
|
||||||
|
}
|
||||||
|
|
||||||
|
# Configurer les exceptions rkhunter (faux positifs)
|
||||||
|
configure_rkhunter_exceptions() {
|
||||||
|
log "Configuration des exceptions rkhunter (faux positifs)..."
|
||||||
|
|
||||||
|
# Créer ou vider le fichier local
|
||||||
|
: > "$RKHUNTER_LOCAL_CONF"
|
||||||
|
|
||||||
|
cat >> "$RKHUNTER_LOCAL_CONF" << 'EOF'
|
||||||
|
# Configuration locale rkhunter
|
||||||
|
# Fichier généré automatiquement - Exceptions pour faux positifs
|
||||||
|
# Date: $(date)
|
||||||
|
|
||||||
|
EOF
|
||||||
|
|
||||||
|
local count=0
|
||||||
|
for exception in "${RKHUNTER_EXCEPTIONS[@]}"; do
|
||||||
|
# Vérifier si le fichier existe avant de l'ajouter
|
||||||
|
if [[ -f "$exception" ]]; then
|
||||||
|
echo "SCRIPTWHITELIST=\"$exception\"" >> "$RKHUNTER_LOCAL_CONF"
|
||||||
|
log "Exception ajoutée: $exception"
|
||||||
|
((count++))
|
||||||
|
else
|
||||||
|
log_warning "Fichier non trouvé (exception ignorée): $exception"
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
log "$count exception(s) configurée(s) dans $RKHUNTER_LOCAL_CONF"
|
||||||
|
}
|
||||||
|
|
||||||
|
# Initialisation de rkhunter
|
||||||
|
initialize_rkhunter() {
|
||||||
|
log "Mise à jour de la base de données rkhunter..."
|
||||||
|
|
||||||
|
if ! rkhunter --update; then
|
||||||
|
log_warning "Mise à jour de la base de données rkhunter échouée (peut nécessiter une connexion Internet)"
|
||||||
|
fi
|
||||||
|
|
||||||
|
log "Initialisation de la base de données des fichiers système..."
|
||||||
|
if ! rkhunter --propupd; then
|
||||||
|
log_error "Échec de l'initialisation de rkhunter"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
log "rkhunter initialisé avec succès"
|
||||||
|
}
|
||||||
|
|
||||||
|
# Installation de ClamAV
|
||||||
|
install_clamav() {
|
||||||
|
log "Vérification de l'installation de ClamAV..."
|
||||||
|
|
||||||
|
if command -v clamscan &> /dev/null; then
|
||||||
|
log "ClamAV est déjà installé ($(clamscan --version))"
|
||||||
|
return 0
|
||||||
|
fi
|
||||||
|
|
||||||
|
log "Installation de ClamAV et ClamAV Daemon..."
|
||||||
|
if ! apt-get install -y clamav clamav-daemon clamav-freshclam; then
|
||||||
|
log_error "Échec de l'installation de ClamAV"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
log "ClamAV installé avec succès"
|
||||||
|
}
|
||||||
|
|
||||||
|
# Configuration de ClamAV
|
||||||
|
configure_clamav() {
|
||||||
|
log "Configuration de ClamAV..."
|
||||||
|
|
||||||
|
# Arrêter les services pour la configuration
|
||||||
|
systemctl stop clamav-freshclam 2>/dev/null || true
|
||||||
|
|
||||||
|
# Mise à jour de la base de données virale
|
||||||
|
log "Mise à jour de la base de données antivirale (cela peut prendre plusieurs minutes)..."
|
||||||
|
if ! freshclam; then
|
||||||
|
log_warning "Première mise à jour freshclam échouée, nouvelle tentative..."
|
||||||
|
sleep 5
|
||||||
|
freshclam || log_warning "Mise à jour freshclam échouée"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Activer et démarrer les services
|
||||||
|
systemctl enable clamav-freshclam
|
||||||
|
systemctl start clamav-freshclam
|
||||||
|
|
||||||
|
log "Configuration de ClamAV terminée"
|
||||||
|
}
|
||||||
|
|
||||||
|
# Installation de AIDE
|
||||||
|
install_aide() {
|
||||||
|
log "Vérification de l'installation de AIDE..."
|
||||||
|
|
||||||
|
if command -v aide &> /dev/null; then
|
||||||
|
log "AIDE est déjà installé ($(aide --version 2>&1 | head -n1))"
|
||||||
|
return 0
|
||||||
|
fi
|
||||||
|
|
||||||
|
log "Installation de AIDE (Advanced Intrusion Detection Environment)..."
|
||||||
|
if ! apt-get install -y aide aide-common; then
|
||||||
|
log_error "Échec de l'installation de AIDE"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
log "AIDE installé avec succès"
|
||||||
|
}
|
||||||
|
|
||||||
|
# Configuration de AIDE
|
||||||
|
configure_aide() {
|
||||||
|
log "Configuration de AIDE..."
|
||||||
|
|
||||||
|
# Backup de la configuration originale
|
||||||
|
if [[ -f "$AIDE_CONF" && ! -f "${AIDE_CONF}.backup" ]]; then
|
||||||
|
cp "$AIDE_CONF" "${AIDE_CONF}.backup"
|
||||||
|
log "Backup de la configuration AIDE: ${AIDE_CONF}.backup"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Vérifier si la base de données existe
|
||||||
|
if [[ ! -f /var/lib/aide/aide.db ]]; then
|
||||||
|
log "Initialisation de la base de données AIDE (cela peut prendre 10-30 minutes)..."
|
||||||
|
log_warning "Cette opération est longue lors de la première exécution..."
|
||||||
|
|
||||||
|
if ! aideinit; then
|
||||||
|
log_error "Échec de l'initialisation de AIDE"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Copier la nouvelle base en tant que base active
|
||||||
|
if [[ -f /var/lib/aide/aide.db.new ]]; then
|
||||||
|
cp /var/lib/aide/aide.db.new /var/lib/aide/aide.db
|
||||||
|
log "Base de données AIDE initialisée avec succès"
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
log "Base de données AIDE déjà existante"
|
||||||
|
fi
|
||||||
|
|
||||||
|
log "Configuration de AIDE terminée"
|
||||||
|
}
|
||||||
|
|
||||||
|
# Créer un script de vérification AIDE
|
||||||
|
create_aide_check_script() {
|
||||||
|
log "Création du script de vérification AIDE..."
|
||||||
|
|
||||||
|
local aide_script="/usr/local/bin/aide-check.sh"
|
||||||
|
|
||||||
|
cat > "$aide_script" << 'EOF'
|
||||||
|
#!/bin/bash
|
||||||
|
# Script de vérification AIDE
|
||||||
|
# Généré automatiquement
|
||||||
|
|
||||||
|
LOGFILE="/var/log/aide-check-$(date +%Y%m%d).log"
|
||||||
|
MAILTO="root"
|
||||||
|
|
||||||
|
echo "=== Vérification AIDE du $(date) ===" > "$LOGFILE"
|
||||||
|
|
||||||
|
# Vérifier l'intégrité du système
|
||||||
|
aide --check >> "$LOGFILE" 2>&1
|
||||||
|
|
||||||
|
# Envoyer un email si des changements sont détectés
|
||||||
|
if grep -qE "changed|added|removed" "$LOGFILE"; then
|
||||||
|
echo "Des changements de fichiers ont été détectés. Consultez $LOGFILE" | \
|
||||||
|
mail -s "Alerte AIDE: $(hostname)" "$MAILTO"
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo -e "\n=== Vérification terminée ===" >> "$LOGFILE"
|
||||||
|
|
||||||
|
# Mettre à jour la base de données après vérification (optionnel)
|
||||||
|
# Décommenter la ligne suivante pour mettre à jour automatiquement
|
||||||
|
# aide --update && cp /var/lib/aide/aide.db.new /var/lib/aide/aide.db
|
||||||
|
EOF
|
||||||
|
|
||||||
|
chmod +x "$aide_script"
|
||||||
|
log "Script de vérification AIDE créé: $aide_script"
|
||||||
|
}
|
||||||
|
|
||||||
|
# Créer un script de scan quotidien
|
||||||
|
create_daily_scan_script() {
|
||||||
|
log "Création du script de scan quotidien..."
|
||||||
|
|
||||||
|
local scan_script="/usr/local/bin/daily-security-scan.sh"
|
||||||
|
|
||||||
|
cat > "$scan_script" << 'EOF'
|
||||||
|
#!/bin/bash
|
||||||
|
# Script de scan quotidien de sécurité
|
||||||
|
# Généré automatiquement
|
||||||
|
|
||||||
|
LOGFILE="/var/log/security-scan-$(date +%Y%m%d).log"
|
||||||
|
MAILTO="root"
|
||||||
|
|
||||||
|
echo "=== Scan de sécurité du $(date) ===" > "$LOGFILE"
|
||||||
|
|
||||||
|
# Scan rkhunter
|
||||||
|
echo -e "\n--- Scan rkhunter ---" >> "$LOGFILE"
|
||||||
|
rkhunter --check --skip-keypress --report-warnings-only >> "$LOGFILE" 2>&1
|
||||||
|
|
||||||
|
# Scan ClamAV des répertoires critiques
|
||||||
|
echo -e "\n--- Scan ClamAV ---" >> "$LOGFILE"
|
||||||
|
clamscan -r -i --exclude-dir="^/sys" --exclude-dir="^/proc" --exclude-dir="^/dev" \
|
||||||
|
/home /root /tmp /var/www 2>&1 | tee -a "$LOGFILE"
|
||||||
|
|
||||||
|
# Envoyer un email si des problèmes sont détectés
|
||||||
|
if grep -qiE "warning|infected|rootkit" "$LOGFILE"; then
|
||||||
|
echo "Des problèmes de sécurité ont été détectés. Consultez $LOGFILE" | \
|
||||||
|
mail -s "Alerte sécurité: $(hostname)" "$MAILTO"
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo -e "\n=== Scan terminé ===" >> "$LOGFILE"
|
||||||
|
EOF
|
||||||
|
|
||||||
|
chmod +x "$scan_script"
|
||||||
|
log "Script de scan créé: $scan_script"
|
||||||
|
}
|
||||||
|
|
||||||
|
# Configurer le cron pour les scans quotidiens
|
||||||
|
setup_cron() {
|
||||||
|
log "Configuration des tâches cron..."
|
||||||
|
|
||||||
|
local cron_file="/etc/cron.d/security-scan"
|
||||||
|
|
||||||
|
cat > "$cron_file" << EOF
|
||||||
|
# Scan de sécurité quotidien
|
||||||
|
SHELL=/bin/bash
|
||||||
|
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
|
||||||
|
|
||||||
|
# Scan quotidien à 2h du matin
|
||||||
|
0 2 * * * root /usr/local/bin/daily-security-scan.sh
|
||||||
|
|
||||||
|
# Scan quotidien à 13h (milieu de journée)
|
||||||
|
0 13 * * * root /usr/local/bin/daily-security-scan.sh
|
||||||
|
|
||||||
|
# Vérification AIDE hebdomadaire (dimanche à 3h)
|
||||||
|
0 3 * * 0 root /usr/local/bin/aide-check.sh
|
||||||
|
|
||||||
|
# Mise à jour rkhunter hebdomadaire
|
||||||
|
30 3 * * 0 root /usr/bin/rkhunter --update --quiet && /usr/bin/rkhunter --propupd
|
||||||
|
|
||||||
|
# Mise à jour base de données AIDE mensuelle (1er du mois à 4h)
|
||||||
|
0 4 1 * * root /usr/bin/aide --update && cp /var/lib/aide/aide.db.new /var/lib/aide/aide.db
|
||||||
|
|
||||||
|
# Mise à jour ClamAV (freshclam gère déjà cela via systemd)
|
||||||
|
EOF
|
||||||
|
|
||||||
|
chmod 644 "$cron_file"
|
||||||
|
log "Tâches cron configurées: $cron_file"
|
||||||
|
}
|
||||||
|
|
||||||
|
# Exécuter un premier scan
|
||||||
|
run_initial_scan() {
|
||||||
|
log "Exécution d'un scan initial (cela peut prendre du temps)..."
|
||||||
|
|
||||||
|
log "Scan rkhunter..."
|
||||||
|
if rkhunter --check --skip-keypress --report-warnings-only; then
|
||||||
|
log "Scan rkhunter terminé avec succès"
|
||||||
|
else
|
||||||
|
log_warning "Scan rkhunter terminé avec des avertissements (consultez /var/log/rkhunter.log)"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
# Afficher les informations finales
|
||||||
|
print_summary() {
|
||||||
|
cat << EOF
|
||||||
|
|
||||||
|
${GREEN}╔═══════════════════════════════════════════════════════════════╗
|
||||||
|
║ Installation terminée avec succès! ║
|
||||||
|
╚═══════════════════════════════════════════════════════════════╝${NC}
|
||||||
|
|
||||||
|
${YELLOW}Outils installés:${NC}
|
||||||
|
• rkhunter: $(rkhunter --version | head -n1)
|
||||||
|
• ClamAV: $(clamscan --version)
|
||||||
|
• AIDE: $(aide --version 2>&1 | head -n1)
|
||||||
|
|
||||||
|
${YELLOW}Commandes utiles:${NC}
|
||||||
|
${GREEN}rkhunter:${NC}
|
||||||
|
• Scan manuel: sudo rkhunter --check
|
||||||
|
• Mise à jour DB: sudo rkhunter --update
|
||||||
|
• Mise à jour proplist: sudo rkhunter --propupd
|
||||||
|
|
||||||
|
${GREEN}ClamAV:${NC}
|
||||||
|
• Scan manuel: sudo clamscan -r /chemin
|
||||||
|
• Mise à jour: sudo freshclam
|
||||||
|
|
||||||
|
${GREEN}AIDE:${NC}
|
||||||
|
• Vérifier intégrité: sudo aide --check
|
||||||
|
• Mettre à jour DB: sudo aide --update
|
||||||
|
• Initialiser DB: sudo aideinit
|
||||||
|
|
||||||
|
${YELLOW}Fichiers de configuration:${NC}
|
||||||
|
• rkhunter principal: $RKHUNTER_CONF
|
||||||
|
• rkhunter exceptions: $RKHUNTER_LOCAL_CONF
|
||||||
|
• AIDE config: $AIDE_CONF
|
||||||
|
|
||||||
|
${YELLOW}Logs:${NC}
|
||||||
|
• Installation: $LOG_FILE
|
||||||
|
• rkhunter: /var/log/rkhunter.log
|
||||||
|
• AIDE checks: /var/log/aide-check-*.log
|
||||||
|
• Scans quotidiens: /var/log/security-scan-*.log
|
||||||
|
|
||||||
|
${YELLOW}Automatisation:${NC}
|
||||||
|
• Scan quotidien: 2h00 et 13h00
|
||||||
|
• Vérif AIDE: Dimanche 3h00
|
||||||
|
• MAJ rkhunter: Dimanche 3h30
|
||||||
|
• MAJ AIDE DB: 1er du mois 4h00
|
||||||
|
|
||||||
|
${YELLOW}Scripts créés:${NC}
|
||||||
|
• /usr/local/bin/daily-security-scan.sh
|
||||||
|
• /usr/local/bin/aide-check.sh
|
||||||
|
|
||||||
|
${GREEN}Le système est maintenant protégé avec une détection multicouche:${NC}
|
||||||
|
✓ Rootkits et backdoors (rkhunter)
|
||||||
|
✓ Malwares et virus (ClamAV)
|
||||||
|
✓ Intégrité des fichiers (AIDE)
|
||||||
|
|
||||||
|
${YELLOW}Note:${NC} Pour ajouter des exceptions rkhunter, éditez le script
|
||||||
|
et ajoutez les chemins dans le tableau RKHUNTER_EXCEPTIONS,
|
||||||
|
puis relancez le script.
|
||||||
|
|
||||||
|
EOF
|
||||||
|
}
|
||||||
|
|
||||||
|
# Fonction principale
|
||||||
|
main() {
|
||||||
|
log "=== Démarrage de l'installation des outils de sécurité ==="
|
||||||
|
|
||||||
|
check_root
|
||||||
|
check_distribution
|
||||||
|
update_system
|
||||||
|
|
||||||
|
install_rkhunter
|
||||||
|
configure_rkhunter
|
||||||
|
configure_rkhunter_exceptions
|
||||||
|
initialize_rkhunter
|
||||||
|
|
||||||
|
install_clamav
|
||||||
|
configure_clamav
|
||||||
|
|
||||||
|
install_aide
|
||||||
|
configure_aide
|
||||||
|
|
||||||
|
create_daily_scan_script
|
||||||
|
create_aide_check_script
|
||||||
|
setup_cron
|
||||||
|
|
||||||
|
run_initial_scan
|
||||||
|
|
||||||
|
log "=== Installation terminée ==="
|
||||||
|
print_summary
|
||||||
|
}
|
||||||
|
|
||||||
|
# Exécution
|
||||||
|
main "$@"
|
||||||
Loading…
Reference in New Issue