Transforme o seu Raspberry PI num servidor de DNS

15 Comentários

Segundo dados divulgados recentemente no site raspberrypi.org, 1,75 milhões é o numero de mini Raspberry Pi vendidos em todo o mundo.  Este é um numero muito interessante que traduz o sucesso deste projecto. Este mini equipamento, do tamanho de um cartão de crédito é capaz de reproduzir vídeo com qualidade Blu-ray e renderizar gráficos 3D, entre outras tarefas.

Para que server um servidor de DNS?

Um dos serviços/protocolos mais importante em qualquer rede de dados é o DNS (Domain Name System). Tal como o nome sugere, o DNS traduz  nomes em endereços IPs e vice-versa. Por exemplo, quando acedemos ao site www.google.com, o nosso sistema precisa de saber qual o servidor a contactar e pede ao servidor de DNS (que está configurado) para que este lhe traduza o nome num endereço IP.

Do lado do cliente o utilizador apenas tem de indicar qual o servidor de DNS a usar. Já do lado do servidor há um conjunto de parâmetros que temos de definir.

Resource Records utilizados em zonas DNS

Toda a informação associada a um domínio DNS é registada nos ficheiros de zonas através de resource records. Os resource records permitem definir um tipo de apontador para endereços IP, nomes, etc. Por exemplo, quando criar um registo no DNS relativo a um servidor de e-mail, usamos o resource records  MX (Mail Exchanger)

Tipos de  resource records mais importantes:

  • A – Address: Associação de um nome a um endereço (mapeamento directo)
  • AAAA – Address IPv6; Associação de um nome a um endereço IPv6
  • NS (NameServer); Indica o nome de um servidor de DNS do domínio ou subdomínio;
  • CNAME – (Canonical NAME); um alias (nome alternativo) para um host;
  • MX – (Mail eXchanger); Definição de servidores de correio electrónico do domínio ou subdomínio ;
  • PTR – (PoinTeR); Associação de um endereço a um nome (reverse DNS – mapeamento inverso)
  • SOA – (Start Of Authority); Identificação de cabeçalhos de zonas
  • SRV – (SeRVice); permite definir serviços disponíveis num domínio
  • TXT – Definição de informação textual sobre o domínio

Num próximo artigo iremos fazer um artigo mais completo sobre o funcionamento do DNS.

Como transformar um PI num servidor de DNS?

Como já vimos ao longo de vários artigos, o PI pode ter a correr um conjunto de serviços fundamentais em qualquer rede de dados. Hoje vamos ensinar como transformar o seu PI num servidor de DNS, podendo este dar suporte a toda a sua rede.

Instalação do PowerDNS

Quando se fala em serviços de DNS para Linux, os nomes mais populares são o Bind9 ou djbdns. Para o PI a nossa sugestão vai para o PowerDNS pois é um serviço bastante leve e com muitas funcionalidades. Para instalar o PowerDNS basta usar o comando:

sudo apt-get install pdns-server
Configurar um recursor

Antes de definirmos a nossa zona no DNS, é necessário indicar qual o servidor de DNS que vai resolver nomes fora do nosso domínio. Para este exemplo vamos usar o servidor da Google (8.8.8.8). Esse informação é configurada no ficheiro /etc/powerdns/pdns.conf  podendo ser usado o seguinte comando para tal:

sudo sed -i 's/# recursor=/recursor=8.8.8.8/g' /etc/powerdns/pdns.conf

Depois de configurado devemos fazer um restart ao serviço pdns e instalar o  dnsutils

sudo service pdns restart
sudo apt-get install dnsutils

Depois de reiniciarem o serviço e instalar o dnsutils, podem testar usando, por exemplo, o comando

nslookup pplware.com localhost

O resultado deverá ser algo do tipo:

pdns_00

Configurar uma ZONA

Como referido, toda a informação associada a um domínio DNS é registada nos ficheiros de zonas. Para isso vamos abrir o ficheiro /etc/powerdns/bindbackend.conf e indicar a zona para o nosso domínio DNS interno. Para este tutorial, vamos considerar que o domínio DNS é pplware.com

zone "pplware.com" {
        type master;
        file "/etc/powerdns/bind/pplware.com.zone";
        allow-update { none; };
};

De seguida vamos criar o ficheiro /etc/powerdns/bind/pplware.com.zone onde vamos colocar a informação da nossa zona. Para isso começamos por criar o directório /etc/powerdns/bind (para termos o serviço organizado)

sudo mkdir /etc/powerdns/bind

Em seguida criamos e editamos o ficheiro /etc/powerdns/bind/pplware.com.zone e colocamos lá a seguinte informação:

Nota: De referir que o endereço 192.168.1.97 corresponde ao meu PI. Devem alterar pelo IP que está atribuído ao vosso.

$ORIGIN pplware.com     ; base for unqualified names
$TTL 1h                 ; default time-to-live
@                       IN      SOA ns.pplware.com hostmaster.pplware.com (
                                1; serial
                                1d; refresh
                                2h; retry
                                4w; expire
                                1h; minimum time-to-live
                        )
                        IN      NS      ns
                        IN      A       192.168.1.97
ns                      IN      A       192.168.1.97

E está feito. O nosso servidor de DNS está instalado, configurado e pronto a ser usado.

Adicionar novos registos

