Proteger resolv.conf do DHCP no FreeBSD 10

Se você estiver executando seu próprio resolvedor ou desejar usar um de um provedor de terceiros, poderá achar que seu /etc/resolv.confarquivo está sendo substituído pelo DHCP. Existem várias maneiras de resolver esse problema. Como é provável que você queira reinicializar para garantir que suas alterações ocorram, e como você estará monitorando as configurações de rede em primeiro lugar, sugiro fazer isso em uma instância de teste e / ou fora do pico horas.

Agora, então, aqui estão três métodos, do pior ao melhor. Observe que todos os métodos deste guia foram escritos para o FreeBSD 10. Usuários do Linux podem consultar este guia .

Método 1: Usar configurações de interface estática

Nos meus testes limitados, isso resulta em tempos de inicialização um pouco mais rápidos, pois você não precisa esperar o DHCP atribuir suas configurações de rede. No entanto, eu já vi menção em vários documentos do Vultr que o uso de configurações de interface estática é desaprovado e que você deve seguir o DHCP. Presumo que eles tenham uma boa razão para isso e, portanto, continuei usando o DHCP. No entanto, se você decidir seguir esse caminho, siga as etapas abaixo.

  • Determine o IP, a máscara de rede e o IP do gateway do servidor.
  • Modifique /etc/rc.confpara usar esses valores em vez do DHCP.
  • Reinicie para testar as configurações.

Determinar IP / máscara de rede / gateway

Supondo que sua interface seja vtnet0, execute o seguinte:

ifconfig vtnet0 | grep inet

Isso deve fornecer o endereço IP e a máscara de rede para o seu servidor:

inet 10.10.10.10 netmask 0xffffff00 broadcast 10.10.10.255

O FreeBSD gosta de usar o hex para a máscara de rede. O acima se converte em 255.255.255.0se você estiver curioso. Você pode encontrar uma tabela útil aqui , mas não tenha medo: basta copiar o endereço hexadecimal nos arquivos de configuração (ou convertê-lo em decimal, se preferir).

Você pode encontrar o gateway de várias maneiras. Aqui está um:

route get default | grep gateway retornará algo como:

gateway: 10.10.10.1

Modifique /etc/rc.confcom novos valores

Armado com o IP, máscara de rede e gateway, agora é hora de adicioná-los à configuração do sistema. Eu recomendo fazer o backup deste arquivo antes de fazer alterações, pois isso facilitará muito a desfazer caso você estrague. Agora, abra o /etc/rc.confseu editor de escolha e faça as seguintes alterações:

# Comment out this line:
# ifconfig_vtnet0="dhcp"

# Add these lines:
defaultrouter="10.10.10.1"
ifconfig_vtnet0="inet 10.10.10.10 netmask 0xffffff00"

Obviamente, você deve substituir seu IP, máscara de rede e gateway reais pelos meus erros óbvios.

Reinicialize e teste

Reinicie o servidor usando shutdown -r nowe verifique se ele volta corretamente. Execute os testes que considerar necessários para garantir que tudo esteja funcionando corretamente. Se a rede estiver inacessível, efetue login no console e reverta suas alterações. Se tudo estiver bem, neste momento você pode colocar o que quiser, resolv.confsem medo de ser destruído.

Se por qualquer motivo você não pode reiniciar, isso deve funcionar, mas eu realmente fazer um reboot adequado, se eu fosse você:

service netif restart && service routing restart

Método 2: Tornar resolv.confimutável

Isso é um pouco complicado, mas é facilmente a solução mais rápida. Eu não recomendo, porque não posso garantir que isso não cause estranheza no futuro quando você atualizar para uma nova versão do sistema operacional, e o dhclient provavelmente reclamará bastante. Dito isto, basta um simples chflags schg /etc/resolv.conf. O arquivo agora está completamente protegido contra gravação, mesmo a partir da raiz. Você pode verificar assim:

vultr [~]# chflags schg /etc/resolv.conf
vultr [~]# ls -ol /etc/resolv.conf
-rw-r--r--  1 root  wheel  schg 50 Nov 29 06:28 /etc/resolv.conf
vultr [~]# echo "so very untouchable" >> /etc/resolv.conf
/etc/resolv.conf: Operation not permitted.

Desfazer com: chflags noschg /etc/resolv.conf

Método 3: Diga educadamente ao FreeBSD para deixar suas configurações como estão.

Esta é de longe a maneira mais limpa e adequada de fazer isso. Existem duas abordagens que você pode adotar:

Configurar dhclient

Vamos pegar o exemplo do começo ao fim e dizer que tudo o que você quer fazer é colocar seu servidor de nomes personalizado resolv.confe não quer perdê-lo toda vez que o DHCP faz isso. No meu caso, quero usar o resolvedor de cache que instalei que escuta no localhost, então edito /etc/dhclient.conf(que provavelmente ficará em branco além dos comentários) e adicione o seguinte:

interface "vtnet0" {
    supersede domain-name-servers 127.0.0.1;
}

Isso permitirá que o dhclient faça tudo o que você precisa, mas quando o servidor DHCP envia uma lista de servidores de nomes para uso, o seu substitui (como substitui completamente) os que ele oferece. Se você preferir suplementar (em vez de substituir) os oferecidos, você pode "anexar" ou "anexar" em vez de "substituir", conforme apropriado.

