🔒

Web Config Bind9

Manual do Usuário — Guia Completo para Iniciantes

Desenvolvido por Ronaldo Martins

📋 Sumário

  1. O que é o Web Config Bind9?
  2. Conceitos básicos de DNS
  3. Requisitos antes de começar
  4. Acessando a ferramenta
  5. Conectando via SSH
  6. Configurando o DNS Master
  7. Configurando o DNS Slave
  8. Guia dos botões
  9. Entendendo o Log
  10. Erros comuns e soluções
  11. ⚠️ Boas práticas de segurança pós-configuração
  12. Glossário
1

O que é o Web Config Bind9?

O Web Config Bind9 é uma ferramenta web desenvolvida para facilitar a configuração completa de servidores DNS que usam o software Bind9, que é o servidor DNS mais utilizado no mundo em sistemas Linux.

Antes dessa ferramenta, para configurar um servidor DNS era necessário acessar o terminal do servidor, editar arquivos de configuração manualmente, criar pastas, ajustar permissões e reiniciar serviços — tudo digitando comandos um por um. Com o Web Config Bind9, você faz tudo isso por uma interface visual no navegador, sem precisar ser um expert em terminal.

✅ O que você consegue fazer com essa ferramenta:
  • Configurar servidor DNS Recursivo (para resolver nomes na internet)
  • Configurar servidor DNS Autoritativo Master (dono das zonas)
  • Configurar servidor DNS Slave (cópia de segurança do Master)
  • Ativar DNSSEC (segurança criptográfica nas zonas)
  • Criar e editar Zonas Reversas IPv4 e IPv6
  • Tudo via conexão SSH segura, sem expor senhas
🔒 Privacidade e segurança dos seus dados:

A ferramenta não armazena nenhuma informação em banco de dados. Nenhuma senha, IP, domínio ou configuração é salva nos servidores da ferramenta. Toda a comunicação acontece diretamente entre o seu navegador e o servidor de destino via SSH — a ferramenta atua apenas como intermediária da conexão, sem guardar nada. Ao fechar o navegador ou trocar de aba, a sessão SSH é encerrada automaticamente.

2

Conceitos básicos de DNS

Antes de usar a ferramenta, é importante entender alguns termos que aparecem durante a configuração.

🌐 O que é DNS?

DNS significa Domain Name System — Sistema de Nomes de Domínio. Ele funciona como uma agenda telefônica da internet: quando você digita google.com no navegador, o DNS traduz esse nome para um endereço IP (como 142.250.79.46) que o computador entende.

📡 Servidor Recursivo

É o servidor que busca a resposta para você. Quando seu computador não sabe o IP de um site, ele pergunta ao servidor recursivo, que vai pesquisar na internet e te trazer a resposta.

🏛️ Servidor Autoritativo

É o servidor que tem a resposta definitiva para um domínio. Se você é dono do domínio meusite.com.br, seu servidor autoritativo é quem diz ao mundo qual é o IP desse site.

👑 Master e 🔄 Slave

O Master é o servidor principal, onde as configurações são editadas. O Slave é uma cópia automática do Master — se o Master cair, o Slave assume. É uma questão de redundância e segurança.

🔑 DNSSEC

É uma camada de segurança criptográfica para o DNS. Com DNSSEC ativado, as respostas DNS são assinadas digitalmente, evitando que hackers falsifiquem respostas e redirecionem usuários para sites falsos.

🔄 Zona Reversa

Enquanto o DNS normal traduz nome → IP, a zona reversa faz o contrário: IP → nome. É usada para verificar a origem de conexões e é exigida por muitos sistemas de e-mail.

TermoO que fazAnalogia
DNS RecursivoBusca a respostaOperador de telefonia
DNS AutoritativoTem a respostaDono da agenda
MasterServidor principalOriginal do documento
SlaveCópia automáticaCópia de segurança
DNSSECSegurança criptográficaAssinatura digital
Zona ReversaIP → NomeIdentificador de chamadas
3

Requisitos antes de começar

Antes de usar o Web Config Bind9, certifique-se de ter em mãos:

1
Acesso ao servidor Linux O servidor onde o Bind9 será instalado precisa ter Linux (preferencialmente Debian/Ubuntu) e estar acessível via SSH.
2
IP do servidor Você precisará do endereço IP do servidor para conectar via SSH. Exemplo: 192.168.0.10
3
Usuário e senha SSH Normalmente o usuário é root. Tenha a senha em mãos.
4
Seu domínio e bloco de IPs Exemplo: domínio meusite.com.br, prefixo IPv4 192.168.0.0/24.
5
Porta SSH aberta A porta padrão é 22. Verifique se está acessível no firewall.
⚠️ Atenção: Execute sempre as configurações em um servidor de testes antes de aplicar em produção. Erros de configuração DNS podem derrubar o acesso ao seu domínio.
4

