有时候你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感觉非常繁琐。

参考资料:

http://www.361way.com/rejctping/1452.html

Windows & Linux服务器如何禁用ping总结的更多相关文章

  1. Linux 服务器如何禁止 ping 以及开启 ping

    Linux 默认是允许 ping 响应的,也就是说 ping 是开启的,但 ping 有可能是网络攻击的开始之处,所以关闭 ping 可以提高服务器的安全系数.系统是否允许 ping 由2个因素决定的 ...

  2. 为Linux服务器伪装上Windows系统假象

    网络上的计算机很容易被黑客利用工具或其它手段进行扫描,以寻找系统中的漏洞,然后再针对漏洞进行攻击. 通过伪装Linux系统,给黑客设置系统假象,可以加大黑客对系统的分析难度,引诱他们步入歧途,从而进一 ...

  3. Windows Server2008服务器可以远程桌面,但在内网中却Ping不通--解决方法

    Windows Server2008服务器可以通过远程桌面登录,但在内网中却Ping不通.所以要考虑的是防火墙是不是做了限制. 最简单粗暴的方法是直接把防火墙给关掉 还有个其他的方法是参考别人写的,我 ...

  4. 服务器禁用ping

    linux禁ping.这里操作的是centos6.5内核参数禁ping禁用ping #echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all启用ping ...

  5. 将windows下的文件上传到Linux服务器上

    版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明.本文链接:https://blog.csdn.net/lx_Frolf/article/deta ...

  6. windows下运行的linux服务器批量管理工具(带UI界面)

    产生背景: 由于做服务器运维方面的工作,需要一人对近千台LINUX服务器进行统一集中的管理,如同时批量对LINUX服务器执行相关的指令.同时批量对LINUX服务器upload程序包.同时批量对LINU ...

  7. 使用pscp实现Windows 和 Linux服务器间远程拷贝文件

    转自:http://www.linuxidc.com/Linux/2012-05/60966.htm 在工作中,每次部署应用时都需要从本机Windows服务器拷贝文件到Linux上,有时还将Linux ...

  8. 从Windows 服务器通过sync向Linux服务器定时同步文件

    本文解决的是Windows 下目录及文件向Linux同步的问题,Windows向 Windows同步的请参考:http://www.idcfree.com/article-852-1.html 环境介 ...

  9. windows 2012 服务器打开ping端口,开通远程连接

    windows 2012 服务器打开ping端口,开通远程桌面连接 控制面板->系统与安全->高级防火墙->入站规则 找到:windows 远程桌面 (http in )  右键启用 ...

随机推荐

  1. TCP那些事儿(下)

    这篇文章是下篇,所以如果你对TCP不熟悉的话,还请你先看看上篇<TCP的那些事儿(上)> 上篇中,我们介绍了TCP的协议头.状态机.数据重传中的东西.但是TCP要解决一个很大的事,那就是要 ...

  2. CSS初了解

    1.在网页中, html负责的是一个页面的结构 css(层叠式表)是网页中的数据样式 2.编写css代码方式: A: 在style标签中编写代码,只能用在本页面中,复用性不强. 格式:<styl ...

  3. 《.NET 设计规范》第 6 章:扩展性设计

    第 6 章:扩展性设计 6.1 扩展机制 考虑用不包含任何虚成员或受保护的成员的非密封类来为框架提供扩展性.这种方法所提供的扩展性广受用户欢迎,而且它的开销也不高. 考虑将受保护的成员用于高级的定制方 ...

  4. 《.NET 设计规范》第 5 章:成员设计

    <.NET 设计规范>第 5 章:成员设计 5.1 成员设计的通用规范 要尽量用描述性的参数名来说明在较短的重载中使用的默认值. 避免在重载中随意地改变参数的名字.如果两个重载中的某个参数 ...

  5. C#常见问题总结(二)

    1.erp系统可以在具有固定ip的拥有多层服务器的局域网中使用吗?如何使用 解决方法: 把ini.配置文件字符串中的服务器名改成服务器的,把debug文件夹拷到其他机器上就行,服务器上的服务器名是默认 ...

  6. 将常用的Android adb shell 命令行封装为C#静态函数

    更多原创测试技术文章同步更新到微信公众号 :三国测,敬请扫码关注个人的微信号,感谢! 简介:adb命令是常用的Android命令行,自动化.代码调试.手工排查问题都会用的到,这里将常用的一些命令行封装 ...

  7. CentOS 6.3 SSH连接时很慢的解决方法

    SSH的配置文件,默认开启了DNS反向解析,这使得处于同一个局域网下的终端,在SSH到服务器的时候异常缓慢,如果从是外网SSH到服务器的话,速度则是正常的.我们只需要关闭DNS反向解析即可. 修改/e ...

  8. 时间函数DateTime()的用法

    //2008年4月24日 System.DateTime.Now.ToString("D"); //2008-4-24 System.DateTime.Now.ToString(& ...

  9. JVM学习(一)

    一.gc日志查看与分析 在sever端的run.xml中run和debug中加入如下参数: <jvmarg value="-XX:+PrintGCDateStamps"/&g ...

  10. Codeforces Round #402 (Div. 2)

    Codeforces Round #402 (Div. 2) A. 日常沙比提 #include<iostream> #include<cstdio> #include< ...