网站没有很多流量,可查带宽却跑了几十M? 这是什么情况呢?
      如果是出现这种情况,不排除是被CC了的可能。那么如何确定是否真的被CC了,被CC又有什么对应政策呢?

netstat -na ,用这个命令查看哪些ip到服务器ip的链接数很多,然后用安全狗之类的把那些ip给屏蔽掉。(直接在服务器上运行那个命令就可以 )
      少量cc的话,这样操作还是可以防御的。多了,大了,那就还是要高防了。

下面大概科普下关于netstat命令的使用。
      众所周知,Linux上的web服务每天都要面临成千上万的连接,这些连接都是要遵循TCP协议的。既然都是TCP协议连接,那就不得不面临一个网路最大的安全问题,DOS攻击及DDOS攻击,这些攻击是没有办法抹除的,因为这是针对TCP协议本身的一个设计缺陷儿造成的。所以,这就要求运维人员,时刻监测系统安全,是否处于被DOS攻击状态。
      那么是怎么监测及检测的呢?这就要用到netstat命令。先简单的说下一下netstat命令的主要作用:可以查看系统当前的连接状态,不管是TCP连接还是udp协议连接,以及每个连接的进程号、是哪个应用程序、连接所用的端口号,这些都可以陈列出来。

在讲监测检测之前,先给大家在普及一个知识,那就是TCP连接的状态,TCP进行3次握手,其过程有很多状态,不同的连接状态,都有想对应的状态码,看下面列表:

LISTEN:侦听来自远方的TCP端口的连接请求
SYN-SENT:再发送连接请求后等待匹配的连接请求
SYN-RECEIVED:再收到和发送一个连接请求后等待对方对连接请求的确认
ESTABLISHED:代表一个打开的连接
FIN-WAIT-1:等待远程TCP连接中断请求,或先前的连接中断请求的确认
FIN-WAIT-2:从远程TCP等待连接中断请求
CLOSE-WAIT:等待从本地用户发来的连接中断请求
CLOSING:等待远程TCP对连接中断的确认
LAST-ACK:等待原来的发向远程TCP的连接中断请求的确认
TIME-WAIT:等待足够的时间以确保远程TCP接收到连接中断请求的确认
CLOSED:没有任何连接状态
   运维人员在监控系统并发连接状态时,监控系统返回的也是这些状态码!

了解完这些后,还要再了解一个Linux系统的脚本中的一个小知识点,那就是“|”管道符,管道符的作用就不多说了,这里就简单提一下,因为下面的例子要用到。

以下这条命令将会显示出netstat的帮助信息,不懂的以及不太了解这个命令有哪些参数可用的都可以在这个命令的返回信息中看到:

#netstat --help
显示当前所有活动的网络连接:

#netstat -na
显示出所有处于监听状态的应用程序及进程号和端口号:

#netstat -aultnp
如果想对一个单一的进行查询,只需要在命令后面再加上“| grep $”。这里就用到了管道符,以及grep筛选命令,$代表参数,也就是你要查询的那个。

如要显示所有80端口的网络连接:

#netstat -aultnp | grep 80
如果还想对返回的连接列表进行排序,这就要用到sort命令了,命令如下:

#netstat -aultnp | grep :80 | sort
当然,如果还想进行统计的话,就可以再往后面加wc命令。如:

#netstat -aultnp | grep :80 | wc -l
其实,要想监测出系统连接是否安全,要进行多状态的查询,以及要分析,总结,还有就是经验。总的下来,才可以判断出连接是否处于安全状态。

下面就给大家再举一些例子,让大家彻底的明白,及彻底的理解这个命令的用处,使其发挥出最大功能。

#netstat -n -p|grep SYN_REC | wc -l
这个命令可以查找出当前服务器有多少个活动的 SYNC_REC 连接。正常来说这个值很小,最好小于5。 当有Dos攻击或者邮件炸弹的时候,这个值相当的高。尽管如此,这个值和系统有很大关系,有的服务器值就很高,也是正常现象。

#netstat -n -p | grep SYN_REC | sort -u
列出所有连接过的IP地址。

#netstat -n -p | grep SYN_REC | awk '{print $5}' | awk -F: '{print $1}'
列出所有发送SYN_REC连接节点的IP地址。

#netstat -ntu | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -n
使用netstat命令计算每个主机连接到本机的连接数。

#netstat -anp |grep 'tcp|udp' | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -n
列出所有连接到本机的UDP或者TCP连接的IP数量。

#netstat -ntu | grep ESTAB | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -nr
检查 ESTABLISHED 连接并且列出每个IP地址的连接数量。

#netstat -plan|grep :80|awk {'print $5'}|cut -d: -f 1|sort|uniq -c|sort -nk 1
列出所有连接到本机80端口的IP地址和其连接数。80端口一般是用来处理HTTP网页请求。

说明一点:命令及参数是死的,但是人是活的,要想发挥出其最大的功能,还需要自己去摸索,自己去理解及配合其他命令一起使用。同时,netstat -an在Windows上也管用哦!

那么,如果真的发现有大量的假连接了,那么也不要慌,要先找出一些“另类的IP地址”,怎么解释呢,因为在进行Dos攻击时,会为造出大量的假IP去连接服务器,进行3次握手,所以,这就要根据经验去找出假IP,然后通过防火墙规则,添加一个规则拒接这个假IP的网段连接。

例如:

#iptables -A INPUT 1 -s $IPADRESS -j DROP/REJECT
注意,你需将$IPADRESS 替换成需要拒绝连接的IP地址。执行完iptables 后呢,要重启一下web服务。鼎峰凡凡,2881064156

