dhcpcd-10.0.8

Introdução ao dhcpcd

"dhcpcd" é uma implementação do cliente "DHCP" especificado na "RFC2131". Um cliente "DHCP" é útil para conectar seu computador a uma rede de intercomunicação que usa "DHCP" para atribuir endereços de rede de intercomunicação. O "dhcpcd" se esforça para ser um cliente "DHCP" completo, mas muito leve.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.2.

Informação do Pacote

Dependências do dhcpcd

Opcionais

LLVM-18.1.7 (com Clang), ntp-4.2.8p18, chronyd e ypbind

Separação de privilégios

Lançamentos recentes do "dhcpcd" suportam opcionalmente a separação de privilégios. Como os benefícios práticos de segurança disso não são claros para um aplicativo como o "dhcpcd" e a configuração é mais complicada, o livro atualmente usa como padrão desativá-lo.

No entanto, se você quiser usar a separação de privilégios, [então] etapas adicionais de instalação são necessárias para configurar o ambiente adequado. Emita os seguintes comandos como o(a) usuário(a) "root":

install  -v -m700 -d /var/lib/dhcpcd &&

groupadd -g 52 dhcpcd        &&
useradd  -c 'Separação de privilégios do dhcpcd' \
         -d /var/lib/dhcpcd  \
         -g dhcpcd           \
         -s /bin/false       \
         -u 52 dhcpcd &&
chown    -v dhcpcd:dhcpcd /var/lib/dhcpcd 

Instalação do dhcpcd

Construa o "dhcpcd" sem separação de privilégios executando o seguinte comando:

./configure --prefix=/usr               \
            --sysconfdir=/etc            \
            --libexecdir=/usr/lib/dhcpcd \
            --dbdir=/var/lib/dhcpcd      \
            --runstatedir=/run           \
            --disable-privsep         &&
make

Alternativamente, construa o dhcpcd com separação de privilégios executando os seguintes comandos:

./configure --prefix=/usr               \
            --sysconfdir=/etc            \
            --libexecdir=/usr/lib/dhcpcd \
            --dbdir=/var/lib/dhcpcd      \
            --runstatedir=/run           \
            --privsepuser=dhcpcd         &&
make

Para testar os resultados, emita: make test.

Agora, como o(a) usuário(a) "root":

make install

Explicações do Comando

--libexecdir=/usr/lib/dhcpcd: Essa chave configura um local melhor para bibliotecas internas do dhcpcd.

--dbdir=/var/lib/dhcpcd: Essa chave ajusta o diretório da base de dados, pois o diretório padrão, /var/db, não é compatível com o FHS.

--runstatedir=/run: Essa chave configura o diretório de estado de tempo de execução, pois o padrão /var/run é um link simbólico para /run e usar /var/run está obsoleto.

--disable-privsep: Essa chave desabilita a separação de privilégios, que é o padrão no dhcpcd. Essa chave não é usada na configuração da construção onde a separação de privilégios é usada.

--privsepuser=dhcpcd: Essa chave configura o(a) usuário(a) de separação de privilégios na configuração da construção onde o escalonamento de privilégios é usado.

--with-hook=...: Opcionalmente, você pode instalar mais ganchos, por exemplo, para instalar alguns arquivos de configuração, como ntp.conf. Um conjunto de ganchos pode ser encontrado no diretório dhcpcd-hooks na árvore da construção.

Configurando o dhcpcd

Arquivos de Configuração

/etc/dhcpcd.conf

Informações Gerais de Configuração

Para configurar o "dhcpcd", você precisa primeiro instalar o conjunto sequencial de comandos de serviço de rede de intercomunicação, "/usr/lib/services/dhcpcd" incluído no pacote "blfs-bootscripts-20240416" (como usuário "root"):

make install-service-dhcpcd
[Nota]

Nota

O padrão para o dhcpcd é o de configurar o nome do dispositivo e o MTU. Ele também sobrescreve /etc/resolv.conf e /etc/ntp.conf. Essas modificações nos arquivos do sistema são feitas por ganchos que estão armazenados em /usr/lib/dhcpcd/dhcpcd-hooks. Você consegue mudar esse comportamento removendo ou adicionando ganchos de/para esse diretório. A execução de ganchos pode ser desabilitada usando-se a opção de linha de comando --nohook (-C) ou pela opção nohook no arquivo /etc/dhcpcd.conf.

Finalmente, como o(a) usuário(a) "root", crie o arquivo de configuração "/etc/sysconfig/ifconfig.eth0" usando os seguintes comandos. Ajuste adequadamente para interfaces adicionais:

cat > /etc/sysconfig/ifconfig.eth0 << "EOF"
ONBOOT="yes"
IFACE="eth0"
SERVICE="dhcpcd"
DHCP_START="-b -q -h $HOSTNAME <insira aqui opções apropriadas de início>"
DHCP_STOP="-k <insira opções adicionais de parada aqui>"
EOF

Para mais informações relativas aos valores apropriados "DHCP_START" e "DHCP_STOP", examine a página de manual do "dhcpcd".

Informações de Configuração: IP fixo

Embora não usual, é possível que você precise configurar o "dhcpcd" para usar um "IP" fixo. Aqui, nós damos um exemplo. Como o(a) usuário(a) "root" crie o arquivo de configuração "/etc/sysconfig/ifconfig.eth0" usando os seguintes comandos. Ajuste adequadamente para interfaces adicionais e para o "IP" e roteador reais que você precisa:

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

Você consegue ou usar servidores "DNS" em "/etc/resolv.conf" oriundos de outro sistema, teus servidores preferidos, ou apenas o arquivo de exemplo "/etc/resolv.conf.head" abaixo, como está:

cat > /etc/resolv.conf.head << "EOF"
# Servidores abertos "DNS"
nameserver 208.67.222.222
nameserver 208.67.220.220
EOF

Conteúdo

Aplicativo Instalado: dhcpcd
Biblioteca Instalada: /usr/lib/dhcpcd/dev/udev.so
Diretório Instalado: /{usr,var}/lib/dhcpcd e /usr/share/dhcpcd

Descrições Curtas

dhcpcd

é uma implementação do cliente "DHCP" especificado na "RFC2131"

udev.so

adiciona suporte ao "Udev" para chegada e partida da interface; isso ocorre porque o "Udev" gosta de renomear a interface, o que não poderá ser feito se o "dhcpcd" a capturar primeiro