您所使用的设备(IP:***)存在对其他服务器端口(TCP:6379)的攻击行为
大晚上的,在床上躺着,突然腾讯云给我发个消息和邮件,如下:
吓我一跳,定睛一看,端口6379,不是radis的默认端口吗?前些阵子写项目就用自己的服务器搭了一个radis服务器,不会被黑了吧?百般纳闷,反正说是24小时内,不管,先睡觉
早上爬起来,想用Xshell登录一下服务器看看,结果死活登不上,再在控制台看看,结果还是登不上,心想:完了,不会真被黑了吧?用腾讯云自动实例检测,提示CPU近期占有率高达92%,但是我在服务器中就挂了一个radis和nginx,有鬼!我最后用VNC登录方式成功登录,书到用时方恨少,Linux的运维命令又忘了不少,下面记记Linux问题排查的命令吧
问题排查
查看CPU状态:
top
分析进程
根据任务管理器中的进程,分析与排查问题,以采取对应解决方案。
如果是业务进程占用了大量 CPU 或内存资源,分析业务程序是否有优化空间,进行优化或者升级服务器配置。
如果是异常进程占用了大量 CPU 或内存资源,则可能中毒,需要自行终止进程或者使用安全软件进行查杀,必要时考虑备份数据,重装系统。
例如:
Top 命令的输出信息主要分为两部分,上半部分显示 CPU 和内存资源的总体使用情况:
第一行:系统当前时间,当前登录用户个数以及系统负载。
第二行:系统总进程数、运行中进程数、休眠、睡眠和僵尸进程数量。
第三行:CPU 当前使用情况。
第四行:内存当前使用情况。
第五行:Swap 空间当前使用情况。
下半部分以进程为维度显示资源的占用情况:
PID:进程 ID。
USER:进程所有者。
PR:进程优先级 NI:NICE 值,NICE 值越小,优先级越高。
VIRT:使用的虚拟内存大小,单位 KB。
RES:当前使用的内存大小,单位 KB。
SHR:使用的共享内存的大小,单位 KB。
S:进程状态。
%CPU:更新时间间隔内进程所使用的 CPU 时间的百分比。
%MEM:更新时间间隔内进程所使用的内存的百分比。
TIME+:进程使用的 CPU 时间,精确到 0.01s。
COMMAND:进程名称。
- 分析占有率异常的进程,记下第一个字段PID
- 输入k
- 输入需要终止进程的 PID ,按 Enter
流量检测小工具:
如下命令
yum install iftop -y
yum install lsof -y
安装好后,执行如下命令:
iftop
<=、=> 表示流量的方向
TX 表示发送流量
RX 表示接收流量
TOTAL 表示总流量
Cum 表示运行 iftop 到目前时间的总流量
peak 表示流量峰值
rates 分别表示过去2s、10s和40s的平均流量
根据 iftop 中消耗流量的 IP,执行以下命令,查看连接该 IP 的进程。
lsof -i | grep (你要看的那个ip)
然后就可以查询那个异常IP的归属地:归属地查询
查看端口
查看指定端口:
netstat -anp | grep 3306 #3306是你要查询的端口号
监控状态为LISTEN表示已经被占用,最后一列显示被服务mysqld占用,查看具体端口号,只要有如图这一行就表示被占用了
如下命令可以查看所有端口:
netstat -nultp
综上,你需要找到异常端口,然后想办法关闭它
如下,先查询6379端口
lsof -i:6379
然后kill它
kill -9 PID