Como configurar o UFW para permitir solicitações de DNS particulares, mas bloquear solicitações de DNS da Internet

1

Eu tenho um Ubuntu Server 12.04, com duas placas de rede:

  • eth0 está conectado à internet
  • eth1 está conectado a uma rede privada (192.168.10.1)

O servidor está configurado como gateway e hospeda DNS e DHCP da rede privada. Os computadores na rede privada (digamos, com o endereço IP 192.168.10.50) podem se conectar à Internet com êxito.

As regras do UFW são as seguintes:

Status: active

To                         Action      From
--                         ------      ----
22                         ALLOW       Anywhere
80                         ALLOW       Anywhere
443                        ALLOW       Anywhere
67/udp on eth1             ALLOW       68/udp
53                         ALLOW       Anywhere
22                         ALLOW       Anywhere (v6)
80                         ALLOW       Anywhere (v6)
443                        ALLOW       Anywhere (v6)
67/udp on eth1             ALLOW       68/udp
53                         ALLOW       Anywhere (v6)

Qualquer usuário da Internet pode consultar meu servidor DNS. Gostaria de bloquear essas solicitações, pois isso representa um risco de segurança. Eu reconfigurei o firewall, permiti acesso às portas 80, 443, 22 e digitei o seguinte para permitir somente dispositivos na rede privada para fazer solicitações DNS.

sudo ufw allow in on eth1 to 192.168.10.1 port 53

Quando digitar o seguinte em um computador Windows (com endereço IP 192.168.10.50) na rede privada:

nslookup google.com. 192.168.10.1

Recebo uma resposta que se parece com a seguinte:

DNS request timed out.
    timeout was 2 seconds.
Server: Unknown
Address: 192.168.10.1

Quando eu reinicio o firewall e permito acesso à porta 53 de qualquer lugar, tudo funciona novamente.

sudo ufw allow 53

Como se configura o UFW em 192.168.10.1 para

  • bloqueia consultas DNS recebidas da Internet (também conhecido como eth0)
  • permite que computadores na rede privada façam consultas de DNS
  • permite que o servidor dns em 192.168.10.1 encaminhe solicitações DNS internas para a internet
  • funciona para IPv4 e IPv6
por bloudraak 06.01.2013 / 06:45

3 respostas

0

Tente isso

sudo ufw allow from 192.168.10.0/24 to 192.168.10.1 port 53 proto tcp
sudo ufw allow from 192.168.10.0/24 to 192.168.10.1 port 53 proto udp

Isso permitirá o tráfego de TCP e UDP DNS (porta 53) de sua rede privada local (que eu suponho ser 192.168.10.0/24 ou, em outras palavras, 192.168.10.1-255 ) e não em nenhum outro lugar.

Finalmente, verifique se o seu status UFW (executar sudo ufw status ) tem estas linhas:

To                         Action      From
--                         ------      ----
192.168.10.1 53/tcp        ALLOW       192.168.10.0/24
192.168.10.1 53/udp        ALLOW       192.168.10.0/24
    
por 14.06.2016 / 01:13
0

Para a regra ufw baseada em interface, o seguinte bloqueará o acesso à porta 53 (supondo que seu servidor dns / bind esteja configurado na porta 53) de qualquer interface que não é eth1 :

sudo ufw allow all in on eth1 to any port 53 proto tcp
sudo ufw deny to any port 53 

Para configurar o bind para encaminhar solicitações de DNS, você pode usar esta diretiva em seu arquivo named.conf após todas as suas zonas tratadas internamente:

zone "." {
    type forward;
    forwarders {
        8.8.8.8;
    };
}
    
por 09.07.2017 / 03:59
0

Além de bloquear o tráfego no UFW, eu também limitaria as conexões no seu servidor DNS. Supondo que você esteja usando o BIND, algo semelhante a isto:

acl internal {
  192.168.10.0/24;
  # Add other internal networks here
};
options {
  listen-on { 192.168.10.1; };
  allow-query { internal; };
};
    
por 04.09.2018 / 13:56