Acessando a ferramenta

Abra seu navegador e acesse:

https://www.freedomnetwork.net.br/web-config-bind9/

Você verá a interface principal com:

ℹ️ Importante: Ao trocar de aba (Master ↔ Slave), a conexão SSH é encerrada automaticamente. Isso é intencional, pois cada aba conecta a um servidor diferente.
5

Conectando via SSH

SSH é o protocolo seguro usado para se comunicar com o servidor remotamente. Preencha os campos na barra do topo:

CampoO que preencherExemplo
IP/HostIP ou hostname do servidor192.168.0.10
UsuárioUsuário SSH do servidorroot
SenhaSenha do usuário SSH••••••••
Porta SSHPorta do SSH (padrão: 22)22

Após preencher, clique em 🔌 CONECTAR.

O indicador no canto mudará de 🔴 Offline para 🟢 Online quando a conexão for estabelecida.

❌ Se não conectar, verifique:
  • O IP está correto e o servidor está ligado
  • A porta 22 está aberta no firewall
  • O usuário e senha estão corretos
  • O servidor aceita conexões SSH
6

Configurando o DNS Master

A aba DNS MASTER contém 11 etapas que devem ser seguidas em ordem. Veja o que cada uma faz:

📦 Instalar Dependências

O primeiro botão instala o Bind9 e o Dnsutils no servidor. Clique em 📦 Instalar Dependências e aguarde a conclusão no log.

⚙️ Etapa 1 — Servidor Recursivo

Define quais servidores DNS o próprio servidor usará para resolver nomes. Preencha:

Clique em 💾 Salvar para gravar o arquivo /etc/resolv.conf.

🔧 Etapa 2 — Parâmetros de Recursão

Preencha os dados principais do seu servidor:

CampoO que éExemplo
DomínioSeu domínio principalmeusite.com.br
Prefixo IPv4Bloco de IPs da sua rede192.168.0.0/24
Prefixo IPv6Bloco IPv6 da sua rede2001:db8::/32
Slave IPv4IP do servidor Slave192.168.0.2
Slave IPv6IP IPv6 do Slave2001:db8::2
ℹ️ Ao preencher, os campos abaixo são gerados automaticamente! O arquivo named.conf.options e a zona DNS são criados automaticamente com base nesses dados. Você pode editar manualmente se necessário.

Use os botões:

📁 Etapa 3 — Criar Pasta Autoritativo

Cria a estrutura de pastas onde ficará a zona do domínio. Os campos são preenchidos automaticamente ao digitar o domínio na Etapa 2. Clique em 📂 Criar Pastas.

📁 Etapa 4 — Criar Pasta para Reverso

Cria as pastas das zonas reversas IPv4 e IPv6. Gerado automaticamente com base no Prefixo IPv4. Clique em 1️⃣ Criar Pastas Reverso e depois em 3️⃣ Permissões e Restart.

📋 Etapa 5 — Editor da Zona Principal

Aqui você visualiza e edita o arquivo de zona do seu domínio — o arquivo que define todos os registros DNS (A, AAAA, MX, NS, TXT, etc.). Gerado automaticamente na Etapa 2.

⚠️ Atenção: Edite com cuidado. Um erro de sintaxe no arquivo de zona impede o Bind9 de carregar a zona corretamente.

👮 Etapa 6 — Permissões (chown)

Ajusta as permissões das pastas para que o Bind9 possa ler e escrever os arquivos. Clique em ⚠️ Corrigir Permissões.

📝 Etapa 7 — named.conf.local

Declara as zonas no arquivo de configuração do Bind9. Gerado automaticamente. Use 💾 Gravar no Servidor para salvar.

🔗 Etapa 8 — Symlink + Restart

Cria um atalho (symlink) da pasta de zonas e reinicia o Bind9. Clique em 🔗 Criar Atalho e depois em 🔄 Restart Bind9.

📊 Etapa 9 — Keytag e Digest (Registro.br)

Após ativar o DNSSEC, essa etapa busca as informações de DS Record (Keytag e Digest) necessárias para cadastrar no Registro.br e ativar o DNSSEC no seu domínio.

📝 Etapa 10 — Editor das Zonas Reversas

Edita os arquivos de zona reversa IPv4 e IPv6. Clique no botão com o caminho do arquivo para selecioná-lo — o template é gerado automaticamente com base na Etapa 5. Depois clique em 💾 Salvar Zona.

🔑 Etapa 11 — DNSSEC para Reverso

Prepara os diretórios de chaves DNSSEC para as zonas reversas. Selecione a aba do bloco de IPs, clique em 📂 Preparar Diretório, depois em ⚠️ Aplicar Permissão e por fim em 🔄 Restart Bind9.

7

