原标题:网盾运维老司机教你看你的服务器的IP是否遭到攻击

世界辣么大,攻击辣么多,可是我的IP为什么不能多?

攻击花样太多了,我感觉我的源站IP扛不住攻击了,难道只能通过接入网盾高防产品吗?我能否在攻击发生前就察觉呢?

对此,我特意向网盾运维“老司机”请教了这个问题。

对于你部署的操作系统,并不能因为数据中心有Linux服务器,或者托管在云服务器上(比如网盾云服务器、谷歌云),就判定它是百分百安全的。Linux只是相对来说较为安全,黑客们在不断学习,更新技术,各大平台受到的攻击明显有所增加,而随着Linux的日渐普及,攻击也会愈演愈烈。(毕竟语句更直观)

我要怎么做?

只要你怀疑你使用的服务器中,有一台被攻击了,不要犹豫,不要等待,马上去检查。

服务器是否遭到来自某个IP地址的分布式拒绝服务(DDoS)攻击,是你首要检查的。

这种DDoS攻击类似于一种协同的活动,一个或者多个IP地址不断的向你服务器发起请求,企图破坏网站,致使服务器无法正常访问。

那到底要怎样判断Linux服务器是否被攻击?

需要准备什么?

准备好你的Linux实例,和有sudo权限的用户,文章将以Ubuntu Server 20.04为例。

查看服务器的IP地址

这里用到的是netstat工具在Internet RFC标准中,Netstat的定义是: 在内核中访问网络连接状态及其相关信息的程序,它能提供TCP连接,TCP和UDP监听,进程内存管理的相关报告。

Netstat是控制台命令,能够监控网络中的TCP/IP,能够显示路由表、实际的网络连接以及每一个网络接口设备的状态信息。Netstat用于显示与IP、TCP、UDP和ICMP协议相关的统计数据,一般用于检验本机各端口的网络连接情况。

如果实在Ubuntu上安装netstat,只需要安装net-tools,:

sudo apt-get install net-tools -y

当然了,netstat也是可以安装在CentOS或者Red Hat上的。

检查服务器负载

安装完成后,再来检查服务器负载。

一般来说,我们需要检查逻辑处理器的数量,使用的命令是:

grep processor /proc/cpuinfo | wc -l

在服务器上,这个数值应该是很低的,当然这是由运行的负载决定。要保证服务器上这个数据的基准值(基准值是充当测量值的一个一致认可的基准,在电力系统中,统一全系统相对值的基准,而选定符合电路基本关系和实际同单位的有名值,通常用下标表示。电力系统采用的基准值一般选定为基准功率和基准电压。),确保一切可以正常运行。如果觉得情况不对,可以再次运行线程检查比较。

倘若测试得到的数字高于基准值,很有可能存在问题。

比如在Pop!_OS桌面上,有16个线程,但是在托管Nextcloud的Ubuntu服务器上,只有两个线程。如果这些数字中的任何一个翻倍,很有可能正在遭受DDoS攻击。

检查网络负载

有很多工具都可以执行此操作。这里我们以nload为例。

可以用以下命令来安装nload:

sudo apt-get install nload -y

CentOS上使用的命令是:

sudo dnf install nload -y

想要运行,只需要输入以下命令:

nload

在运行的过程中,会看到一个现实正常的入站和出站网络负载:

如果该负载超过预期,可能就是攻击。

查明连接服务器的IP地址

需要使用到netstat:

netstat -ntu|awk '{print $5}'|cut -d: -f1 -s|sort|uniq -c|sort -nk1 -r

上述命令将输出连接到服务器的每个IP地址以及每个IP地址的实例数。如您所见,有两个IP地址连接到我的服务器。

需要仔细检查该列表。倘若看到一个IP地址含有大量实例(超过100个),很有可能就是这个地址发起的攻击。一旦确定,就可以以下命令禁止这个IP地址:

sudo route add ADDRESS reject

其中ADDRESS是可疑对象的IP地址。

这时,最好返回并重新检查线程、连接的IP地址和网络负载,查看是否已经缓解了DDoS攻击。如果成功缓解,就要解决这个IP地址,有必要的话禁止访问您的网络。

相关文章