Beruflich Dokumente
Kultur Dokumente
Introdução
Na Internet, os servidores DNS formam uma gigantesca base de dados distribuída, que
tem uma função crítica no funcionamento da rede. No topo da cadeia, temos os root
servers, 14 servidores espalhados pelo mundo que tem como função responder a todas
as requisições de resolução de domínio. Na verdade eles não respondem nada, apenas
delegam o trabalho para servidores menores, responsáveis individuais dos domínios.
A Internic cuida dos registros dos domínios raiz (.com, .org, .info e outros), enquanto a
Fapesp responde pelos domínios com extensão .br (.com.br, .org.br, etc.).
O registro de domínios na Internic é menos burocrático, pois você não precisa ter uma
empresa registrada. De qualquer forma, registrando seu domínio na Fapesp ou na
Internic, você precisará fornecer dois endereços de DNS, para onde serão enviadas as
consultas referentes ao seu domínio.
É aqui que entra a questão da autoridade. Sempre que é necessário resolver um domínio,
o cliente faz uma requisição para o servidor DNS da rede, ou do provedor, informado na
configuração da rede. O servidor contata um dos root servers e pergunta sobre o
domínio. Se for um domínio .br, eles encaminham a requisição ao servidor da Fapesp,
que é a autoridade responsável. Ele, por sua vez, verifica em sua base de dados quem é
o servidor responsável pelo domínio e encaminha novamente a requisição para ele.
Ao registrar um domínio, você passa a ter autoridade sobre ele, e pode criar
subdomínios a forma como quiser, como "fulano.meunome.com.br" ou
"vendas.minhaempresa.com". Veja o caso dos servidores de hospedagem gratuita, como
o HPG & cia. que criam milhões de subdomínios para as páginas hospedadas.
Resolver um nome de domínio é uma operação que pode demorar alguns segundos, por
isso os servidores DNS armazenam um cache de domínios já resolvidos, minimizando o
número de requisições. É por isso que quando você faz alguma mudança na
configuração do domínio, demoram algumas horas para que ela se replique.
É por isso que, às vezes, você não consegue acessar um determinado site usando o DNS
do provedor (que está desatualizado), mas consegue usando um DNS local, ou outro
servidor qualquer.
A primeira é o registro do domínio, que pode ser feito na Fapesp, Internic ou outro
órgão responsável. Ao registrar, você precisa fornecer dois endereços de DNS. Em
muitos casos, o segundo DNS não é obrigatório, ele é apenas uma segurança para o caso
do primeiro sair fora do ar. Uma opção muito usada para o segundo DNS é pedir para
que algum amigo que também possua um servidor dedicado seja seu DNS secundário.
Ele precisará apenas adicionar a configuração do seu domínio na configuração do DNS,
o que é rápido e indolor.
Ao alugar um servidor dedicado, é comum que você receba dois ou mais endereços IP's
válidos. Originalmente, seu servidor vai estar configurado para usar apenas um deles,
mas você pode ativar o segundo (mesmo que o servidor possua apenas uma placa de
rede) usando o ifconfig.
A partir daí, seu servidor passa a responder pelos dois endereços IP, e você pode usá-lo
simultaneamente como DNS primário e secundário.
Em casos onde o sistema não permite continuar sem fornecer o segundo endereço, e
você realmente não tem um segundo IP, nem nenhum amigo que possa ser o secundário,
existe mais um pequeno truque: conecte-se via modem na hora de fazer o registro, assim
você terá dois endereços (o do link e o do modem) e conseguirá concluir o registro.
Naturalmente, neste caso, você perde a redundância: se o seu DNS principal cair seu site
ficará fora do ar.
Note que nem sempre esta questão da redundância é realmente um problema, pois se o
servidor DNS está hospedado no mesmo servidor que seu site, não faz muita diferença
ter dois servidores DNS, pois se o servidor principal cair, o site ficará fora do ar de
qualquer forma. Sites maiores possuem sistemas de redundância e muitas vezes
servidores DNS separados, o que cria uma malha de segurança. É por isso que é muito
raro a página de um portal ficar fora do ar, por exemplo.
É aqui que acaba o trabalho deles e começa o seu. Ao acessar o domínio, o visitante é
direcionado para o seu servidor DNS, que precisa responder por ele.
Como no caso anterior, você deve informar o endereço do seu servidor de DNS no
registro do domínio. Como os servidores de registro de domínio lêem as URLs de trás
para a frente, todos os acessos a subdomínios dentro do "guiadohardware.net" serão
enviados para o nosso seu servidor DNS, e daí para o servidor Apache.
O servidor DNS mais usado no Linux é o Bind, que aprenderemos a configurar aqui.
Não existe problema em instalá-lo no mesmo servidor onde foi instalado o Apache e o
Proftpd, embora do ponto de vista da segurança o ideal seja utilizar servidores separados
ou um chroot.
Para instalar o Bind, procure pelo pacote "bind" ou "bind9" no gerenciador de pacotes
da distribuição usada. No Debian ou Kurumin você instala com um "apt-get install
bind" e no Mandriva com um "urpmi bind". No Slackware você encontra o pacote
dentro da pasta "n" do primeiro CD. Ao instalar, verifique a versão incluída na
distribuição. Use sempre o Bind 8 ou 9; nunca o Bind 4, que está em desuso.
Por padrão, o Bind já vem configurado para trabalhar como um servidor DNS de cache
para a rede local. Inicie o serviço com o comando "/etc/init.d/bind start" ou "service
bind start" e configure os micros da rede interna para utilizarem o endereço IP do
servidor onde foi instalado o bind como DNS (192.168.0.1 por exemplo), e você verá
que eles já serão capazes de navegar normalmente, sem precisar mais do DNS do
provedor.
O próximo passo é configurar o Bind para responder pelos domínios que você registrou.
Vamos usar como exemplo o domínio "kurumin.com.br".
zone "kurumin.com.br" IN {
type master;
file "/etc/bind/db.kurumin";
};
zone "kurumin.com.br" IN {
type master;
file "/etc/bind/db.kurumin";
allow-transfer { 64.234.23.13; };
};
No caso do Debian, é recomendado que você use o arquivo
"/etc/bind/named.conf.local" (que é processado como se fosse parte do named.conf
principal). A existência deste arquivo separado, visa separar a configuração geral do
servidor, da configuração dos domínios, minimizando a possibilidade de erros. Mas, na
verdade, o efeito de editar qualquer um dos dois arquivos é o mesmo.
Estas linhas dizem que o servidor é o responsável pelo domínio "kurumin.com.br" (type
master;), que sempre que receber uma requisição vai responder de acordo com o
especificado no arquivo db.kurumin (file "/etc/bind/db.kurumin";) e que, o servidor
"64.234.23.13" (o DNS secundário) pode assumir a responsabilidade sobre o domínio
em caso de problemas com o titular (allow-transfer).
Neste arquivo, a formatação é importante. Você pode usar espaços e tabs (ambos tem o
mesmo efeito) para organizar as opções, mas existem algumas regras. As linhas "IN
SOA" até "IN MX" precisam ficar justificadas (como no exemplo), e você não pode
esquecer dos espaços entre as opções. Caso queira incluir comentários, use ";" ao invés
de "#", como em outros arquivos. Você pode baixar o exemplo, como digitado aqui no:
http://www.guiadohardware.net/kurumin/modelos/bind/db.exemplo
Pesquisando no Google, você pode encontrar inúmeros templates como este, mas é
difícil encontrar alguma explicação clara de cada uma das opções. Isso faz com que
configurar um servidor DNS pareça muito mais complicado do que realmente é.
Note que, no caso do e-mail, temos a conta separada do domínio por um ponto, e não
por uma @. O mais comum é criar uma conta chamada "hostmaster", mas isso não é
uma regra. Você poderia usar "fulaninho.meudomonio.com.br", por exemplo.
A linha diz algo como "Na internet, o servidor "servidor" responde pelo domínio
kurumin.com.br e o e-mail do responsável pelo domínio é
"hostmaster.kurumin.com.br".
2006061645 8H 2H 1W 1D )
Os quatro campos seguintes orientam o servidor DNS secundário (caso você tenha um).
O primeiro campo indica o tempo que o servidor aguarda entre as atualizações (8
horas). Caso ele perceba que o servidor principal está fora do ar, ele tenta fazer uma
transferência de zona, ou seja, tenta assumir a responsabilidade sob o domínio. Caso a
transferência falhe e o servidor principal continue fora do ar, ele aguarda o tempo
especificado no segundo campo (2 horas) e tenta novamente.
O terceiro campo indica o tempo máximo que ele pode responder pelo domínio, antes
que as informações expirem (1 semana, tempo mais do que suficiente para você arrumar
o servidor principal ;) e o tempo mínimo antes de devolver o domínio para o servidor
principal quando ele retornar (1 dia).
Estes valores são padrão, por isso não existem muitos motivos para alterá-los. A
transferência do domínio para o DNS secundária é sempre uma operação demorada, por
causa do cache feito pelos diversos servidores DNS espalhados pelo mundo: demora de
um a dois dias até que todos atualizem suas tabelas de endereços. A principal prioridade
deve ser evitar que o servidor principal fique indisponível em primeiro lugar.
Muita gente prefere especificar estes valores em segundos. Uma configuração muito
comum é separar os valores por linha, incluindo comentários, como em:
2006061645; serial
28800; refresh, seconds
7200; retry, seconds
604800; expire, seconds
86400 ); minimum, seconds
O resultado é exatamente o mesmo. A única diferença é que você vai acabar digitando
várias linhas a mais ;).
NS servidor.kurumin.com.br.
IN MX 10 servidor.kurumin.com.br.
A primeira, diz quem são as máquinas responsáveis pelo domínio. Ao usar apenas um
servidor DNS, você simplesmente repete o nome do servidor, seguido pelo domínio,
como adicionamos na primeira linha. Caso você esteja usando dois servidores, então
você precisa declarar ambos, como em:
NS servidor.kurumin.com.br.
NS ns2.kurumin.com.br.
A linha "IN MX" é necessária sempre que você pretende usar um servidor de e-mails
(você pode escolher entre usar o Postfix, Qmail, Sendmail ou outro MTA). Aqui estou
simplesmente usando a mesma máquina para tudo, por isso novamente citei o
"servidor.kurumin.com.br", que acumula mais esta função. Assim como no caso do
DNS, você pode especificar um servidor de e-mails secundário, que passa a receber os
e-mails caso seu servidor principal saia fora do ar. Neste caso você adiciona uma
segunda linha, como em:
IN MX 10 servidor.kurumin.com.br.
IN MX 20 outroservidor.outrodominio.com.br.
Depois destas linhas iniciais, temos a parte mais importante, onde você especifica o IP
do servidor e pode cadastrar subdomínios, como em:
kurumin.com.br. A 64.234.23.12
www A 64.234.23.12
ftp A 64.234.23.12
smtp A 64.234.23.12
Neste exemplo, incluí também três subdomínios, o "www", "ftp" e "smtp", ambos
relacionados ao IP do servidor. Isso permite que os visitantes digitem
"www.kurumin.com.br" ou "ftp.kurumin.com.br" no navegador. Ao trabalhar com
subdomínios, você pode relacioná-los com IP's ou domínios diferentes. Por exemplo,
muitos portais possuem vários subdomínios, como "www1", "www2" e "www3", onde
cada um é um servidor diferente, configurados para dividir os acessos.
Sites como o http://no-ip.com, que oferecem "domínios virtuais", que apontam para seu
endereço IP atuais são na verdade grandes bases de dados, atualizadas automaticamente,
onde cada subdomínio aponta para o IP atual do dono.
Ao trabalhar com dois servidores DNS, adicione também uma entrada para ele,
especificando o nome do segundo servidor (ns2 no exemplo) e o IP, como em:
kurumin.com.br. A 64.234.23.12
www A 64.234.23.12
ftp A 64.234.23.12
smtp A 64.234.23.12
ns2 A 64.234.23.13
Note o segundo DNS usa o IP .13, enquanto o servidor principal usa o .12, mas ambos
estão dentro da mesma faixa de IP's. Em casos onde o mesmo servidor dedicado
responde pelos dois endereços IP, ou seja, você se está usando a mesma máquina como
DNS primário e secundário, você pode simplesmente inventar um nome fictício para o
segundo IP.
Você pode também usar a diretiva "IN CNAME" para criar aliases, ou seja, subdomínos
que atuam como apelidos para outros. Veja um exemplo:
kurumin.com.br. A 64.234.23.12
www A 64.234.23.12
ftp A 64.234.23.12
smtp A 64.234.23.12
ns2 A 64.234.23.13
joao A 200.123.23.2
maria IN CNAME joao
Neste caso o subdomínio "maria" é simplesmente um alias para o "joao", que aponta
para um IP externo. Você pode criar quantos subdomínios de aliases precisar.
Faça uma busca pelo domínio, especificando o endereço IP do DNS que acabou de
configurar, como em:
;; ANSWER SECTION:
kurumin.com.br. 86400 IN A 64.234.23.12
AUTHORITY SECTION:
DNS reverso
O DNS reverso é um recurso que permite que outros servidores verifiquem a
autenticidade do seu servidor, checando se o endereço IP atual bate com o endereço IP
informado pelo servidor DNS. Isso evita que alguém utilize um domínio que não lhe
pertence para enviar spam, por exemplo.
servidor
zone "23.234.64.in-addr.arpa" {
type master;
file "/etc/bind/db.kurumin.rev";
};
Caso você não esteja usando um DNS secundário, é só omitir as linhas referentes a ele,
como em:
# dig kurumin.com.br
;; ANSWER SECTION:
kurumin.com.br. 86400 IN A 64.234.23.12
Faça agora uma busca reversa pelo endereço IP, adicionando o parâmetro "-x", como
em:
# dig -x 64.234.23.12
;; ANSWER SECTION:
12.23.234.64.in-addr.arpa. 86400 IN PTR kurumin.com.br.
Lembre-se que seus e-mails podem ser classificados como spam também se seu IP
estiver marcado em alguma blacklist. Você pode verificar isso rapidamente no
http://rbls.org/.
Você vai notar, por exemplo, que praticamente endereço IP de uma conexão via ADSL
ou modem vai estar listado, muitas vezes "preventivamente", já que é muito comum que
conexões domésticas sejam usadas para enviar spam. É recomendável verificar
periodicamente os IP's usados pelo seu servidor, além de verificar qualquer novo IP ou
link antes de contratar o serviço.
Mais uma consideração importante sobre a configuração do DNS reverso é que você
precisa ter autoridade sobre a faixa de IP's para que a configuração funcione.
Quando você aluga um servidor dedicado, é de praxe que receba uma pequena faixa de
endereços IP, configurada usando uma máscara complexa, como a "255.255.255.248",
onde você fica com uma faixa de 8 IP's diferentes, como por exemplo do
"72.213.43.106" até o "72.213.43.113".
Isso também é comum ao alugar um link dedicado, onde (dependendo do plano), você
recebe uma faixa completa, com 254 IP's, ou uma faixa reduzida, com máscara
"255.255.255.240" (16 IP's), "255.255.255.248" (8 IP's) ou "255.255.255.252" (4 IP's).
Em qualquer um dos casos, o fornecedor deve delegar a autoridade sobre a sua faixa de
endereços, para que a configuração que vimos aqui funcione. Sem isto, é o servidor
deles quem responde pela sua faixa, retornando um erro qualquer, sem que seu servidor
DNS tenha chance de fazer seu trabalho.
Alguns provedores preferem configurar eles mesmos o DNS reverso para seu domínio.
Neste caso vão apenas lhe pedir a configuração e ativar o reverso no DNS deles. Esta
solução não é ideal, pois você vai precisar entrar em contato com o suporte cada vez que
precisar fazer uma alteração, mas é melhor do que nada. Esta é também a única opção
em planos onde você recebe um único IP fixo, ao invés de uma faixa de endereços.
No caso de planos de acesso doméstico, onde você recebe um único IP, quase sempre é
impossível configurar o DNS reverso, pois você não tem autoridade sobre a faixa de IP's
e a operadora não vai querer fazer a configuração para você sem que você pague mais
um um plano empresarial.
Neste caso, você pode "registrar" seus domínios da forma como quiser, seja criando um
domínio fictício, ou usando um domínio registrado e atribuindo sub-domínios aos
micros da rede.
Seu domínio principal pode ser, por exemplo, "gdh" com cada micro recebendo um
subdomínio, como em "administracao.gdh", "contabilidade.gdh" e "vendas.gdh". Deste
modo, ao rodar o comando "ssh vendas.gdh", por exemplo, você se conecta ao PC
especificado, a partir de qualquer um dos outros micros da rede, sem precisa especificar
o IP.
Para isso, você começa instalando o Bind no servidor da rede, ou (no caso de uma rede
doméstica) em algum PC que ficará sempre ligado. Você pode usar o próprio
gateway/firewall para mais esta tarefa.
Configure todos os micros da rede interna para utilizarem o IP deste servidor como
DNS primário e adicione a configuração dos domínios no Bind. Se, por exemplo, os
endereços dos três micros são respectivamente 192.168.0.2, 192.168.0.3 e 192.168.0.4 e
o servidor é o 192.168.0.1, a configuração ficaria:
zone "gdh" IN {
type master;
file "/etc/bind/db.gdh";
};
Falta agora a configuração dos subdomínios, que vai dentro do arquivo db.gdh:
Mesmo assim, você pode usar seu ADSL ou cabo para tarefas mais simples, ou mesmo para
acessar seu micro remotamente. Você pode resolver o problema do IP dinâmico usando um
serviço de DNS Dinâmico (dynamic DNS).
Nestes serviços você instala um programa "dedo-duro" no seu micro, que periodicamente
entra em contato com os servidores do serviço e atualiza automaticamente o
redirecionamento. Você recebe um endereço no estilo "seu-nome.alguma-coisa.com" que
aponta sempre para seu endereço IP corrente.
Um dos que testei e tem funcionado bem ao longo dos anos é o http://www.no-ip.com. Eles
oferecem um plano gratuito, onde basta preencher o cadastro, em que você fornece um
endereço de e-mail para contato e escolhe o nome do seu domínio.
Depois é só ir na seção de downloads e baixar o update cliente. Estão disponíveis versões para
Windows, Linux e OS X. Ele deve ficar sempre aberto, a atualização do IP é feita de meia em
meia hora ou sempre que você abrir o programa.
Se você compartilha a conexão entre vários micros, não é necessário mantê-lo instalado no
servidor, basta mantê-lo ativo em qualquer um dos micros da rede interna para que ele faça
seu serviço. Lembre-se de que, ao compartilhar a conexão entre vários micros, todos acessam
a internet utilizando o mesmo endereço IP.
Em alguns planos de banda larga (como por exemplo no Speedy da Telefonica), a porta 80,
junto com algumas outras portas são bloqueadas, justamente para dificultar o uso de
servidores. Neste caso, você deve configurar o seu Apache para utilizar uma porta diferente
(1080, por exemplo) e orientar os visitantes a incluírem a porta no endereço, como em:
http://seu-nome.no-ip.com:1080.
Baixe o cliente for Linux na área de downloads e descompacte o arquivo. Dentro dele,
existe uma pasta chamada "binaries", com o arquivo "noip2-Linux". Este é o
executável que faz a atualização do IP. Para usá-lo, copie-o para a pasta
"/usr/local/bin":
O próximo passo é executar o noip2-Linux, usando a opção "-C -c" (create config), que
cria o arquivo de configuração. Você pode indicar onde o arquivo será criado, basta
indicá-lo no comando. Nesta etapa ele pedirá o login de usuário e o domínio registrado
no site:
# noip2-Linux -C -c /etc/noip.conf