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.
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-20240209 (comme
utilisateur root
) :
make install-service-dhcpcd
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 $HOSTNAME <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.
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