UFW BLOCK syslog - tcp/ip 被阻止,这在 UFW 中是允许的 - GPS TRACKING/TCP/UDP 报告服务器

UFW BLOCK syslog - tcp/ip 被阻止,这在 UFW 中是允许的 - GPS TRACKING/TCP/UDP 报告服务器

好吧,我是这方面的新手,我一直在寻找解决问题的方法,重置并再次执行,指定端口和协议,使用协议进行端口进出,但我做不到。


信息

问题:防火墙阻止了一些(不是全部)但确实阻止了部分进入我配置为允许进入的 TCP 和 UDP 端口的 IP,我在系统日志中看到带有标记的错误[UFW BLOCK] SPT=45000 DPT=1563...

我想要的是:仅开放端口 ssh、http 以及范围从 1500 到 1600 的 tcp 和 udp...


我如何配置它

我的命令配置防火墙以允许传入和传出连接

ufw allow 22
ufw allow 80
ufw allow 1500:1600/tcp
ufw allow 1500:1600/udp

ufw 防火墙的状态

root@u19312139:~# ufw status
Status: active

To                         Action      From
--                         ------      ----
22                         ALLOW       Anywhere
80                         ALLOW       Anywhere
1500:1600/tcp            ALLOW       Anywhere
1500:1600/udp            ALLOW       Anywhere
22 (v6)                    ALLOW       Anywhere (v6)
80 (v6)                    ALLOW       Anywhere (v6)
1500:1600/tcp (v6)       ALLOW       Anywhere (v6)
1500:1600/udp (v6)       ALLOW       Anywhere (v6)



系统日志

笔记:命令可实时查看系统日志中仅包含“UFW”的行

tail -f /var/log/syslog | grep "UFW"

我的输出

[UFW BLOCK] IN=eth0 OUT= MAC=xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx SRC=189.173.30.x DST=xx:xx:xx:xx LEN=52 TOS=0x00 PREC=0x00 TTL=53 ID=52308 DF PROTO=TCP SPT=52572 DPT=1557 WINDOW=1445 RES=0x00 ACK FIN URGP=0
[UFW BLOCK] IN=eth0 OUT= MAC=xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx SRC=189.173.30.x DST=xx:xx:xx:xx LEN=52 TOS=0x00 PREC=0x00 TTL=53 ID=52309 DF PROTO=TCP SPT=52572 DPT=1557 WINDOW=1445 RES=0x00 ACK FIN URGP=0
[UFW BLOCK] IN=eth0 OUT= MAC=xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx SRC=189.173.30.x DST=xx:xx:xx:xx LEN=52 TOS=0x00 PREC=0x00 TTL=53 ID=12518 DF PROTO=TCP SPT=62545 DPT=80 WINDOW=1445 RES=0x00 ACK FIN URGP=0
[UFW BLOCK] IN=eth0 OUT= MAC=xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx SRC=189.173.30.x DST=xx:xx:xx:xx LEN=52 TOS=0x00 PREC=0x00 TTL=53 ID=52310 DF PROTO=TCP SPT=52572 DPT=1557 WINDOW=1445 RES=0x00 ACK FIN URGP=0
[UFW BLOCK] IN=eth0 OUT= MAC=xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx SRC=189.173.30.x DST=xx:xx:xx:xx LEN=52 TOS=0x00 PREC=0x00 TTL=53 ID=12519 DF PROTO=TCP SPT=62545 DPT=80 WINDOW=1445 RES=0x00 ACK FIN URGP=0
[UFW BLOCK] IN=eth0 OUT= MAC=xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx SRC=189.173.30.x DST=xx:xx:xx:xx LEN=52 TOS=0x00 PREC=0x00 TTL=53 ID=52311 DF PROTO=TCP SPT=52572 DPT=1557 WINDOW=1445 RES=0x00 ACK FIN URGP=0
[UFW BLOCK] IN=eth0 OUT= MAC=xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx SRC=189.173.30.x DST=xx:xx:xx:xx LEN=52 TOS=0x00 PREC=0x00 TTL=53 ID=12520 DF PROTO=TCP SPT=62545 DPT=80 WINDOW=1445 RES=0x00 ACK FIN URGP=0
[UFW BLOCK] IN=eth0 OUT= MAC=xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx SRC=189.173.30.x DST=xx:xx:xx:xx LEN=52 TOS=0x00 PREC=0x00 TTL=53 ID=52312 DF PROTO=TCP SPT=52572 DPT=1557 WINDOW=1445 RES=0x00 ACK FIN URGP=0
[UFW BLOCK] IN=eth0 OUT= MAC=xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx SRC=187.237.167.x DST=xx:xx:xx:xx LEN=40 TOS=0x00 PREC=0x00 TTL=115 ID=2280 DF PROTO=TCP SPT=42542 DPT=1563 WINDOW=10880 RES=0x00 ACK URGP=0
[UFW BLOCK] IN=eth0 OUT= MAC=xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx SRC=189.173.30.x DST=xx:xx:xx:xx LEN=52 TOS=0x00 PREC=0x00 TTL=53 ID=12521 DF PROTO=TCP SPT=62545 DPT=80 WINDOW=1445 RES=0x00 ACK FIN URGP=0
[UFW BLOCK] IN=eth0 OUT= MAC=xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx SRC=187.210.142.x DST=xx:xx:xx:xx LEN=40 TOS=0x00 PREC=0x00 TTL=117 ID=6018 PROTO=TCP SPT=48744 DPT=1563 WINDOW=8160 RES=0x00 ACK URGP=0

