搜索
查看: 7151|回复: 0

是谁动了我的服务器?

[复制链接]

714

主题

354

回帖

2669

积分

管理员

本论坛第一帅

积分
2669

热心会员推广达人宣传达人突出贡献优秀版主荣誉管理论坛元老

QQ
发表于 2022-11-21 21:00:52 | 显示全部楼层 |阅读模式 来自 甘肃
[md]> 作为一名资深的运维大表哥。每天上班摸鱼是我一贯的工作作风。自服务上线的那一刻起,我心中每天都在对服务器祈祷,千万不要挂!可……

![1.png](data/attachment/forum/202211/21/205437ee61cb89hoqgmto9.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/300 "1.png")
### 原因分析
如果正常上线的服务,异常掉线。八成是被DD了。正式环境运行的程序和服务一般是没多大问题的,除非受到了DOS测试。带着猜想我们尝试登录服务器。居然没法登录,这就进一步验证了我的猜想。因为公网IP此刻正在接受大量的dos数据。我们正常请求肯定没法登录。
**解决方案**
在公网IP没法登录的情况。我们只能通过内网IP进行登录。只需登录阿里云或者腾讯云控制台,选择我们的服务器,登录即可!
### 服务器排查
首先查找可以进程,查找当前服务器中,是那个进程占用了大量的服务器资源。
我们只需用系统自带的命令`top`即可。如下:
![2.png](data/attachment/forum/202211/21/205523buuxbaba31x7cs39.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/300 "2.png")
**命令详解**

首先来看第一行放回的结果

| 命令       | 详解 |         
| :--------- | :--: |
| 15:20:41     |  当前系统的时间  |   
| up  3:07   |  系统运行时常  |   
| 1 user |  当前登录用户个数  |
| load average: 0.00, 0.00, 0.00 |  系统在之前 1 分钟、5 分钟、15 分钟的平均负载。如果 CPU 是单核的,则这个数值超过 1 就是高负载  |
第二行命令
| 命令       | 详解 |         
| :--------- | :--: |
|Tasks: 126 total        |系统中的进程总数|
|1 running        |正在运行的进程数|
|94 sleeping        |睡眠的进程数|
|0 stopped        |正在停止的进程数|
|0 zombie        |僵尸进程数。如果不是 0,则需要手工检查僵尸进程|
第三行为 CPU 信息
| 命令       | 详解 |         
| :--------- | :--: |
|Cpu(s): 0.1 %us        |用户模式占用的 CPU 百分比|
|0.3%sy        |系统模式占用的 CPU 百分比|
|0.7%ni|        改变过优先级的用户进程占用的 CPU 百分比|
|99.7%id        |空闲 CPU 占用的 CPU 百分比|
|0.1%wa        |等待输入/输出的进程占用的 CPU 百分比|
|0.0%hi|        硬中断请求服务占用的 CPU 百分比|
|0.1%si|        软中断请求服务占用的 CPU 百分比|
|0.0%st        st|(steal time)意为虚拟时间百分比,就是当有虚拟机时,虚拟 CPU 等待实际 CPU 的时间百分比|
第四行为物理内存信息
| 命令       | 详解 |         
| :--------- | :--: |
|Mem: 1817.1 total        |物理内存的总量,单位为KB|
|474.8 free        |己经使用的物理内存数量|
|769.0 used        |空闲的物理内存数量。|
|573.3 buff/cache        |作为缓冲的内存数量|

通过查看,我们发现是`httpd`服务占用的资源比较大。这可以排除挖矿Shell。既然是http服务,那就意味这遭受到了dos测试。亦或者对方在用漏洞扫描工具在扫描网站。从而造成服务器拥堵。
### 检查异常带宽
在上面,我们排除了挖矿Shell的可能性。现在来检查是那个IP对我们的服务区进行了测试。我们需要对此IP来屏蔽,从而来解决网站不能访问的局面。
我们只需执行下面的命令。
```
iftop
```
![3.png](data/attachment/forum/202211/21/205653datdtye7zq1o1147.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/300 "3.png")
命令详解
- `<=、=>` 表示流量的方向
- `TX `表示发送流量
- `RX` 表示接收流量
- `TOTAL` 表示总流量
- `Cum` 表示运行 iftop 到目前时间的总流量
- `peak` 表示流量峰值
- `rates` 分别表示过去2s、10s和40s的平均流量

如上,我们找到占用网速最高的IP。将其在防火墙规则中屏蔽。
```
iptables -I INPUT -p tcp –dport 80 -s 测试者IP -j DROP
```
在屏蔽测试者IP后。我们便可以顺利登录服务区和我们的web服务了。
### 溯源查找
我们的web服务,会记录访问者访问网站的操作。因此我们查看该IP在这段时间内进行了那些操作。

**查看web日志**
![4.png](data/attachment/forum/202211/21/205817rcfo7p3occgcpaog.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/300 "4.png")
很明显,这个对我们的网站进行了目录扫描。而测试者IP就是我们在上一步屏蔽的IP。
当然,除了查看web日志外,也可以在程序日志中查看。如我们的`dz`论坛。

![5.png](data/attachment/forum/202211/21/205915lxris9voll5llz5l.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/300 "5.png")
好了,这次测试溯源就完成了。而测试者IP必须曝光!
![6.png](data/attachment/forum/202211/21/205958pql99r7nws4at5va.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/300 "6.png")

[/md]
1.png
2.png
3.png
4.png
5.png
6.png
有志者,事竟成,破釜沉舟,百二秦关终属楚. 苦心人,天不负, 卧薪尝胆 ,三千越甲可吞吴
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表