Linux服务器的icmp安全

我有一个Linux路由器,它通过dynamicIP通过PPPoE连接到互联网

我希望它不响应从外部(互联网)ping(或任何其他types的ICMP),但我想从内部(局域网)ping(和所有icmp,如traceroute,tcptraceroute,mtr等)并从服务器到外部目标工作,我该怎么办呢?

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

从外面降低icmpstream量:

iptables -A INPUT -p icmp --icmp-type echo-request -j DROP 
  • -A INPUT :发往本地套接字的数据包。
  • -p icmp :指定使用的协议,icmp在这种情况下
  • –icmp-type echo-r​​equest :指定被过滤的icmp报文的types
  • -j DROP :匹配filter时该怎么做。 DROP将会丢弃它们而不会向主机发送任何错误消息。

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

允许icmpstream量到外面:

 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-r​​eply :指定被过滤的icmp数据包的types
  • -j ACCEPT :匹配filter时该怎么做。 我们只接受答复

确保你已经获得了iptables的icmp扩展,并在面向外部的接口上丢弃icmptypes为8的数据包(–protocol icmp –icmp-type 8)