小白也能上手的美国VPS安全设置指南:SSH端口、防火墙、Fail2Ban与自动备份

我经常看到这样的场景:域名解析已经完成,网站也能正常访问,但VPS安全配置却是零。我们帮客户网站做代配时就发现,只要SSH端口是默认的22,不出几分钟就会被全球的扫描机器人狂轰滥炸。

其实,与其上线后忙着补漏洞,不如在业务部署前先完成一套“基础安全配置”。这套配置并不复杂,按步骤来即使是小白也能完成,而且一劳永逸,省下后期无数的麻烦。

在这篇文章里,你会学到:

  • 如何修改SSH端口并使用密钥登录
  • 如何用防火墙限制开放的端口
  • 如何用Fail2Ban自动封锁暴力破解IP
  • 如何打开系统自动安全更新
  • 如何落地自动备份方案

适合新手的安全设置清单

下面是我们在给新手用户部署美国VPS时常用的安全基线,你可以直接按表执行。

步骤目标操作效果
SSH加固降低被扫描和暴力破解风险改端口、禁root远程、禁密码登录、启用密钥认证SSH更安全、更可控
防火墙只开放必要端口Ubuntu用UFW;CentOS/Alma/Rocky用firewalld最小化暴露面
Fail2Ban防止暴力破解监控日志,自动封禁多次失败的IP自动拉黑恶意访问
自动更新及时打补丁Ubuntu开unattended-upgrades;RHEL系开dnf-automatic减少漏洞风险
自动备份防数据丢失rsync或Borg按天备份并保留一定天数快速恢复数据

SSH加固:换端口+禁root密码+用密钥

很多人只改了端口,但依然允许密码登录,这几乎没什么意义。更稳妥的做法是:

  1. 先放行新端口
  2. 编辑sshd_config改端口
  3. 禁止root用户远程密码登录
  4. 使用密钥认证

生成密钥并上传

ssh-keygen -t ed25519 -C "your_email"
ssh-copy-id -i ~/.ssh/id_ed25519.pub user@server_ip

修改SSH配置

sudo vim /etc/ssh/sshd_config

Port 2222
PermitRootLogin no
PasswordAuthentication no
PubkeyAuthentication yes

sudo systemctl restart sshd

记得先在防火墙中放行新端口,并用新窗口测试连接成功后再退出旧会话。


防火墙:UFW或firewalld

我们习惯的选择是:

  • Ubuntu/Debian 系统 → 用UFW
  • RHEL/CentOS/Alma/Rocky 系统 → 用firewalld

常用命令参考

系统工具启用命令放行示例
Ubuntu/DebianUFWsudo apt install ufw && sudo ufw enablesudo ufw allow 2222/tcp sudo ufw allow 80,443/tcp
RHEL系firewalldsudo dnf install firewalld -y && sudo systemctl enable --now firewalldsudo firewall-cmd --permanent --add-port=2222/tcp && sudo firewall-cmd --permanent --add-service=http --add-service=https && sudo firewall-cmd --reload

Fail2Ban:自动封禁暴力破解

Fail2Ban会自动扫描日志,当同一个IP多次登录失败,就会临时封锁它,为VPS安装Fail2Ban非常适合防御暴力破解。

安装与配置

# Ubuntu/Debian
sudo apt install fail2ban -y

# RHEL系
sudo dnf install fail2ban -y
sudo systemctl enable --now fail2ban

# 配置文件
sudo tee /etc/fail2ban/jail.local >/dev/null <<'EOF'
[DEFAULT]
bantime = 1h
findtime = 10m
maxretry = 5
ignoreip = 127.0.0.1/8

[sshd]
enabled = true
port = 2222
EOF

sudo systemctl restart fail2ban
sudo fail2ban-client status sshd

自动安全更新

如果你不想频繁手动打补丁,可以开启自动安全更新功能:

  • Ubuntu
sudo apt install unattended-upgrades -y
sudo dpkg-reconfigure --priority=low unattended-upgrades
  • RHEL系
sudo dnf install dnf-automatic -y
sudo systemctl enable --now dnf-automatic.timer

自动备份:能恢复才是硬道理

我们常用的方案:

  • 小规模:rsync+cron
  • 大数据量:BorgBackup(支持去重、压缩、加密)

示例:每天2点rsync备份网站与Nginx配置

crontab -e
0 2 * * * rsync -a --delete /var/www/ user@backup:/data/www/
10 2 * * * rsync -a --delete /etc/nginx/ user@backup:/data/nginx/

建议的操作顺序

  1. 防火墙放行新SSH端口
  2. 修改sshd_config并禁root密码
  3. 确认密钥登录可用
  4. 配置UFW或firewalld,仅开放业务端口
  5. 安装并配置Fail2Ban
  6. 开启自动安全更新
  7. 配置自动备份

常见新手FAQ

Q:只改SSH端口就够了吗?
A:不够,还需要禁用密码登录,并配合防火墙和Fail2Ban。

Q:UFW和firewalld怎么选?
A:Ubuntu系用UFW更直观,RHEL系用firewalld更灵活。

Q:Fail2Ban会不会误伤正常IP?
A:可以在配置中加白名单IP,避免封禁自己的办公IP。

Q:自动更新会不会出问题?
A:可以只安装安全补丁,降低更新带来的风险。

Q:rsync和Borg怎么选?
A:小数据量选rsync,大数据量选Borg。


结语:把安全当成必做功课

把这套安全配置当成“开机自检”,不管是个人独立站还是团队项目,都能避免很多麻烦。
如果你在操作中遇到问题,可以在评论区留言,我们会一起帮你排查。
觉得有用的话,欢迎点赞、转发,让更多人少走弯路。

发表评论