雨云安全组与fail2ban防暴力破解:加固SSH与WordPress登录

安全组端口最小化 + fail2ban 动态封禁 + SSH 密钥登录,三道防线拦住自动化攻击
发布于
3

新开的雨云云服务器,公网 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 能兜底。

常见问题

关于在雨云服务器上做安全加固的常见疑问,下面一并解答。

常见问题(FAQ)

安全组全开再慢慢收行不行?
不行。公网 IP 一上线就被扫,中间窗口被扫到就是损失。开机能看到 IP 时就配好安全组,只放 80/443 和指定来源的 SSH。
fail2ban 封禁是永久还是临时的?
默认临时封禁(bantime 可设),因为攻击者大多数是肉鸡,IP 会换。设永久封禁反而可能导致正常用户被误伤后永远进不来。
改了 SSH 端口还要封禁吗?
要。nmap 全端口扫描能在几秒内发现新端口,改端口只是降低日志噪音,不提供实质安全。安全组 IP 白名单+密钥登录才是真正的防线。
fail2ban 和 ufw 重复了吗?
不重复。ufw 是静态端口规则,fail2ban 是根据动态行为(连续登录失败)实时封 IP,两者互补。ufw 管"谁允许连我",fail2ban 管"谁在攻击我"。

本文由作者原创/授权发布于极跃圈(jiyueip.com)未经许可,禁止转载。题图来自Unsplash,基于CC0协议。

声明:极跃圈(JIYUEIP.com)内网友所发表的所有内容及言论仅代表其本人,并不反映任何极跃圈(JIYUEIP.com)之意见及观点。

0 讨论
热门最新
总结
暂无总结
0 / 600