Linux

Linux 伺服器 icmp 安全性

  • December 16, 2016

我有一個 Linux 路由器,它通過 pppoe 使用動態 IP 連接到網際網路

我希望它不響應來自外部(網際網路)的 ping(或任何其他類型的 icmp),但我希望來自內部(LAN)的 ping(以及所有 icmp,如 traceroute、tcptraceroute、mtr 等)從伺服器到外部目標工作,我該怎麼做?

我猜“Linux路由器”是指執行Linux的電腦充當路由器。

從外部丟棄 icmp 流量:

iptables -A INPUT -p icmp --icmp-type echo-request -j DROP
  • -A INPUT:發往本地套接字的數據包。
  • -p icmp:指定要使用的協議,在這種情況下為 icmp
  • –icmp-type echo-r​​equest : 指定被過濾的 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-r​​eply : 指定被過濾的 icmp 數據包的類型
  • -j ACCEPT:匹配過濾器時要做什麼。我們只接受回复

引用自:https://serverfault.com/questions/821117