From 6cd412fb5ec4589838f8a1cebffe5e18e7bf297f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=A9drix?= Date: Sat, 7 Mar 2026 14:24:49 +0100 Subject: [PATCH] =?UTF-8?q?am=C3=A9liorations?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- servers/linux/config_adminSys.sh | 157 +++++++++++++++++++++++++++---- 1 file changed, 138 insertions(+), 19 deletions(-) diff --git a/servers/linux/config_adminSys.sh b/servers/linux/config_adminSys.sh index cdfe8a6..65dbd23 100755 --- a/servers/linux/config_adminSys.sh +++ b/servers/linux/config_adminSys.sh @@ -1,11 +1,13 @@ #!/bin/bash + # --- 0. VÉRIFICATION DES DROITS --- if [ "$EUID" -ne 0 ]; then echo "❌ Erreur : Ce script doit être lancé avec sudo." exit 1 fi + # --- 1. CONFIGURATION DYNAMIQUE --- HOSTNAME=$(hostname) SMTP_HOST="mail.acemail.fr" @@ -18,25 +20,100 @@ echo "==========================================================" echo " VÉRIFICATION SMTP & DÉPLOIEMENT - ${HOSTNAME}" echo "==========================================================" + # --- 2. INSTALLATION INITIALE --- DEBIAN_FRONTEND=noninteractive apt update -DEBIAN_FRONTEND=noninteractive apt install -y msmtp msmtp-mta bsd-mailx ufw fail2ban unattended-upgrades curl +DEBIAN_FRONTEND=noninteractive apt install -y msmtp msmtp-mta bsd-mailx +DEBIAN_FRONTEND=noninteractive apt install -y ufw fail2ban unattended-upgrades curl +DEBIAN_FRONTEND=noninteractive apt install -y curl bc -# --- 3. TEST DU MOT DE PASSE SMTP --- + +# --- 3. RÉCUPÉRATION ET TEST DU MOT DE PASSE SMTP --- +PASS_FILE=".smtp_pass" 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 + # 1. Tentative de lecture depuis le fichier + if [ -f "$PASS_FILE" ] && [ -s "$PASS_FILE" ]; then + SMTP_PASS=$(head -n 1 "$PASS_FILE") + echo "📄 Mot de passe lu depuis le fichier $PASS_FILE." + else + # 2. Sinon, saisie manuelle + echo -n "🔑 Mot de passe SMTP pour ${SMTP_USER} : " + read -s SMTP_PASS + echo "" + fi + + echo "⏳ Vérification de la connexion SMTP..." + + # Création config temporaire pour le test + cat > /tmp/.msmtp_test </dev/null + + if [ $? -eq 0 ]; then + echo "✅ Authentification SMTP réussie !" + AUTH_OK=true + rm /tmp/.msmtp_test + else + echo "❌ Échec de l'authentification SMTP." + if [ -f "$PASS_FILE" ]; then + echo "⚠️ Le mot de passe dans $PASS_FILE est incorrect ou le serveur est injoignable." + mv "$PASS_FILE" "${PASS_FILE}.old" # On renomme pour forcer la saisie manuelle au prochain tour + fi + rm /tmp/.msmtp_test + fi done + # --- 4. CONFIGURATION DES ALIASES --- -echo "root: $DEST_EMAIL" > /etc/aliases -echo "default: $DEST_EMAIL" >> /etc/aliases +echo "--- 4. Vérification et configuration des redirections (Aliases) ---" +ALIAS_FILE="/etc/aliases" + +# On s'assure que le fichier existe (certaines distros minimales ne l'ont pas) +[ ! -f "$ALIAS_FILE" ] && touch "$ALIAS_FILE" + +# Vérification pour root +if grep -q "^root:" "$ALIAS_FILE"; then + # Si root existe mais pointe vers autre chose, on met à jour + sed -i "s|^root:.*|root: $DEST_EMAIL|" "$ALIAS_FILE" + echo "✅ Alias 'root' mis à jour vers $DEST_EMAIL." +else + # Sinon on l'ajoute + echo "root: $DEST_EMAIL" >> "$ALIAS_FILE" + echo "✅ Alias 'root' ajouté." +fi + +# Vérification pour default +if grep -q "^default:" "$ALIAS_FILE"; then + sed -i "s|^default:.*|default: $DEST_EMAIL|" "$ALIAS_FILE" + echo "✅ Alias 'default' mis à jour." +else + echo "default: $DEST_EMAIL" >> "$ALIAS_FILE" + echo "✅ Alias 'default' ajouté." +fi + # --- 5. CONFIGURATION MSMTP --- -cat > /etc/msmtprc < "$TMP_MSMTP" < /dev/null; then + echo "🔄 La configuration a changé. Mise à jour de $MSMTP_CONF..." + SHOULD_UPDATE=true + else + echo "✅ La configuration MSMTP est déjà à jour et identique." + fi +fi + +# 3. Application si nécessaire +if [ "$SHOULD_UPDATE" = true ]; then + cp "$TMP_MSMTP" "$MSMTP_CONF" + chmod 600 "$MSMTP_CONF" + chown root:root "$MSMTP_CONF" +fi + +# Nettoyage du fichier temporaire +rm -f "$TMP_MSMTP" + # --- 6. INTERCEPTION GLOBALE (LE WRAPPER) --- echo "--- 6. Création du wrapper sendmail pour préfixer les objets ---" @@ -68,18 +172,32 @@ 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 < "$DEST_PATH" </dev/null | grep -v "sys_check.sh" ; echo "0 * * * * /usr/local/bin/sys_check.sh") | crontab - + # --- 9. RAPPORT FINAL --- echo "Déploiement terminé de ${0} sur ${HOSTNAME}" | mail -s "Setup OK" "$DEST_EMAIL"