Centos 6、7 操作系统中,如何开启或关闭ICMP协议

举报
极客潇 发表于 2019/01/23 14:07:21 2019/01/23
【摘要】 说起ICMP这个协议,可能有些小伙伴对此有点陌生,不知道这个协议有什么作用,什么时候会用到? 但是如果说起ping ,和Tracert 这些检查网络连通性的命令,相信搞运维或者IT的大部分人会对这个比较熟悉。其实,ping以及Tracert这两个命令就是基于ICMP协议实现的。

极客潇,科技公司工程师,专注分享新鲜科技与知识,欢迎关注!

说在前面

说起ICMP这个协议,可能有些小伙伴对此有点陌生,不知道这个协议有什么作用,什么时候会用到? 但是如果说起ping ,和Tracert 这些检查网络连通性的命令,相信搞运维或者IT的大部分人会对这个比较熟悉。其实,ping以及Tracert这两个命令就是基于ICMP协议实现的。

ICMP的全称是 Internet Control Message Protocol ,从技术的角度来看,ICMP就是一个“错误侦测与回报机制”,这个协议在网络安全和网络连接健康状态的判断有着非常重要意义。今天我们的主要内容是说下,在在Centos 6和Centos 7 中,ICMP协议的开启与关闭的方法。对于ICMP安全方面的知识,例如ICMP网络攻击方面,本文不做讨论。

Centos 6、7 操作系统中,如何开启或关闭ICMP协议

 

说明

影响ping的主要有两方面因素:一个是内核参数,一个是防火墙规则配置。只有两个参数同时允许,才可以ping通,任意一个因素配置不被允许则不允许ping通。在centos 6 或者7中修改其实是没有什么差异的。

Centos 6、7 操作系统中,如何开启或关闭ICMP协议

 

内核参数开启方法

# cat /proc/sys/net/ipv4/icmp_echo_ignore_all
回显两种结果,0表示允许,1代表禁止。此处为1,继续执行下一步

Centos 6、7 操作系统中,如何开启或关闭ICMP协议

 

1.临时开启ping,则执行如下命令

# echo 0 >/proc/sys/net/ipv4/icmp_echo_ignore_all

Centos 6、7 操作系统中,如何开启或关闭ICMP协议

 

2.永久开启,执行命令:

# vim /etc/sysctl.conf 
 net.ipv4.icmp_echo_ignore_all=0 //增加这一行内容(如果此行已经存在,则确认后面参数为0)

:wq 保存退出配置文件

# sysctl -p //执行此命令使配置生效

Centos 6、7 操作系统中,如何开启或关闭ICMP协议

永久开启,执行命令

Centos 6、7 操作系统中,如何开启或关闭ICMP协议

sysctl -p

内核参数关闭ping方法

临时关闭执行:

# echo 1 >/proc/sys/net/ipv4/icmp_echo_ignore_all

永久关闭:

# vim /etc/sysctl.conf 
 net.ipv4.icmp_echo_ignore_all=1
# sysctl -p

防火墙规则

允许ping:

# iptables -I INPUT -i eth0 -p icmp -s 0/0 -d 0/0 -j ACCEPT

Centos 6、7 操作系统中,如何开启或关闭ICMP协议

可以通过iptables -nvL查看防火墙规则

禁止ping

# iptables -I INPUT -i eth0 -p icmp -s 0/0 -d 0/0 -j DROP

最后测试,就可以ping通目标主机了

Centos 6、7 操作系统中,如何开启或关闭ICMP协议

测试ping百度为例

极客潇,科技公司工程师,专注分享新鲜科技与知识,欢迎关注!

 

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。