新开的雨云云服务器,公网 IP 一上线就开始被扫——SSH 暴力破解、WordPress 登录撞库、端口扫描,几乎是标配。安全组是第一道墙,fail2ban 是第二道动态补刀,密钥登录再加一层锁。三道防线搭好,绝大部分自动化攻击就进不来了。
一、安全组:端口最小化
雨云控制台的安全组规则要倒过来想:只放行业务必需的端口,其余全部拒绝。典型配置:
| 端口 | 协议 | 来源 | 用途 |
|---|---|---|---|
| 22 | TCP | 指定 IP(办公/自家公网 IP) | SSH |
| 80/443 | TCP | 0.0.0.0/0 | Web 服务 |
| 3306 | TCP | 127.0.0.1 或内网 IP | MySQL(勿开公网) |
| 6379 | TCP | 127.0.0.1 | Redis(勿开公网) |
SSH 22 端口对全公网开放是最大的雷——改了端口号只是心理安慰,nmap 一扫照样发现。真正有效的是限制来源 IP,只允许你的办公室或家庭 IP 访问 SSH。如果办公 IP 是动态的,至少绑个 VPN 或用堡垒机中转。
二、系统级防火墙:ufw 二次把关
安全组管云平台边界,系统层面再用 ufw 做二次确认:
apt install ufw ufw default deny incoming ufw default allow outgoing ufw allow 80/tcp ufw allow 443/tcp ufw allow from 你的IP to any port 22 proto tcp ufw enable
双重过滤的好处是:安全组配错了一条,ufw 还能兜底,反过来也一样。
三、fail2ban:动态封禁攻击源
安全组是静态规则,fail2ban 根据日志动态封禁。在雨云云服务器上安装:
apt install fail2ban systemctl enable fail2ban systemctl start fail2ban
默认的 jail.conf 自带 SSH 防护(sshd jail),失败 5 次封 10 分钟。但 WordPress 需要自己加一条。在 /etc/fail2ban/jail.local 里追加:
[wordpress] enabled = true port = http,https filter = wordpress logpath = /var/log/nginx/access.log maxretry = 5 bantime = 3600 findtime = 600
filter 配置文件 /etc/fail2ban/filter.d/wordpress.conf:
[Definition] failregex = ^ .* "POST /wp-login.php HTTP.*" 200 ignoreregex =
一小时内同一个 IP 对 wp-login.php POST 失败 5 次,直接封 1 小时。nginx 的日志路径要写对,Apache 同理换成 /var/log/apache2/access.log。
四、SSH 密钥登录 + 禁密码
改 SSH 配置 /etc/ssh/sshd_config:
Port 22 # 不改端口也行,靠 fail2ban + 安全组 IP 白名单 PermitRootLogin prohibit-password PasswordAuthentication no PubkeyAuthentication yes
先把公钥拷到 ~/.ssh/authorized_keys,确认能登录了再关密码。别先关再拷,把自己锁外面。
五、fail2ban 常用管理命令
| 命令 | 作用 |
|---|---|
| fail2ban-client status | 查看所有 jail 状态 |
| fail2ban-client status sshd | 看某个 jail 封了多少 IP |
| fail2ban-client set sshd unbanip 1.2.3.4 | 手动解封 |
| fail2ban-client set sshd banip 1.2.3.4 | 手动封禁 |
六、雨云部署建议
雨云云服务器新购用优惠码 admin01 走专属入口 https://www.jiyueip.com/link/5617 五折。开机第一件事就是配安全组,别等被人扫到再补。后续要频繁管理多台机器,可以参照本站雨云自动化运维那篇写个脚本,批量更新 fail2ban 自定义规则。
七、几个常见的侥幸心理
- “我这小站没人盯”——扫你的不是人,是全自动脚本,批量扫全网暴露的端口;
- “改了 SSH 端口就行了”——nmap 全端口扫描几秒钟就定位新端口,端口号不提供安全性;
- “安全组默认全拒绝够了吧”——万一自己手误放开了、或者新增了应用端口忘记收紧,fail2ban 能兜底。
常见问题
关于在雨云服务器上做安全加固的常见疑问,下面一并解答。






