1.通过linux命令查看cpu内存情况
输入 top 然后按1 对资源占用进行排序
2.查看资源占比较高的进程是否本系统的进程
如果是本系统进程,根据业务系统确定为什么会这样,可能是访问量过大 死循环 定时任务高频执行 excle大量数据导入 等情况 如果非本系统进程,则继续往下看
3.首先进行kill进程号方式处理
执行命令:kill -9 + 进程号 进程kill后如果又会启动起来,这个时候需要查看是否有定时任务或守护进程 查看开放的端口: netstat -tunlp 查看linux系统密码破解次数: lastb |wc -l 查看定时任务: crontab -l 删除定时任务: crontab -r 查看进程所在文件夹全局搜索: find / -name '进程名字'
3.这个时候普通的kill和删除已经不起作用了,需要查找守护进程
查看linux系统所有守护进程:ps -eo ppid,pid,sid,stat,tty,comm | awk '{ if ($2 == $3 && $5 == "?") {print $0}; }'
查看某个守护进程: ps ajx | grep -E '2.sh$'
对异常的守护进程进行kill,然后再删除之前系统产生的木马脚本目录
之前我按照这个流程解决了服务器被挖矿的问题,接下来说怎么防范的问题
1.在服务器允许的情况下,最好对linux进行重新安装,这样可以彻底修改服务器安全问题
2.不要打开所有的服务器安全外网端口,只需要打开所用端口
3.分配指定账户指定权限,就算有攻击也只能操作权限内的目录
4.应用安全:
如redis,最好设置为内网访问,如果设置为外网访问一定要设置密码,且增加密码的复杂度
如tomcat,webapps下面的文件如果用不上也可以进行删除
其他jenkins 应用 需要授权密码等 都需要注意
5.开启防火墙:
centos7后防火墙管理方式
systemctl stop firewalld.service 关闭防火墙 systemctl start firewalld.service 开启防火墙 systemctl status firewalld.service 查看防火墙状态 firewall-cmd --reload 重启防火墙 firewall-cmd --list-ports 查看防火墙开放端口 firewall-cmd --zone=public --remove-port=3306/tcp --permanent 关闭防火墙端口 firewall-cmd --zone=public --query-port=80/tcp 查看防火墙端口 firewall-cmd --zone=public --add-port=3718/tcp --permanent 防火墙添加端口命令 –zone #作用域 –add-port=80/tcp #添加端口,格式为:端口/通讯协议 –permanent #永久生效,没有此参数重启后失效
6.定时修改服务器密码
在 /etc/login.defs 中将 PASS_MAX_DAYS 参数设置为 60-180之间,如 PASS_MAX_DAYS 90。 需同时执行命令设置root密码失效时间:chage --maxdays 90 root。
至此,这是我解决的方式,可能每个人遇到的问题都不一致,欢迎各位大佬讨论指点
PS: 安全问题是个大问题,尽管只有1%的可能性发生,但是如果发生了都有雪崩的可能性,照成不可预估的损失