暴力破解与洪水攻击防护
MyPanel 通过两个互补的防护层保护你的服务器免受密码猜测(暴力破解)和请求洪水(应用层)攻击——无需部署笨重的 WAF:
- Fail2ban —— 在系统层面自动封禁攻击 IP。
- nginx 限速 —— 按网站对请求洪水进行限流。
Fail2ban —— 自动封禁 IP
Section titled “Fail2ban —— 自动封禁 IP”打开 暴力破解防护 菜单。面板以可视化方式管理 Fail2ban:
- 概览磁贴 —— 显示 Fail2ban 是否已安装/运行、jail 数量,以及当前被封禁的 IP 总数。
- 一键暴力破解防护 —— 一个开关即可启用一组推荐的 jail,并采用安全的默认值:
sshd—— SSH 密码猜测。nginx-http-auth—— HTTP Basic 认证密码错误。nginx-limit-req—— 超出 nginx 限速(与下面的限速层联动)。nginx-botsearch—— 扫描恶意 URL。
- 可调整封禁时长(
bantime,例如10m、1h、1d)和最大重试次数(maxretry)。 - 每个 jail 都有当前被封禁 IP 列表,每条都带有解封按钮(以防你把自己锁在门外)。
面板会将其配置写入一个独立文件(/etc/fail2ban/jail.d/mypanel.local)——它绝不会改动你的系统配置——随后重新加载 Fail2ban。若重新加载失败,面板会恢复之前的配置。
在每个网站内部,打开 Nginx → 限速 标签页。启用它即可对请求洪水(L7)进行限流,并减缓密码猜测(例如针对 wp-login.php):
- 3 个预设 —— 宽松 / 普通 / 严格 —— 或自行设置:
- 每个 IP 的动态请求数/秒(rate)。
- 应对短时峰值的突发额度(burst)。
- 每个 IP 的并发连接数(conn)。
- 静态资源(图片、CSS、JS、字体等)会被排除在计数之外,因此包含大量文件的正常页面加载不会被错误拦截(
429)。
当超出限制时,nginx 会返回 429 Too Many Requests。Fail2ban 的 nginx-limit-req jail 会读取这些 429 事件,从而彻底封禁违规 IP——两个防护层相互强化。