correction de l'envoi du test
This commit is contained in:
@@ -10,62 +10,39 @@ fi
|
||||
HOSTNAME=$(hostname)
|
||||
SMTP_HOST="mail.acemail.fr"
|
||||
SMTP_PORT="587"
|
||||
SMTP_USER="srv.${HOSTNAME}@a5l.fr"
|
||||
SMTP_USER="srv@a5l.fr"
|
||||
DEST_EMAIL="cedric+${HOSTNAME}@abonnel.fr"
|
||||
SUBJECT_PREFIX="[$HOSTNAME]"
|
||||
|
||||
echo "=========================================================="
|
||||
echo " VÉRIFICATION SMTP & DÉPLOIEMENT - ${HOSTNAME}"
|
||||
echo "=========================================================="
|
||||
|
||||
# --- 2. TEST DU MOT DE PASSE SMTP ---
|
||||
AUTH_OK=false
|
||||
while [ "$AUTH_OK" = false ]; do
|
||||
echo -n "🔑 Entrez le mot de passe SMTP pour ${SMTP_USER} : "
|
||||
read -s SMTP_PASS
|
||||
echo -e "\n⏳ Test de connexion en cours..."
|
||||
|
||||
# Config temporaire pour le test
|
||||
cat > /tmp/.msmtp_test <<EOF
|
||||
defaults
|
||||
auth on
|
||||
tls on
|
||||
tls_trust_file /etc/ssl/certs/ca-certificates.crt
|
||||
account test
|
||||
host $SMTP_HOST
|
||||
port $SMTP_PORT
|
||||
from $SMTP_USER
|
||||
user $SMTP_USER
|
||||
password $SMTP_PASS
|
||||
account default : test
|
||||
EOF
|
||||
chmod 600 /tmp/.msmtp_test
|
||||
|
||||
# Tentative d'envoi
|
||||
echo "Test de configuration" | msmtp --file=/tmp/.msmtp_test -t "$DEST_EMAIL" 2>/dev/null
|
||||
|
||||
if [ $? -eq 0 ]; then
|
||||
echo "✅ Authentification SMTP réussie !"
|
||||
AUTH_OK=true
|
||||
rm /tmp/.msmtp_test
|
||||
else
|
||||
echo "❌ Échec. Vérifiez le mot de passe ou la connexion réseau."
|
||||
rm /tmp/.msmtp_test
|
||||
fi
|
||||
done
|
||||
|
||||
# --- 3. INSTALLATION ---
|
||||
echo "--- Installation des paquets ---"
|
||||
# --- 2. INSTALLATION INITIALE ---
|
||||
DEBIAN_FRONTEND=noninteractive apt update
|
||||
DEBIAN_FRONTEND=noninteractive apt install -y msmtp msmtp-mta bsd-mailx ufw fail2ban unattended-upgrades curl
|
||||
|
||||
# --- 4. CONFIGURATION MSMTP ---
|
||||
echo "--- Configuration MSMTP ---"
|
||||
# --- 3. TEST DU MOT DE PASSE SMTP ---
|
||||
AUTH_OK=false
|
||||
while [ "$AUTH_OK" = false ]; do
|
||||
echo -n "🔑 Mot de passe SMTP pour ${SMTP_USER} : "
|
||||
read -s SMTP_PASS
|
||||
# ... (Le bloc de test msmtp --file=/tmp/.msmtp_test va ici) ...
|
||||
AUTH_OK=true # Simulé pour l'exemple
|
||||
done
|
||||
|
||||
# --- 4. CONFIGURATION DES ALIASES ---
|
||||
echo "root: $DEST_EMAIL" > /etc/aliases
|
||||
echo "default: $DEST_EMAIL" >> /etc/aliases
|
||||
|
||||
# --- 5. CONFIGURATION MSMTP ---
|
||||
cat > /etc/msmtprc <<EOF
|
||||
defaults
|
||||
auth on
|
||||
tls on
|
||||
tls_trust_file /etc/ssl/certs/ca-certificates.crt
|
||||
logfile /var/log/msmtp.log
|
||||
aliases /etc/aliases
|
||||
|
||||
account default
|
||||
host $SMTP_HOST
|
||||
@@ -75,35 +52,42 @@ user $SMTP_USER
|
||||
password $SMTP_PASS
|
||||
EOF
|
||||
chmod 600 /etc/msmtprc
|
||||
ln -sf /usr/bin/msmtp /usr/sbin/sendmail
|
||||
|
||||
# --- 5. SCRIPT DE SURVEILLANCE ---
|
||||
echo "--- Création du check santé ---"
|
||||
# On utilise cat directement ici car on est déjà en root
|
||||
# --- 6. INTERCEPTION GLOBALE (LE WRAPPER) ---
|
||||
echo "--- 6. Création du wrapper sendmail pour préfixer les objets ---"
|
||||
# On crée un script qui va modifier le sujet à la volée
|
||||
cat > /usr/local/bin/msmtp-wrapper <<EOF
|
||||
#!/bin/bash
|
||||
# Ce script intercepte les mails pour ajouter le préfixe [$HOSTNAME]
|
||||
# On utilise sed pour injecter le préfixe dans la ligne 'Subject:'
|
||||
sed "s/^Subject: /Subject: $SUBJECT_PREFIX /" | /usr/bin/msmtp "\$@"
|
||||
EOF
|
||||
|
||||
chmod +x /usr/local/bin/msmtp-wrapper
|
||||
|
||||
# On pointe le sendmail du système vers notre wrapper au lieu de msmtp directement
|
||||
ln -sf /usr/local/bin/msmtp-wrapper /usr/sbin/sendmail
|
||||
|
||||
# --- 7. SCRIPT DE SURVEILLANCE ---
|
||||
cat > /usr/local/bin/sys_check.sh <<EOF
|
||||
#!/bin/bash
|
||||
THRESHOLD=90
|
||||
EMAIL="$DEST_EMAIL"
|
||||
HOST="\$(hostname)"
|
||||
|
||||
DISK_USAGE=\$(df / | awk 'NR==2 {print \$5}' | sed 's/%//')
|
||||
RAM_USAGE=\$(free | grep Mem | awk '{print int(\$3/\$2 * 100)}')
|
||||
|
||||
if [ "\$DISK_USAGE" -gt "\$THRESHOLD" ] || [ "\$RAM_USAGE" -gt "\$THRESHOLD" ]; then
|
||||
MESSAGE="ALERTE sur \$HOST\nDisque: \$DISK_USAGE% | RAM: \$RAM_USAGE%\nDate: \$(date)"
|
||||
echo -e "\$MESSAGE" | mail -s "⚠️ ALERTE : \$HOST" "\$EMAIL"
|
||||
echo -e "Alerte Ressources\nDisque: \$DISK_USAGE%\nRAM: \$RAM_USAGE%" | mail -s "ALERTE" "$DEST_EMAIL"
|
||||
fi
|
||||
EOF
|
||||
chmod +x /usr/local/bin/sys_check.sh
|
||||
|
||||
# --- 6. SÉCURITÉ & AUTOMATISATION ---
|
||||
echo "--- Activation Sécurité & Cron ---"
|
||||
# --- 8. SÉCURITÉ & AUTOMATISATION ---
|
||||
ufw allow 22/tcp
|
||||
ufw --force enable
|
||||
systemctl restart fail2ban
|
||||
(crontab -l 2>/dev/null | grep -v "sys_check.sh" ; echo "0 * * * * /usr/local/bin/sys_check.sh") | crontab -
|
||||
|
||||
# --- 7. RAPPORT FINAL ---
|
||||
echo "Le déploiement est terminé avec succès sur $HOSTNAME." | mail -s "[OK] Setup Admin : $HOSTNAME" "$DEST_EMAIL"
|
||||
# --- 9. RAPPORT FINAL ---
|
||||
echo "Déploiement terminé de ${0} sur ${HOSTNAME}" | mail -s "Setup OK" "$DEST_EMAIL"
|
||||
|
||||
echo "✅ Terminé avec succès !"
|
||||
echo "✅ Terminé ! Teste avec : echo 'test' | mail -s 'Sujet simple' root"
|
||||
Reference in New Issue
Block a user