diff --git a/scripts/server-dhcp/setup_dhcp.sh b/scripts/server-dhcp/setup_dhcp.sh index 407242f..d25fa00 100644 --- a/scripts/server-dhcp/setup_dhcp.sh +++ b/scripts/server-dhcp/setup_dhcp.sh @@ -21,8 +21,28 @@ if [[ -z "$IP_SERVEUR" ]]; then exit 1 fi -# Déduire le sous-réseau en fonction de l'IP trouvée (ex: 192.168.1.1 -> 192.168.1.0/24) -SOUS_RESEAU=$(echo "$IP_SERVEUR" | awk -F '.' '{print $1"."$2"."$3".0/24"}') +# Vérifier si l'IP est dans une plage privée autorisée +if [[ "$IP_SERVEUR" =~ ^10\..* || "$IP_SERVEUR" =~ ^192\.168\..* || "$IP_SERVEUR" =~ ^172\.(1[6-9]|2[0-9]|3[0-1])\..* ]]; then + echo "Adresse IP privée détectée : $IP_SERVEUR" +else + echo "Erreur : L'adresse IP $IP_SERVEUR n'est pas dans un réseau privé." + exit 1 +fi + +# Déduire le sous-réseau en fonction de l'adresse IP détectée +if [[ "$IP_SERVEUR" =~ ^10\. ]]; then + SOUS_RESEAU=$(echo "$IP_SERVEUR" | awk -F '.' '{print $1".0.0.0/8"}') + DHCP_START=$(echo "$IP_SERVEUR" | awk -F '.' '{print $1".0.0.10"}') + DHCP_END=$(echo "$IP_SERVEUR" | awk -F '.' '{print $1".0.0.100"}') +elif [[ "$IP_SERVEUR" =~ ^172\.(1[6-9]|2[0-9]|3[0-1])\. ]]; then + SOUS_RESEAU=$(echo "$IP_SERVEUR" | awk -F '.' '{print $1"."$2".0.0/16"}') + DHCP_START=$(echo "$IP_SERVEUR" | awk -F '.' '{print $1"."$2".0.10"}') + DHCP_END=$(echo "$IP_SERVEUR" | awk -F '.' '{print $1"."$2".0.100"}') +elif [[ "$IP_SERVEUR" =~ ^192\.168\. ]]; then + SOUS_RESEAU=$(echo "$IP_SERVEUR" | awk -F '.' '{print $1"."$2"."$3".0/24"}') + DHCP_START=$(echo "$IP_SERVEUR" | awk -F '.' '{print $1"."$2"."$3".10"}') + DHCP_END=$(echo "$IP_SERVEUR" | awk -F '.' '{print $1"."$2"."$3".100"}') +fi # Demander le nom de domaine read -p "Entrez le domaine (ex: monreseau.local): " DOMAINE @@ -31,11 +51,6 @@ if [[ -z "$DOMAINE" ]]; then exit 1 fi -# Déterminer la plage d'adresses DHCP (IP_SERVEUR + 10 à IP_SERVEUR + 100) -IP_BASE=$(echo "$IP_SERVEUR" | awk -F '.' '{print $1"."$2"."$3}') -DHCP_START="${IP_BASE}.10" -DHCP_END="${IP_BASE}.100" - # Configurer dnsmasq echo "Configuration de dnsmasq..."