-
Notifications
You must be signed in to change notification settings - Fork 0
Servidores \ RTserver1 \ DNS Slave \ Cache Forward
root@server:~# apt-get install bind9 bind9-doc dnsutils
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:
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
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.