dhcpcd-10.0.6

Introduction à dhcpcd

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.

Informations sur le paquet

Dépendances de dhcpcd

Facultatives

LLVM-17.0.6 (avec Clang), ntp-4.2.8p17, chronyd et ypbind

Séparation des privilèges

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 

Installation de 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

Explication des commandes

--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.

Configurer dhcpcd

Fichiers de configuration

/etc/dhcpcd.conf

Informations de configuration

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
[Note]

Note

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.

[Note]

Note

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.

Contenu

Programme installé: dhcpcd
Bibliothèque installée: /usr/lib/dhcpcd/dev/udev.so
Répertoire installé: /{usr,var}/lib/dhcpcd and /usr/share/dhcpcd

Descriptions courtes

dhcpcd

est une implémentation du client DHCP spécifiée dans RFC2131

udev.so

ajoute le support de udev pour les arrivées et départs d'interface ; c'est parce que udev aime renommer les interfaces ce qui ne peut pas se faire si dhcpcd la récupère avant