有時候你ping一些服務器或網站,你會發現ping不通,這個是因為對方出於安全因素(security reason)或避免網絡擁堵(avoid network congestion)等原因,禁用了ping。ping除了用在網絡診斷上,還為網絡攻擊者查找潛在攻擊目標提供了方便;不響應ping可以降低系統的安全風險。譬如Ping洪水攻擊(Ping of Death)。下面總結了一下Linux平台或Windows平台如何禁用ping命令的一些方法。
Linux服務器
Linux系統可以通過系統內核參數或防火牆來禁止ping,下面我們先來看看如何通過內核參數禁止ping命令。
內核參數禁用ping
如果你想禁用ping,只需要設置內核參數icmp_echo_ignore_all,此參數如果設置為非0,Linux會忽略所有ICMP_ECHO請求包。
[root@DB-Server ~]# echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all
這個命令會立即生效,如果需要啟用ping命令,將這個參數設置為0即可。
[root@DB-Server ~]# echo 0 > /proc/sys/net/ipv4/icmp_echo_ignore_all
當然,這個設置只對當前環境生效,如果服務器重啟時,這個設置就會失效。如果要永久生效,那么可以在配置文件/etc/sysctl.conf 增加參數net.ipv4.icmp_echo_ignore_all = 1,然后使用sysctl -p使之生效。當然,你也可以使用下面命令實現:
禁止ICMP包通行
echo net.ipv4.icmp_echo_ignore_all=1 >>/etc/sysctl.conf
允許ICMP包通行
echo net.ipv4.icmp_echo_ignore_all=0 >>/etc/sysctl.con
防火牆禁用ping
另外一種方式是通過防火牆層面禁用ping,可以使用下面命令
# iptables -A INPUT -p icmp --icmp-type 8 -s 0/0 -j DROP
執行上面命令后,就會在/etc/sysconfig/iptables里面多了下面專業這樣一條規則。然后使用命令service iptables restart重啟防火牆服務,就不能ping了
-A RH-Firewall-1-INPUT -j REJECT --reject-with icmp-host-prohibited
個人在測試時,發現如果/etc/sysconfig/iptables里面如果還有下面這樣一條規則,那么上面命令就不會生效。所以在使用命令時,最后檢查一下配置文件。
-A RH-Firewall-1-INPUT -p icmp -m icmp --icmp-type any -j ACCEPT
當然,你可以直接設置iptables的配置文件,在/etc/sysconfig/iptables里面,直接修改
-A RH-Firewall-1-INPUT -p icmp --icmp-type any -j ACCEPT #允許ping
-A RH-Firewall-1-INPUT -p icmp --icmp-type any -j DROP #禁止ping
注意,可能不同版本的防火牆設置有所區別,這里只在RHEL 5下面測試過,並沒有測試其它平台。
Windows服務器
防火牆禁止ping
下面以Windows Server 2012為列(不同操作系統可能有一些區別),運行WF.MSC命令后,在“高級安全Windows防火牆”的入站規則(Inbound Rules)里面找到下面幾條規則:
文件和打印機共享(回顯請求-ICMP v4-In) File and Printer Sharing (Echo Request - ICMPv4-In)
文件和打印機共享(回顯請求-ICMP v6-In) File and Printer Sharing (Echo Request - ICMPv6-In)
注意,如下所示可能有多條規則,這個是因為后面的Profile的值不同緣故(Private、Public、Domain)以及IPV4 與 IPV6的與緣故
如下所示,在操作(Action)選擇阻止連接(“Block the connecting”),如果這個規則沒有啟用,可以先啟用或選擇啟用規則(“Enable”)選項,點擊應用后就會生效。另外,注意根據實際情況選擇IPV4與IPV6規則。
IP策略實現服務器禁止Ping
(實驗環境為Windows Server 2012 R2)依次單擊開始→管理工具→本地安全策略”,打開“本地安全設置”對話框,右擊該對話框左側的“IP安全策略,在本地計算機”選項,點擊“創建IP安全策略”,然后如下所示,一步一步的配置。
命名IP篩選器為“Disabled Ping Security Policy”,描述語言可以為“IP安全策略,禁止PING”,然后單擊[下一步]按鈕。
接下來依次單擊[下一步]
選擇編輯屬性
安全策略創建完畢后並不能馬上生效,我們還需通過“指派”使其發揮作用。右擊“本地安全設置”對話框右側的[Disabled Ping Security Policy]策略,執行“指派”(Assign)命令即可啟用該策略。總體來說,防火牆層面禁用ping要方便、快捷很多,IP安全策略禁用PING感覺非常繁瑣。
參考資料: