这篇文章是写给谁的? 🧑‍💻

  • 刚刚拥有第一台 VPS(虚拟专用服务器),准备大展拳脚的萌新站长/开发者
  • 对服务器安全有点担心,但又不知从何下手的小白用户
  • 希望用最少的时间,获得最大安全提升务实派
  • (图形界面爱好者?可以试试文末提到的 1Panel 哦!)

预计搞定时间: ⏱️ 30-60 分钟 (跟着做,其实很快!)

😱 前言:刚买的 VPS,就像没锁门的家?

  恭喜!你拥有了自己的 VPS,一片可以在互联网上自由驰骋的“数字领土”!无论是搭建个人博客、跑个小应用,还是学习 Linux,都酷毙了!😎 但是,兴奋之余,一个现实问题摆在面前:这台 VPS 安全吗

  刚开通的 VPS,往往就像一个没锁门、窗户大开的家,暴露在互联网这个“大森林”里。无数自动化的扫描器正在网络上寻找这样的“软柿子”,尝试用默认的用户名(比如 root)和弱密码进行登录。一旦被入侵,你的数据可能丢失,服务器可能变成别人的“肉鸡”(被用来攻击别人或挖矿),甚至你的网站会被挂上乱七八糟的内容。想想都可怕!😨

  别担心!我们这篇教程的目标不是让你成为顶级安全专家(那太难了!),而是教会你几招立竿见影的基础防御术。核心思想很简单:提高攻击者的作案成本。让那些自动扫描的“小毛贼”觉得你这块骨头“不好啃”,知难而退。我们要做的,就是给你的 VPS 穿上基础的“盔甲”,让它不再“裸奔”!

  当然,如果你实在不喜欢敲命令,可以考虑安装像 1Panel (https://1panel.cn/) 这样的现代化服务器运维面板,它们提供了图形化界面来完成很多安全设置。但了解一些基础命令总没错,这篇文章就带你走一遍命令行的加固之路。看看下面这张图,就是 Fail2Ban 拦下的部分恶意登录尝试记录,很有成就感吧!

image-20250414205712614

  ⚠️ 重要提示: 接下来的操作会修改系统配置,虽然我们力求步骤清晰,但误操作仍有风险(比如把自己锁在门外)。强烈建议你在开始前,先去你的 VPS 提供商后台,给服务器创建一个快照(Snapshot)!这是你的后悔药,万一搞砸了,可以一键恢复到操作前的状态。切记!切记!切记!

🛠️ 准备工作:开工前的检查

  确保你手头有这些“工具”和信息:

  • 你的 VPS: 已经可以通过 IP 地址访问。
  • 登录凭证: VPS 的 公网 IP 地址、初始用户名(通常是 root)和初始密码。这些信息一般在 VPS 开通后的邮件或服务商控制台里能找到。
  • 终端工具:
    • Windows 用户: 推荐使用 PuTTY, XShell, 或者 Windows 10/11 自带的 Windows Terminal (可以直接用 SSH 命令)。
    • macOS / Linux 用户: 直接使用系统自带的终端 (Terminal) 就行。
  • 网络: 确保你的电脑能上网,可以连接到 VPS。
  • (可选) 对 Linux 命令行的初步认知: 知道 cd (切换目录), ls (列出文件) 就更好了。完全不懂?没关系,跟着复制粘贴命令就行,我会解释它们是干嘛的。
  • 了解你的系统: 本教程主要以 Ubuntu 22.04 为例。如果你用的是 CentOS 或其他发行版,部分命令(特别是包管理和防火墙)会略有不同,需要注意甄别或自行搜索。你可以登录后通过 cat /etc/os-release 命令查看系统信息。

💪 核心步骤:给 VPS 穿上盔甲!

步骤一:换掉“万能钥匙”,加固登录大门!

  root 用户是 Linux 系统里的“上帝”,拥有最高权限,也是攻击者最喜欢尝试登录的用户名。初始密码通常也比较简单。所以,第一步就是换掉这把“万能钥匙”,并创建一个我们日常使用的新“钥匙”。

  1. 首次登录:

    • 打开你的终端工具。
    • 使用 SSH 命令连接 VPS (将 你的VPS_IP地址 换成实际的 IP):
      ssh root@你的VPS_IP地址
    • 按回车,会提示你输入密码。输入初始密码(输入时通常不显示任何字符,这是正常的),然后回车。
    • 如果看到类似 Welcome to Ubuntu... 的欢迎信息,并且命令提示符变成了 root@你的主机名:~#,就表示登录成功了!
  2. 修改 root 密码 (加固后备钥匙):

    • 虽然我们后面会尽量不用 root 直接登录,但给它设置一个强密码仍然是好习惯。
    • 输入命令:
      passwd
    • 按提示输入新的 root 密码。一定要设置一个超级复杂的密码 (比如15位以上,包含大小写字母、数字、特殊符号),并用密码管理器(如 KeePass, Bitwarden)记下来。
    • 再次输入新密码确认。看到 password updated successfully 就表示修改成功。
  3. 创建你的日常用户 (配一把新钥匙):

    • 我们不应该一直用 root 这个“上帝账号”来操作,风险太高。创建一个普通用户供日常使用更安全。
    • 输入命令 (将 myuser 换成你想要的用户名,比如 neo):
      adduser myuser
    • 按提示为新用户设置一个同样复杂的密码,并确认。
    • 之后会问一些用户信息(Full Name, Room Number 等),可以直接按回车跳过。最后确认信息无误输入 Y
  4. 给新用户“超级权限” (配个管理员徽章):

    • 新用户默认权限很低,很多管理操作做不了。我们需要让它能在需要时“临时变身”成管理员。这就是 sudo 命令的作用。

    • 输入命令 (将 myuser 换成你刚才创建的用户名):

      usermod -aG sudo myuser
    • 💡 小科普:

      • usermod: 修改用户属性的命令。
      • -aG: -a 表示追加(add),-G 表示指定附加组(Group)。
      • sudo: 这是 Ubuntu/Debian 系统里允许普通用户执行管理员命令的那个用户组的名字(CentOS 里通常是 wheel 组)。
      • 这条命令的意思是:把用户 myuser 加入到 sudo 这个组里,让他获得使用 sudo 命令的权力。以后 myuser 想执行管理员命令时,只需在命令前加上 sudo,然后输入自己的密码即可。
  5. 测试新用户:

    • 非常重要! 在进行下一步之前,务必测试新用户能否正常登录并使用 sudo
    • 打开一个新的终端窗口(不要关闭当前的 root 连接,以防万一)。
    • 用新用户登录:
      ssh myuser@你的VPS_IP地址
    • 输入你为 myuser 设置的密码。
    • 登录成功后,尝试执行一个需要管理员权限的命令,比如更新软件包列表:
      sudo apt update
    • 如果提示输入 [sudo] password for myuser:,输入 myuser 的密码后命令能成功执行,那就没问题了!
  6. (可选但强烈推荐) 禁止 root 直接 SSH 登录:

    • 既然我们有了带 sudo 权限的新用户,就没必要让 root 这个最大目标直接暴露在 SSH 登录之外了。
    • 回到你用 root 登录的那个终端窗口(或者用新用户登录后,使用 sudo 编辑文件)。
    • 编辑 SSH 配置文件:
      sudo nano /etc/ssh/sshd_config
      # 如果你还不习惯 nano,可以用 vim: sudo vim /etc/ssh/sshd_config
    • 在文件里找到 PermitRootLogin 这一行。如果前面有 # 号,去掉它。然后把后面的值改成 no
      # Authentication:
      #LoginGraceTime 2m
      PermitRootLogin no # <--- 修改这里!
      #StrictModes yes
      #MaxAuthTries 6
      #MaxSessions 10
    • 保存并退出:
      • nano: 按 Ctrl + O,回车确认文件名,再按 Ctrl + X 退出。
      • vim: 按 Esc,然后输入 :wq 并回车。
    • 重启 SSH 服务使配置生效:
      sudo systemctl restart sshd
    • 再次确认:确保你的新用户 (myuser) 仍然可以通过 SSH 登录。如果可以,那么 root 就无法直接通过 SSH 登录了(但你仍然可以在登录后用 su - 命令切换到 root)。

步骤二:换个“门牌号”,躲开自动扫描!

  SSH 默认使用 22 端口,全世界的攻击者都知道这一点。就像小偷总喜欢先试试 123456 这样的密码一样,自动扫描器也会优先扫描 22 端口。我们把 SSH 端口换成一个不常用的,就能躲开大部分无目的的扫描。

  1. 选择新端口:

    • 选择一个 1024 到 65535 之间的端口号。避免使用容易被猜到或常用的端口(比如 80, 443, 3306, 8080 等)。例如,你可以选个 23456 或者 58722 这样的。记下你选的端口号!
  2. 修改 SSH 配置:

    • 用你的新用户 (myuser) 登录 VPS。
    • 编辑 SSH 配置文件:
      sudo nano /etc/ssh/sshd_config
    • 找到 #Port 22 这一行。
    • 去掉前面的 # 号(取消注释)。
    • 22 改成你选的新端口号,例如 23456
      #Port 22
      Port 23456 # <--- 修改这里!
      #AddressFamily any
      #ListenAddress 0.0.0.0
      #ListenAddress ::
    • 保存并退出 (Ctrl + O, 回车, Ctrl + X)。
  3. 防火墙放行新端口 (非常重要!):

    • 在重启 SSH 服务之前,必须先确保防火墙允许新端口的连接,否则你可能会把自己锁在外面!我们将在下一步详细设置防火墙,但这里先临时或永久地放行新端口。
    • 如果你使用 ufw 防火墙 (Ubuntu 默认):
      sudo ufw allow 23456/tcp  # 将 23456 替换为你的新端口
    • 如果你使用的是云服务商的安全组 (如阿里云、腾讯云、AWS): 你需要登录到服务商的控制台,找到你的 VPS 实例对应的安全组 (Security Group) 或防火墙规则,添加入站规则,允许 TCP 协议访问你的新端口 (例如 23456)。这一步和服务器内部防火墙同样重要!
  4. 重启 SSH 服务:

    • 确保防火墙/安全组已放行新端口后,执行:
      sudo systemctl restart sshd
  5. 测试新端口登录:

    • 立即打开一个新的终端窗口。
    • 使用新的端口号尝试登录 (将 23456 换成你的新端口):
      ssh -p 23456 myuser@你的VPS_IP地址
    • 如果能成功登录,太棒了!以后就都用这个新端口登录了。如果失败,检查你的防火墙/安全组设置是否正确,以及 SSH 服务是否重启成功 (sudo systemctl status sshd)。在确认新端口可用之前,千万不要关闭你之前用旧端口登录的那个连接!

步骤三:筑起“城墙”,只开必要的门!(防火墙 UFW)

  防火墙就像 VPS 的门卫,决定哪些类型的网络连接可以进入,哪些不行。默认情况下,很多 VPS 可能所有端口都是开放的,这很危险。我们将使用 ufw (Uncomplicated Firewall),一个简单易用的防火墙工具(Ubuntu 默认自带),来关闭所有不必要的“门”。

  1. 检查 UFW 是否安装:

    • 通常预装了。可以输入 sudo ufw status 查看。如果提示命令找不到,则需要安装:
      sudo apt update && sudo apt install ufw -y
  2. 设置默认规则 (先关门,再开窗):

    • 这是一个好习惯:先拒绝所有进来的连接,然后只允许我们需要的。
      sudo ufw default deny incoming   # 拒绝所有入站连接
      sudo ufw default allow outgoing # 允许所有出站连接 (VPS 访问外部通常需要)
  3. 开放必要的端口:

    • SSH 端口 (必须!): 确保你修改后的 SSH 端口是开放的!(将 23456 换成你的新端口)
      sudo ufw allow 23456/tcp  # /tcp 表示只允许 TCP 协议
    • Web 服务端口 (如果你要建站):
      sudo ufw allow 80/tcp    # HTTP
      sudo ufw allow 443/tcp # HTTPS
    • 其他服务端口: 如果你运行了其他服务(如 MySQL: 3306, Redis: 6379, Minecraft: 25565 等),也需要在这里显式允许它们。原则是:只开放确实需要对外提供服务的端口
      # 示例:允许 MySQL 端口 (如果你需要远程连接数据库)
      # sudo ufw allow 3306/tcp
  4. 启用 UFW:

    • 确认你已经允许了 SSH 端口! 然后启用防火墙:
      sudo ufw enable
    • 它会警告你这可能中断现有连接,输入 y 确认。
    • 检查状态:
      sudo ufw status verbose
    • 这会列出所有规则和当前状态。确保你的 SSH 端口、HTTP/HTTPS 端口(如果需要)都显示为 ALLOW IN
  5. 管理规则:

    • 查看已添加规则:sudo ufw status numbered
    • 删除规则:sudo ufw delete <规则编号>sudo ufw delete allow <端口号>/<协议>
    • 禁用防火墙:sudo ufw disable (不推荐,除非调试)

  💡 云服务商防火墙提醒: 再次强调,很多云服务商(阿里云、腾讯云、AWS、Google Cloud 等)在 VPS 外层还有一个安全组 (Security Group) 或类似的防火墙。你需要同时在那里配置规则,允许相应的端口入站。两层防护都配置好才算真正生效。

步骤四:部署“哨兵”,自动驱赶“捣乱者”!(Fail2Ban)

  即使你修改了 SSH 端口、用了复杂密码,仍然可能有执着的攻击者找到你的新端口并尝试暴力破解密码。Fail2Ban 就是一个自动化的“哨兵”,它会监控系统日志(比如 SSH 登录日志),发现某个 IP 地址在短时间内多次尝试登录失败,就会自动调用防火墙(比如 UFW)把这个 IP 地址临时封禁一段时间。

  1. 安装 Fail2Ban:
sudo apt update && sudo apt install fail2ban -y
  1. 配置 Fail2Ban (为 SSH 保驾护航):

    • Fail2Ban 的主配置文件是 /etc/fail2ban/jail.conf,但我们不应该直接修改它,因为软件更新时可能会覆盖。正确的做法是创建一个本地配置文件 /etc/fail2ban/jail.local 来覆盖默认设置。

    • 复制配置文件:

      sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
    • 编辑本地配置文件:

      sudo nano /etc/fail2ban/jail.local
      • 找到 [DEFAULT] 部分,这里可以设置全局的封禁参数:
      • bantime: 封禁时长。默认可能是 10m (10分钟)。你可以改成更长,比如 1h (1小时) 或 1d (1天)。
      • findtime: 监控时间窗口。默认 10m。表示如果在 10 分钟内。
      • maxretry: 最大尝试次数。默认可能是 5。表示如果在 findtime 内失败次数达到 maxretry 次,就触发封禁。
      • 你可以根据需要调整这些值,比如:
      [DEFAULT]
      # ... 其他默认设置 ...
      bantime = 1h
      findtime = 10m
      maxretry = 3
    • 向下滚动找到 [sshd] 部分 (或者你自己服务的配置段,比如 [nginx-http-auth])。这是针对 SSH 服务的配置。

      • 确保 enabled = true
      • 重要: 把 port = ssh 改成你实际使用的 SSH 端口号!如果你用了多个端口,可以用逗号隔开。
      [sshd]
      enabled = true
      port = 23456 # <--- 修改为你自己的 SSH 端口!
      # 如果有多个端口: port = 23456,22 (虽然我们建议只用一个非标准端口)
      # filter = sshd # 通常不用改
      logpath = %(sshd_log)s # 通常不用改
      backend = %(sshd_backend)s # 通常不用改
      # maxretry = 5 # 可以覆盖 DEFAULT 设置
      # bantime = 1d # 可以覆盖 DEFAULT 设置
    • 保存并退出 (Ctrl + O, 回车, Ctrl + X)。

  2. 启动并设为开机自启:

sudo systemctl restart fail2ban  # 重启使配置生效
sudo systemctl enable fail2ban # 设置开机自动启动
  1. 检查状态:
    • 查看 Fail2Ban 服务是否运行:sudo systemctl status fail2ban
    • 查看当前启用的 “jails” (监控规则) 和被封禁的 IP:
      sudo fail2ban-client status
      # 查看具体 sshd jail 的状态 (能看到被 ban 的 IP 列表)
      sudo fail2ban-client status sshd
    • 手动解封 IP (如果你不小心把自己封了):
      sudo fail2ban-client set sshd unbanip <你的IP地址>

  有了 Fail2Ban 这个尽职的哨兵,那些无休止的暴力破解尝试就会被大大遏制!

步骤五:扔掉密码,用更安全的“钥匙”开门!(SSH 密钥登录)

  密码登录总有被猜到或泄露的风险。SSH 密钥登录是一种更安全的认证方式。它使用一对密钥:私钥 (你保管,相当于你的钥匙) 和 公钥 (放在服务器上,相当于锁芯)。只有用你的私钥才能“打开”服务器上的锁芯。这种方式极难被暴力破解。

  1. 在你的本地电脑生成密钥对:

    • 打开你本地电脑的终端 (Windows 可以用 PowerShell 或 Git Bash)。
    • 运行命令:
      ssh-keygen -t ed25519 -C "your_email@example.com"
      # 或者使用 RSA 密钥 (兼容性更好,但 ed25519 更现代、更安全)
      # ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
    • 💡 小科普:
      • -t ed25519: 指定密钥类型为 Ed25519 (推荐)。
      • -t rsa -b 4096: 指定类型为 RSA,强度为 4096 位 (也很安全)。
      • -C "...": 添加一个注释,通常用邮箱,方便识别。
    • 会提示你保存密钥文件的位置,通常直接回车使用默认路径即可:
      • Linux/macOS: ~/.ssh/id_ed25519 (私钥) 和 ~/.ssh/id_ed25519.pub (公钥)
      • Windows: C:\Users\你的用户名\.ssh\id_ed25519id_ed25519.pub
    • 接着会提示你设置密码短语 (passphrase)。强烈建议设置一个!这相当于给你的私钥文件加了一层密码。即使私钥文件泄露,没有这个密码短语也无法使用。输入并确认密码短语(输入时不显示)。如果留空,则私钥无需密码即可使用(方便但安全性稍低)。
    • 完成后,你会在指定目录下找到两个文件:id_ed25519 (私钥,绝不能泄露!) 和 id_ed25519.pub (公钥,可以安全地分享)。
  2. 把公钥上传到 VPS:

    • 有几种方法可以把公钥内容添加到 VPS 上目标用户的 ~/.ssh/authorized_keys 文件中。
    • 方法一 (推荐,最简单): 使用 ssh-copy-id 命令 (需要你的本地电脑支持此命令,macOS/Linux 通常自带,Windows 的 Git Bash 或 WSL 里也有)。将 23456 换成你的 SSH 端口,myuser 换成你的 VPS 用户名。
      ssh-copy-id -i ~/.ssh/id_ed25519.pub -p 23456 myuser@你的VPS_IP地址
      # 如果你的密钥不是默认路径或名字,用 -i 指定
      # 如果你没改端口,去掉 -p 参数
      按提示输入 myuser登录密码。它会自动帮你把公钥内容追加到服务器的 ~/.ssh/authorized_keys 文件,并设置好正确的权限。
    • 方法二 (手动复制):
      • 本地电脑上,查看并复制公钥文件的内容:
      # Linux/macOS
      cat ~/.ssh/id_ed25519.pub
      # Windows (用记事本或其他编辑器打开 C:\Users\你的用户名\.ssh\id_ed25519.pub)
      • 复制整行内容 (从 ssh-ed25519ssh-rsa 开始,到末尾的邮箱注释结束)。
      • 登录到你的 VPS (用密码登录 myuser)。
      • 执行以下命令创建 .ssh 目录 (如果不存在) 并设置权限:
      mkdir -p ~/.ssh
      chmod 700 ~/.ssh
      • 编辑 authorized_keys 文件 (如果不存在会自动创建):
      nano ~/.ssh/authorized_keys
      • 将你刚才复制的公钥内容粘贴到这个文件里。如果文件里已有其他公钥,确保每个公钥占一行。
      • 保存并退出 (Ctrl + O, 回车, Ctrl + X)。
      • 设置 authorized_keys 文件的权限:
      chmod 600 ~/.ssh/authorized_keys

      权限设置非常重要!如果权限不对,密钥登录可能会失败。

  3. 测试密钥登录:

    • 非常重要! 在禁用密码登录之前,必须确认密钥登录有效!
    • 本地电脑打开一个新的终端窗口。
    • 尝试用密钥登录 (无需输入密码,但如果设置了密码短语,会提示输入):
      ssh -p 23456 myuser@你的VPS_IP地址
    • 如果成功登录,太好了!
  4. (可选但强烈推荐) 禁用密码登录:

    • 既然密钥登录这么安全方便,我们就可以彻底关闭密码登录这个入口了。

    • 登录到你的 VPS (可以用刚测试成功的密钥登录)。

    • 编辑 SSH 配置文件:

      sudo nano /etc/ssh/sshd_config
    • 找到以下几行,确保它们的值是这样的 (如果前面有 #,去掉它):

      PubkeyAuthentication yes  # 确保允许密钥认证 (通常默认是 yes)
      AuthorizedKeysFile .ssh/authorized_keys # 确认公钥文件路径 (通常不用改)

      # ChallengeResponseAuthentication no # 建议设为 no
      PasswordAuthentication no # <--- 把这里改成 no!禁用密码登录
      # UsePAM yes # 如果 PasswordAuthentication no 无效,可能需要把 UsePAM 也设为 no,但这可能影响其他认证方式,请谨慎测试
    • 保存并退出。

    • 重启 SSH 服务:

      sudo systemctl restart sshd
    • 再次测试:尝试用密码登录,应该会被拒绝。尝试用密钥登录,应该仍然可以成功。

  恭喜!你现在拥有了非常安全的 SSH 登录方式!记得妥善保管你的私钥文件。

🤔 常见问题与自救指南 (FAQ)

问题 1:改了 SSH 端口/禁用密码后,连不上 VPS 了!怎么办?

  • 自救思路:
    1. 冷静! 深呼吸。想想你最后做了什么操作。
    2. 检查客户端: 确认你 SSH 连接时用了正确的新端口号 (-p 端口号) 和正确的用户名。如果是密钥登录,确认本地私钥路径正确。
    3. 检查网络: 你的本地网络有问题吗?VPS 本身在线吗 (可以在服务商控制台看状态)?
    4. 检查防火墙/安全组: 这是最常见的原因!登录你的 VPS 服务商控制台,检查安全组规则,确保你修改后的 SSH 端口允许入站 (TCP 协议)。同时,如果你配置了服务器内部防火墙 (如 ufw),也需要确认规则正确。
    5. VPS 控制台 VNC/救援模式: 这是终极武器!几乎所有 VPS 提供商都提供网页版的 VNC 或 KVM 控制台,或者“救援模式”。通过它,你可以像直接在服务器面前一样登录系统(通常需要输入 root 密码,所以之前修改 root 密码并记下来很重要!)。登录后,你可以:
      • 检查 SSH 服务状态:sudo systemctl status sshd
      • 查看 SSH 配置文件是否有语法错误:sudo sshd -t
      • 检查防火墙状态:sudo ufw status,并添加或修改规则 sudo ufw allow <端口号>/tcp
      • 暂时改回允许密码登录 (PasswordAuthentication yes) 或允许 root 登录 (PermitRootLogin yes),然后 sudo systemctl restart sshd,先恢复连接再说。
    6. 快照恢复: 如果以上都搞不定,或者你不想折腾了,直接使用之前创建的快照恢复到操作前的状态。这就是为什么我们一开始就强调备份!

问题 2:设置了 UFW 防火墙后,我的网站打不开了?

  • 原因分析: 很可能你没有允许 HTTP (80) 和/或 HTTPS (443) 端口的入站连接。
  • 解决方案:
    sudo ufw allow 80/tcp
    sudo ufw allow 443/tcp
    # 检查状态确认规则已添加
    sudo ufw status
    同时别忘了检查云服务商的安全组

问题 3:Fail2Ban 好像没生效?或者把我自己的 IP 封了?

  • 检查思路:
    • 确认 Fail2Ban 服务正在运行:sudo systemctl status fail2ban
    • 检查 /etc/fail2ban/jail.local 配置是否正确,特别是 [sshd] 下的 enabled = trueport = <你的端口>
    • 查看 Fail2Ban 日志:sudo tail -f /var/log/fail2ban.log,看是否有错误信息。
    • 查看 sshd jail 的状态:sudo fail2ban-client status sshd,看 Currently failedTotal failed 次数是否增加,Currently bannedTotal banned IP 列表是否正确。
    • 白名单自己的 IP: 如果你的本地 IP 是固定的,可以在 jail.local[DEFAULT] 部分添加 ignoreip,把自己的 IP 加进去,避免被误封:
    [DEFAULT]
    # ...
    ignoreip = 127.0.0.1/8 ::1 <你的公网IP地址>

    修改后重启 Fail2Ban: sudo systemctl restart fail2ban

    • 解封 IP: sudo fail2ban-client set sshd unbanip <你的IP地址>

✨ 进阶技巧:让你的盔甲更坚固!

  1. 保持系统更新: 软件漏洞是安全的一大威胁。定期更新系统和软件包至关重要。

    • Ubuntu/Debian:
      sudo apt update && sudo apt upgrade -y
    • CentOS:
      sudo yum update -y
    • (推荐) 开启自动更新: Ubuntu 可以安装 unattended-upgrades 包并进行配置,让系统自动安装安全更新。
      sudo apt install unattended-upgrades -y
      sudo dpkg-reconfigure -plow unattended-upgrades
  2. 禁用不必要的服务: VPS 上可能运行着一些你根本用不到的服务,它们也可能存在安全风险。检查并禁用它们。

    • 查看正在监听的端口:sudo ss -tulnp
    • 禁用服务:sudo systemctl stop <服务名>sudo systemctl disable <服务名>
  3. 定期检查日志: 留意系统日志 (/var/log/auth.log, /var/log/syslog) 和 Fail2Ban 日志,可以发现异常活动。

  4. 使用更强的密码策略: 如果你仍然需要在某些地方使用密码,可以配置系统强制使用更复杂的密码,并定期更换。

  5. 进行安全审计: 可以使用像 Lynis (sudo apt install lynis) 这样的工具扫描你的系统,它会给出很多安全加固建议。

🎉 总结:告别裸奔,安心上网!

  太棒了!你已经成功地为你的 VPS 穿上了一套基础但非常有效的“安全盔甲”!通过修改默认登录、更换 SSH 端口、配置防火墙、部署 Fail2Ban 以及启用密钥登录,你的 VPS 对抗常见自动化攻击的能力已经大大提升。

  记住,服务器安全是一个持续的过程,没有绝对的安全,只有相对更安全。保持警惕,定期更新,关注安全动态,你的“数字领 土”就能更长久、更稳定地为你服务!


💬 交流时间!

  你在配置过程中遇到了什么有趣的问题?有什么独门秘籍或者更好的安全建议?欢迎在评论区分享你的经验和技巧,让我们一起学习,共同进步!觉得有用?点赞、收藏、分享给其他刚入门的小伙伴吧! 👍