Aliás, se você precisar de mais de um servidor personalizado, especifique-os assim:

supersede domain-name-servers 127.0.0.1, 127.0.0.2;

Após fazer as alterações, reinicie dhclientpara que elas entrem em vigor imediatamente:

service dhclient restart vtnet0

Examine o seu /etc/resolv.confe você deve descobrir que agora possui seus servidores de nomes personalizados.

No momento da redação deste artigo, os servidores de nomes são a única coisa que o servidor DHCP do Vultr já colocou no meu resolv.conf, e a única coisa que eu me importei em personalizar. No entanto, se você precisar substituir outras configurações, consulte o excelente manual para obter uma lista abrangente:

man 5 dhclient.conf

Existem ótimos exemplos na parte inferior que devem lhe dar uma idéia do que você pode fazer. Em cima da minha cabeça, eu posso imaginar que você pode querer adicionar algo como supersede domain-name "example.com";se você normalmente tem uma linha como essa na sua resolv.conf. Mais uma vez, consulte os documentos.

Configurar resolvconf

Esta é a solução mais simples se você apenas deseja resolv.confque seja deixado em paz. De acordo com o manual:

resolvconf manages resolv.conf(5) files from multiple sources, such as DHCP and VPN clients

Sua configuração reside /etc/resolvconf.conf, o que provavelmente não existe no seu sistema, portanto, fique à vontade para criá-lo. Para tornar seu resolv.confimutável, adicione isto:

# prevent all updates to resolv.conf:
resolv_conf="/dev/null"

Se você usar unboundcomo seu resolvedor de armazenamento em cache local, essa é a linha que ele adiciona (junto com alguns por si). Isso é basicamente enganar resolvconfpensando que você /etc/resolv.confestá localizado /dev/null. Algo um pouco menos cruel, mas igualmente eficaz, seria:

# disable resolvconf from running any subscribers:
resolvconf="NO"

Se você quiser fazer algo mais sofisticado do que simplesmente desativá-lo, as páginas de manual resolvconfe resolvconf.conftêm muitas informações.



Leave a Comment

A IA pode lutar contra o aumento do número de ataques de ransomware

A IA pode lutar contra o aumento do número de ataques de ransomware

Os ataques de ransomware estão aumentando, mas a IA pode ajudar a lidar com os vírus de computador mais recentes? AI é a resposta? Leia aqui para saber se é AI boone ou bane

ReactOS: Este é o futuro do Windows?

ReactOS: Este é o futuro do Windows?

ReactOS, um sistema operacional de código aberto e gratuito está aqui com a versão mais recente. Será que ela pode atender às necessidades dos usuários modernos do Windows e derrubar a Microsoft? Vamos descobrir mais sobre esse estilo antigo, mas uma experiência de sistema operacional mais recente.

Fique conectado por meio do aplicativo WhatsApp Desktop 24 * 7

Fique conectado por meio do aplicativo WhatsApp Desktop 24 * 7

O Whatsapp finalmente lançou o aplicativo Desktop para usuários de Mac e Windows. Agora você pode acessar o Whatsapp do Windows ou Mac facilmente. Disponível para Windows 8+ e Mac OS 10.9+

Como a IA pode levar a automação de processos ao próximo nível?

Como a IA pode levar a automação de processos ao próximo nível?

Leia isto para saber como a Inteligência Artificial está se tornando popular entre as empresas de pequena escala e como está aumentando as probabilidades de fazê-las crescer e dar vantagem a seus concorrentes.

A atualização do suplemento do macOS Catalina 10.15.4 está causando mais problemas do que resolvendo

A atualização do suplemento do macOS Catalina 10.15.4 está causando mais problemas do que resolvendo

Recentemente, a Apple lançou o macOS Catalina 10.15.4, uma atualização suplementar para corrigir problemas, mas parece que a atualização está causando mais problemas, levando ao bloqueio de máquinas mac. Leia este artigo para saber mais

13 Ferramentas de Extração de Dados Comerciais de Big Data

13 Ferramentas de Extração de Dados Comerciais de Big Data

13 Ferramentas de Extração de Dados Comerciais de Big Data

O que é um sistema de arquivos de registro no diário e como ele funciona?

O que é um sistema de arquivos de registro no diário e como ele funciona?

Nosso computador armazena todos os dados de uma maneira organizada conhecida como sistema de arquivos Journaling. É um método eficiente que permite ao computador pesquisar e exibir arquivos assim que você clicar em search.https: //wethegeek.com/? P = 94116 & preview = true

Singularidade tecnológica: um futuro distante da civilização humana?

Singularidade tecnológica: um futuro distante da civilização humana?

À medida que a ciência evolui em um ritmo rápido, assumindo muitos de nossos esforços, os riscos de nos sujeitarmos a uma singularidade inexplicável também aumentam. Leia, o que a singularidade pode significar para nós.

Uma visão sobre 26 técnicas analíticas de Big Data: Parte 1

Uma visão sobre 26 técnicas analíticas de Big Data: Parte 1

Uma visão sobre 26 técnicas analíticas de Big Data: Parte 1

O impacto da inteligência artificial na saúde 2021

O impacto da inteligência artificial na saúde 2021

A IA na área da saúde deu grandes saltos nas últimas décadas. Portanto, o futuro da IA ​​na área da saúde ainda está crescendo dia a dia.