Linux 服务器 icmp 安全

Linux 服务器 icmp 安全

我有一个 Linux 路由器,它通过 pppoe 使用动态 IP 连接到互联网

我希望它不要响应来自外部(互联网)的 ping(或任何其他类型的 icmp),但我希望来自内部(LAN)和从服务器到外部目标的 ping(以及所有 icmp,例如 traceroute、tcptraceroute、mtr 等)能够工作,我该怎么做?

答案1

我猜你说的“Linux 路由器”是指运行 Linux 并充当路由器的计算机。

丢弃来自外部的 icmp 流量:

iptables -A INPUT -p icmp --icmp-type echo-request -j DROP
  • -A 输入:发往本地套接字的数据包。
  • -p icmp:指定要使用的协议,在本例中为 icmp
  • --icmp-type 回显请求:指定要过滤的icmp数据包类型
  • -j 删除:匹配过滤器时要做什么。DROP将直接丢弃它们,而不会向主机 ping 发送任何错误消息。

您还可以使用REJECT而不是DROP,这将发送错误消息。

允许到外部的 icmp 流量:

iptables -A OUTPUT -p icmp --icmp-type echo-request -j ACCEPT 
iptables -A INPUT -p icmp --icmp-type echo-reply -j ACCEPT 
  • -A 输出:本地生成的数据包。
  • -p icmp:指定要使用的协议,在本例中为 icmp
  • –icmp 类型 echo 回复:指定要过滤的icmp数据包类型
  • -j 接受:匹配过滤器时该做什么。我们接受只回复

答案2

确保你有可用的 iptables icmp 扩展,并在外部接口上丢弃 icmp 类型为 8 的数据包(--protocol icmp --icmp-type 8)

相关内容