Skip to content

Servidores \ RTserver1 \ DNS Slave \ Cache Forward

rthomaz edited this page Jun 15, 2017 · 8 revisions

Cache Forward

Instalação

root@server:~# apt-get install bind9 bind9-doc dnsutils

Configuração

Vamos personalizar a instalação em 2 aspetos principais: a que servidores é que o nosso vai pedir ajuda na resolução de nomes, caso não o consiga fazer localmente (forwarders) e alguns aspetos de segurança.

Como forwarders podemos optar por várias hipóteses: uma é utilizamos os servidores DNS do nosso fornecedor de acesso à Internet.

Outra possibilidade muito interessante é utilizar um dos diversos serviços públicos de DNS atualmente disponíveis, tais como:

OpenDNS

Google Public DNS

The OpenNIC project

Estes serviços alegam fornecer não só resoluções mais rápidas, mas também diversos serviços adicionais de segurança, tais como filtragem de endereços maliciosos, etc.

Neste caso, serão utilizados os servidores Gooogle (Google Public DNS). Por redundância, acrescentaremos também os servidores OpenDNS e o router ADSL.

Por segurança só serão aceites ligações recebidas pela interface local ou pela destinada à rede interna (listen-on { 127.0.0.1; 192.168.0.100; };). Também só serão respondidos os pedidos de resolução que partirem do próprio posto ou da rede interna (allow-query { 127.0.0.1; 192.168.0.0/24; };). Todos os outros serão ignorados, de modo a evitar eventuais utilizações abusivas do nosso servidor DNS por parte de terceiros.

A configuração é guardada no ficheiro /etc/bind/named.conf.options:

root@server:~# cp /etc/bind/named.conf.options /etc/bind/named.conf.options.original

root@server:~# nano /etc/bind/named.conf.options

acl goodclients {
        127.0.0.1;
        192.168.0.0/24;
};

options {
        directory "/var/cache/bind";

        // If there is a firewall between you and nameservers you want
        // to talk to, you may need to fix the firewall to allow multiple
        // ports to talk.  See http://www.kb.cert.org/vuls/id/800113

        // If your ISP provided one or more IP addresses for stable
        // nameservers, you probably want to use them as forwarders.
        // Uncomment the following block, and insert the addresses replacing
        // the all-0's placeholder.

        forwarders {

                // Google Public DNS
                8.8.8.8;
                8.8.4.4;

                // OpenDNS servers
                208.67.222.222;
                208.67.220.220;
                
                // OpenNIC servers
                5.135.183.146;
                45.76.27.27;
                192.95.54.1;
                87.98.175.85;
                
                // ADSL router
                192.168.0.1;
        };

        forward only;

        // Security options
        listen-on port 53 { 127.0.0.1; 192.168.0.100; };
        allow-query { goodclients; };
        allow-recursion { goodclients; };
        allow-transfer { none; };
        version "Not avaliable";

        //========================================================================
        // If BIND logs error messages about the root key being expired,
        // you will need to update your keys.  See https://www.isc.org/bind-keys
        //========================================================================
        dnssec-enable yes;
        dnssec-validation yes;

        auth-nxdomain no;    # conform to RFC1035
        // listen-on-v6 { any; };
};

// the master server definition
server 192.168.0.101 {
        request-ixfr yes;
};

Verificar se o ficheiro de configuração foi corretamente editado:

root@server:~# named-checkconf

Atualizar o ficheiro /etc/resolv.conf para que a resolução de nomes passe a ser feita localmente:

domain rthomaz.local
search rthomaz.local
nameserver 192.168.0.100

Verificar também no ficheiro /etc/nsswitch.conf que a resolução de nomes passa também pelo serviço DNS:

# [...]
hosts:	files dns
# [...]

Reiniciar o serviço DNS:

root@server:~# service bind9 restart

Verificação

Como verificação, basta procurar o endereço IP de qualquer sítio Internet. O servidor DNS deverá ser o nosso (127.0.0.1) e o ou os endereços IP do sítio deverão ser corretamente mostrados:

root@server:~# nslookup www.debian.org
Server:         127.0.0.1
Address:        127.0.0.1#53
 
Non-authoritative answer:
Name:   www.debian.org
Address: 5.153.231.4
Name:   www.debian.org
Address: 130.89.148.14

O processo inverso, ou seja, procurar o nome a partir do endereço IP também deverá funcionar:

root@server:~# nslookup 5.153.231.4
Server:         127.0.0.1
Address:        127.0.0.1#53
 
Non-authoritative answer:
4.231.153.5.in-addr.arpa        name = senfter.debian.org.
 
Authoritative answers can be found from:
.       nameserver = g.root-servers.net.
.       nameserver = a.root-servers.net.
.       nameserver = l.root-servers.net.
.       nameserver = j.root-servers.net.
.       nameserver = b.root-servers.net.
.       nameserver = k.root-servers.net.
.       nameserver = m.root-servers.net.
.       nameserver = f.root-servers.net.
.       nameserver = c.root-servers.net.
.       nameserver = d.root-servers.net.
.       nameserver = h.root-servers.net.
.       nameserver = e.root-servers.net.
.       nameserver = i.root-servers.net.

Referências

Clone this wiki locally