linux - ufw Linux防火墙拒绝和拒绝的区别

使用简单的防火墙ufw,我可以将端口/服务设置为拒绝和拒绝。

例如:

ufw deny www

ufw reject www

有人可以向我解释这两种方法的区别吗?

最佳答案

“拒绝”使用 DROP iptables目标,它会默默地丢弃传入的数据包。

“reject”使用 REJECT iptables 目标,它将错误数据包发送回被拒绝数据包的发送者。

来自 ufw manual page :

Sometimes it is desirable to let the sender know when traffic is being denied, rather than simply ignoring it. In these cases, use reject instead of deny.

从尝试连接到您的服务器的用户/程序的角度来看:

  • “拒绝”将使程序一直等待,直到连接尝试超时,稍后一段时间。

  • “拒绝”会立即生成一条信息量很大的“连接被拒绝”消息。

编辑:

从安全的角度来看,“拒绝”略微更可取。它会迫使潜在攻击者的每个连接都超时,从而减慢对服务器的探测。

经验丰富和/或坚定的攻击者不会受到真正的影响 - 他们通常很有耐心,无论如何,有几种方法可以应对减速。不过,这可能会阻止那些甚至懒得阅读 nmap 手册页的偶尔想要的人。

“拒绝”也将通过不发送错误数据包来节省上行链路的带宽。这对于非对称网络连接可能很重要,在这种连接中,DoS 攻击可能会简单地用错误数据包使上行链路(通常较窄)饱和。

另一方面,让人们知道你拒绝他们的联系会更有礼貌。被拒绝的连接让人们知道这很可能是一个永久性的政策决定,而不是例如。一个短期的网络问题。

https://stackoverflow.com/questions/4907173/

相关文章:

linux - 使用 iconv 将 UTF-16LE 转换为 UTF-8

c - 与交换空间相关的链接器性能?

linux - 如何在 Linux 上取消关机?

java - 如何知道是否有足够的内存可以在 Linux 机器上部署新应用程序?

python - 从终端杀死linux中的python解释器

linux - 在 Alpine Linux Docker 的路径中找不到安装的 Go 二进制文件

linux - 并行运行 shell 脚本

linux - 如何在 shell 脚本中向文件中添加一行?

ruby-on-rails - 使用上帝监控 unicorn - 以非零代码开始退出 = 1

c - 结构中零长度数组的目的是什么?