我一直在阅读 RedHatiptables
文档,但无法弄清楚以下行的作用:
... -j REJECT --reject-with icmp-host-prohibited
答案1
目标REJECT
拒绝数据包。如果不指定拒绝哪个 ICMP 消息,服务器默认将发回 ICMP 端口不可达(类型 3,代码 3)。
--reject-with
修改此行为以将特定的 ICMP 消息发送回源主机。您可以在以下位置找到有关拒绝消息的信息--reject-with
和可用的拒绝消息:man iptables
:
拒绝
用于发送回错误数据包以响应匹配的数据包:否则相当于 DROP 因此它是一个终止 TARGET,结束规则遍历。该目标仅在 INPUT、FORWARD 和 OUTPUT 链以及仅从这些链调用的用户定义链中有效。以下选项控制返回的错误数据包的性质:
--reject-with type
给出的类型可以是:
- icmp 网络不可达
- icmp 主机不可达
- icmp 端口不可达
- icmp 协议不可达
- icmp 网络禁止
- icmp 主机禁止或
- icmp 管理禁止 (*)
它返回适当的 ICMP 错误消息(默认为端口不可达)。选项 tcp-reset 可用于仅匹配 TCP 协议的规则:这会导致发送回 TCP RST 数据包。这主要用于阻止 ident (113/tcp) 探测,这种探测在向损坏的邮件主机发送邮件时经常发生(否则不会接受您的邮件)。
(*)如果内核不支持 icmp-admin-prohibited,则会导致 DROP 而不是 REJECT