最近圈子里不少朋友哭诉,本来想薅羊毛搞个廉价VPS搭个梯子或者挂个网站,结果没过多久就收到了DC的滥用警告邮件——服务器被拿去当肉鸡扫段、发垃圾邮件了。这种事儿在2026年依然高发,毕竟自动化脚本满天飞,弱密码和默认配置简直就是黑产的自助餐厅。

如果你不幸“中招”,或者还没中招但想未雨绸缪,这篇保姆级的安全加固指南建议你反复阅读。咱们不整那些虚头巴脑的理论,直接上能落地、能保命的实操方案。

第一步:止损与排查(如果你已经中招)

先别急着改密码,黑客可能还留了后门。正确的姿势是:

  1. 先拔网线:如果是云服务器,直接在控制台关机,切断外部连接,防止黑客继续操作或者清除痕迹。
  2. 不要盲目信任旧系统:如果数据不是特别重要(比如只是个跳板机),最安全的办法是重装系统。不要试图去手动查杀,Linux下的Rootkit隐藏能力极强,你看到的干净未必是真的干净。
  3. 必须做的操作:如果你必须保留数据,先把/var/log、/etc/passwd、/var/spool/cron等关键目录打包备份下来,然后分析日志。

第二步:账户安全——拒绝弱口令

绝大多数入侵都是因为弱密码。无论你觉得你的密码多复杂,只要是字典里有的,在爆破面前都不值一提。

  1. 禁用Root远程登录:这是铁律。创建一个普通用户,赋予sudo权限,以后只用这个普通用户登录,需要root权限时再sudo。
    # 编辑SSH配置文件
    sudo vi /etc/ssh/sshd_config
    # 找到 PermitRootLogin yes 改为 PermitRootLogin no
    sudo systemctl restart sshd
    
  2. 强制强密码策略:安装 libpam-pwquality(CentOS/RHEL系默认可能已有),在 /etc/login.defs/etc/pam.d/system-auth 中配置最小长度、复杂度要求。
  3. 清理无用账户:检查 /etc/passwd,把系统默认的、带有shell权限的陌生账户或多余的账号统统锁掉或删掉。

第三步:SSH的“变态”级加固

SSH是服务器的大门,既然大门容易被人撞,那就把它焊死,只留个专门的小窗户。

  1. 修改默认端口:把默认的22端口改成一个非常偏门的五位数端口(比如 22222-59999 之间)。这挡不住定向扫描,但能避开绝大多数全网段的无差别盲扫。
  2. 只允许密钥登录:这才是最关键的一步。密码登录在算力面前不堪一击,但密钥很难爆破。
    • 在本地生成密钥对(ssh-keygen)。
    • 把公钥上传到服务器的 ~/.ssh/authorized_keys
    • /etc/ssh/sshd_config 中设置 PasswordAuthentication no
    • 注意:设置前务必确保本地能私钥登录进去,否则把自己锁外面了就只能进VNC救急了。
  3. 使用 Fail2ban 保卫大门:即使改了端口,依然会有不怕死的尝试连接。安装 Fail2ban,自动封禁那些频繁输错密码的IP。
    # Debian/Ubuntu
    sudo apt install fail2ban
    # 复制默认配置
    sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
    # 启动服务
    sudo systemctl enable fail2ban
    sudo systemctl start fail2ban
    

第四步:防火墙不仅仅是能用

很多云厂商其实提供了外层防火墙(安全组),这比服务器内部的防火墙(iptables/nftables/ufw)效率更高。建议双重防护。

  1. 安全Group策略:只开放出必要的端口。比如 web 服务器只开 80/443,SSH 只开你修改后的那个特定端口,且来源IP最好限制(如果条件允许)。
  2. 内部防火墙规则
    • 白名单机制:默认 DROP 所有入站流量,只允许 ESTABLISHED, RELATED 的回包,以及你需要明确开放的端口。
    • 常用工具:UFW 对新手很友好(Ubuntu标配),CentOS可以用 Firewalld。
    # UFW 简单示例
    sudo ufw default deny incoming
    sudo ufw default allow outgoing
    sudo ufw allow ssh # 如果你没改ssh服务名,或者 allow 端口
    sudo ufw allow 80/tcp
    sudo ufw enable
    

第五步:软件组件的自动更新

很多漏洞都存在于老旧的Web组件中(ThinkPHP、Struts2那一堆历史漏洞)。除了系统补丁,应用层面的维护更重要。

  1. 开启自动安全更新
    • Ubuntu/Debian: 安装 unattended-upgrades
    • CentOS: 配置 yum-crondnf-automatic。 虽然这偶尔可能导致服务异常(概率较低),但比被黑客打穿要好得多。
  2. 只装需要的软件:服务器不是玩具机,别装一堆乱七八糟的桌面环境、甚至奇怪的脚本。每多装一个软件,就多一个攻击面。

第六步:善用工具进行体检

如果你怀疑系统已经被污染,或者想看看系统哪里有漏洞,可以用一下这些工具:

  • Lynis:开源的安全审计工具,跑一遍它会告诉你系统配置哪里不安全,甚至能给出加固建议命令。
  • RKHunter (Rootkit Hunter):专门检测系统级的Rootkit。
  • Chkrootkit:同样是查杀木马的好帮手。

写在最后

安全是一个动态的过程,不是装完防火墙就完事了。对于个人开发者或小站长来说,**“最小权限原则”“密钥登录”**是性价比最高的两招。别偷懒,今天的省事就是明天的滥用警告邮件。

如果你的服务器主要用途是个人代理或科学上网,推荐配合Cloudflare WARP或者相关的CDN隐藏源站IP,让黑客连你的大门都找不到,这才是终极物理防御。

标签: none

AI Skills Smart Station on Nick Launches

评论已关闭