dhcpcd-9.4.1

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

Informations sur le paquet

  • Téléchargement (HTTP) : https://roy.marples.name/downloads/dhcpcd/dhcpcd-9.4.1.tar.xz

  • Téléchargement (FTP) :

  • Somme de contrôle MD5 : 2b2f46648bc96979f96127f0e0e07d9b

  • Taille du téléchargement : 251 Ko

  • Estimation de l'espace disque requis : 3.6 Mo (avec les tests)

  • Estimation du temps de construction : moins de 0.1 SBU (avec les tests)

Dépendances de dhcpcd

Facultatives

LLVM-15.0.7 (avec Clang), ntp-4.2.8p15, chronyd et ypbind

Notes utilisateur : https://wiki.linuxfromscratch.org/blfs/wiki/dhcpcd

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

Corrigez un problème à l'exécution causé par un changement dans glibc-2.36 :

sed '/Deny everything else/i SECCOMP_ALLOW(__NR_getrandom),' \
    -i src/privsep-linux.c

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

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 : indique un emplacement plus correct pour les bibliothèques internes à dhcpcd.

--dbdir=/var/lib/dhcp : le répertoire par défaut /var/db n'est pas compatible FHS

--runstatedir=/run : le répertoire par défaut /var/run est un lien symbolique vers /run.

--with-hook=... : Vous pouvez éventuellement installer plus de crochets, par exemple pour installer quelques fichiers de configuration comme ntp.conf. L'ensemble des crochets est dans le répertoire dhcpcd-hooks dans l'arbre de construction.

--disable-privsep : ne pas utiliser de séparation de privilèges, qui est activée par défaut.

--privsepuser=dhcpcd : utiliser cet utilisateur non privilégié dans une configuration avec séparation des privilèges.

--with-hook=... : Vous pouvez éventuellement installer plus de crochets, par exemple pour installer quelques fichiers de configuration comme ntp.conf. L'ensemble des crochets est 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-20220720 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 /lib/dhcpcd/dhcpcd-hooks. Paramétrez dhcpcd 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