首页 / 博客 / 本文

从零加固一台 Linux 服务器:防止被入侵与被当肉鸡的 20 项检查

🛡️ 服务器安全📅 2026-08-26⏱ 12 分钟

一台暴露在公网的服务器,从开机到被扫描器盯上平均只需要 几十秒。暴力破解、漏洞利用、挖矿木马、代理肉鸡……攻击是全自动的,防守也必须全自动。本文给出我在生产环境落地的 20 项加固清单,覆盖 SSH、防火墙、内核、进程与更新五个层面。

先做备份。任何加固操作前,先确认有回滚手段:云厂商快照、关键配置 tar 归档、能进入救援模式。加固是为了防别人,别先把自己锁在外面。

一、SSH:第一道也是最重要的一道门

1. 改用密钥登录并禁用密码

# 本地生成密钥(Ed25519 优于 RSA)
ssh-keygen -t ed25519 -C "server-admin"
ssh-copy-id -i ~/.ssh/id_ed25519.pub root@SERVER_IP
# 确认能密钥登录后:
vim /etc/ssh/sshd_config
PasswordAuthentication no
PermitRootLogin prohibit-password

禁用密码登录后,暴力破解直接失效。保留 root 密钥登录,日常操作建议再建普通用户 + sudo。

2. 限制重试与空闲断开

MaxAuthTries 3
LoginGraceTime 30
ClientAliveInterval 300
ClientAliveCountMax 2

二、防火墙:默认拒绝一切入站

3. UFW 白名单策略

apt install ufw
ufw default deny incoming
ufw default allow outgoing
ufw allow 22/tcp   # SSH
ufw allow 80/tcp   # HTTP
ufw allow 443/tcp  # HTTPS
ufw enable

原则:只开必要的端口。数据库、Redis、管理后台一律只监听 127.0.0.1,绝不暴露公网。

4. fail2ban 自动封禁

apt install fail2ban
# /etc/fail2ban/jail.local
[sshd]
enabled = true
maxretry = 5
bantime  = 1h
findtime = 10m

被扫到连续失败 5 次即封禁一小时,配合 UFW 动作实现 IP 级拦截。

三、内核:堵住协议层漏洞

5. sysctl 加固配置

# /etc/sysctl.d/99-hardening.conf
net.ipv4.tcp_syncookies = 1              # SYN Flood 防护
net.ipv4.conf.all.rp_filter = 1         # 反地址欺骗
net.ipv4.conf.all.accept_source_route = 0
net.ipv4.conf.all.accept_redirects = 0
net.ipv4.icmp_echo_ignore_broadcasts = 1
net.ipv4.conf.all.log_martians = 1
kernel.randomize_va_space = 2           # ASLR 强化
kernel.kptr_restrict = 1
fs.suid_dumpable = 0                    # 禁止特权进程产生 core dump
sysctl --system

四、进程与文件:识别肉鸡化的痕迹

6. 高危进程排查

ps aux --sort=-%cpu | head -20
# 挖矿木马关键词
ps aux | grep -iE 'xmrig|minerd|kdevtmpfsi|kinsing'

7. 计划任务审计

crontab -l && ls -la /etc/cron.d/ /etc/cron.daily/

肉鸡木马最常见的持久化手段就是写 cron 每分钟拉取新负载,看到陌生 URL 的 cron 立刻清掉。

8. 端口与连接审计

ss -tlnp          # 谁在监听
ss -tnp | head    # 谁在向外连(可疑外连 = 数据外传)

五、更新与基线:让漏洞无处可钻

9. 开启自动安全更新

apt install unattended-upgrades
dpkg-reconfigure unattended-upgrades  # 选择 yes

10. 最小化攻击面

六、日常巡检三件套

工具用途频率
fail2ban-client status查看封禁统计每周
ss -tlnp端口变化监控每周
ps aux --sort=-%cpuCPU 异常(挖矿特征)每日
总结。安全不是一次性工程,而是「默认拒绝 + 最小权限 + 持续监控」的循环。先做 SSH 密钥化、UFW、fail2ban、自动更新这四件套,你就已经挡住了 90% 的自动化攻击。
#Linux#安全加固#运维#DevOps
广告