零一空天网 - SSH安全
type: channel
link: https://m.001kt.com/tag/SSH%E5%AE%89%E5%85%A8/
items: 你的VPS真的安全吗？我从被"黑"到全面加固的血泪史

你的VPS真的安全吗？我从被"黑"到全面加固的血泪史
type: item
date: 2026-06-27T08:57:02+08:00
description: 目录 引子：一个让人后背发凉的下午 为什么你的VPS总在被攻击？ SSH安全：第一道防线也是最后一道 防火墙：不会配就别谈安全 系统更新：别做那个"等会儿再更"的人 日志监控：坏人一定会留下脚印 总结：安全不是一锤子买卖 引子：一个让人后背发凉的下午老实说，写这篇文章的念头，来自于上周一个朋友的求救电话。电话那头的声音很急："兄弟，我的VPS被人搞了，网站全打不开了，数据库里的数据也被人删了，桌面还留了个txt文件，写着'你的服务器已被我拿下'……"我当时的第一反应不是同情，而是——你信不信，90%的VPS被入侵，都是主人自己把门打开请人进来的。我扫了一眼他的配置：默认22端口、root密码是Admin123!、防火墙？没开。Fail2ban？没装。系统更新？买来之后一次都没更新过。这不就是"我家大门常打开，开放怀抱等你"吗？回想我的过去，从2007年第一次买VPS到现在，踩过的坑、被黑的经历，加起来能写一本小册子。今天就把这些用真金白银换来的经验，一一分享给你。希望对你有用。为什么你的VPS总在被攻击？很多人觉得："我的VPS上又没什么重要数据，谁闲得没事来攻击我？"这种想法，我称之为"掩耳盗铃式安全"。试想一下——互联网上有多少扫描器？Shodan、Censys这些搜索引擎，每天都在全网扫描开放的端口。你只要把VPS开机、连上网，不出24小时，你就能在登录日志里看到来自俄罗斯、巴西、越南的SSH暴力破解尝试。这不是"会不会被攻击"的问题，而是"什么时候被攻击"的问题。你看，攻击者的逻辑很简单： 1. 扫全网开放的22端口 → 发现你的VPS 2. 用常见的用户名（root, admin, test）尝试密码登录 3. 如果密码太弱 → 拿下 4. 植入挖矿程序 / 勒索病毒 / 变成肉鸡整个过程全自动化，跟你的VPS里有没"价值"半毛钱关系都没有。SSH安全：第一道防线也是最后一道SSH是你的VPS的大门。大门不锁好，后面做再多都是白搭。1. 改端口（别用22）# 编辑 /etc/ssh/sshd_config Port 34567 # 换成你自己的端口号，10000-65535之间随便选 就这么简单的一步，能过滤掉99%的自动扫描攻击。为什么？因为大部分扫描器只扫默认端口。这不香吗？2. 禁止root直接登录PermitRootLogin no 然后创建一个普通用户，用sudo提权：adduser myuser usermod -aG sudo myuser 供你参考：这个习惯是从Amazon的工程师那里学来的。他们内部有一条铁律——永远别用root做日常操作。一个不小心rm -rf /打下去，你就知道什么叫"一夜回到解放前"了。3. 使用密钥登录，禁用密码登录# 在自己的电脑上生成密钥对 ssh-keygen -t ed25519 -C "your_email@example.com" # 把公钥传到VPS ssh-copy-id -p 34567 myuser@your-vps-ip # 然后在sshd_config里 PasswordAuthentication no PubkeyAuthentication yes 为什么是ED25519而不是RSA？ 因为ED25519更安全、速度更快、密钥更短。2024年的今天，再用1024位的RSA就跟给防盗门装了个塑料锁芯一样。4. 安装Fail2banapt install fail2ban 这个工具会自动检测登录失败的IP，达到阈值后直接ban掉。[sshd] enabled = true port = 34567 maxretry = 3 bantime = 86400 配置完后重启服务，你会发现日志里那些烦人的"Failed password"瞬间消失。防火墙：不会配就别谈安全很多VPS服务商默认不提供防火墙，或者只提供了基础的DDoS防护。到操作系统层面，最常用的就是iptables或者它的简化版ufw。ufw default deny incoming ufw default allow outgoing ufw allow 34567/tcp # 你改过的SSH端口 ufw allow 80/tcp # HTTP ufw allow 443/tcp # HTTPS ufw enable 你会发现，如果不配防火墙，你的VPS上可能已经跑了十几个监听端口——有些你甚至都不知道是干嘛的。用netstat -tlnp看一下，如果看到上面有不认识的端口在监听——这就很"刺激"了。系统更新：别做那个"等会儿再更"的人每次我看到有人把VPS买回来装完系统就扔在那儿半年不更新，我就想起一个比喻：你买了一辆车，开回家就把车停在车库里，从来不保养。半年后你发现发动机里全是老鼠窝…