dhcpcd-10.0.2

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

Informations sur le paquet

Dépendances de dhcpcd

Facultatives

LLVM-16.0.5 (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

Pour configurer dhcpcd, vous avez tout d'abord besoin d'installer le script du service réseau, /usr/lib/services/dhcpcd inclus dans le paquet blfs-bootscripts-20230824 (comme utilisateur root) :

make install-service-dhcpcd
[Note]

Note

Le comportement par défaut de dhcpcd est de régler le nom d'hôte et les paramètres du MTU. Il écrase aussi /etc/resolv.conf et /etc/ntp.conf. Ces modifications des fichiers systèmes sont faites par les scripts conservés dans /usr/lib/dhcpcd/dhcpcd-hooks. Vous pouvez modifier cce 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.

Enfin, en tant qu'utilisateur root, créez le fichier de configuration /etc/sysconfig/ifconfig.eth0 en utilisant les commandes suivantes. Ajustez de façon appropriée les interfaces supplémentaires.

cat > /etc/sysconfig/ifconfig.eth0 << "EOF"
ONBOOT="yes"
IFACE="eth0"
SERVICE="dhcpcd"
DHCP_START="-b -q -h ''<insert appropriate start options here>"
DHCP_STOP="-k <insert additional stop options here>"
EOF

Pour plus d'informations sur les valeurs appropriées de DHCP_START et DHCP_STOP, consultez la page de man de dhcpcd.

Information de configuration : ip fixe

Même si c'est pas commun, il est possible que vous vouliez configurer dhcpcd pour utiliser une ip fixe. Ici, nous donnons un exemple. En tant qu'utilisateur root créez le fichier de configuration /etc/sysconfig/ifconfig.eth0 en utilisant les commandes suivantes. Ajustez comme il le faut les interfaces supplémentaires, l'ip et le routeur dont vous avez besoin :

cat > /etc/sysconfig/ifconfig.eth0 << "EOF"
ONBOOT="yes"
IFACE="eth0"
SERVICE="dhcpcd"
DHCP_START="-b -q -S ip_address=192.168.0.10/24 -S routers=192.168.0.1"
DHCP_STOP="-k"
EOF

Vous pouvez également utiliser les serveurs DNS de /etc/resolv.conf par un autre système, vos serveurs préférés, ou juste le ficher d'exemple /etc/resolv.conf.head ci-dessous :

cat > /etc/resolv.conf.head << "EOF"
# OpenDNS servers
nameserver 208.67.222.222
nameserver 208.67.220.220
EOF

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