文章目录

  • Linux安全运维
  • 一、腾讯云服务器被窃取,用来攻击其他服务器,已解决
  • 问题1:
  • 检测1:
  • 检测2:
  • 二、阿里云服务器被kdevtmpfs挖矿
  • 1.查进程
  • 2.杀进程
  • 3.清理定时任务
  • 4.删除相应文件
  • 三、selinux下设置sentenforce 0
  • 四、服务器防火墙firewalld,指定端口开放
  • 1 firewalld开启
  • 2 端口开放
  • 3.脚本
  • 3.1 添加端口脚本`[sh add-firewalld-port.sh port]`
  • 3.2 重载端口脚本`[sh reload-firewalld-port.sh]`
  • 3.3 列举端口脚本`[sh list-firewalld-port.sh]`
  • 3.4 移除端口脚本`[sh remove-firewalld-port.sh port]`
  • 五、服务器密码被破解,异常进程处理
  • 1.dolphinscheduler下删除定时任务
  • 2.删除异常进程
  • 3.删除异常脚本
  • 4.删除公钥
  • 5.修改密码


Linux安全运维

一、腾讯云服务器被窃取,用来攻击其他服务器,已解决

早上五点多突然醒来,看来一下手机,收到通知说我攻击其他服务器,What happened?

问题1:

尊敬的腾讯云用户,您好!

您的账号(账号ID: -------,昵称:zxy)下的设备(IP:****.****.****.****),存在对其他服务器端口(TCP:22)的攻击行为,请您做好自查整改,并在24小时内停止上述行为。如逾期未处理,我们核实后将按腾讯云服务协议相关要求对您停止服务。

感谢您对腾讯云的理解与支持!



温馨提示:

1. 点击查看 安全违规处理帮助指引

2. 若在使用过程中遇到任何问题,您可以 提交工单 进行反馈,我们将竭诚为您服务!


此致 
腾讯云团队

检测1:

腾讯云官方建议:

使用last命令查看下服务器近期登录的帐户记录,确认是否有可疑 IP 登录过机器:

检查说明:攻击者或者恶意软件往往会往系统中注入隐藏的系统帐户实施提权或其他破坏性的攻击。
解决方法:检查发现有可疑用户时,可使用命令usermod -L 用户名禁用用户或者使用命令userdel -r 用户名删除用户。
风险性:高。

解决:

想要删除新增用户es,结果就是报es 被进程`27109`占用了,手动给进程kill掉,然后给用户删除`userdel -r es`

检测2:

腾讯云官方建议:

通过less /var/log/secure|grep 'Accepted’命令,查看是否有可疑 IP 成功登录机器:

检查说明:攻击者或者恶意软件往往会往系统中注入隐藏的系统帐户实施提权或其他破坏性的攻击。
解决方法: 使用命令usermod -L 用户名禁用用户或者使用命令userdel -r 用户名删除用户。
风险性:高。

解决:

[root@hadoop_zxy ~]# less /var/log/secure|grep 'Accepted'

Dec 24 07:40:01 hadoop_zxy sshd[26686]: Accepted password for es from ****** port **** ssh2
Dec 24 07:40:03 hadoop_zxy sshd[26767]: Accepted password for es from ****** port **** ssh2
Dec 24 07:41:07 hadoop_zxy sshd[27014]: Accepted password for es from ****** port **** ssh2
Dec 24 08:49:04 hadoop_zxy sshd[7640]: Accepted password for root from ****** port **** ssh2
Dec 24 08:49:04 hadoop_zxy sshd[7642]: Accepted password for root from ****** port **** ssh2
Dec 24 08:59:29 hadoop_zxy sshd[13426]: Accepted password for root from ****** port **** ssh2
Dec 24 08:59:29 hadoop_zxy sshd[13428]: Accepted password for root from ****** port **** ssh2

二、阿里云服务器被kdevtmpfs挖矿

1.查进程

[root@zxy /]# top

如果是被kdevtmpfs挖矿,可以在进程中找到这个进程

PID就是他的进程号,但是只删除这一个进程是没有用的

[root@zxy /]# systemctl status PID

这里的PID就写你的kdevtmpfs进程号

linux 防火墙放行docker服务端口 linux防火墙开放端口firewall_定时任务

这里可以发现kdevtmpfsi依赖于kinsing存在,所以需要杀死kinsing

2.杀进程

[root@zxy /]# kill -9 3142
[root@zxy /]# kill -9 3256

3.清理定时任务

挖矿入侵服务器后,会在定时任务里存放定时任务

需要给这个定时任务杀死

# 查看定时任务
[root@zxy ~]# crontab -l
# 杀死定时任务
[root@zxy ~]# crontab -e

4.删除相应文件

[root@zxy ~]# find / -name kdevtmpfsi
[root@zxy ~]# find / -name kinsing

三、selinux下设置sentenforce 0

  • 在启动setenforce 0命令时候提示:
setenforce: SELinux is disabled

该显示说明selinux已经被彻底的关闭了

  • 想要重新开启selinux,需要修改一下配置:
vi /etc/selinux/config

更改为:SELINUX=1
  • 必须重启Linux之后才能正式开启selinux
    重启成功之后再次输入:
sentenforce 0
就不会出现setenforce:SELinux is disable

四、服务器防火墙firewalld,指定端口开放

为了服务器安全,减少被攻击的可能性,选择开启防火墙,如果需要用到指定的端口,那么就专门给这个端口开启通道

1 firewalld开启

开启防火墙systemctl start firewalld

关闭防火墙systemctl stop firewalld

防火墙状态systemctl status firewalld

防火墙开机自启systemctl enable firewalld

