linux中通过iptables规则让Linux主机屏蔽Ping
通过iptables防火强
我们以CentOS为例,向iptables中添加如下三条规则:
-A RH-Firewall-1-INPUT -s 192.168.0.100 -p icmp -m icmp --icmp-type 0 -j ACCEPT
-A RH-Firewall-1-INPUT -s 192.168.0.100 -p icmp -m icmp --icmp-type 8 -j ACCEPT
-A RH-Firewall-1-INPUT -p icmp -m icmp --icmp-type 8 -j DROP
-A RH-Firewall-1-INPUT -p icmp -m icmp --icmp-type 0 -j DROP
第1、2行定义了允许192.168.0.100这个ip允许向主机发出Ping请求
第3、4行定义禁止其他所有地址向主机发出Ping请求,接收到的数据包会被丢弃(DROP)
使用iptables限制(推荐)
这个方法在OpenVZ下VPS、也在虚拟机中测试通过,禁止他人Ping本机的同时,本机也可以Ping他人。
(1)设置方法很简单,在SSH中输入以下命令,回车后直接生效无需重启iptables。
iptables -A INPUT -p icmp --icmp-type 8 -s 0/0 -j DROP
以上操作是利用iptables丢弃掉来自外网请求的ICMP包,达到禁Ping的效果。反之请看下面。
(2)解除设置方法(即删除本规则)
iptables -D INPUT -p icmp --icmp-type 8 -s 0/0 -j DROP
通过修改配置文件
禁止ping:
echo 1 > /proc/sys/net/ipv4/icmp_echo_ingore_all
允许ping入:
echo 0 > /proc/sys/net/ipv4/icmp_echo_ingore_all
iptables -A INPUT -i eth0 -p icmp --icmp-type echo-request -d 192.168.1.1 -m state --state NEW -j DROP 这个也可以禁止通过网卡eth0来ping 主机192.168.1.1