本节书摘来自异步社区《Linux防火墙(第4版)》一书中的第2章,第2.3节,作者:【美】Steve Suehring(史蒂夫 苏哈林)著,更多章节内容可以访问云栖社区“异步社区”公众号查看
2.3 对一个数据包的驳回(Rejecting)VS拒绝(Denying)
在iptables和nftables中的Netfilter防火墙机制给予您驳回或丢弃数据包的选项。那么,二者有何不同?如图2.5所示,当一个数据包被驳回(reject)时,该数据包被丢弃,同时一个ICMP错误消息将被返回到发送方。当一个数据包被丢弃时,它仅仅是被简单地丢弃而已,不会向发送者进行通知。
静静地丢掉数据包通常是更好的选择,共有三个原因。第一,发送一个错误回应会增加网络流量。大多数被丢弃的数据包被丢弃是因为它们是恶意的,并不是因为它们只是无辜地尝试访问您碰巧不能提供的服务。第二,一个您响应了的数据包可能被用于拒绝服务(Denial-of-Service,DoS)攻击。第三,任何回应,甚至是错误消息,都会给潜在的攻击者可能有用的信息。