Bloquear domínios
Bloqueio individual, lista inteira, listas externas por URL e como provar que o bloqueio pegou.
O bloqueio vale para toda a base de uma vez, sem instalar nada no equipamento do assinante.
Esta página cobre os três caminhos para bloquear — um domínio, uma lista recebida, uma lista mantida por terceiros — e, principalmente, como provar que o bloqueio realmente pegou.
Onde clicar, passo a passo

A primeira aba traz as listas prontas — conjuntos mantidos por terceiros, que você liga e desliga. Cobrem a maior parte do que se quer bloquear sem trabalho manual nenhum.

É onde entram os domínios que você decide bloquear ou liberar, independentemente do que as listas de terceiros digam.

Um domínio por entrada. O bloqueio vale para toda a base de assinantes — não é por cliente.
Para agir sobre um cliente específico, o caminho é outro: veja investigar um cliente suspeito.

A política decide o que o assinante recebe, e a escolha muda o suporte que você vai dar:
| Política | O cliente vê | Quando usar |
|---|---|---|
| Domínio inexistente | "Este site não existe" | Padrão. O navegador dá erro claro e o usuário desiste |
| Descartar em silêncio | Nada — a consulta some | Quando não se quer sinalizar que há bloqueio. Gera reclamação de "internet lenta", porque o cliente espera até estourar o tempo |
| Sem registro | Resposta vazia | Casos específicos de compatibilidade |
| Liberar | Resolve normalmente | Exceção: tira o domínio do bloqueio das listas de terceiros |
Liberar é o que resolve falso positivo. Quando uma lista pública marca por engano um serviço de que seus clientes dependem, você não desliga a lista inteira — libera aquele domínio.

