允许 ufw 端口用于 PREROUTING,但不公开可见

允许 ufw 端口用于 PREROUTING,但不公开可见

我有以下映射设置ufw

Status: active

To                         Action      From
--                         ------      ----
443/tcp                    ALLOW       Anywhere                  
80/tcp                     ALLOW       Anywhere                  
36022                      ALLOW       Anywhere                  
8080/tcp                   ALLOW       Anywhere                  
8443/tcp                   ALLOW       Anywhere                  
443/tcp (v6)               ALLOW       Anywhere (v6)             
80/tcp (v6)                ALLOW       Anywhere (v6)             
36022 (v6)                 ALLOW       Anywhere (v6)             
8080/tcp (v6)              ALLOW       Anywhere (v6)             
8443/tcp (v6)              ALLOW       Anywhere (v6)  

我只有80808443打开,因为我的 Go 应用程序同时运行0.0.0.0:80800.0.0.0:8443。我的域被调用80443并对内部端口ufw执行操作。PREROUTING

这本身并不是一个安全问题,但我希望https://example.com:8443不公开。即使它与正常情况相同,https://example.com但最好只是将80808443端口保留在内部。

我对和以及和都尝试80808443127.0.0.1操作0.0.0.0

ufw allow from 127.0.0.1 proto tcp to any port 8443

..但这似乎不起作用。然后网站在http://example.com和上超时https://example.com

我究竟做错了什么?

答案1

一些澄清。您列出的所有规则都是INPUT。当您enableUFWenable

XXX@XXX:~$ sudo ls /etc/ufw/
after6.rules  after.rules     before6.rules  before.rules  ufw.conf     user.rules
after.init    applications.d  before.init    sysctl.conf   user6.rules

等等 ...

非常简单,也许很愚蠢,规则处理的解释是

  • 数据包通信到接口
  • 申请before.rules又名PREROUTING
  • 申请user.ruler又名INPUT
  • 正在播放after.rules-POSTRUTING
  • ...

您不应用任何白名单规则PREROUTING

IPTABLES按照这种方式做

在此处输入图片描述

私人又称非公开地址是

10.0.0.0 - 10.255.255.255 | 10.0.0.0/8
172.16.0.0 - 172.31.255.255 | 172.16.0.0/12
192.168.0.0 - 192.168.255.255 | 192.168.0.0/16

如果您不想允许从此地址访问而不允许从公共地址访问,请创建规则

ufw allow from 10.0.0.0/8 proto tcp to any port 8443
ufw allow from 10.0.0.0/8 proto tcp to any port 8080
ufw allow from 172.16.0.0/12 proto tcp to any port 8443
ufw allow from 172.16.0.0/12 proto tcp to any port 8080
ufw allow from 192.168.0.0/16 proto tcp to any port 8443
ufw allow from 192.168.0.0/16 proto tcp to any port 8080
ufw allow port 80
ufw allow port 443

此规则将允许来自private network端口的连接84438080拒绝来自public network该端口的访问但允许来自任何地方的80访问443Private network不通过互联网路由,而是在本地网络上路由。

UFW allowdeny基于的流量ip addressprotocol或/和port

如果您位于某些路由器后面,nat那么您必须创建不同的规则,使您的路由器不执行 nat ...

我可能不了解你。

编辑1

也许最好只允许从本地网络的端口进行访问80808443

ufw allow from XXX.XXX.XXX.XXX/YY proto tcp to any port 8443
ufw allow from XXX.XXX.XXX.XXX/YY proto tcp to any port 8080

XXX.XXX.XXX.XXX/YY - 是您的本地网络吗

还有一件事。统治者的秩序也很重要

ufw 拒绝从 ZZZ.ZZZ.ZZZ.ZZZ/XX proto tcp 到任何端口 8443 ufw 允许 8443

这组规则仅拒绝来自网络 ZZZ.ZZZ.ZZZ.ZZZ/XX 端口的访问,8443tcp允许来自所有其他网络的访问。

相关内容