Linux 服務(wù)器下禁止 ping 入(也就是拒絕ICMP數(shù)據(jù)包)的方法:
只要編輯 /proc/sys/net/ipv4/icmp_echo_ignore_all 這個(gè)文件就行了:
內(nèi)容為 0 是允許 ping,這是默認(rèn)的;
內(nèi)容為 1 是禁止 ping。
使用以下命令即可:
# echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all
(禁止 ICMP 數(shù)據(jù)包的傳入,即禁止 ping)
# echo 0 > /proc/sys/net/ipv4/icmp_echo_ignore_all
(允許 ICMP 數(shù)據(jù)包的傳入,即允許 ping)
但是在 OpenVZ 的 VPS 上,執(zhí)行此命令時(shí),會(huì)出現(xiàn)如下錯(cuò)誤:
# echo 1 >/proc/sys/net/ipv4/icmp_echo_ignore_all
bash: /proc/sys/net/ipv4/icmp_echo_ignore_all: Operation not permitted
但是在獨(dú)立服務(wù)器上該條命令執(zhí)行沒(méi)問(wèn)題。
這是因?yàn)?/SPAN> OpenVZ 使用的是共享的內(nèi)核。
其實(shí)也可以用 iptables 來(lái)實(shí)現(xiàn)這個(gè)功能:
啟用或允許 ICMP ping 傳入請(qǐng)求:
(假設(shè)缺省的 iptables 安全規(guī)則是丟棄所有的 INPUT 和 OUTPUT 包)
SERVER_IP=”202.54.10.20″
iptables -A INPUT -p icmp –icmp-type 8 -s 0/0 -d $SERVER_IP -m state –state NEW,ESTABLISHED,RELATED -j ACCEPT
iptables -A OUTPUT -p icmp –icmp-type 0 -s $SERVER_IP -d 0/0 -m state –state ESTABLISHED,RELATED -j ACCEPT
允許或啟用 ICMP ping 傳出請(qǐng)求:
SERVER_IP=”202.54.10.20″
iptables -A OUTPUT -p icmp –icmp-type 8 -s $SERVER_IP -d 0/0 -m state –state NEW,ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -p icmp –icmp-type 0 -s 0/0 -d $SERVER_IP -m state –state ESTABLISHED,RELATED -j ACCEPT
禁止傳出的 ICMP 請(qǐng)求:
iptables -A OUTPUT -p icmp –icmp-type echo-request -j DROP
或
iptables -A OUTPUT -p icmp –icmp-type 8 -j DROP
└ Tags: ICMP, ping, 禁止