Objectivo
Embora os endereços Internet tenham nomes “legíveis” (www.google.com), estes devem ser traduzidos para o endereço IP (216.239.59.147) do respectivo servidor. Essa conversão é efectuada realizando uma pesquisa no Sistema de Nomes de Domínios ou DNS (Domain Name System). Uma cache DNS guarda localmente os resultados dessa pesquisa para utilização futura, evitando a repetição de pesquisas e aumentando drasticamente a velocidade de resposta.
Instalação
server:~# aptitude install bind9 bind9-doc dnsutils
Configuração
A configuração gerada durante a instalação é perfeitamente funcional sem qualquer alteração. No entanto, vamos personalizar a instalação em 2 aspectos 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 aspectos de segurança.
Como forwarders utilizamos os servidores DNS do fornecedor de acesso à Internet (Neste caso, serão utilizados os servidores OpenDNS (http://www.opendns.com/). Por redundância, acrescentar também o do 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.1.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.1.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:
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 {
// OpenDNS servers
208.67.222.222;
208.67.220.220;
// ADSL router
192.168.1.1;
};
// Security options
listen-on port 53 { 127.0.0.1; 192.168.1.100; };
allow-query { 127.0.0.1; 192.168.1.0/24; };
allow-recursion { 127.0.0.1; 192.168.1.0/24; };
allow-transfer { none; };
auth-nxdomain no; # conform to RFC1035
// listen-on-v6 { any; };
};
Verificar se o ficheiro de configuração foi correctamente editado:
server:~# named-checkconf
Actualizar o ficheiro /etc/resolv.conf para que a resolução de nomes passe a ser feita localmente:
nameserver 127.0.0.1
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:
server:~# /etc/init.d/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 e o endereço IP do sítio deverá ser correctamente mostrado:
server:~# nslookup www.fccn.pt
Server: 127.0.0.1
Address: 127.0.0.1#53
Non-authoritative answer:
www.fccn.pt canonical name = m01.bc01.mm.fccn.pt.
Name: m01.bc01.mm.fccn.pt
Address: 193.137.196.101
O processo inverso, ou seja, procurar o nome a partir do endereço IP também deverá funcionar:
server:~# nslookup 193.137.196.101
Server: 127.0.0.1
Address: 127.0.0.1#53
Non-authoritative answer:
101.196.137.193.in-addr.arpa name = m01.bc01.mm.fccn.pt.
Authoritative answers can be found from:
. nameserver = f.root-servers.net.
. nameserver = h.root-servers.net.
. nameserver = g.root-servers.net.
. nameserver = b.root-servers.net.
. nameserver = i.root-servers.net.
. nameserver = a.root-servers.net.
. nameserver = j.root-servers.net.
. nameserver = e.root-servers.net.
. nameserver = l.root-servers.net.
. nameserver = k.root-servers.net.
. nameserver = c.root-servers.net.
. nameserver = d.root-servers.net.
. nameserver = m.root-servers.net.
Configuração dos clientes
Windows
Para sistemas Windows indicar, nas propriedades do protocolo Internet (TCP(IP) da ligação de rede, o endereço do nosso servidor DNS (192.168.1.100) como sendo o servidor DNS preferido.
Linux
No caso de sistemas Linux, editar o ficheiro /etc/resolv.conf e acrescentar ou substituir o nameserver:
# [...]
nameserver 192.168.1.100
# [...]
Para sistemas Windows indicar, nas propriedades do protocolo Internet (TCP(IP) da ligação de rede, o endereço do nosso servidor DNS (192.168.1.100) como sendo o servidor DNS preferido.
Configuração automática de clientes
O servidor DNS também pode ser atribuído automaticamente aos clientes através do protocolo DHCP. Para tal, basta acrescentar a opção domain-name-servers com o ou os endereços dos servidores DNS ao ficheiro /etc/dhcp3/dhcpd.conf do servidor DHCP:
# [...]
option domain-name-servers 192.168.1.100;
# [...]
Referências
- ISC Bind (http://www.isc.org/sw/bind/)
- Wikipedia: DNS (http://pt.wikipedia.org/wiki/Dns)
- Linux Home Networking: Quick HOWTO: Ch18 Configuring DNS (http://www.linuxhomenetworking.com/wiki/index.php/Quick_HOWTO_:_Ch18_:_Configuring_DNS)
- DNS Howto, 3. A resolving, caching name server (http://langfeldt.net/DNS-HOWTO/BIND-9/DNS-HOWTO-3.html)
- Securing Debian Manual (http://www.debian.org/doc/manuals/securing-debian-howto/ch-sec-services.en.html#s-sec-bind)
- OpenDNS (http://www.opendns.com/)




















