Featured image of post Linux 安全加固:EDR 部署、OpenSSH 9.8 升级与挖矿病毒排查

Linux 安全加固:EDR 部署、OpenSSH 9.8 升级与挖矿病毒排查

Linux 服务器安全三件套:EDR Agent 一键部署、OpenSSH 8.2 CVE-2020-15778 升级、c3Pool 挖矿病毒应急排查

一、为什么 2022 年要谈 Linux 安全加固

2020-2022 年是国内挖矿木马最高峰的两年——Log4j2(2021-12 CVE-2021-44228)、Confluence(2021-2022)、Spring4Shell(2022-03 CVE-2022-22965)接连爆出,攻击者用漏洞横向打穿企业内网植入 c3Pool / MoneroOcean 等矿池挖矿代理。本文整理三件套

  1. EDR Agent 一键部署——商用 EDR(终端检测与响应)平台让运维少背锅
  2. OpenSSH 9.8 升级——修 CVE-2020-15778(OpenSSH 8.2 scp 命令注入)等高危漏洞
  3. 挖矿病毒应急排查——c3Pool 类挖矿木马的发现、定位、清理流程

本文写于 2022-05-15。OpenSSH 9.8 是 2024-07 发布的(本文示例为 9.8p1),但编译升级流程对所有 OpenSSH 大版本升级都适用。

二、EDR Agent 一键部署

EDR(Endpoint Detection and Response)平台——奇安信天擎、深信服 EDR、亚信安全、青云 Radware 等——都提供 Linux 客户端(agent)。商业 EDR 的标准装法是从管理控制台下载安装包,到终端一键部署

2.1 命令行部署(标准动作)

1
2
3
4
wget --no-check-certificate https://<管理平台IP>:4430/download_installer_linux.php \
     -O linux_edr_installer.tar.gz \
&& tar -xzvf linux_edr_installer.tar.gz \
&& ./agent_installer.sh -c
  • 4430 是 EDR 管理平台默认端口
  • -c:无参安装,从同目录的 manager_info.txt 读取管理平台地址

2.2 下载器部署(手动拷贝安装包)

  1. 登录管理控制台,下载 Linux 安装包

  2. 拷贝到服务器(scp / ftp / U 盘)

  3. 解压:

    1
    
    tar -xzvf linux_edr_installer.tar.gz
    
  4. 装:

    1
    2
    3
    4
    5
    6
    7
    
    # 无参安装(用同目录 manager_info.txt)
    ./agent_installer.sh
    
    # 自定义安装
    ./agent_installer.sh -f
    ./agent_installer.sh -h <mgr-domain-or-ip>
    ./agent_installer.sh -h <mgr-host> -p 443 -d /root/edr/ -f
    

参数列表:

参数作用
-h host自定义管理平台域名 / IP
-p port自定义管理平台端口(默认 4430)
-d dir自定义安装路径(绝对路径)
-f强制安装(覆盖已有)
--help帮助

装完 agent 会自动连管理平台,进程通常叫 edr_agent / qax-anti-virus 之类。

2.3 验证

1
2
3
4
5
6
7
8
ps -ef | grep -i agent
# 看 EDR 进程是否在

netstat -antp | grep <管理平台IP>
# 看是否建立了到管理平台的连接

tail -f /var/log/edr/edr.log
# 看 agent 日志

坑提醒:EDR agent 启动会占 200-500MB 内存 + 5-10% CPU,对老旧业务机器要提前评估。

三、OpenSSH 升级:修 CVE-2020-15778

CVE-2020-15778(CVSS 7.8 高危):OpenSSH 8.2 的 scp 命令存在命令注入漏洞——scp 在处理 scp tgt:'echo test > /tmp/hack' 这种参数时,反引号会被执行OpenSSH 9.8p1(2024-07)已修复

3.1 走系统源升级

1
2
3
sudo apt update && sudo apt -y upgrade
# 或 CentOS
sudo yum update openssh

大部分 LTS 发行版会自动 backport 修复,直接 apt upgrade 就够了——但版本号可能不会升到 9.8p1

3.2 源码编译升级(需要 9.8p1 完整版本)

3.2.1 装依赖

1
2
3
sudo apt update
sudo apt install build-essential zlib1g-dev libssl-dev -y
sudo apt install autoconf -y

3.2.2 准备 PrivSep 目录

1
2
3
sudo mkdir /var/lib/sshd
sudo chmod -R 700 /var/lib/sshd/
sudo chown -R root:sys /var/lib/sshd/

3.2.3 装额外依赖(Kerberos / PAM / SELinux)

1
sudo apt install libpam0g-dev libselinux1-dev libkrb5-dev -y

3.2.4 下载 + 编译