Para listas grandes, a importação aceita colar vários domínios de uma vez, um por linha, com a política e um comentário.
O comentário é o que salva meses depois, quando ninguém lembra por que aquele domínio está lá.
Um domínio de cada vez
É o caminho para o caso avulso: uma ordem judicial, um domínio que o time de segurança pediu, um site de phishing que chegou por denúncia.
Menu Segurança → Bloqueio de domínios (RPZ), aba Domínios Customizados.
A tela abre na aba Listas de Bloqueio, que costuma estar vazia numa instalação nova. Os bloqueios individuais ficam na segunda aba.
No campo Domínio, informe o nome — phishing.example. Para pegar a subárvore inteira, use
a forma com curinga: *.phishing.example.
O curinga só é aceito como prefixo (*. no começo). Não existe curinga no meio do nome.
Escolha a Política. É ela que decide o que o assinante recebe, e é ela que você vai reconhecer depois na validação:
| Política | O recursor responde | Como aparece na verificação |
|---|---|---|
| Domínio inexistente (NXDOMAIN) | "este nome não existe" | status: NXDOMAIN |
| Descartar em silêncio (DROP) | nada, a consulta é descartada | consulta sem resposta, estoura o tempo |
| Sem registro (NODATA) | resposta vazia | status: NOERROR com ANSWER: 0 |
| Liberar (PASSTHRU) | resolve normalmente | status: NOERROR com o endereço real |
Preencha o Comentário — até 200 caracteres. O campo é opcional, mas é o que explica meses depois por que aquele domínio está ali. Acima de 200 caracteres o salvamento é recusado, não truncado.
Clique em Bloquear. O arquivo de zona é regerado e o Outro nome para o servidor recursivo: o endereço de DNS que o assinante configura. recarregado na hora — em segundos o bloqueio está ativo.
Curinga não cobre o domínio raiz
*.phishing.example bloqueia www.phishing.example e todos os subdomínios, mas não bloqueia
phishing.example. É assim que a tecnologia funciona, não é defeito.
Para cobrir os dois, cadastre duas entradas: phishing.example e *.phishing.example.
Uma lista inteira de uma vez
Recebeu uma planilha com 300 domínios? É este o caminho. Na aba Domínios Customizados, o botão Importar fica no canto superior direito do quadro que lista os domínios.
O formato aceito
Uma entrada por linha, em qualquer uma das três formas:
phishing.example
*.tracker.example
falso-positivo.example,passthru,liberado pelo suporte
malware.example,nxdomain,ticket 4711| Forma | O que acontece |
|---|---|
dominio | usa a política padrão escolhida no próprio modal |
dominio,policy | usa a política indicada na linha |
dominio,policy,comentário | política e comentário na mesma linha |
Os valores válidos de política são nxdomain, drop, nodata e passthru — os mesmos quatro
da tela, escritos em minúsculas.
Linhas em branco e linhas começando com # ou ; são ignoradas, o que permite colar um arquivo
comentado sem limpar antes.
Limites e o que acontece com linha inválida
| Situação | Resultado |
|---|---|
| Mais de 10.000 linhas | a importação inteira é recusada — nada entra. Quebre o arquivo em partes |
Domínio malformado (espaço, /, ;, caractere proibido) | a linha é contada em "com erro" e pulada; o resto entra normalmente |
| Política desconhecida | idem: linha pulada, importação continua |
| Domínio que já está na lista | contado em "duplicado(s)" e pulado — reimportar a mesma lista é seguro |
| Domínio repetido dentro do próprio lote | idem, entra uma vez só |
Ao final, o aviso resume o que aconteceu no formato N adicionado(s) · N duplicado(s) · N com erro. Se aparecer "com erro", vale conferir o arquivo — normalmente é linha de cabeçalho ou
formato de arquivo hosts que passou batido.
A lista veio no formato hosts?
A importação em massa não aceita linhas do tipo 0.0.0.0 dominio.example — esse formato só
é entendido na assinatura de lista por URL. Converta antes:
awk '/^(0\.0\.0\.0|127\.0\.0\.1)[ \t]/ {print $2}' hosts.txt > para-importar.txtExportar o que já está lá
Ainda no quadro de domínios customizados, CSV e TXT baixam o que está cadastrado:
- CSV —
domain,policy,comment, com cabeçalho. É exatamente o formato que a importação aceita, então exportar de um servidor e importar em outro funciona sem edição nenhuma. - TXT — um domínio por linha, sem política nem comentário.
É o caminho para replicar a lista manualmente entre servidores que não estão no mesmo cluster, e para guardar uma cópia antes de uma limpeza grande.
Assinar uma lista mantida por terceiros
Em vez de importar os domínios para dentro, você aponta para um arquivo publicado e o Made4DNS baixa e converte sozinho. Aba Listas de Bloqueio → Adicionar Lista.
O modal já traz três listas populares prontas para clicar; abaixo delas ficam os campos de nome, URL, política e intervalo de atualização (1 hora, 6 horas, 12 horas, 24 horas ou 7 dias).
O que o endereço precisa entregar
O arquivo pode estar em dois formatos, detectados automaticamente:
- hosts —
0.0.0.0 dominio.exampleou127.0.0.1 dominio.example - lista simples — um domínio por linha
Linhas com # ou ; são ignoradas nos dois casos.
E o endereço precisa obedecer a três restrições, que são a causa mais comum de lista que não baixa:
| Restrição | Detalhe |
|---|---|
Só http:// e https:// | qualquer outro esquema é recusado de saída |
| Sem redirecionamento | a URL tem de servir o arquivo direto. Se responder 301/302, a atualização falha com "Redirect não permitido" |
| Endereço público | o nome precisa resolver para um IP público. Um servidor interno em 10.x, 172.16.x, 192.168.x ou localhost é recusado por segurança |
O arquivo também tem teto de 64 MiB.
Recebi a lista num Git, num FTP ou num servidor interno
O produto assina lista por URL HTTP/HTTPS, e só isso. Não existe integração com git://,
ftp://, SFTP ou compartilhamento de rede.
- Git — funciona se o repositório for público e você usar o endereço do arquivo cru
(o
rawdo GitHub, GitLab ou Bitbucket), desde que ele sirva o arquivo sem redirecionar. É a forma mais próxima do "exportar via git" e a que os presets já usam. - Git privado, FTP, SFTP, pasta de rede — não dá para assinar. Dois caminhos: publicar o arquivo num endereço HTTPS público, ou baixar o arquivo e usar a importação em massa descrita acima. A importação é o caminho universal: qualquer origem de onde você consiga extrair um texto com um domínio por linha serve.
Quando a lista é realmente rebaixada
O download acontece quando você cria a lista, quando clica no botão de atualizar na linha dela, e quando outro servidor do cluster replica a lista. O intervalo escolhido é gravado na configuração do resolvedor, mas o Made4DNS não roda um agendador próprio que rebaixe o arquivo sozinho.
Na prática: confira a coluna Atualizado. Se a data envelheceu e a lista precisa estar fresca, force com o botão de atualizar. Se o último download falhou, a mensagem de erro aparece em vermelho embaixo do nome da lista — não é preciso caçar em log.
O botão de ver domínios (ícone de olho) abre o conteúdo baixado, com busca por trecho do nome. É a forma de confirmar que a lista trouxe o que você esperava antes de sair testando.
Listas de ameaças e Made4BLOCK
A aba Listas de ameaças (Threat Intel) é um catálogo fixo de cinco feeds de segurança, cada um com um botão de ligar e desligar. Ela não aceita URL personalizada — para isso, use a aba Listas de Bloqueio.
Três desses cinco feeds bloqueiam por IP e faixa de IP, não por nome de domínio. Eles protegem, mas nunca aparecem na verificação em modo "está na lista", que procura por nome. Para conferir esses, só o modo "recursor bloqueia".
A aba Made4BLOCK é o serviço de listas gerenciadas (ofícios nacionais e malware curado) e exige uma chave de acesso salva antes de qualquer coisa. Detalhes na referência da tela.
Validar que pegou
Esta é a parte que separa "eu cadastrei" de "está bloqueado". Existem três camadas independentes, e validar uma não valida as outras:
| Camada | O que ela prova | Onde se confere |
|---|---|---|
| 1. A entrada existe | o domínio está gravado no arquivo de zona de alguma lista | Verificar Domínios, modo Está na lista |
| 2. O resolvedor bloqueia | o servidor realmente responde bloqueado | Verificar Domínios, modo Recursor bloqueia, ou dig |
| 3. O assinante vê o bloqueio | o cliente final deixou de acessar | teste do lado do cliente, respeitando cache e TTL |
A ferramenta das duas primeiras camadas é o quadro Verificar Domínios, no topo da tela de bloqueio — ele fica visível em todas as abas.
Camada 1 — modo "Está na lista".
Cole os domínios no campo, um por linha, até 200 de uma vez. Colou mais? A tela avisa e verifica só os 200 primeiros.
O resultado marca cada domínio como bloqueado ou livre e, quando bloqueado, mostra em quais zonas ele foi encontrado. Ler o nome da zona é o que responde "de onde veio esse bloqueio":
| Zona | Origem |
|---|---|
made4dns_custom | seus bloqueios manuais (aba Domínios Customizados) |
made4dns_allow | seus domínios liberados por PASSTHRU |
m4b-legal / m4b-malware | Made4BLOCK — ofícios nacionais e malware curado |
| qualquer outro nome | a lista assinada que você batizou com esse nome |
Este modo lê os arquivos de zona. É instantâneo, mas é indício, não prova: a própria tela avisa que pode dar falso negativo quando o bloqueio vem de curinga ou do Made4BLOCK, e ele também não enxerga os feeds que bloqueiam por IP nem uma lista que ainda está baixando.
Camada 2 — modo "Recursor bloqueia".
Mesmo campo, outro botão. Aqui cada domínio é resolvido ao vivo contra o resolvedor da máquina em que você está logado. É a prova real.
O resultado mostra o estado da resposta DNS entre parênteses — NXDOMAIN, NOERROR,
SERVFAIL, TIMEOUT. Compare com a tabela de políticas: se você bloqueou com "domínio
inexistente" e veio NXDOMAIN, pegou.
Preste atenção num aviso específico, em âmbar: "está na lista mas resolveu (verifique passthru/cache)". Ele significa que o domínio está numa lista e mesmo assim respondeu — quase sempre porque existe uma entrada Liberar para ele, ou porque a resposta antiga ainda está em cache.
Camada 2, por fora — dig na linha de comando.
Vale quando você quer conferir sem entrar no painel, ou quando precisa mostrar a prova para outra pessoa. Aponte para o IP do servidor:
dig @192.0.2.10 phishing.exampleO que esperar, por política:
| Política | Resposta esperada | Como reconhecer |
|---|---|---|
| Domínio inexistente | NXDOMAIN | status: NXDOMAIN no cabeçalho |
| Descartar em silêncio | nenhuma resposta | ;; connection timed out; no servers could be reached |
| Sem registro | resposta vazia | status: NOERROR com ANSWER: 0 |
| Liberar | resolve normalmente | status: NOERROR com o endereço real |
Para ver só o cabeçalho, sem o ruído do restante:
dig @192.0.2.10 +noall +comments phishing.exampleCamada 2 em lote — a lista inteira pela linha de comando.
Útil quando o cliente mandou 300 domínios e você quer devolver um relatório de conferência:
while read -r d; do
status=$(dig @192.0.2.10 "$d" +noall +comments +tries=1 +time=2 \
| sed -n 's/.*status: \([A-Z]*\).*/\1/p')
printf '%-45s %s\n' "$d" "${status:-SEM RESPOSTA}"
done < lista.txtSEM RESPOSTA na saída é o resultado esperado de quem foi bloqueado com descartar em
silêncio — não é falha do teste.
Um controle honesto: repita a mesma consulta contra um resolvedor fora da sua rede
(dig @198.51.100.53 phishing.example). Se lá o domínio resolve e no seu servidor não, o
bloqueio é seu. Se não resolve nos dois, o domínio simplesmente não existe mais e você não
provou nada.
Camada 3 — do lado do assinante.
As duas primeiras camadas provam que o seu servidor bloqueia. Elas não provam que o cliente parou de acessar. Peça um teste na máquina dele:
nslookup phishing.exampleOlhe a linha Server: da saída. Ela tem de mostrar o IP do seu resolvedor. Se mostrar outro endereço, o cliente não está usando o seu DNS e nenhum bloqueio seu vai alcançá-lo — inclusive os de ordem judicial.
E lembre do tempo: a resposta que ele recebeu antes do bloqueio continua válida no cache dele até o Por quantos segundos uma resposta pode ficar em cache antes de ser consultada de novo. expirar.
No cluster, o modo "recursor bloqueia" testa o servidor em que você está logado. Para provar
que a base inteira está coberta, repita o dig apontando o IP de cada servidor, ou entre no
painel de cada um.
Quando o bloqueio parece não ter pegado
| Sintoma | Causa provável | O que fazer |
|---|---|---|
| "Está na lista" diz bloqueado, "Recursor bloqueia" diz livre | resposta antiga ainda em cache, ou existe uma entrada Liberar para o domínio | remova a entrada em Visualizar cache e repita; confira se o domínio não está com política Liberar |
| Os dois modos dizem bloqueado, mas o assinante continua acessando | cache do equipamento do cliente, ou TTL da resposta antiga ainda válido | esperar o TTL ou limpar o cache no lado do cliente |
O nslookup do cliente aponta outro servidor | cliente configurado com outro DNS, ou DNS criptografado do navegador | corrigir a configuração do cliente; barrar DNS de terceiros é assunto de firewall |
| Bloqueei com curinga e o domínio raiz continua resolvendo | *.dominio.example não casa o próprio dominio.example | cadastrar também a entrada sem o curinga |
| A lista assinada mostra 0 domínios | download ainda em andamento, ou falhou | veja a mensagem em vermelho na linha da lista; force o botão de atualizar |
| A lista nunca atualiza sozinha | não há agendador próprio de download | force pelo botão de atualizar quando a coluna Atualizado envelhecer |
| A lista por URL nunca baixa | URL redireciona, não é HTTP/HTTPS, ou o servidor é interno | use o endereço final do arquivo, público, sem redirecionamento |
| Domínio bloqueado por lista de terceiros continua resolvendo | há uma entrada Liberar (PASSTHRU) para ele | a lista de liberados tem prioridade máxima, inclusive sobre o Made4BLOCK |
| Feed de ameaça ativo, mas "Está na lista" não encontra nada | o feed bloqueia por IP ou faixa de IP, não por nome | confirme pelo modo "Recursor bloqueia" |
| Um servidor do cluster bloqueia e outro não | a réplica ainda não chegou, ou a lista foi criada só naquele nó | teste com dig apontando cada IP e confira a lista nos dois painéis |
| Nada é bloqueado, nem os domínios antigos | encaminhamento de emergência do firewall ligado | veja o aviso no fim desta página |
Liberar um domínio bloqueado por engano
Quando uma lista pública marca por engano um serviço de que seus clientes dependem, você não desliga a lista inteira — libera aquele domínio.
Aba Domínios Customizados. Informe o domínio e escolha a política Liberar (PASSTHRU). O quadro muda de cor e passa a se chamar "Liberar Domínio", com o aviso sobre prioridade.
Preencha o comentário com o motivo e o número do chamado. Numa liberação isso importa mais do que num bloqueio: é uma exceção a uma decisão de terceiro, e alguém vai perguntar por quê.
Confirme. A entrada vai para a lista de liberados, que é avaliada antes de qualquer lista de bloqueio.
Valide — e aqui o modo importa. No modo "Está na lista" o domínio continua aparecendo, agora
na zona made4dns_allow; isso é o esperado, não é bloqueio. A prova de que ele voltou a
funcionar é o modo "Recursor bloqueia" mostrando que ele resolve, ou o dig devolvendo o
endereço real.
Se ainda vier bloqueado, é cache: a resposta de bloqueio anterior vale por cerca de um minuto. Espere ou limpe em Visualizar cache.
Liberar vence tudo, inclusive o bloqueio legal
A lista de liberados tem prioridade máxima: vence as listas da comunidade, as listas de ameaças e também o Made4BLOCK, que inclui ofícios judiciais.
Ou seja: liberar um domínio que está bloqueado por ordem judicial derruba o cumprimento da ordem. Nunca é a ferramenta certa para "resolver" uma reclamação de assinante sobre bloqueio legal.
Ordem judicial
O bloqueio entra na lista, vale para toda a base imediatamente, e a inclusão fica registrada no registro de auditoria com autor e data — que é parte da resposta ao juízo.
Vale acrescentar à resposta a evidência da validação: a saída do dig contra o IP do
servidor, mostrando o domínio bloqueado, com data. É barato de produzir e responde de antemão à
pergunta seguinte.
Use conta nominal, nunca compartilhada, para esse tipo de alteração. Com conta compartilhada, a auditoria não identifica quem fez.
O modo manutenção do firewall ignora todos os bloqueios
Enquanto o encaminhamento de emergência estiver ativo em Firewall → Manutenção, as consultas vão direto ao servidor externo sem passar pelo resolvedor — e portanto sem passar pelo bloqueio, inclusive os de ordem judicial.
Se precisar de uma janela de manutenção mantendo as políticas, aponte o tráfego para outro servidor Made4DNS do cluster.
Descobrir quem está consultando um domínio
Duas formas:
- A função de observação temporária, na própria tela de bloqueio, liga por uma janela curta a captura de quais clientes consultam aquele domínio. Ela exige o registro de consultas ligado — com ele desligado, a tela recusa a captura em vez de mostrar uma lista vazia.
- A aba de investigação do registro de consultas varre todo o histórico retido por uma lista de domínios e devolve os endereços de origem.
É assim que se identifica quais máquinas da base estão infectadas.
Lembre que o registro de consultas trabalha por amostragem. "Zero encontrado" não é prova de que nunca foi consultado.
Armadilhas
- Curinga não cobre o domínio raiz.
*.dominio.examplenão bloqueiadominio.example. Cadastre as duas entradas. - A importação em massa recusa o lote inteiro acima de 10.000 linhas — nada entra. Quebre o arquivo.
- Vírgula no comentário corta o comentário, porque a vírgula é o separador de campos da importação.
- A importação não entende formato
hosts(0.0.0.0 dominio). Esse formato só vale na assinatura por URL. - O modo "Está na lista" também acusa os domínios que você liberou — eles aparecem na zona
made4dns_allow. Leia o nome da zona antes de concluir que está bloqueado. - Lista por URL só em HTTP/HTTPS, sem redirecionamento e em endereço público. Servidor interno e repositório privado não funcionam.
- A aba de listas de ameaças não aceita URL personalizada — é um catálogo fixo. URL própria só na aba Listas de Bloqueio.
- Feeds que bloqueiam por IP nunca aparecem na verificação por nome. Só o modo "recursor bloqueia" os revela.
- A verificação ao vivo testa o servidor em que você está logado. Em cluster, confira cada um.
- O modo manutenção do firewall desliga o bloqueio por completo, inclusive ordens judiciais.
- A contagem de bloqueios é opcional, vem desligada e é amostrada — coluna vazia não significa que ninguém tentou acessar.
