dnsmasq (Português)

dnsmasq fornece um servidor DNS, um servidor DHCP com suporte a DHCPv6 e PXE, e um servidor TFTP. Ele é projetado para ser leve e ter um tamanho reduzido, adequado para roteadores e firewalls com recursos restritos. O dnsmasq também pode ser configurado para armazenar em cache as consultas DNS para melhorar as velocidades de pesquisa de DNS nos sites visitados anteriormente.

Status de tradução: Esse artigo é uma tradução de Dnsmasq. Data da última tradução: 2020-06-30. Você pode ajudar a sincronizar a tradução, se houver alterações na versão em inglês.

Instalação

Instale o pacote dnsmasq.

Iniciar o daemon

Inicie/habilite dnsmasq.service.

Para ver se o dnsmasq iniciou adequadamente, verifique o journal do sistema:

# journalctl -u dnsmasq.service

A rede também precisará ser reiniciada de forma que o cliente DHCP possa criar um novo /etc/resolv.conf.

Configuração

Para configurar o dnsmasq, edite /etc/dnsmasq.conf. O arquivo contém comentários explicando as opções. Para todas as opções disponíveis, veja dnsmasq(8).

Atenção: A configuração padrão do dnsmasq habilita seus servidores DNS. Se você não quiser este serviço, você precisa desabilitá-lo explicitamente definindo a porta DNS para 0:
port=0

Servidor DNS

Para configurar o dnsmasq como um daemon de cache DNS em um único computador, especifique uma diretiva , adicionando o endereço IP do host local:

listen-address=::1,127.0.0.1

Para usar este computador para ouvir em seu endereço IP da LAN para outros computadores na rede. Recomenda-se que você use um IP de LAN estático neste caso. Por exemplo:

listen-address=::1,127.0.0.1,192.168.1.1

Defina o número de nomes de domínios em cache com (o padrão é ):

cache-size=1000

Para validar o DNSSEC carregue as âncoras de confiança DNSSEC fornecidas pelo pacote dnsmasq e defina a opção dnssec:

conf-file=/usr/share/dnsmasq/trust-anchors.conf
dnssec

Veja o dnsmasq(8) para mais opções que você pode querer usar.

Arquivo de endereços DNS e encaminhamento

Depois de configurar o dnsmasq, você precisa adicionar os endereços de host local como os únicos servidores de nomes em /etc/resolv.conf. Isso faz com que todas as consultas sejam enviadas para o dnsmasq.

Como o dnsmasq é um stub resolver, isto é, não é um servidor DNS recursivo, você deve configurar o encaminhamento para um servidor DNS externo. Isso pode ser feito automaticamente usando openresolv ou especificando manualmente o endereço do servidor DNS na configuração do dnsmasq.

openresolv

Se seu gerenciador de rede tiver suporte a resolvconf, em vez de alterar diretamente o /etc/resolv.conf, você pode usar o openresolv para gerenciar arquivos de configuração para o dnsmasq.

Edite /etc/resolvconf.conf e adicione os endereços de loopback como servidores de nomes e configure o openresolv para escrever a configuração do dnsmasq:

Executa de forma que os arquivos de configuração sejam criados. Se os arquivos não existirem, dnsmasq.service vai falhar ao iniciar.

Edite o arquivo de configuração do dnsmasq para usar a configuração gerada do openresolv:

# Leia a configuração gerada pelo openresolv
conf-file=/etc/dnsmasq-conf.conf
resolv-file=/etc/dnsmasq-resolv.conf
Encaminhamento manual

Primeiro, você deve definir endereços de localhost como os únicos servidores de nomes no /etc/resolv.conf:

Certifique-se de proteger /etc/resolv.conf de modificações conforme descrito em Resolução de nome de domínio#Sobrescrita do /etc/resolv.conf.

Os endereços de servidor DNS upstream devem então ser especificados no arquivo de configuração do dnsmasq como . Também adicione para que o dnsmasq não leia desnecessariamente /etc/resolv.conf que contém apenas os endereços de host local de si mesmo.

Agora, as consultas de DNS serão resolvidas com dnsmasq, verificando somente os servidores externos se não puder responder à consulta de seu cache.

Adicionando um domínio personalizado

É possível adicionar um domínio personalizado a hosts em sua rede (local):

local=/lan/
domain=lan

Neste exemplo é possível pingar um host/dispositivo (p.ex., definido em seu arquivo ) como .

Descomente expand-hosts para adicionar um domínio personalizado a entradas de host:

expand-hosts

Sem essa configuração, você terá que adicionar o domínio às entradas de .

Testar