netstat 检测及监测网络连接的更多相关文章

  1. 使用netstat检测及监测网络连接

    在讲监测检测之前,先给大家在普及一个知识,那就是TCP连接的状态,TCP进行3次握手,其过程有很多状态,不同的连接状态,都有想对应的状态码,看下面列表: LISTEN:侦听来自远方的TCP端口的连接请 ...

  2. netstat监控大量ESTABLISHED连接与Time_Wait连接问题

    问题描述: 在不考虑系统负载.CPU.内存等情况下,netstat监控大量ESTABLISHED连接与Time_Wait连接. # netstat -n | awk '/^tcp/ {++y[$NF] ...

  3. android 检测网络是否连接,或者GPS是否可用

    很多android程序在打开时,检测网络是否连接,或者GPS是否可用: 1.网络是否连接(包括Wifi和移动网络) // 是否有可用网络 private boolean isNetworkConnec ...

  4. netstat监控大量ESTABLISHED连接与Time_Wait连接问题(转载)

    问题描述: 在不考虑系统负载.CPU.内存等情况下,netstat监控大量ESTABLISHED连接与Time_Wait连接. # netstat -n | awk '/^tcp/ {++y[$NF] ...

  5. 服务器性能调优(netstat监控大量ESTABLISHED连接与Time_Wait连接问题)

    netstat监控大量ESTABLISHED连接与Time_Wait连接问题 问题描述: 在不考虑系统负载.CPU.内存等情况下,netstat监控大量ESTABLISHED连接与Time_Wait连 ...

  6. C#如何检测网络端口连接的状态

    原文:C#如何检测网络端口连接的状态 C#如何检测/监控远程连接网络端口的情况(例如:3389端口是否处于监听状态,是否建立了连接等). using System; using System.Coll ...

  7. zabbix proxy 服务器 netstat 出现大量Time_Wait连接问题

    问题描述: 监控系统云网关监控几万个TCP port的存活情况, 最近发现有几个端口出现告警闪断情况,怀疑因为运行TCP检查的 zabbix proxy 服务器 tcp参数配置不合理. netstat ...

  8. PhoneGap检测设备网络连接情况

    一.网络连接状态列表 Phonegap 网络连接通过 navigator.network.connection.type 来获取,一般有一下几种状态 1. Connection.UNKNOWN     ...

  9. [Xcode 实际操作]八、网络与多线程-(1)使用Reachability类库检测网络的连接状态

    目录:[Swift]Xcode实际操作 本文将演示如何使用Reachability网络状态检测库,检测设备的网络连接状态. 需要下载一个开源的类库:[ashleymills/Reachability. ...

随机推荐

  1. Mac 10.12安装迅雷2.7.2

    说明:主要是老版本难找,这个版本最好用. 下载: (链接: https://pan.baidu.com/s/1qXTldI8 密码: dmfe)

  2. java翻译到mono C#实现系列(2) mono实现GridView 横向滚动

    群里的朋友问GridView 横向滚动怎么实现,我就百度了,参考http://blog.csdn.net/lonely_fireworks/article/details/7841134写了个mono ...

  3. (转)oracle linux 7 安装oracle 12c

    原文:https://blog.csdn.net/jiuyun1986/article/details/53589446 https://blog.csdn.net/admin_root1/artic ...

  4. 【文档】一、Mysql Binlog概述

    Binlog是一系列日志文件,他们包含的内容是Mysql数据内容的改变.如果想开启binlog功能,需要在启动时带上--log-bin参数. binlog是从Mysql3.23.14版本开始的.它包含 ...

  5. java 位运算符,逻辑运算符

    逻辑运算符;布尔值时使用 a=true;b=false &: 逻辑或   例:a & b=false; |: 逻辑与   例:a | b=true; !:逻辑非    例:!a=fal ...

  6. windows下python2.7版本numpy,Scipy,matplotlib,sklearn安装

    系统是windows32位,安装了python2.7.13. 安装顺序就是numpy,Scipy,matplotlib,sklearn. 首先是更新一下pip (确保pip能使用) 然后将setupt ...

  7. pureMVC与strangeIoc框架对比

    前言 最近有机会了解到了StrangeIoc框架,就拿来跟自己比较熟悉的pureMVC进行一下简要的对比.这两套开源框架都是基于MVC模式的扩展,pureMVC是一个跨平台跨语言的MVC轻量级应用框架 ...

  8. e.pageX、e.clientX、e.screenX、e.offsetX的区别以及元素的一些CSS属性

    e.pageX,e.pageY:返回的值是相对于文档的定位,文档的左上角为(0,0),向右为正,向下为正,IE不支持: e.clientX,e.clientY:返回的值是相对于屏幕可见区域的坐标,如果 ...

  9. python递归——汉诺塔

    汉诺塔的传说 法国数学家爱德华·卢卡斯曾编写过一个印度的古老传说:在世界中心贝拿勒斯(在印度北部)的圣庙里,一块黄铜板上插着三根宝石针.印度教的主神梵天在创造世界的时候,在其中一根针上从下到上地穿好了 ...

  10. excel 工作表如何插入当前日期时间

    在EXCEL表格中,插入当前的日期或是插入当前的时间:我们都可以用快捷键或时间函数来实现 插入当前日期 快捷键方法: 比如,显示日期的单元格为A1单元格: 今天是2018年6月8日: 鼠标点一下A1单 ...