linux中通过iptables规则让Linux主机屏蔽Ping

2017-03-13 14:38:18 网司令

在linux中屏蔽Ping我们可以修改配置文件与直接使用iptables来进行过滤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