Como este serviço vai ficar a funcionar na rede local, podemos atribuir um nome a todos os dispositivos que estão nessa rede. Por exemplo, vamos considerar que queremos dar o nome gwmeo ao router que tem o endereço 192.168.1.254. Para isso, basta acrescentar ao ficheiro anterior a seguinte linha:

gwmeo               IN      A       192.168.1.254

Caso o utilizador pretenda que esta equipamento tenha um nome alternativo (CNAME) pode configurar algo do tipo:

gwmeo               IN      A       192.168.1.254
router              IN      CNAME   gwmeo

Com a informação anterior, qualquer dispositivo que tenha configurado como servidor de DNS o PI, poderá aceder ao router através do nome gwmeo ou router.

dns

No final da configuração devem reiniciar novamente o serviço pdns.

Sempre que queiram acrescentar novas máquinas, basta acrescentar essa informação ao ficheiro /etc/powerdns/bind/pplware.com.zone.

Alguns testes para verem se funciona:

dns_1

Por hoje ficamos por aqui. O próximo tutorial, como sempre, será surpresa, por isso estejam atentos. Entretanto estamos receptivos a apresentar os vossos tutoriais com este mini PC. Enviem-nos um e-mail com a informação que nós publicamos.

Partilhar:
Tags:

Comentários

15

Deixe um comentário

O seu endereço de email não será publicado. Campos obrigatórios marcados com *

  1. Avatar de TomeSoares
    TomeSoares

    Muito bom. Aguardo pelos próximos “capítulos”. Parabéns.

  2. Avatar de Pedro A.
    Pedro A.

    Boa, partiram para o DNS e deixaram o artigo de VPN na parte 1.
    Para além disso, deviam ensinar a configurar correctamente o servidor de DNS em termos de segurança para que não possa ser usado para ataques DDoS.

    1. Avatar de Pedro Pinto

      Pedro, o da VPN vai sair nos próximos dias. Quais aos ataques de DDos..nao te preocupes muito 🙂

  3. Avatar de Pedro Neves
    Pedro Neves

    Boas noites.. isto e so para domínio interno… e para aceder externamente??? para ter por exemplo um http://FTP... e servidor de torrent… e poder aceder com um domínio comprado por exemplo no godaddy.. sem uzar o no-ip????
    nao sei se me fis entender bem obrigado

    1. Avatar de Eu
      Eu

      Tens que abrir as portas no router, e/ou configurar o NAT (ou Virtual Servers)… basicamente dizeres que a porta X exterior, (ip_ext:X) corresponde ao pc_y porta Y (pc_y:Y).

    2. Avatar de Nelson
      Nelson

      Se quiseres usar um domínio tipo http://www.abc.com (por exemplo), não podes ter IP dinámico.

      Tens de, no máximo, redireccionar o domínio que queres, para o teu nome de IP dinámico.

  4. Avatar de samuel

    Este blog http://www.heystephenwood.com/search/label/raspberry%20pi tem uns tutoriais interesantes para fazer com o RPi, tais como:

    -Setting up a firewall on Your Raspberry Pi
    -Use your raspberry Pi as a DNS cache to speed up your internet
    -Bootstrap your Raspberry Pi with a Bash Script

    Penso que o projecto da firewall é interessante e será o proximo que vou por em pratica, e também seria uma boa ideia de o traduzir aqui para o pplware e juntar ao VPN e DNS…

    1. Avatar de lmx
      lmx

      boas…

      pois uma firewall seria interessante…o problema é que o raspberry Pi…só tem uma porta ethernet…seria óptimo se tivesse duas…

      Vou começar agora um projecto com uma maquina idêntica(a nível de possibilidades, não de velocidade de processador nem ram…nada que se pareça…16mb flash, 64mb ram …lol, proc mips 24k@400mhz, sem FPU :(…talvez demasiado fraco…a ver vamos), mas com duas portas ethernet e wireles embutidos 150mb/s max, duas portas usb, duas antenas wireless…mas estou em crer que vou saturar aquilo com grande facilidade 🙁 a ver vamos.
      Vai correr openwrt, em principio…com 16mb flash, não se pode querer muito, e 0.5Watts de consumo 😉

      mas claro, com iptables, mesmo assim podes e deves proteger o bicho 😀

      1. Avatar de douG
        douG

        lmx,

        tenho aqui algo semelhante 😉

        http://www.ubnt.com/rspro

  5. Avatar de Robson
    Robson

    Fiz esse tutorial, funcionou, mas agora quero instalar qualquer outro serviço, e ele não instala, nem faz o update, ele não acha nada, não sou muito entendido de linux, mas tem alguma configuração que impediu isso? como permitir?

  6. Avatar de João Grenho
    João Grenho

    Boa tarde, alguem me pode explicar como é que posso alterar os servidores de dns do meu rasp PI? Eu quero utilizar os da google mas não sei como.

    Obrigado

      1. Avatar de João Grenho
        João Grenho

        Pedro Pinto,

        Muito, muito muito obrigado pela dica. Agora sim já consegui!

        Obrigado

  7. Avatar de Nelson R
    Nelson R

    em complemento a esta informação, tenho uma palavra a dizer:

    Pi-Hole

    https://pi-hole.net/

    muito simples e vale bem a pena 🙂