写点什么

记一次阿里云服务器中挖矿木马的过程

作者:智慧源点
  • 2024-03-31
    中国台湾
  • 本文字数:3715 字

    阅读完需:约 12 分钟

【推荐方案】最为最保险的方法,我们建议您可以备份下数据,然后对系统进行重置,后续使用快照来创建云盘,挂载到服务器上拷贝系统盘数据,重新部署环境来恢复业务,可参考下面的步骤:

1、首先参考:https://help.aliyun.com/document_detail/25455.html 创建下实例的系统盘快照,这步非常重要,是备份系统的数据

2、进行实例的系统重置:https://help.aliyun.com/document_detail/25449.html 重置后操作系统会初始化,所有数据清空。

3、如需之前的数据,可以参考:

(1)使用快照创建磁盘:https://help.aliyun.com/document_detail/32317.html

(2)挂载新建的磁盘到实例上:https://help.aliyun.com/document_detail/25446.html,拷贝所需数据,谢谢。

【后续防护】给您提供一些服务器安全防护的建议,这也会有助于提升您服务器的安全性,您可以参考下,具体如下:

1、设置好阿里云 ECS 安全组,只允许指定的 IP 地址进行 3389(远程桌面)、22(SSH)登录,避免服务器管理端口被黑客扫描或爆破。

2、在 ECS 安全组中,只放行必要的业务端口(比如 80、443),其他无关端口不要放行。

3、服务器密码设置复杂点,不要过于太简单。

4、应用软件要经常更新到新版本,不要用老版本的软件。