Configurando o DNS Slave

A aba DNS SLAVE configura o servidor secundário que replica automaticamente as zonas do Master. Siga as 8 etapas em ordem.

❌ Importante: Ao clicar na aba DNS SLAVE, a conexão SSH do Master é encerrada. Você precisa conectar ao IP do servidor Slave antes de usar esta aba.

⚙️ Etapa 1 — Servidor Recursivo (Slave)

Igual ao Master — define os servidores DNS que o Slave usará. Normalmente 127.0.0.1 e ::1.

🔧 Etapa 2 — Parâmetros de Recursão (Slave)

Preencha manualmente todos os campos:

CampoO que preencher
DomínioO mesmo domínio do Master
Prefixo IPv4O mesmo bloco IPv4 do Master
Prefixo IPv6O mesmo bloco IPv6 do Master
Master IPv4IP do servidor Master
Master IPv6IP IPv6 do servidor Master
✅ Dica: Ao preencher o Domínio na Etapa 2, o campo "Subpasta Domínio" da Etapa 3 é preenchido automaticamente!

📁 Etapa 3 — Criar Pasta Autoritativo (Slave)

Cria a pasta /var/cache/bind/slave-aut/seudominio. Clique em 📂 Criar Pastas.

📝 Etapa 4 — named.conf.local (zona aut)

Declara a zona autoritativa do Slave. Gerado automaticamente. Grave no servidor com 💾 Gravar no Servidor.

👮 Etapa 5 — Permissões + Symlink (slave-aut)

Aplica permissões, cria symlink e reinicia o Bind9. Tudo em um clique: ⚠️ Permissão + Symlink + Restart.

📁 Etapa 6 — Criar Pasta Reverso (Slave)

Cria a pasta /var/cache/bind/slave-rev. Clique em 📂 Criar Pasta Reverso.

📝 Etapa 7 — Zonas Reversas (named.conf.local)

Gerado automaticamente com base no Prefixo IPv4. Adicione ao arquivo com 💾 Adicionar ao named.conf.local.

🔗 Etapa 8 — Symlink Reverso + Verificação

Finaliza com permissões do reverso, symlink e verificação dos arquivos importados do Master.

8

Guia dos botões

BotãoO que faz
📖 Ler do ServidorCarrega o arquivo atual do servidor para o editor
💾 Gravar no ServidorSalva o conteúdo do editor no arquivo do servidor
🔄 RestaurarRecria o template padrão com base nos campos preenchidos
📂 Criar PastasCria a estrutura de diretórios no servidor
⚠️ PermissõesAplica chown/chmod nas pastas do Bind9
🔄 Restart Bind9Reinicia o serviço Bind9 no servidor
🔗 Criar AtalhoCria symlink da pasta de zonas
🔍 Descobrir KeytagBusca o DS Record para cadastro no Registro.br
💾 Salvar ZonaSalva o arquivo de zona reversa selecionado
9

Entendendo o Log

Na parte inferior da página existe um painel de log com fundo preto e texto verde. Ele registra tudo que acontece na ferramenta em tempo real.

SímboloSignificado
Operação concluída com sucesso
Erro — leia a mensagem para entender o problema
📖Lendo arquivo do servidor
💾Salvando arquivo no servidor
📂Criando pastas ou diretórios
🔌Evento de conexão/desconexão SSH
🔄Reiniciando serviço ou restaurando template
✅ Dica: Sempre acompanhe o log após cada ação. Se aparecer ❌, leia a mensagem — ela indica exatamente o que deu errado.
10

Erros comuns e soluções

❌ "Não conectado ao servidor SSH"

Você tentou executar uma ação sem estar conectado. Clique em 🔌 CONECTAR primeiro.

❌ "Servidor retornou HTML ao invés de JSON"

O servidor da ferramenta caiu ou está inacessível. Verifique se o Gunicorn está rodando no servidor da ferramenta.

❌ "Falha ao conectar SSH"

Verifique: IP correto, porta 22 aberta, usuário e senha corretos, servidor ligado.

❌ "Nenhum arquivo selecionado"

Na Etapa 10, você precisa clicar em um dos botões de zona reversa antes de salvar.

❌ Bind9 não inicia após configuração

Provavelmente há um erro de sintaxe nos arquivos de configuração. No servidor, execute:

# Verificar configuração
named-checkconf
# Verificar zona específica
named-checkzone meudominio.com.br /var/cache/bind/master-aut/meudominio.com.br/meudominio.com.br.hosts

❌ Página abre com erro 503

O Gunicorn caiu. Reinicie o serviço:

systemctl restart web-config-bind9
systemctl status web-config-bind9
11

⚠️ Boas práticas de segurança pós-configuração

Após concluir todas as configurações DNS com a ferramenta, é altamente recomendado reforçar a segurança do servidor. As práticas abaixo reduzem drasticamente o risco de invasões e ataques.

