ajout de l'installation dhcp
This commit is contained in:
@@ -1,3 +1,4 @@
|
|||||||
common
|
common
|
||||||
|
server-dhcp
|
||||||
server-httpd
|
server-httpd
|
||||||
server-mail
|
server-mail
|
||||||
|
|||||||
@@ -1,10 +1,10 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
|
||||||
|
# Importer les fonctions communes
|
||||||
|
source "$(dirname "$0")/../common/common_utils.sh"
|
||||||
|
|
||||||
# Vérifier si le script est exécuté en root
|
# Vérifier si le script est exécuté en root
|
||||||
if [[ $EUID -ne 0 ]]; then
|
check_root
|
||||||
echo "Ce script doit être exécuté en tant que root."
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
### Fonction pour mettre à jour le système
|
### Fonction pour mettre à jour le système
|
||||||
update_system() {
|
update_system() {
|
||||||
|
|||||||
@@ -0,0 +1 @@
|
|||||||
|
setup_dhcp.sh
|
||||||
|
|||||||
73
scripts/server-dhcp/setup_dhcp.sh
Normal file
73
scripts/server-dhcp/setup_dhcp.sh
Normal file
@@ -0,0 +1,73 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
# Importer les fonctions communes
|
||||||
|
source "$(dirname "$0")/../common/common_utils.sh"
|
||||||
|
|
||||||
|
# Vérifier si le script est exécuté en root
|
||||||
|
check_root
|
||||||
|
|
||||||
|
# Installer dnsmasq s'il n'est pas déjà installé
|
||||||
|
if ! command -v dnsmasq &> /dev/null; then
|
||||||
|
echo "Installation de dnsmasq..."
|
||||||
|
apt update && apt install -y dnsmasq
|
||||||
|
else
|
||||||
|
echo "dnsmasq est déjà installé."
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Obtenir l'adresse IP du serveur sur l'interface principale
|
||||||
|
IP_SERVEUR=$(ip -4 addr show $(ip route show default | awk '/default/ {print $5}') | grep -oP '(?<=inet\s)\d+(\.\d+){3}')
|
||||||
|
if [[ -z "$IP_SERVEUR" ]]; then
|
||||||
|
echo "Impossible de déterminer l'adresse IP du serveur."
|
||||||
|
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"}')
|
||||||
|
|
||||||
|
# Demander le nom de domaine
|
||||||
|
read -p "Entrez le domaine (ex: monreseau.local): " DOMAINE
|
||||||
|
if [[ -z "$DOMAINE" ]]; then
|
||||||
|
echo "Domaine invalide."
|
||||||
|
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..."
|
||||||
|
|
||||||
|
cat <<EOF > /etc/dnsmasq.conf
|
||||||
|
# Configuration de dnsmasq
|
||||||
|
|
||||||
|
# Interface réseau principale
|
||||||
|
interface=$(ip route show default | awk '/default/ {print $5}')
|
||||||
|
|
||||||
|
# Activer le service DHCP
|
||||||
|
dhcp-range=${DHCP_START},${DHCP_END},12h
|
||||||
|
|
||||||
|
# Associer le nom de domaine
|
||||||
|
domain=${DOMAINE}
|
||||||
|
|
||||||
|
# Activer la mise à jour DNS dynamique pour les clients DHCP
|
||||||
|
dhcp-authoritative
|
||||||
|
expand-hosts
|
||||||
|
domain-needed
|
||||||
|
bogus-priv
|
||||||
|
no-resolv
|
||||||
|
server=9.9.9.9
|
||||||
|
server=149.112.112.112
|
||||||
|
|
||||||
|
# Activer la journalisation pour voir les affectations DHCP/DNS
|
||||||
|
log-queries
|
||||||
|
log-dhcp
|
||||||
|
EOF
|
||||||
|
|
||||||
|
# Redémarrer dnsmasq pour appliquer les modifications
|
||||||
|
systemctl restart dnsmasq
|
||||||
|
|
||||||
|
echo "Configuration terminée avec succès!"
|
||||||
|
echo "Serveur DHCP/DNS fonctionnel sur $IP_SERVEUR"
|
||||||
|
echo "Les clients recevront une IP entre $DHCP_START et $DHCP_END et seront associés au domaine $DOMAINE"
|
||||||
Reference in New Issue
Block a user