1
2
3
4
5
6
7
8
9
curl -O https://cdn.openbsd.org/pub/OpenBSD/OpenSSH/portable/openssh-9.8p1.tar.gz
sudo tar -zxf openssh-9.8p1.tar.gz
cd openssh-9.8p1
sudo autoreconf
sudo ./configure --with-kerberos5 --with-md5-passwords --with-pam \
                 --with-selinux --with-privsep-path=/var/lib/sshd/ \
                 --sysconfdir=/etc/ssh
sudo make
sudo make install

3.2.5 重启 + 验证

1
2
3
4
sudo systemctl restart ssh
sudo systemctl status ssh
ssh -V
# OpenSSH_9.8p1, OpenSSL 1.1.1f  31 Mar 2020

坑提醒 1:升级前先开两个 SSH 会话——一个升级、一个监视。万一升级失败,被踢出来时还有回退渠道。

坑提醒 2:编译时如果报 configure: error: OpenSSL library not found,装 libssl-dev(Debian/Ubuntu)或 openssl-devel(RHEL/CentOS)。

坑提醒 3:升级后 /etc/ssh/sshd_config 不会自动更新——但 sshd_config 5.x → 9.x 兼容性一般没问题。

四、挖矿病毒应急排查

c3Pool、MoneroOcean、Supportxmr 等门罗币矿池是国内挖矿木马最常用的"回传通道"。特征:

  • 进程名随机(f54e90d4 / ntools / WbeGGvQK / kthrotlds 等)
  • CPU 持续 80%+
  • 跟矿池的 3333 / 5555 / 7777 / 14444 / 14433 等端口建连
  • cron 里写 */5 * * * * /tmp/.x/...
  • /etc/cron.d//var/spool/cron//etc/rc.local 被改

4.1 排查步骤

第 1 步:看 CPU 占用

1
top -u <被怀疑的用户>

或精确找挖矿进程:

1
ps -ef | grep -E 'kdevtmpfsi|kinsing|xmrig|minerd|c3pool' | grep -v grep

第 2 步:查网络连接

1
2
3
4
5
# 看跟可疑矿池的连接
ss | grep -i :3333
ss | grep -i :14444
ss | grep -i :14433
netstat -antp | grep -E ':(3333|5555|7777|14444|14433)\s'

第 3 步:查定时任务

1
2
3
4
5
crontab -l
ls -la /etc/cron.d/
ls -la /etc/cron.daily/ /etc/cron.hourly/ /etc/cron.weekly/
ls -la /var/spool/cron/
cat /etc/rc.local

第 4 步:看启动项

1
2
3
systemctl list-unit-files | grep enabled
# 找可疑的 .service
cat /etc/systemd/system/<可疑>.service

第 5 步:杀进程 + 删文件

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
# 杀进程
pkill -9 -u <被感染用户>
# 或按 PID
ps -ef | grep -i xmrig | grep -v grep | awk '{print $2}' | xargs kill -9

# 删文件
rm -rf /tmp/.x/
rm -rf /var/tmp/.cache/
rm -rf /root/.configrc/

# 删用户
userdel -r <被感染用户>

# 清空可疑 crontab
crontab -r

