使用netstat检测及监测网络连接
创始人
2024-03-01 13:37:07
0

大家好,我是邪恶君子!今天,邪恶就给大家分享一下,使用小小的一个netstat命令,就能让你检测出系统是否处于安全状态!!!

这篇文档,复杂°:简单;难易°:易。坚决让小白都看得懂,学得会,掌握牢,上手快!好,废话不多说,看招:

大家都知道,Linux上的web服务每天都要面临成千上万的连接,这些连接都是要遵循TCP协议的,这都是众所周知的(至于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网页请求。

怎么样,是否能弄懂上面的这些命令及作用?在这儿呢,邪恶负责的说一句话:如果你能把上面的这些都彻底的理解消化了,能举一反三了,那么,恭喜您,您在Linux系统网络检测这一小块已经是一个高手了,不在是菜鸟或者小白了,为自己鼓鼓掌吧!!!

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

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

例如:

#iptables -A INPUT 1 -s $IPADRESS -j DROP/REJECT

注意,你需将$IPADRESS 替换成需要拒绝连接的IP地址。执行完iptables 后呢,要重启一下web服务。

好了,今天的学习呢,到这儿就结束了,至于能掌握多少,这就要因人而异了,但我相信:天道酬勤!!!

最后,如果哪里有不对的地方,希望大家多多交流!!!

相关内容

不依赖网络连接的主机名替代...
一种不依赖网络连接的主机名替代方案是使用本地的主机名映射表。这可以...
2025-01-11 06:00:48
不同集群之间通过VPC网络...
在GCP中,不同集群之间通过VPC网络连接的Pod和服务之间的通信...
2025-01-09 06:01:01
不断检查网络连接的问题
可以使用Android系统提供的ConnectivityManag...
2024-12-23 16:02:02
播放视频需要安全头部,网络...
通常,播放器需要从服务器获取媒体流数据。为确保网络连接安全,服务器...
2024-12-23 09:31:34
Bluetooth网络连接...
在代码中使用BluetoothDevice.createBond(...
2024-12-23 03:31:55
Blazor-如何处理无网...
Blazor应用程序可以使用网络连接,但是当网络连接不可用时,应用...
2024-12-20 22:01:52

热门资讯

Helix:高级 Linux ... 说到 基于终端的文本编辑器,通常 Vim、Emacs 和 Nano 受到了关注。这并不意味着没有其他...
使用 KRAWL 扫描 Kub... 用 KRAWL 脚本来识别 Kubernetes Pod 和容器中的错误。当你使用 Kubernet...
JStock:Linux 上不... 如果你在股票市场做投资,那么你可能非常清楚投资组合管理计划有多重要。管理投资组合的目标是依据你能承受...
通过 SaltStack 管理... 我在搜索Puppet的替代品时,偶然间碰到了Salt。我喜欢puppet,但是我又爱上Salt了:)...
Epic 游戏商店现在可在 S... 现在可以在 Steam Deck 上运行 Epic 游戏商店了,几乎无懈可击! 但是,它是非官方的。...
《Apex 英雄》正式可在 S... 《Apex 英雄》现已通过 Steam Deck 验证,这使其成为支持 Linux 的顶级多人游戏之...
如何在 Github 上创建一... 学习如何复刻一个仓库,进行更改,并要求维护人员审查并合并它。你知道如何使用 git 了,你有一个 G...
2024 开年,LLUG 和你... Hi,Linuxer,2024 新年伊始,不知道你是否已经准备好迎接新的一年~ 2024 年,Lin...
什么是 KDE Connect... 什么是 KDE Connect?它的主要特性是什么?它应该如何安装?本文提供了基本的使用指南。科技日...
Opera 浏览器内置的 VP... 昨天我们报道过 Opera 浏览器内置了 VPN 服务,用户打开它可以防止他们的在线活动被窥视。不过...