服务器刚开通,默认配置往往不安全。花十分钟做几件事,能挡住绝大多数自动化攻击。

一、SSH:关掉密码登录

SSH 暴力破解是最常见的攻击方式。检查你的 /etc/ssh/sshd_config

1
2
PermitRootLogin prohibit-password   # 只允许密钥登录 root
PasswordAuthentication no # 关闭所有密码登录

改完重启 SSH:

1
systemctl restart sshd

::: warning
关闭密码登录前,确保你的密钥已经能用,否则会被锁在外面。
:::

二、数据库:不要暴露公网

MySQL 默认可能监听 0.0.0.0:3306,这是极危险的。改成只监听本地:

1
2
3
# my.cnf
[mysqld]
bind-address = 127.0.0.1

需要远程连接数据库?用 SSH 隧道,不要直接暴露 3306。

三、防火墙:只开必要的端口

用 firewalld 或 ufw,只放行真正需要的端口:

1
2
3
4
5
# 阿里云除了系统防火墙,还有"安全组"这一层,两层都要配
firewall-cmd --permanent --add-service=http
firewall-cmd --permanent --add-service=https
firewall-cmd --permanent --add-service=ssh
firewall-cmd --reload

用不到的端口一律关闭,减少攻击面是最有效的安全措施

四、装 fail2ban:自动封禁爆破 IP

1
2
dnf install fail2ban   # 或 apt install fail2ban
systemctl enable --now fail2ban

fail2ban 会监控日志,多次登录失败的 IP 自动封禁。

五、定期更新

1
2
3
# 设置自动安全更新
dnf install dnf-automatic
systemctl enable --now dnf-automatic.timer

安全检查清单

项目 状态
SSH 关闭密码登录
SSH 禁止 root 直接登录
数据库不暴露公网
防火墙只开必要端口
安装 fail2ban
定期系统更新
重要数据定期备份

小结

安全不需要多高深,做好这几件基础的事,就能挡住绝大多数自动化扫描和攻击。真正的高手攻击很难防,但那不是个人服务器要担心的问题——自动化扫描脚本才是主要威胁。