第 6 步:改密码 + 收口

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
passwd root
# 改所有用户密码
# 撤 SSH 密钥
rm -f /root/.ssh/authorized_keys
rm -f /home/*/.ssh/authorized_keys

# 关可疑端口(防火墙)
iptables -A INPUT -p tcp --dport 3333 -j DROP
iptables -A INPUT -p tcp --dport 14444 -j DROP

# 查 SSH 登录历史
last -a | grep -i still
# 找可疑 IP

4.2 排查命令速查

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
# 1. 看哪些用户登录了
last -a

# 2. 看哪些 SSH 进程在工作
ps -ef | grep sshd | grep -v grep
netstat -antp | grep 'ESTABLISHED.*sshd'

# 3. 查进程工作目录
ps -ef | grep -i xmrig
pwdx <PID>
ll /proc/<PID>/cwd
# /proc/<PID>/cwd 是进程当前工作目录的软链接

# 4. 查被修改的二进制
rpm -Va | grep -E '^..5'      # CentOS / RHEL
debsums -c                    # Debian / Ubuntu
# 5=MD5 不一致 → 二进制被替换

4.3 应急清单

步骤命令目的
1. 隔离iptables -I INPUT -s <可疑IP> -j DROP阻断攻击者 SSH 入口
2. 拍快照云盘快照 / LVM 快照保留现场取证
3. 杀进程pkill -9 -u <user>中断挖矿
4. 删文件rm -rf /tmp/.x/清掉二进制
5. 改密码passwd root防止再次入侵
6. 收口封 3333/14444 等矿池端口防止复连
7. 复盘查 SSH 弱口令 / 未授权密钥 / 0day找到入侵路径

五、SSH 攻击 IP 黑名单(fail2ban 思路)

fail2ban 是 Linux 标配的 SSH 防护工具——连续登录失败 N 次自动封 IP。

1
2
3
4
5
6
# Debian / Ubuntu
sudo apt install -y fail2ban

# CentOS / RHEL
sudo yum install -y epel-release
sudo yum install -y fail2ban

/etc/fail2ban/jail.local

1
2
3
4
5
6
7
8
9
[sshd]
enabled  = true
port     = ssh
filter   = sshd
logpath  = /var/log/secure         # CentOS
# logpath = /var/log/auth.log      # Ubuntu
maxretry = 5
findtime = 600
bantime  = 3600

启动:

1
2
sudo systemctl enable --now fail2ban
sudo fail2ban-client status sshd

六、典型坑速查

现象原因处理
OpenSSH 编译失败libssl-dev / libpam0g-dev走 §3.2.1 装依赖
SSH 升级后无法登录sshd_config 配错控制台 / VNC 登录修 /etc/ssh/sshd_config
EDR agent 装不上服务器断网 / 平台端口不通走 §2.2 下载器部署
userdel 失败用户还有进程在跑pkill -u <user> && userdel -r <user>
crontab -e 提示 “no crontab for root”crontab 已被清空这是好事,再 crontab -e 重新建
矿池连不上但 CPU 仍高杀的是单进程、还有其他变种pkill -9 -u <user> 一刀切

七、2024+ 视角补充

本文写于 2022-05,2024-2026 期间 Linux 安全加固关键演进:

  • OpenSSH 9.8 → 9.9 → 10.0(2024-2026):
    • OpenSSH 9.9(2024-09):后量子算法默认启用(ML-DSA / hybrid Streamlined NTRUPrime)
    • OpenSSH 10.0(2025-04):dropbear 替代品DSA 主机密钥完全移除
    • CVE-2024-6387(regreSSHion):OpenSSH 8.5p1 ~ 9.7p1 的 signal handler race condition——远程 RCE 漏洞,必须升 9.8p1+(2024-07 修复)
  • EDR 生态(2024-2026):
    • CrowdSec 1.0+(2024):社区共享 IP 黑名单——fail2ban 的现代替代,集成 fail2ban bouncer 兼容
    • Wazuh 4.9+(2025):开源 EDR / SIEM——OSSEC 演进版,机器学习检测 / 合规基线
    • Falco 0.40+(2025):CNCF 毕业——运行时安全(eBPF),K8s 安全监控首选
    • Tetragon 1.0+(2024):eBPF 驱动的 K8s 安全——Cilium 出品
    • Tracee 1.0+(2024):Aqua Security 出品,运行时威胁检测
  • 挖矿木马演化(2024-2026):
    • 门罗币(XMR) 仍是主流,2024+ 出现 AI 挖矿(LLM 模型训练)——更隐蔽
    • APT 组织 从挖矿转向勒索 + 数据窃取双驱动——纯挖矿变少
    • 供应链投毒 2024+ 高发(XZ Utils 后门 CVE-2024-3094 / Polkit 提权
  • EDR 商业方案(2024+):
    • CrowdStrike Falcon(2024-07 全球蓝屏事件后信任度下降,但仍是主流)
    • Microsoft Defender for Endpoint / Linux:2024+ 集成 K8s,Linux Server 端默认
    • 阿里云 / 腾讯云 安骑士 / 云安全中心:国内云上 EDR 首选

实战建议(2025-2026 视角)

  • SSH 安全 → 立即升 OpenSSH 9.8p1+(修 CVE-2024-6387)
  • EDR 选型
    • 预算充足 / 企业 → CrowdStrike / Microsoft Defender
    • 开源 / 自托管Wazuh 4.9+(SIEM + EDR) / Falco(K8s)
  • 挖矿防护CrowdSec 替代 fail2ban(社区共享 IP 黑名单)
  • 白名单 → SELinux Targeted + OpenSCAP(合规基线扫描)
  • 云原生Falco + Tetragon 是 2024-2026 K8s 安全黄金组合

八、下一步

  • 想做更细的病毒查杀 → 上 OSSEC / Wazuh / ClamAV 等开源 EDR
  • 想做 SSH 集中管理 → 走堡垒机(齐治 / 安恒 / JumpServer)
  • 想做内网横向流量检测 → 上 NDR(科来、东巽科技、聚铭网络)
  • 想给服务器上白名单模式 → 走 SELinux Targeted 策略或 AppArmor

参考资料

使用 Hugo 构建
主题 StackJimmy 设计