THESorcerer Asked: 2016-12-17 03:42:28 +0800 CST2016-12-17 03:42:28 +0800 CST 2016-12-17 03:42:28 +0800 CST Linux 服务器 icmp 安全性 772 我有一个 Linux 路由器,它通过 pppoe 使用动态 IP 连接到互联网 我希望它不响应来自外部(互联网)的 ping(或任何其他类型的 icmp),但我希望来自内部(LAN)的 ping(以及所有 icmp,如 traceroute、tcptraceroute、mtr 等)从服务器到外部目标工作,我该怎么做? firewall linux iptables icmp 2 个回答 Voted Best Answer sysfiend 2016-12-17T04:01:45+08:002016-12-17T04:01:45+08:00 我猜“Linux路由器”是指运行Linux的计算机充当路由器。 从外部丢弃 icmp 流量: iptables -A INPUT -p icmp --icmp-type echo-request -j DROP -A INPUT:发往本地套接字的数据包。 -p icmp:指定要使用的协议,在这种情况下为 icmp --icmp-type echo-request : 指定被过滤的 icmp 数据包的类型 -j DROP:匹配过滤器时要做什么。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 OUTPUT:本地生成的数据包。 -p icmp:指定要使用的协议,在这种情况下为 icmp --icmp-type echo-reply : 指定被过滤的 icmp 数据包的类型 -j ACCEPT:匹配过滤器时要做什么。我们只接受回复 symcbean 2016-12-17T04:00:37+08:002016-12-17T04:00:37+08:00 确保您已获得 iptables 的 icmp 扩展,并在面向外部的接口上丢弃 icmp 类型为 8 的数据包(--protocol icmp --icmp-type 8)
我猜“Linux路由器”是指运行Linux的计算机充当路由器。
从外部丢弃 icmp 流量:
DROP
只会删除它们而不向主机 ping 发送任何错误消息。您也可以使用
REJECT
而不是DROP
,这会发送错误消息。允许到外部的 icmp 流量:
确保您已获得 iptables 的 icmp 扩展,并在面向外部的接口上丢弃 icmp 类型为 8 的数据包(--protocol icmp --icmp-type 8)