主题模式
Are you an LLM? You can read better optimized documentation at /vps/settings/vps-security-guide.md for this page in Markdown format
VPS 安全加固指南:从防火墙到 Fail2ban
在拥有了一台 VPS 后,除了部署应用,最不容忽视的就是安全问题。互联网上充斥着大量的自动化脚本,它们会不断扫描开放的端口并尝试暴力破解。本文将带你由浅入深,通过配置防火墙和安装 Fail2ban 来为你的 VPS 穿上“防弹衣”。
1. 为什么需要安全加固?
很多新手朋友会觉得:“我的服务器里没什么重要数据,黑客不会盯上我。”但实际上,黑客往往利用你的服务器作为“肉鸡”进行挖矿或发起 DDoS 攻击。因此,即使是最基础的 VPS,也需要做好以下防护:
- 限制端口访问:只开放必要的端口(如 SSH 的 22 端口和 Web 的 80/443 端口)。
- 防止暴力破解:阻止恶意 IP 频繁尝试登录你的服务器。
2. 配置 UFW 防火墙
UFW (Uncomplicated Firewall) 是 Ubuntu/Debian 系统下非常易用的防火墙工具。
安装与启用
bash
sudo apt update
sudo apt install ufw
sudo ufw enable设置默认规则
为了安全起见,我们通常默认拒绝所有外部传入的连接,只允许明确的请求:
bash
sudo ufw default deny incoming
sudo ufw default allow outgoing开放必要端口
在启用防火墙前,务必先开放 SSH 端口,否则你可能会把自己锁在外面:
bash
sudo ufw allow ssh # 或者 sudo ufw allow 22/tcp
sudo ufw allow http
sudo ufw allow https3. 安装与配置 Fail2ban
即便有了防火墙,SSH 端口依然是开放的。Fail2ban 的作用是监控日志文件,当发现某个 IP 在短时间内多次登录失败时,自动将其加入防火墙黑名单。
安装 Fail2ban
bash
sudo apt install fail2ban基础配置
复制一份配置文件以便自定义:
bash
sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local编辑 jail.local 文件,找到 [sshd] 部分并进行如下修改:
ini
[sshd]
enabled = true
port = ssh
filter = sshd
logpath = /var/log/auth.log
maxretry = 3 # 允许尝试 3 次
bantime = 3600 # 封禁 1 小时
findtime = 600 # 在 10 分钟内统计失败次数重启服务
bash
sudo systemctl restart fail2ban4. 检查状态
你可以使用以下命令查看当前的防火墙规则和被封禁的 IP:
bash
sudo ufw status
sudo fail2ban-client status sshd结语
通过以上步骤,你的 VPS 已经具备了基础的防御能力。安全是一个持续的过程,建议定期检查日志,并保持系统软件的最新状态。
下一步探索:
- 如何修改 SSH 默认端口以进一步降低被扫描的概率?
- 如何使用 SSH 密钥对代替密码登录?