Pular para o conteúdo principal

Criando um DNS para nossa rede interna

Existem diversos serviços de DNS disponíveis para o linux. Neste post vamos tratar de um dos mais simples, mas que funciona muito bem para pequenas redes. Vamos ver aqui o DNSmasq que fornece dois serviços: DNS e DHCP. Os serviços podem ser usados de forma independente. O primeiro (DNS) permite que os computadores possam fazer acesso à internet, pois converte os nomes (por exemplo, http://h3dema.blogspot.com) para o respectivo endereço IP. Um cache DNS local pode acelerar a navegação na Internet porque o navegador do usuário não precisa acessar um servidor de nomes de domínio quando ele procura um nome de domínio que o computador já visitou antes. O segundo (DHCP) fornece e configura automaticamente os endereços IP para os outros computadores na rede com ou sem fio. Um computador precisa de um endereço de rede IP exclusivo para acessar a internet.

NOTA: Observe que o dnsmasq interfere com o Network Manager (gerenciador de rede), já que este pode usar "dnsmasq-base" para fornecer serviços DHCP ao compartilhar uma conexão à internet. Portanto, se você usar o gerenciador de rede instale dnsmasq-base, mas não dnsmasq. Se você tiver uma configuração mais complicada, desinstale o gerenciador de rede, use dnsmasq ou software similar (bind9, dhcpd, etc.) e configure tudo manualmente. Esta situação não será coberta neste post.

Instalação e configuração do dnsmasq

O dnsmasq pode ser instalação com o tradicional apt-get.
Neste post consideramos que o computador com o dnsmasq tem o endereço 192.168.0.1.
Execute esses comandos
$ sudo apt-get install dnsmasq
O dnsmasq pode ser configurado editando o arquivo /etc/dnsmasq.conf.
Vamos mostrar como criar um cache DNS local.

Um servidor DNS resolve nomes de domínio legíveis para humanos em endereços IP. O cache reduzirá o tempo necessário para procurar nomes de domínio ao navegar. Com o dnsmasq instalado, use seu editor de texto preferido para editar /etc/dnsmasq.conf,

Troque a linha mostrada abaixo (em torno da linha 90):
#listen-address=
para
listen-address=127.0.0.1
Normalmente esta alterações já é suficiente para o dnsmasq funcionar, mas vamos acrescentar algumas configurações adicionais. Assim o nosso arquivo de configuração ficará assim:
listen-address=127.0.0.1
domain-needed
bogus-priv
local=/meudominio.local/
expand-hosts
domain=meudominio.local
interface=eth1
server=4.4.4.4
server=8.8.8.8 

Vamos ver o que cada termo quer dizer:

  • listen-address = 127.0.0.1 - Faz o próprio Dnsmasq usando o arquivo interno, ao invés de encaminhar para um servidor DNS.
  • domain-needed - O dnsmasq não vai tentar resolver os nomes quando forem fornecidos nomes de hosts simples, isto é, sem fqdn. Por exemplo ao solicitar youtube, o dnsmasq retorna um erro de "host não encontrado".
  • bogus-priv - Qualquer pesquisa reversa para um ip privado (RFC 1918) não será redirecionada para os servidores listados como server=xxxx.
  • local=/meudominio.local/ - Pesquisas para o domínio "meudominio.local" não são encaminhadas para os servidores configurados.
  • domain=meudominio.local - Indica que o domínio do dnsmasq é "meudominio.local". Assim o dnsmasq procura no domínio por nome de máquinas simples (nome do host).
  • expand-hosts - Adicional automaticamente ao domínio (meudominio.local) quando solicitados hosts com em nomes de máquinas simples. Por exemplo, comp01 será completado gerando um nome completo - comp01.meudominio.local.
  • interface=eth0 - Indica a interface que o dnsmasq ir ouvir requisições de DNS e DHCP, utilize uma linha para cada interface.
  • servidor = x.x.x.x - Cada linha indica um servidor DNS que será consultado pelo dnsmasq caso o cache local não conheça o domínio solicitado. Você pode cadastrar vários servidores. No nosso caso cadastramos os dois endereços de DNS público do Google.


Agora, edite o arquivo /etc/dhcp3/dhclient.conf (em torno da linha 20) se parece com o seguinte:
#supersede domain-name "fugue.com home.vix.com";
prepend domain-name-servers 127.0.0.1;
request subnet-mask, broadcast-address, time-offset, routers, domain-name, domain-name-servers, host-name, netbios-name-servers, netbios-scope;

A opção prepend domain-name-servers é importante pois garante que 127.0.0.1 aparecerá no topo da lista de servidores DNS. Lembre-se que o endereço 127.0.0.1 refere-se ao computador com dnsmasq. Sempre que um computador do dnsmasq precisa resolver um nome de domínio, ele enviará essa solicitação para o próprio dnsmasq.



Agora, edite o arquivo /etc/resolv.conf.
search meudominio.com
nameserver 127.0.0.1
Tendo feito toda esta configuração precisamos reiniciar o dnsmasq para que as mudanças que fizemos passem a funcionar. Faça isto com o comando:

$ sudo /etc/init.d/dnsmasq restart

Criando também um DHCP


Até o momento criamos o dns cache, mas ainda não foi criado do DHCP. Para fazer isto temos que editar o arquivo /etc/dnsmasq.conf e acrescentar pelo menos as duas linhas indicadas abaixo:



dhcp-range=192.168.0.100,192.168.0.200,12h
dhcp-lease-max=100 

Vamos ver o que cada termo quer dizer:
  • dhcp-range=192.168.0.100,192.168.0.200,12h - Esta linha define duas configurações: (a) o intervalo de IPs que serão fornecidos para a rede (indicamos o menor valor e o maior valor) e (b) o tempo de concessão da configuração - isto é o tempo que o endereço concedido a uma estação ficará válido.
  • dhcp-max-lease 100 - Máximo de concessões. Se esta linha não for colocada no arquivo de configuração, o dnsmasq utilizará o valor padrão que é 150. 
Temos que reiniciar novamente o dnsmasq.
$ sudo /etc/init.d/dnsmasq restart

Comentários

Postagens mais visitadas deste blog

Como colocar o PyCharm no launcher do Ubuntu

Atualizei recentemente meu pycharm para a versão 2018.1. A atualização basicamente consiste em baixar do site da Jetbrains  dedicado ao PyCharm, e depois do download basta descompactar e mover o diretório criado para você você achar mais adequado. No meu caso está em ~/bin/pycharm. Para rodar o pycharm é só executar o script pycharm.sh que está no diretório bin dentro do diretório do pycharm, isto é, no meu caso ~/bin/pycharm/bin/pycharm.sh. Eu queria ter o ícone do pycharm no launcher (aquela barra lateral do Ubuntu) para ficar mais fácil chamá-lo. O PyCharm pode criar seu próprio ícone de lançador, contudo ele não é cria por padrão. A gente tem que executar alguns comandos: 1) Comece chamando o PyCharm em um terminal. 2) No menu Ferramentas, selecione "Criar entrada da área de trabalho ..." 3) Se você já tem o PyCharm, ele irá perguntar se você quer reaproveitar as configurações da versão anterior: 4) Marque a caixa correspondente, se você quiser o lanç

