VPS 拥有公网 IP 地址:在其投入使用后的一小时内,机器人就已经开始尝试连接它了。三项措施足以挡住绝大多数此类尝试,而第四项措施能让您避免从不满的客户那里才得知服务出了故障。
如何配置我的 Linux VPS 的防火墙?
在 Debian 和 Ubuntu 上使用 ufw,在 AlmaLinux、Rocky 和 CentOS Stream 上使用 firewalld:默认拒绝所有连接,然后只开放 SSH 和真正需要公开的端口。
在 Debian 和 Ubuntu 上,使用 ufw:
apt install ufw
ufw default deny incoming
ufw default allow outgoing
ufw allow 22/tcp
ufw allow 80,443/tcp
ufw enable
ufw status verbose
在 AlmaLinux、Rocky 和 CentOS Stream 上,使用 firewalld:
dnf install firewalld
systemctl enable --now firewalld
firewall-cmd --permanent --add-service=ssh
firewall-cmd --permanent --add-service=http --add-service=https
firewall-cmd --reload
firewall-cmd --list-all
启用防火墙之前,请先允许 SSH。上述命令的顺序并非随意安排:在没有 SSH 规则的情况下启用限制性策略,会立即切断您的访问。如果发生这种情况,救援控制台仍然是您的入口。
只开放真正对外公开的服务端口。数据库几乎永远不应在外部接口上监听:请让它监听 127.0.0.1,并通过 SSH 隧道进行管理。
如何使用 fail2ban 阻止反复的登录尝试?
fail2ban 会读取日志,识别反复出现的身份验证失败,并在防火墙层面封禁相应的地址。
apt install fail2ban # Debian, Ubuntu
dnf install fail2ban # AlmaLinux, Rocky, CentOS Stream
创建 /etc/fail2ban/jail.local——切勿修改 jail.conf,它会在更新时被覆盖:
[DEFAULT]
bantime = 1h
findtime = 10m
maxretry = 5
ignoreip = 127.0.0.1/8 YOUR_OWN_IP
[sshd]
enabled = true
然后:
systemctl enable --now fail2ban
fail2ban-client status sshd
在 ignoreip 中填入您自己的地址,可以避免您在几次输错之后把自己封禁。
如何为服务器安装安全更新?
可以使用 apt upgrade 或 dnf upgrade 手动安装,也可以在 Debian 和 Ubuntu 上使用 unattended-upgrades、在 AlmaLinux、Rocky 和 CentOS Stream 上使用 dnf-automatic 自动安装。
定期手动更新:
apt update && apt upgrade # Debian, Ubuntu
dnf upgrade # AlmaLinux, Rocky, CentOS Stream
仅针对安全补丁自动更新:
apt install unattended-upgrades && dpkg-reconfigure -plow unattended-upgrades
dnf install dnf-automatic && systemctl enable --now dnf-automatic.timer
自动化并不意味着可以不管不问:某些补丁需要重启服务或内核才能真正生效。
systemctl list-units --failed
needrestart # Debian, Ubuntu
如何监控 VPS 上运行的内容?
使用 systemctl 和 journalctl 查看服务状态及其日志,使用 df -h 查看磁盘空间,并通过客户中心的 图表选项卡了解整体情况。
systemctl status nginx # 服务状态
journalctl -u nginx -n 50 # 该服务最近 50 行日志
journalctl -p err -b # 本次启动以来的错误
df -h # 磁盘空间
磁盘写满是最常见也最隐蔽的故障:日志停止写入,数据库拒绝写入,而只要没人去看,就不会有任何提示。请留意 df -h,并使用 journalctl --vacuum-time=14d 清理旧日志。
客户中心的 图表 选项卡是很好的补充:CPU 曲线连续数小时处于顶峰、异常的出站网络流量或内存耗尽,在那里都能一目了然。
By-Hoster 是否负责我的 VPS 备份?
客户中心不为 VPS 提供备份服务。同名选项卡(Snapshots)中提供的快照是有风险操作的安全网,而不是备份:它们与机器位于同一存储上。请将您真正无法替代的数据在 VPS 之外另存一份副本,并不时测试恢复。