UFW 阻止 upnp 端口映射

UFW 阻止 upnp 端口映射

我正在尝试使用 portmapper-2.1.1 (https://github.com/kaklakariada/portmapper)来获取到我的 ubuntu 16.04LTS 机器的 upnp 映射。

我已将 UFW 配置为允许所有传出并阻止传入(除了几个特定端口)。

我以为这会起作用,因为我在 ubuntu 机器上运行 portmapper(例如传出),但事实并非如此。我认为这是由于 upnp 设置查找客户端的方式。要清楚的是,禁用 UFW 后,portmapper 可以按预期工作。

我的第一个想法是只允许 upnp 服务“回复”的端口,但这似乎是随机的。例如(来自我的 UFW 日志):

4 月 26 日 19:07:34 [UFW BLOCK] IN=enp2s0 OUT= SRC=192.168.1.1 DST=192.168.1.161 LEN=411 TOS=0x00 PREC=0x00 TTL=64 ID=0 DF PROTO=UDP SPT=1900 DPT=41927 LEN=391

4 月 26 日 19:33:32 [UFW BLOCK] IN=enp2s0 OUT= SRC=192.168.1.1 DST=192.168.1.161 LEN=411 TOS=0x00 PREC=0x00 TTL=64 ID=0 DF PROTO=UDP SPT=1900 DPT=60212 LEN=391

(192.168.1.1 是我的路由器,192.168.1.161 是 ubuntu 盒子)

我不想为此而仅仅打开大多数/所有端口来接收传入的 udp 数据包,所以问题是:是否有一个 UFW/iptables 规则可以允许它工作,而不仅仅是“允许一切”?

答案1

您需要允许的数据包似乎具有以下特征:

  • 它们通过接口 enp2s0 传入
  • 它们的源 IP 地址是 192.168.1.1
  • 它们的源 UDP 端口为 1900

因此,您需要允许来自 192.168.1.1 端口 1900 的所有传入 UDP 数据包。

使用此命令添加规则:

sudo ufw allow from 192.168.1.1 port 1900 to any proto udp

查看添加的规则:

me@ubuntu:~$ sudo ufw status
Status: active

To                         Action      From
--                         ------      ----
Anywhere                   ALLOW       192.168.1.1 1900/udp        

希望这可以帮助!

相关内容