deplacement de scripts

This commit is contained in:
2025-03-09 13:00:26 +01:00
parent 54a0c21787
commit 2af16cf8a7
22 changed files with 0 additions and 0 deletions

View File

@@ -0,0 +1,150 @@
#!/bin/bash
# Vérifier si le script est exécuté en root
check_root() {
if [[ $EUID -ne 0 ]]; then
echo "❌ Ce script doit être exécuté en tant que root."
exit 1
fi
}
update_system() {
echo "=== Mise à jour du système ==="
# Mise à jour des paquets APT
if command -v apt &> /dev/null; then
echo "🔄 Mise à jour des paquets APT..."
sudo apt update && sudo apt upgrade -y && sudo apt autoremove -y && sudo apt clean
if [ $? -ne 0 ]; then
echo "❌ Erreur lors de la mise à jour des paquets APT." >&2
exit 1
else
echo "✅ Mise à jour terminée."
fi
fi
# Mise à jour des paquets Flatpak si Flatpak est installé
if command -v flatpak &> /dev/null; then
echo "🔄 Mise à jour des paquets Flatpak..."
flatpak update -y
if [ $? -ne 0 ]; then
echo "❌ Erreur lors de la mise à jour des paquets Flatpak." >&2
exit 1
else
echo "✅ Mise à jour terminée."
fi
fi
}
# Récupérer le nom dhôte complet (FQDN) et le domaine
get_fqdn_and_domain() {
local fqdn domain
# Récupérer le FQDN en priorité avec hostname -f
fqdn=$(hostname -f 2>/dev/null) || fqdn=$(cat /etc/hostname 2>/dev/null)
# Vérifier si la récupération du FQDN a réussi
if [[ -z "$fqdn" ]]; then
echo "❌ Erreur : Impossible de déterminer le FQDN" >&2
return 1
fi
# Extraire le domaine
domain=${fqdn#*.}
echo "$fqdn" "$domain"
}
# Vérification de la résolution DNS
check_dns() {
local server_name=$1
# Récupération de l'adresse IP publique du serveur
SERVER_IP=$(curl -4 -s ifconfig.me || hostname -I | awk '{print $1}')
# Récupération de l'adresse IP associée au FQDN
FQDN_IP=$(dig +short A "$server_name" | tail -n1)
# Vérification si l'IP du FQDN est récupérable
if [[ -z "$FQDN_IP" ]]; then
echo "❌ Erreur : Impossible de récupérer l'adresse IP associée à $server_name via DIG."
echo "➡️ Vérifie la configuration DNS et l'existence du domaine."
exit 1
fi
# Comparaison des IPs
if [[ "$SERVER_IP" != "$FQDN_IP" ]]; then
echo "⚠️ Alerte DNS : L'adresse IP résolue ($FQDN_IP) ne correspond pas à l'IP publique actuelle ($SERVER_IP)."
echo "➡️ Vérifie la configuration DNS et la propagation des enregistrements."
exit 1
fi
echo "✅ Vérification réussie : $server_name pointe correctement vers $SERVER_IP."
}
setup_ssl() {
local fqdn=$1
local le_dir="/etc/letsencrypt/live/$fqdn"
echo "=== Configuration du certificat SSL pour $fqdn ==="
if [[ -f "$le_dir/fullchain.pem" ]]; then
echo "✅ Certificat SSL déjà existant."
openssl x509 -noout -text -in "$le_dir/fullchain.pem" | grep "Not After"
return 0
fi
echo "🔄 Test de génération dun nouveau certificat SSL via HTTP..."
while true; do
certbot certonly --standalone --dry-run -d "$fqdn" --non-interactive --agree-tos --register-unsafely-without-email
if [[ $? -eq 0 ]]; then
echo "✅ Test réussi, génération réelle du certificat..."
certbot certonly --standalone -d "$fqdn" --non-interactive --agree-tos --register-unsafely-without-email
break
else
echo "⚠️ Échec du test via HTTP. Tentative via DNS..."
echo "🔄 Test de génération dun nouveau certificat SSL via challenge DNS..."
echo "🛠️ Veuillez ajouter un enregistrement TXT pour _acme-challenge.$fqdn avec la valeur fournie par certbot."
while true; do
certbot certonly --manual --preferred-challenges dns --dry-run -d "$fqdn" --non-interactive --agree-tos --register-unsafely-without-email
if [[ $? -eq 0 ]]; then
echo "✅ Test DNS réussi. Veuillez maintenant ajouter le bon enregistrement TXT."
echo "⏳ Appuyez sur une touche pour continuer après l'ajout de l'enregistrement TXT..."
read -n 1 -s # Attente de l'appui sur une touche
# Génération réelle du certificat avec DNS challenge
echo "✅ Génération réelle du certificat via challenge DNS..."
certbot certonly --manual --preferred-challenges dns -d "$fqdn" --non-interactive --agree-tos --register-unsafely-without-email
break 2 # Sort de la boucle interne ET de la boucle externe
else
echo "❌ Échec de la génération du certificat SSL avec toutes les méthodes."
read -p "Voulez-vous interrompre le processus ? (o/n) : " choix
if [[ "$choix" == "o" ]]; then
exit 1
fi
fi
done
fi
done
echo "✅ Certificat SSL généré avec succès."
}
# Fonction pour récupérer et retourner les adresses IP de la machine
get_server_ips() {
local SERVER_IP SERVER_IPv6
SERVER_IP=$(curl -4 -s ifconfig.me || hostname -I | awk '{print $1}')
SERVER_IPv6=$(curl -6 -s ifconfig.me || hostname -I | awk '{print $2}')
echo "$SERVER_IP" "$SERVER_IPv6"
}