我有一个Ubuntu服务器12.04,有两个网卡:
服务器被configuration为网关,并从专用networking托pipeDNS和DHCP。 专用networking中的计算机(如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,并键入以下内容,只允许私有networking上的设备发出DNS请求。
sudo ufw allow in on eth1 to 192.168.10.1 port 53
在专用networking中的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上configurationUFW
尝试这个
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
这将允许从本地专用networking(我假设是192.168.10.0/24 ,或换句话说, 192.168.10.1-255 ),而不是其他任何地方的TCP和UDP DNS(端口53)stream量。
最后,请检查以确保您的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
对于基于接口的ufw规则,以下方法将禁止从任何不是eth1的接口访问端口53(假设您的dns / bind服务器在端口53上configuration):
sudo ufw allow all in on eth1 to any port 53 proto tcp sudo ufw deny to any port 53
要configuration绑定到转发dns请求,您可以在您的所有内部处理的区域之后在named.conf文件中使用此指令:
zone "." { type forward; forwarders { 8.8.8.8; }; }