❌ Atenção: Nunca deixe o servidor em produção com acesso root direto via SSH e porta 22 padrão aberta para a internet. Isso é um convite para ataques de força bruta.

1️⃣ Alterar a porta padrão do SSH

A porta 22 é a primeira que atacantes testam. Trocar para uma porta diferente reduz automaticamente a quantidade de tentativas de invasão.

# Editar o arquivo de configuração do SSH
nano /etc/ssh/sshd_config

# Localize a linha abaixo e troque 22 por outra porta (ex: 2222)
Port 2222

# Reiniciar o serviço SSH para aplicar
systemctl restart sshd
⚠️ Importante: Antes de trocar a porta, certifique-se de abrir a nova porta no firewall. Caso contrário você perderá o acesso ao servidor!
firewall-cmd --permanent --add-port=2222/tcp
firewall-cmd --reload

2️⃣ Desativar login direto como root via SSH

Ao invés de logar como root diretamente, crie um usuário comum, logue com ele e use sudo para executar comandos administrativos. Isso adiciona uma camada extra de proteção.

# Criar um usuário comum
adduser meuusuario

# Adicionar ao grupo sudo
usermod -aG sudo meuusuario

# Editar o sshd_config e desativar login root
nano /etc/ssh/sshd_config

# Localize e altere a linha:
PermitRootLogin no

# Reiniciar SSH
systemctl restart sshd

Depois do login com o usuário comum, para entrar em modo root:

# Elevar para root usando sudo
sudo -i
# ou
sudo su -

3️⃣ Instalar e configurar o Fail2Ban

O Fail2Ban monitora os logs do servidor e bloqueia automaticamente IPs que tentam fazer muitas tentativas de login incorretas — protegendo contra ataques de força bruta.

# Instalar o Fail2Ban
apt install fail2ban -y

# Criar arquivo de configuração local
cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local

# Editar as configurações
nano /etc/fail2ban/jail.local

Dentro do arquivo, configure a seção [sshd]:

[sshd]
enabled  = true
port     = 2222        ; use a porta que você configurou
maxretry = 5           ; bloqueia após 5 tentativas erradas
bantime  = 3600        ; bloqueia por 1 hora (em segundos)
findtime = 600         ; janela de tempo para contar tentativas
# Habilitar e iniciar o Fail2Ban
systemctl enable fail2ban
systemctl start fail2ban

# Verificar status e IPs bloqueados
fail2ban-client status sshd
✅ Resumo das boas práticas:
  • 🔒 Troque a porta SSH de 22 para outra (ex: 2222)
  • 🚫 Desative o login direto como root (PermitRootLogin no)
  • 👤 Crie um usuário comum e use sudo su - para entrar como root
  • 🛡️ Instale o Fail2Ban para bloquear ataques de força bruta
  • 🔥 Configure o firewall para liberar apenas as portas necessárias
12

Glossário

Bind9
Software servidor DNS mais usado no mundo em sistemas Linux.
DNS
Domain Name System — sistema que traduz nomes de domínio em endereços IP.
DNSSEC
DNS Security Extensions — extensão de segurança que assina digitalmente as respostas DNS.
DS Record
Registro de Delegação de Assinatura — usado para ativar DNSSEC no Registro.br.
Gunicorn
Servidor WSGI Python que executa a aplicação Flask em produção.
IPv4
Endereço IP no formato de 4 números separados por ponto. Ex: 192.168.0.1
IPv6
Endereço IP no formato hexadecimal com 8 grupos. Ex: 2001:db8::1
KSK
Key Signing Key — chave criptográfica que assina outras chaves no DNSSEC.
named.conf.local
Arquivo de configuração do Bind9 onde as zonas são declaradas.
named.conf.options
Arquivo de configuração com as opções globais do Bind9 (recursão, ACLs, etc.).
Paramiko
Biblioteca Python para conexões SSH.
PTR Record
Registro DNS de ponteiro — usado na zona reversa para mapear IP → nome.
resolv.conf
Arquivo do sistema Linux que define quais servidores DNS o servidor usa.
SFTP
Protocolo seguro de transferência de arquivos via SSH — usado para ler e gravar arquivos no servidor.
SSH
Secure Shell — protocolo de comunicação segura com servidores remotos.
Symlink
Atalho (link simbólico) — arquivo que aponta para outro diretório.
TTL
Time To Live — tempo em segundos que um registro DNS fica em cache.
ZSK
Zone Signing Key — chave criptográfica que assina os registros da zona no DNSSEC.
Zona Reversa
Zona DNS que mapeia endereços IP de volta para nomes de domínio.

🔒 Web Config Bind9 — Manual do Usuário

Desenvolvido por Ronaldo Martins