如何配置 UFW 以允许私有 DNS 请求,但阻止来自互联网的 DNS 请求

如何配置 UFW 以允许私有 DNS 请求,但阻止来自互联网的 DNS 请求

我有一台 Ubuntu Server 12.04,带有两张网卡:

  • eth0 已连接到互联网
  • eth1 连接到私有网络(192.168.10.1)

该服务器配置为网关,并托管专用网络的 DNS 和 DHCP。专用网络中的计算机(例如 IP 地址为 192.168.10.50)可以成功连接到互联网。

UFW 规则如下:

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)

任何互联网用户都可以查询我的 DNS 服务器。我想阻止此类请求,因为它会带来安全风险。我重置了防火墙,允许访问端口 80、443、22,并输入以下内容以仅允许私有网络上的设备发出 DNS 请求。

sudo ufw allow in on eth1 to 192.168.10.1 port 53

在私有网络中的 Windows 计算机(IP 地址为 192.168.10.50)上输入以下内容:

nslookup google.com. 192.168.10.1

我收到如下回复:

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

当我重置防火墙并允许从任何地方访问端口 53 时,一切都恢复正常。

sudo ufw allow 53

如何在 192.168.10.1 上配置 UFW

  • 阻止来自互联网(又名 eth0)的传入 DNS 查询
  • 允许专用网络中的计算机进行 DNS 查询
  • 允许 192.168.10.1 上的 DNS 服务器将内部 DNS 请求转发到互联网
  • 适用于 IPv4 和 IPv6

答案1

除了在 UFW 上阻止流量外,我还会限制 DNS 服务器上的连接。假设您使用 BIND,则类似以下内容:

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

答案2

对于基于接口的 ufw 规则,以下内容将阻止任何接口对端口 53 的访问(假设你的 dns/bind 服务器配置在端口 53 上),不是 eth1

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

为了配置绑定以转发 DNS 请求,您可以在所有内部处理的区域之后在 named.conf 文件中使用此指令:

答案3

尝试这个

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

这将允许来自您本地私有网络(我假设是192.168.10.0/24,或者换句话说,192.168.10.1-255)而不是任何其他地方的 TCP 和 UDP DNS(端口 53)流量。

最后,检查以确保你的 UFW 状态(运行sudo ufw status)包含以下行:

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

相关内容