Resetando a senha do administrador local no Windows Server 2012

Existem diversas formas de redefinir a senha em seu servidor Windows 2012 quando você esqueceu ela. Neste post mostraremos como alterar a senha do usuário administrador, quando você tem acesso físico à ele. Você precisará do DVD de instalação do Windows para fazer isto. São os seguintes passos: 1-) Reinicie o seu computador dando boot pelo DVD do Microsoft Windows Server 2012 (pode ser outra versão) 2-) No menu Instalação do Windows (mostrado abaixo), clique em "Avançar". 3-) Selecione "Reparar seu computador" Como estamos utilizando o DVD do Windows 2008 para reparar um Windows 2012, o seguinte aviso é mostrado. Concorde clicando em Next. 4-) Clique em "Aviso de comando" para abrir uma janela de comandos. 5-) No prompt de comando, execute os seguintes comandos: d: cd windows\system32 ren Utilman.exe Utilman.exe.old copy cmd.exe Utilman.exe 5-) Feche o prompt de comando e clique em "Reiniciar". 6-) O serv

Configurar a ação do Ubuntu 20 ao fechar a tela do notebook

Este post mostra como alterar a ação quando a tampa do laptop é fechada no Ubuntu 20.04 - por exemplo, desligar, hibernar, não fazer nada ou travar a tela. A ação padrão do Ubuntu é suspender a atividade do notebook. Até onde eu sei, até o momento deste post não existe uma opção gráfica para fazer esta configuração, portanto você precisa editar o arquivo logind.conf para alterar a ação. Esta configuração deve funcionar em instalações tipo desktop ou servidor do Ubuntu. Você precisa abrir o terminal (normalmente isto pode ser feito pressionando simultaneamente Ctrl + Alt + T). Com o terminal aberto você pode utilizar um editor para alterar as linhas que controlam a ação. Por exemplo, digite na linha de comando: sudo vi /etc/systemd/logind.conf No arquivo procure a linha (note the # indica que a linha está comentada) # HandleLidSwitch = suspend e altere-a para uma das seguintes opções (note que agora a linha não começa mais com #) - trava o desktop quando a tampa está fechada: HandleLidS