Postgresql 12 服务器随机意外宕机,已获发送关闭信号的进程PID,如何解决?
问题根源确认
你的服务器已经被Kinsing挖矿木马入侵,PostgreSQL异常宕机是木马执行恶意脚本时主动触发的数据库关闭操作。入侵路径为攻击者利用PostgreSQL的COPY FROM PROGRAM超级权限执行任意系统命令,成功拿到服务器操作权限后植入挖矿程序。
分步修复方案
第一步:彻底清除挖矿木马残留
- 终止恶意进程:执行
ps aux | grep -E 'kinsing|c3pool_miner'查询所有恶意进程PID,用kill -9 <PID>强行终止,随后执行rm -rf /tmp/*清理临时目录下的恶意文件(如果/tmp目录存储了业务文件请提前备份) - 删除恶意服务:执行
systemctl stop c3pool_miner.service && systemctl disable c3pool_miner.service,然后进入/etc/systemd/system/目录删除对应的恶意service配置文件 - 清理异常计划任务:执行
crontab -l检查当前用户的定时任务,同时遍历/etc/cron.d/、/var/spool/cron/目录下的所有文件,删除陌生的定时执行脚本 - 排查异常账号:执行
cat /etc/passwd查看是否有新增的陌生高权限用户,确认后直接删除可疑账号
第二步:修复PostgreSQL安全漏洞,堵死入侵路径
- 关闭数据库公网暴露:如果无外网访问数据库的需求,修改
postgresql.conf配置listen_addresses = '127.0.0.1',仅允许本地访问;如果必须公网访问,修改pg_hba.conf仅允许指定IP段连接,禁止使用0.0.0.0/0这类全通规则 - 禁用高危功能:修改
postgresql.conf添加配置allow_system_table_modifications = off,同时给业务账号降权,不要用超级用户admin对接Django业务,单独创建仅拥有业务库读写权限的普通账号使用 - 更换强密码:所有数据库账号的密码替换为12位以上,包含大小写、数字、特殊字符的强密码
- 升级修复已知漏洞:执行
apt update && apt install --only-upgrade postgresql-12将PostgreSQL 12升级到最新小版本,修复已公开的CVE安全漏洞
第三步:系统层面安全加固
- 配置端口防火墙:用ufw配置防火墙规则,仅放开业务必需的端口(如80、443、SSH端口),其他端口全部禁止公网访问
- SSH登录加固:禁用root账号SSH登录,禁用密码登录改用SSH密钥登录,将SSH默认22端口修改为高位端口
- 安装病毒防护工具:安装
rkhunter、clamav工具,配置每周定时自动扫描查杀病毒 - 排查SQL注入风险:确认Django所有数据库操作都使用ORM实现,禁止手动拼接SQL语句,避免注入攻击获取数据库权限
第四步:验证修复效果
所有操作完成后重启服务器,观察2-3天确认PostgreSQL无异常宕机,每日查看PostgreSQL运行日志,确认无异常SQL执行记录即可。
内容的提问来源于stack exchange,提问作者AminA2
相关产品推荐
相关产品推荐

