zoukankan      html  css  js  c++  java
  • Windows & Linux服务器如何禁用ping总结

     

    有时候你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

     

    clip_image001

     

     

    这个命令会立即生效,如果需要启用ping命令,将这个参数设置为0即可。

     

    [root@DB-Server ~]# echo 0 > /proc/sys/net/ipv4/icmp_echo_ignore_all

     

     

    clip_image002

     

     

    当然,这个设置只对当前环境生效,如果服务器重启时,这个设置就会失效。如果要永久生效,那么可以在配置文件/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的与缘故

     

    clip_image003

     

    如下所示,在操作(Action)选择阻止连接(Block the connecting),如果这个规则没有启用,可以先启用或选择启用规则(Enable)选项,点击应用后就会生效。另外,注意根据实际情况选择IPV4与IPV6规则。

     

    clip_image004

     

     

     

    IP策略实现服务器禁止Ping

     

     

    (实验环境为Windows Server 2012 R2)依次单击开始→管理工具→本地安全策略,打开本地安全设置对话框,右击该对话框左侧的IP安全策略,在本地计算机选项,点击创建IP安全策略,然后如下所示,一步一步的配置。

     

    clip_image005

     

     

    clip_image006

     

     

     

    命名IP筛选器为Disabled Ping Security Policy,描述语言可以为IP安全策略,禁止PING,然后单击[下一步]按钮。

     

     

     

     

    clip_image007

     

     

     

    接下来依次单击[下一步]

     

    clip_image008

     

     

    选择编辑属性

     

    clip_image009

     

     

    clip_image010

     

     

     

     

    clip_image011

     

     

    clip_image012

     

    clip_image013

     

     

    clip_image014

     

     

     

     

    clip_image015

     

     

     

    clip_image016

     

    clip_image017

     

     安全策略创建完毕后并不能马上生效,我们还需通过指派使其发挥作用。右击本地安全设置对话框右侧的[Disabled Ping Security Policy]策略,执指派”(Assign)令即可启用该策略。总体来说,防火墙层面禁用ping要方便、快捷很多,IP安全策略禁用PING感觉非常繁琐。

     

     

     

     

     

     

    参考资料:

     

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

  • 相关阅读:
    Linux标准C头文件和内核头文件的理解
    linux GCC编译C程序的问题
    C#类型反射、晚期绑定、特性编程的使用背景与分析
    linux下C#开发mongoDB
    C中“指针和数组”引发的探索一
    C#学习记录
    linux下Apache+PHP+mysql+phpMyAdmin源码包安装配置
    基于mongoDB和C#分布式海量文件存储实验
    C中指针和数组引发的探索二
    算法研究学习一(用C和C#实现)
  • 原文地址:https://www.cnblogs.com/kerrycode/p/8043979.html
Copyright © 2011-2022 走看看