禁用防火墙systemctl disable firewalld

2 端口开放

防火墙开启后,所以端口都是禁止访问的,所以需要根据需求开启指定的端口

## 查看开放的端口,这里是没有的
root@zxy_slave1 sysconfig]# firewall-cmd --zone=public --list-ports
## 添加你需要开放的端口XXXX
[root@zxy_slave1 sysconfig]# firewall-cmd --zone=public --add-port=XXXX/tcp --permanent
success
## 添加成功后从加载
[root@zxy_slave1 sysconfig]# firewall-cmd --reload
success
## 再次查看开放的端口,已经开启成功,测试后通过远程也可以使用,已正常
[root@zxy_slave1 sysconfig]# firewall-cmd --zone=public --list-ports
XXXX/tcp

3.脚本

添加和删除端口,主要是通过传参,使用$取到执行脚本中的参数,进而传给执行脚本使用脚本的目的主要是为了方便自己在每次使用的时候比较方便,直接sh执行脚本即可

3.1 添加端口脚本[sh add-firewalld-port.sh port]

#!/bin/bash
# filename:add-firewalld-port.sh
# autho:zxy
# date:2022-05-17
# desc:add port


CMD=$1

firewall-cmd --zone=public --add-port=${CMD}/tcp --permanent

3.2 重载端口脚本[sh reload-firewalld-port.sh]

#!/bin/bash
# filename:reload-firewalld-port.sh
# autho:zxy
# date:2022-05-17
# desc:reload port

firewall-cmd --reload

3.3 列举端口脚本[sh list-firewalld-port.sh]

#!/bin/bash
# filename:list-firewalld-port.sh
# autho:zxy
# date:2022-05-17
# desc:list port

firewall-cmd --zone=public --list-ports

3.4 移除端口脚本[sh remove-firewalld-port.sh port]

#!/bin/bash
# filename:remove-firewalld-port.sh
# autho:zxy
# date:2022-05-17
# desc:remove port


CMD=$1

firewall-cmd --zone=public --remove-port=${CMD}/tcp --permanent

五、服务器密码被破解,异常进程处理

某台服务器被恶意攻击及挖矿,排查发现有一个用户dolphinscheduler,初步怀疑是密码被泄露或破解。找到异常进程,清理并重置密码。

1.dolphinscheduler下删除定时任务

检查是否有定时任务存在,一般非法侵入通常会使用定时器,定时指定对应的脚本或服务

[dolphinscheduler@dolphin .xri]$ crontab -l
*3 * * * * /var/tmp/.xri/monitor

[dolphinscheduler@dolphin .xri]$ crontab -l

2.删除异常进程

2.1 查看异常进程

PID USER      PR  NI    VIRT    RES    SHR S  %CPU %MEM     TIME+ COMMAND
  5922 dolphin+  20   0 1211676 659104    664 S   0.3  2.0  79500,24 xri

2.2 查看异常进程子进程

[root@dolphin .ssh]# ps -ef | grep 5922
dolphin+   5922   5918 99  2022 ?        3312-12:24:10 /var/tmp/.xri/xri start
root      41629  26084  0 17:02 pts/0    00:00:00 grep --color=auto 5922
[root@dolphin .ssh]# ps -ef | grep 5918
dolphin+   5918   5916  0  2022 ?        00:00:00 /bin/bash /var/tmp/.xri/monitor
dolphin+   5922   5918 99  2022 ?        3312-12:24:10 /var/tmp/.xri/xri start
root      41699  26084  0 17:02 pts/0    00:00:00 grep --color=auto 5918
[root@dolphin .ssh]# ps -ef | grep 5916
root       5916   5287  0  2022 ?        00:00:00 /usr/sbin/CROND -n
dolphin+   5918   5916  0  2022 ?        00:00:00 /bin/bash /var/tmp/.xri/monitor

2.3 删除进程

[root@dolphin .ssh]# kill -9 5922

2.4 再次查看进程

[root@dolphin .ssh]# ps -ef | grep 5922
root      42495  26084  0 17:04 pts/0    00:00:00 grep --color=auto 5922
[root@dolphin .ssh]# ps -ef | grep xri
root      43156  26084  0 17:05 pts/0    00:00:00 grep --color=auto xri
[root@dolphin .ssh]# ps -ef | grep 5918
root      43205  26084  0 17:05 pts/0    00:00:00 grep --color=auto 5918
[root@dolphin .ssh]# ps -ef | grep 5916
root      43242  26084  0 17:05 pts/0    00:00:00 grep --color=auto 5916

3.删除异常脚本

# 1.查看脚本
[dolphinscheduler@dolphin .xri]$ ls
monitor

# 2.查看脚本路径
[dolphinscheduler@dolphin .xri]$ pwd
/var/tmp/.xri

# 3.查看脚本内容
[dolphinscheduler@dolphin .xri]$ cat monitor
#!/bin/bash

pgrep xri
if [ $? -ne 0 ]
then
    /var/tmp/.xri/xri start > /dev/null

# 4.删除脚本
fi[dolphinscheduler@dolphin .xri]$ rm -f monitor

# 5.再次查看脚本已删除
[dolphinscheduler@dolphin .xri]$ ls

4.删除公钥

为避免公钥已经泄露,将公钥清理

[root@dolphin .ssh]# ls
authorized_keys  id_rsa  id_rsa.pub  known_hosts
[root@dolphin .ssh]# rm -f authorized_keys

5.修改密码

重新修改用户对应的密码

[root@dolphin /]# passwd dolphinscheduler
Changing password for user dolphinscheduler.
New password:
Retype new password:
Retype new password:
passwd: all authentication tokens updated successfully.