Mik*_*e B 104 security linux firewall iptables
有什么理由让我想要
iptables -A INPUT -j REJECT
Run Code Online (Sandbox Code Playgroud)
代替
iptables -A INPUT -j DROP
Run Code Online (Sandbox Code Playgroud)
Bil*_*hor 91
作为一般规则,当您希望另一端知道端口无法访问时使用 REJECT '使用 DROP 连接到您不希望人们看到的主机。
通常,LAN 内的所有连接规则都应使用 REJECT。对于 Internet,除了某些服务器上的 ident,来自 Internet 的连接通常被删除。
使用 DROP 使连接看起来像是一个未被占用的 IP 地址。扫描器可以选择不继续扫描看起来未被占用的地址。鉴于 NAT 可用于重定向防火墙上的连接,众所周知的服务的存在并不一定表明地址上存在服务器。
任何提供 SMTP 服务的地址都应该通过或拒绝 Ident。但是,SMTP 服务对 Ident 查找的使用已不再使用。有一些聊天协议也依赖于有效的身份服务。
编辑:当使用 DROP 规则时: - UDP 数据包将被丢弃,行为将与连接到没有服务的非防火墙端口相同。- TCP 数据包将返回一个 ACK/RST,它与没有服务的开放端口将响应的响应相同。一些路由器将代表关闭的服务器以 ACK/RST 进行响应。
使用 REJECT 规则时,会发送一个 ICMP 数据包,指示端口不可用。
Ziz*_*ncs 31
不同之处在于 REJECT 目标向源发送拒绝响应,而 DROP 目标不发送任何内容。
例如,这对于 ident 服务很有用。如果您使用 REJECT,则客户端不需要等待超时。
更多相关信息:http : //www.linuxtopia.org/Linux_Firewall_iptables/x4550.html
通常,您希望忽略攻击者对某些端口的探测,我的意思是您不想发回“连接被拒绝”。“连接被拒绝”的意思是:“这里有一台服务器”,并且可能会泄露更多信息,而丢弃数据包不会泄露有关软件版本、可能存在的漏洞甚至服务器正在侦听您 IP 的事实的线索。
以上是使用 DROP 而不是 REJECT 的主要原因之一。
小智 8
我在这里看到很多相互矛盾的答案,鉴于这是 Google 上第一篇使用正确关键字的文章;这是正确的解释。
很简单:
DROP 对数据包什么也不做。它不会转发给主机,也不会得到答复。IPtables 的联机帮助页说它会将数据包丢弃在地板上,即它对数据包没有任何作用。
REJECT 与 DROP 不同,它确实发送了一个数据包,但答案是好像服务器位于 IP 上,但没有处于侦听状态的端口。IPtables 将在 TCP 或 UDP 的情况下发送 RST/ACK,ICMP 目标端口不可达。
如果您想完全隐藏机器的存在,那么-j DROP这是合适的。例如,您可以使用它来实现黑名单。
如果您试图隐藏端口已打开的事实,您应该模仿端口未打开时发生的行为:
-p tcp -j REJECT --reject-with tcp-reset-p udp -j REJECT --reject-with icmp-port-unreachable如果端口扫描器发现少数端口正在丢弃数据包,而大多数端口正在拒绝数据包,则可以假设丢弃的数据包位于打开但隐藏的端口上。