dhcpcd est une implémentation du client DHCP spécifié dans RFC2131. Un client DHCP sert à connecter votre ordinateur à un réseau qui utilise DHCP pour affecter les adresses réseau. dhcpcd vise à être un client très complet mais toujours très léger.
This package is known to build and work properly using an LFS 12.1 platform.
Téléchargement (HTTP) : https://github.com/NetworkConfiguration/dhcpcd/releases/download/v10.0.6/dhcpcd-10.0.6.tar.xz
Somme de contrôle MD5 : ef8356d711b17701928ead7206d15234
Taille du téléchargement : 264 Ko
Estimation de l'espace disque requis : 3,0 Mo (avec les tests)
Estimation du temps de construction : moins de 0,1 SBU (avec les tests)
LLVM-17.0.6 (avec Clang), ntp-4.2.8p17, chronyd et ypbind
Les versions récentes de dhcpcd prennent en charge la séparation des privilèges de manière facultative. Comme les bénéfices pratiques en terme de sécurité ne sont pas clairs pour un programme comme dhcpcd et que sa mise en place est plus complexe, le livre la désactive par défaut.
Si vous souhaite cependant utiliser la séparation des privilèges,
des étapes d'installation supplémentaires sont nécessaires pour
configurer l'environnement approprié. Exécutez les commandes
suivantes en tant qu'utilisateur root
:
install -v -m700 -d /var/lib/dhcpcd && groupadd -g 52 dhcpcd && useradd -c 'dhcpcd PrivSep' \ -d /var/lib/dhcpcd \ -g dhcpcd \ -s /bin/false \ -u 52 dhcpcd && chown -v dhcpcd:dhcpcd /var/lib/dhcpcd
Construisez dhcpcd sans séparation des privilège en exécutant les commandes suivantes :
./configure --prefix=/usr \ --sysconfdir=/etc \ --libexecdir=/usr/lib/dhcpcd \ --dbdir=/var/lib/dhcpcd \ --runstatedir=/run \ --disable-privsep && make
Autrement, construisez dhcpcd avec séparation des privilège en exécutant les commandes suivantes :
./configure --prefix=/usr \ --sysconfdir=/etc \ --libexecdir=/usr/lib/dhcpcd \ --dbdir=/var/lib/dhcpcd \ --runstatedir=/run \ --privsepuser=dhcpcd && make
Pour tester les résultats lancez : make test.
Maintenant, en tant qu'utilisateur root
:
make install
--libexecdir=/usr/lib/dhcpcd
:
ce paramètre indique un meilleur emplacement pour les bibliothèques
internes à dhcpcd.
--dbdir=/var/lib/dhcp
: ce
paramètre ajuste le répertoire de base de données car le répertoire
par défaut /var/db
n'est pas
compatible avec le FHS.
--runstatedir=/run
:
ce paramètre indique le répertoire d'état à l'exécution car le
répertoire par défaut /var/run
est un
lien symbolique vers /run
et
qu'utiliser /var/run
est obsolète.
--disable-privsep
: ce
paramètre désactive la séparation des privilèges, qui est activée
par défaut dans dhcpcd. Ce paramètre n'est pas utilisé dans la
configuration de construction où la séparation des privilèges est
utilisée.
--privsepuser=dhcpcd
:
ce paramètre indique l'utilisateur pour la séparation des
privilèges dans le configuration de construction qui utilise une
escalade de privilèges.
--with-hook=...
: Vous pouvez
éventuellement installer plus de crochets, par exemple pour
installer quelques fichiers de configuration comme ntp.conf
. Un ensemble des crochets se trouve dans
le répertoire dhcpcd-hooks
dans
l'arbre de construction.
Si vous voulez configurer vos interfaces réseau pour utiliser
dhcpcd au
démarrage, vous devrez installer l'unité systemd incluse dans le
paquet blfs-systemd-units-20240205 en
exécutant la commande suivante en tant qu'utilisateur
root
:
make install-dhcpcd
Le
comportement par défaut de dhcpcd est de régler le nom
de l'hôte et les paramètres du MTU. Il écrase aussi
/etc/resolv.conf
et /etc/ntp.conf
. Ces modifications des fichiers
de système et des paramétrages des fichiers de configuration
système sont faites par les scripts conservés dans /usr/lib/dhcpcd/dhcpcd-hooks
. Vous pouvez
modifier ce comportement en supprimant ou en ajoutant des
scripts dans ce répertoire. Vous pouvez désactiver l'exécution
des scripts en utilisant l'option --nohook
(-C
) de la
ligne de commande ou via l'option nohook
du fichier /etc/dhcpcd.conf
.
Assurez-vous de désactiver le service systemd-networkd ou configurez-le pour ne pas gérer vos interfaces si vous souhaitez les gérer avec dhcpcd.
À ce stade, vous pouvez tester si dhcpcd se comporte correctement
en exécutant la commande suivante en tant qu'utilisateur
root
:
systemctl start dhcpcd@eth0
Pour démarrer dhcpcd sur une interface
particulière au démarrage, activez l'unité systemd précédemment
installée en exécutant la commande suivante en tant
qu'utilisateur root
:
systemctl enable dhcpcd@eth0
Remplacez eth0
par le
vrai nom de votre interface.