笔记:

  • SPT=是源端口?。
  • DPT 是端口,对吗?但是它是 15xx 范围,而我放入防火墙允许 1500 到 1600。
  • 我该怎么做才能解决这个问题,我想我做得对,但是显示[UFW BLOCK]ufw 阻止了来自某些 ips 的连接...

答案1

查看规则并将其与日志进行比较,会引发一些问题。看起来您正在尝试控制往返于接口的所有流量。这里的问题是,如果将阻止的数据包与防火墙列表进行比较,则必须找到数据包匹配的规则。所有被阻止的数据包的目标端口都在您的列表中,但源端口不在列表中。如果我的计算机发起与您计算机上的标准 http Web 服务器的通信,则我的目标端口是端口 80,而我的源端口是某个随机数,可能在 50,000+ 范围内。假设我的端口是 62545。当您的 Web 服务器尝试回复我时,需要允许它从您的接口的端口 80 发出,目的地是 62545。在您的允许输出列表中,哪个位置允许将数据包发送到 62545?如果不匹配,则数据包将被阻止。如果您查看显示的倒数第二个日志条目,就会发现这正是我刚刚解释的情况。您的列表中没有任何地方允许数据包发送到 62545。

这留下了两件事需要考虑。第一,防火墙是有状态的,这意味着如果您从接口向目标端口(例如 80)发起通信,则将允许返回数据包。如果不是首先从内部发起,则相同的数据包无法从外部进入您的接口。我认为您可能试图控制太多的出站流量。除非,第二件事,您正在控制接口之间的路由。如果是这种情况,则规则设置需要语法中的更多信息(从命令行输入“man ufw”以了解详细信息)。我通常输入详细规则,如前所述,但仅在传入端,因为我不在接口之间路由。如果出现有关 UFW 配置的问题,详细规则使以后重新评估规则变得更容易。如果您没有路由,请尝试删除允许规则,看看问题是否得到解决。我可能是错的,但这就是我解释 UFW 的方式以及我成功使用它的方式。祝你好运。希望这能有所帮助。

答案2

对于那些使用 iptables GPS 跟踪的人,我使用此解决方案解决了我的允许端口范围问题......

一些 GPS 跟踪在短时间内向服务器发送大量报告...并且它会生成无效数据包,但我们希望允许它们全部...

例子:

在文件中添加规则之前before.rules我删除了允许范围端口ufw

ufw delete allow 1500:1600/tcp
ufw delete allow 1500:1600/udp

然后在添加所需的允许端口/etc/ufw/before.rules之前进行编辑......drop INVALID Packets

# quickly process packets for which we already have a connection
-A ufw-before-input -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
-A ufw-before-output -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
-A ufw-before-forward -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT

# these ports sometimes generate invalid packets, just accept everything for now
-A ufw-before-input -p tcp -m multiport --dports 1500:1600 -j ACCEPT
-A ufw-before-input -p udp -m multiport --dports 1500:1600 -j ACCEPT

# drop INVALID packets (logs these in loglevel medium and higher)
-A ufw-before-input -m conntrack --ctstate INVALID -j ufw-logging-deny
-A ufw-before-input -m conntrack --ctstate INVALID -j DROP

我添加了允许使用 tcp/udp 协议的 IP 范围的代码,之后执行

ufw reload

看看它是否会改变...iptables -S看看iptables -L

注意:允许特定端口有问题,

例如:如果我想在特定端口上允许一系列端口,但 xx 端口显示标签UFW BLOCKsyslogtail -f /var/logs/syslog | grep "UFW BLOCK"需要在/etc/ufw/before.rules和 中添加该端口/etc/ufw/before6.rules

仅补充您遇到的问题...不是全部...

UFW BLOCK对于那些拥有诸如ACK FIN和之类的标签的人来说RST

奇怪的 UFW 行为。在被告知不要阻止某些端口 80 请求时阻止了它们。

为什么 ufw 会记录有关已配置为“允许”连接的端口的“BLOCK”消息?

相关内容