Para fazer um teste de velocidade de pesquisa, escolha um site que não tenha sido visitado desde que o dnsmasq foi iniciado (o drill faz parte do pacote ):

$ drill archlinux.org | grep "Query time"

Executar o comando novamente usará o IP do DNS em cache e resultará em um tempo de pesquisa mais rápido se o dnsmasq estiver configurado corretamente:

$ drill archlinux.org | grep "Query time"
;; Query time: 18 msec

Para testar se a validação do DNSSEC está funcionando, veja DNSSEC (Português)#Testando.

Servidor DHCP

Por padrão, o dnsmasq tem a funcionalidade de DHCP desativada, se você quiser usá-la, deve ativá-la. Aqui estão as configurações importantes:

Veja dnsmasq(8) para mais opções.

Testar

A partir de um computador conectado ao dnsmasq, configure-o para usar o DHCP para atribuição automática de endereço IP e, em seguida, tente efetuar login na rede normalmente.

Se você inspecionar o arquivo no servidor, poderá ver a concessão.

Servidor TFTP

O dnsmasq tem um servidor TFTP embutido.

Para usá-lo, crie um diretório para a raiz do TFTP (p.ex., ) para colocar arquivos transferíveis nele.

Para aumentar a segurança, é aconselhável usar o modo seguro de TFTP do dnsmasq. No modo seguro, apenas os arquivos pertencentes ao usuário serão atendidos pelo TFTP. Você precisará fazer chown na raiz do TFTP e todos os arquivos nele para o usuário usar este recurso.

Habilite o TFTP:

enable-tftp
tftp-root=/srv/tftp
tftp-secure

Veja dnsmasq(8) para mais opções.

Servidor PXE

O PXE requer servidores DHCP e TFTP, ambas as funções podem ser fornecidas pelo dnsmasq.

  1. defina #Servidor TFTP e #Servidor DHCP
  2. copie e configure um gerenciador de boot compatível com PXE (p.ex., PXELINUX) na raiz do TFTP
  3. habilite PXE no /etc/dnsmasq.conf:

Para apenas enviar um arquivo:

dhcp-boot=lpxelinux.0

Para enviar um arquivo dependente da arquitetura do cliente:

pxe-service=x86PC, "PXELINUX (BIOS)", "bios/lpxelinux"
pxe-service=X86-64_EFI, "PXELINUX (EFI)", "efi64/syslinux.efi"
dhcp-match=set:efi-x86_64,option:client-arch,7
dhcp-match=set:efi-x86_64,option:client-arch,9
dhcp-match=set:efi-x86,option:client-arch,6
dhcp-match=set:bios,option:client-arch,0
dhcp-boot=tag:efi-x86_64,"efi64/syslinux.efi"
dhcp-boot=tag:efi-x86,"efi32/syslinux.efi"
dhcp-boot=tag:bios,"bios/lpxelinux.0"

Veja dnsmasq(8) para mais opções.

O resto é por conta do gerenciador de boot.

Dicas e truques

Evitar que o OpenDNS redirecione as consultas do Google

Para evitar que o OpenDNS redirecione todas as consultas do Google para seu próprio servidor de pesquisa, adicione ao /etc/dnsmasq.conf:

server=/www.google.com/<IP do DNS do provedor>

Substituir endereços

Em alguns casos, como ao operar um portal cativo, pode ser útil resolver nomes de domínios específicos para um conjunto de endereços codificados. Isso é feito com a configuração :

address=/example.com/1.2.3.4

Além disso, é possível retornar um endereço específico para todos os nomes de domínio que não são respondidos de ou DHCP usando um curinga especial:

address=/#/1.2.3.4

Mais de uma instância

Se quisermos que dois ou mais servidores dnsmasq funcionem por interface(s).

Estático

Para fazer isso de forma estática, servidor por interface, use as opções e bind-interface. Esta execução inicial segundo dnsmasq.

Dinâmico

Neste caso, podemos excluir por interface e vincular quaisquer outras:

except-interface=lo
bind-dynamic

Colocar domínios em lista negra

Para fazer um blacklist em domínios, ou seja, as respostas a consultas para eles com NXDOMAIN, use a opção sem especificar o endereço IP:

address=/blacklisted.example/
address=/another.blacklisted.example/

Para facilitar o uso, coloque a lista negra em um arquivo separado, como, por exemplo, , e carregue-o a partir de /etc/dnsmasq.conf com ou .

Veja também

gollark: It would be mean to lie, thus they cannot.
gollark: Ah yes.
gollark: Yes, just email our alien overlords.
gollark: You would, ultimately, probably have to just scan all information within the light-cone of the E instance.
gollark: But you could send someone to check without knowing what they're doing.
This article is issued from Archlinux. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.