5、根据阿里云的云监控中心(登录地址:https://yundun.console.aliyun.com/)提示,及时修补高危系统漏洞(注意:修补前,做好快照备份)。

处理过程:

一、系统重置

先将服务器停止运行,在实例-》云盘-》初始化


二、系统重装
1、docker 安装
[root@instance-h9cwbr8m ~]# yum install -y yum-utilsLoaded plugins: langpacks, versionlockExcluding 1 update due to versionlock (use "yum versionlock status" to show it)Package yum-utils-1.1.31-54.el7_8.noarch already installed and latest versionNothing to do[root@instance-h9cwbr8m ~]# 
--设置镜像仓库 yum-config-manager \ --add-repo \ http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
--先更新yum软件包索引 yum makecache fase
--docker社区、ee企业版 ce为社区版 官方推荐使用ce版,默认安装最新的docker版本,也可以指定版本安装 yum install docker-ce docker-ce-cli containerd.io
--启动systemctl start dockerdocker version
--查看镜像docker images
--创建网络docker network create ele
--常用命令-- 查看容器docker psdocker ps -a-- 启动docker start 容器iddocket restart 容器id-- 停止docker stop 容器id
复制代码

还可以使用镜像加速器


2、Jdk 安装

地址: http://www.oracle.com/technetwork/articles/javase/index-jsp-138363.html, 选择相应的 .gz 包下载

/usr/local/developtar -zxvf jdk-7u60-linux-x64.gz -C /usr/local/develop
vi /etc/profile-- 追加PATH=$PATH:/usr/local/nginx/sbinexport JAVA_HOME=/usr/local/develop/jdk1.8.0_391export PATH=$JAVA_HOME/bin:$PATHexport CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jarexport JRE_HOME=$JAVA_HOME/jreexport PATH
-- 生效source /etc/profile
-- 查看版本java -version
复制代码


3、nacos 安装
地址:https://github.com/alibaba/nacos解压:/usr/local/develop修改application.xml修改Connect URL of DB
--启动sh startup.sh -m standalone -p 8848
复制代码


4、gateway 安装
spring:  application:    name: gateway  profiles:    default: prod  cloud:    nacos:      discovery:        server-addr: ${REGISTER_HOST:}:${REGISTER_PORT:}        group: prod        namespace: ele-server      config:        server-addr: ${spring.cloud.nacos.discovery.server-addr}        file-extension: yml        namespace: ele-server        group: ele-gateway        extension-configs:          - data-id: gateway.yml            group: ele-gateway            refresh: true      username:       password:    gateway:      routes:        - id: ele-data          uri: lb://ele-data          predicates:            - Path=/api/data/**          filters:            - StripPrefix=1        - id: ele-wechat          uri: lb://ele-wechat          predicates:            - Path=/api/wechat/**          filters:            - StripPrefix=1        - id: ele-cms          uri: lb://ele-cms          predicates:            - Path=/api/cms/**          filters:            - StripPrefix=1
复制代码

跨域


@Configuration@Slf4jpublic class CorsConfig {    @Bean    public CorsWebFilter corsFilter(){        UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource(new PathPatternParser());        source.registerCorsConfiguration("/**", buildConfig());        return new CorsWebFilter(source);    }
private CorsConfiguration buildConfig(){ CorsConfiguration corsConfiguration = new CorsConfiguration(); //在生产环境上最好指定域名,以免产生跨域安全问题 corsConfiguration.addAllowedOriginPattern("*"); corsConfiguration.addAllowedHeader("*"); corsConfiguration.addAllowedMethod("*"); corsConfiguration.setAllowCredentials(true); return corsConfiguration; }}
复制代码


5、nginx 安装


sudo yum updatesudo yum install epel-releasesudo yum install nginxsudo systemctl start nginx
cd /etc/nginx/nginx.confsudo /usr/sbin/nginx -s reload
一个https配置server { listen 80; server_name 域名; rewrite ^(.*)$ https://${server_name}$1 permanent; error_log /home/ele/nginx_log/mini/error.log; access_log /home/ele/nginx_log/mini/access.log;}

server { listen 443 ssl; server_name 域名;
ssl_certificate cert/*.pem; --自行修改 ssl_certificate_key cert/*.key; --自行修改 ssl_session_timeout 5m; ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4; ssl_protocols TLSv1 TLSv1.1 TLSv1.2; ssl_prefer_server_ciphers on;
location / { root /home/admin/application/cms/dist; index index.html; }}
复制代码


6、xxl-job 安装
-- 下载docker pull xuxueli/xxl-job-admin:2.3.0
-- 启动docker run -d \-e PARAMS="--spring.datasource.url=jdbc:mysql://数据库地址?useUnicode=true&characterEncoding=UTF-8&autoReconnect=true&serverTimezone=UTC \--spring.datasource.username= \--spring.datasource.password= \--spring.datasource.driver-class-name=com.mysql.jdbc.Driver" \-p 8080:8080 \-v /application/datas/xxjob/applogs:/data/applogs \--name ele-xxl-job-admin-2.3.0 \-d xuxueli/xxl-job-admin:2.3.0
复制代码


7、rabbitmq 安装
docker search rabbitmqdocker pull rabbitmqdocker run -d --name rabbitmq -p 15672:15672 -p 5672:5672 rabbitmq:management
-d 后台运行容器;--name 指定容器名;-p 指定服务运行的端口(5672:应用访问端口;15672:控制台Web端口号);-v 映射目录或文件;--hostname 主机名(RabbitMQ的一个重要注意事项是它根据所谓的 “节点名称” 存储数据,默认为主机名);-e 指定环境变量;(RABBITMQ_DEFAULT_VHOST:默认虚拟机名;RABBITMQ_DEFAULT_USER:默认的用户名;RABBITMQ_DEFAULT_PASS:默认用户名的密码)
--延迟插件安装rabbitmq_delayed_message_exchange这个插件可以到 https://www.rabbitmq.com/community-plugins.html 下载
--copy插件docker cp rabbitmq_delayed_message_exchange-3.12.0.ez 容器id:/opt/rabbitmq/plugins--进入容器内docker exec -it 容器id /bin/bash--启动插件rabbitmq-plugins enable rabbitmq_delayed_message_exchange
复制代码


8、ecs 添加 sudo、shell 脚本
-- 添加sudo账号sudo groupadd 组名sudo useradd -m -g 组名 -s /bin/bash 用户名sudo passwd 用户名提示输入秘密
sudo usermod -aG 组名 用户名
su root
vi /etc/sudoers 中找到root权限,添加用户名 ALL=(ALL) ALL
复制代码


docker日志清理,设置容器日志大小sudo vim /etc/docker/daemon.json{"log-driver":"json-file","log-opts": {"max-size":"500m", "max-file":"3"}}
--添加脚本/usr/local/script/cut_log.shcd 日志路径 && find . -type f ( -name ".log" -o -name ".zip" ) -mtime +6 | xargs rm -f;cd 日志路径 && find . -type f ( -name ".log" -o -name ".zip" ) -mtime +6 | xargs rm -f;
--设置1天清理一次crontab -e0 1 * * * sh /usr/local/script/cut_log.sh >/dev/null 2>&1
复制代码


用户头像

智慧源点

关注

终身学习、研究java架构、ai大模型 2019-12-06 加入

商业合作: wytwhdwdd

评论

发布
暂无评论
记一次阿里云服务器中挖矿木马的过程_智慧源点_InfoQ写作社区