Installation d'un serveur DHCP

Cette page est un guide sur comment installer un serveur DHCP, en particulier celui de Brest. C'est la première étape du guide Monter le service DHCP du ResEL

Préconfiguration

Mise en place de la VM

cf. Installation d'un nouveau serveur

Spécificités

Cette machine étant un DHCP, il vaut mieux qu'elle soit dans le réseau qu'elle gère. N'oubliez donc pas de lui créer une interface dans les différents VLAN nécessaires, en particulier une interface supplémentaire pour le réseau d'inscription

Installation

Installation des paquets nécessaires

Il faut évidemment lancer les commandes en tant que super utilisateur root

# apt install isc-dhcp-server isc-dhcp-server-ldap

Ensuite il faut installer python3 pour pouvoir utiliser le script python et le gestionnaire pip pour installer les bonnes dépendances Python

# apt install python3 python3-pip

Note : En réalité lors de la première installation du DHCP de secours, on avait essayé de se servir de apt pour installer uniquement le paquet python3-ldap3, mais ça n'a pas fonctionné, on a fini par installer tous les packages de python3&ldap possible. Bref, pour faire fonctionner le script ldap2dhcp.py, il faut le paquet ldap3, si vous avez l'occasion de tester d'autres solutions, n'hésitez pas !

apt install python3-ldap3
sudo pip3 --proxy=http://pegase.adm.resel.fr:3128 install ldap3

NOTE : il s'avère que la commande # pip install ldap3 ne fonctionne pas, d'où la précision du proxy dans l'instruction.

TODO : trouver la config minimale d'installation de ldap3.

création des dossiers et fichiers nécessaires :

# mkdir /srv/reloader
# mkdir /srv/reloader/scripts
# mkdir /srv/reloader/scripts/dhcp

Puis créer les fichiers :

# touch /srv/reloader/scripts/dhcp/ldap2dhcp.py
# touch /etc/dhcp/header.conf
Ensuite, copier le script depuis https://git.resel.fr/resel/scripts/tree/master/dhcp/brest et le header de base depuis https://git.resel.fr/confs/dhcp-brest/tree/master

Il faut créer un utilisateur reloader chargé de recharger la configuration à chaque fois que c'est nécéssaire (ajout d'une machine, ...).

# useradd reloader -d /srv/reloader
# adduser reloader sshusers

Puis copier les clés publiques de Swan, Doubidou et Skynet (Sites admin et utilisateur) dans ~reloader/.ssh/authorized_keys

Dans viduso, modifier l'entrée de reloader par :

reloader ALL=(ALL) NOPASSWD: ALL

On ajoute les droits au script de reload :

# chmod -R reloader:reloader ~reloader

Puis modifier /etc/passwd tel que :

reloader:x:$n$:$m$:,,,,reloader dhcp:/srv/reloader:/srv/reloader/reloader.sh

$n$ et $m$ ne changent pas.

Enfin, on ajoute la ligne ssh -t reloader@machine.adm.resel.fr sur le git du site admin aux endroits adéquats (faire une recherche du même motif sur un dhcp existant) et directement sur les machines hébergeant le site utilisateur dans le fichier $Racine du site$/myresel/settings_local.py

Ressources utiles

Repos ResEl

Externes

Articles liés

TODO (pour le rédacteur)

  • Étoffer l'article avec un peu plus de phrases, de contexte
  • TODO : trouver la config minimale d'installation de ldap3.
  • TODO : compléter les paragraphes sur la création de la VM et la création de la seconde interface pour "ResEl Inscription"