Fail2Ban 一键部署 + 管理脚本(可直接执行)

将以下内容保存为 fail2ban_setup.sh,执行 sudo bash fail2ban_setup.sh 即可完成「配置 + Web 界面 + 常用命令封装」,无需手动敲命令!

bash

运行

复制代码
#!/bin/bash
# Fail2Ban 一键部署脚本(适配 Ubuntu 20.04/22.04)
# 作者:豆包编程助手 | 适配红客实战场景

# ====================== 第一步:安装依赖 ======================
echo -e "\033[32m[1/5] 安装 Fail2Ban 及 Web 界面依赖...\033[0m"
sudo apt update && sudo apt install -y fail2ban php-cli unzip

# ====================== 第二步:配置 SSHD 监狱 ======================
echo -e "\033[32m[2/5] 配置 SSHD 防护规则...\033[0m"
sudo tee /etc/fail2ban/jail.d/sshd.conf <<-'EOF'
[sshd]
enabled = true
port = ssh
filter = sshd
backend = systemd
maxretry = 3
bantime = 3600
findtime = 600
ignoreip = 127.0.0.1
action = iptables-multiport
EOF

# ====================== 第三步:部署 Web 管理界面 ======================
echo -e "\033[32m[3/5] 部署 f2bwi Web 界面...\033[0m"
sudo mkdir -p /var/www/f2bwi
wget -q https://sourceforge.net/projects/f2bwi/files/latest/download -O /tmp/f2bwi.zip
sudo unzip -q /tmp/f2bwi.zip -d /var/www/f2bwi
sudo chown -R www-data:www-data /var/www/f2bwi
# 消除 PHP 警告
sudo sed -i '1i <?php error_reporting(E_ALL & ~E_NOTICE & ~E_WARNING); ?>' /var/www/f2bwi/index.php
rm -f /tmp/f2bwi.zip

# ====================== 第四步:重启服务并验证 ======================
echo -e "\033[32m[4/5] 重启 Fail2Ban 服务...\033[0m"
sudo systemctl restart fail2ban
sudo systemctl enable fail2ban

# ====================== 第五步:封装常用命令(方便后续使用) ======================
echo -e "\033[32m[5/5] 封装常用命令...\033[0m"
sudo tee /usr/local/bin/f2b <<-'EOF'
#!/bin/bash
case $1 in
    status)
        sudo fail2ban-client status $2
        ;;
    ban)
        sudo fail2ban-client set $2 banip $3
        ;;
    unban)
        sudo fail2ban-client set $2 unbanip $3
        ;;
    web)
        cd /var/www/f2bwi && php -S 127.0.0.1:8080
        ;;
    reload)
        sudo fail2ban-client reload $2
        ;;
    *)
        echo "Fail2Ban 快捷命令使用说明:"
        echo "  f2b status [监狱名]   → 查看监狱状态(如 f2b status sshd)"
        echo "  f2b ban [监狱名] [IP] → 封禁 IP(如 f2b ban sshd 10.0.0.1)"
        echo "  f2b unban [监狱名] [IP] → 解封 IP(如 f2b unban sshd 10.0.0.1)"
        echo "  f2b web → 启动 Web 管理界面(访问 http://127.0.0.1:8080)"
        echo "  f2b reload [监狱名] → 重新加载配置"
        ;;
esac
EOF
sudo chmod +x /usr/local/bin/f2b

# ====================== 部署完成提示 ======================
echo -e "\033[32m====================== 部署完成!======================\033[0m"
echo -e "✅ 常用快捷命令(直接执行):"
echo -e "  查看 sshd 状态:f2b status sshd"
echo -e "  封禁 IP:f2b ban sshd 10.0.0.1"
echo -e "  解封 IP:f2b unban sshd 10.0.0.1"
echo -e "  启动 Web 界面:f2b web"
echo -e "✅ Web 界面访问地址:http://127.0.0.1:8080"
echo -e "\033[33m注意:Web 界面仅本地访问,停止按 Ctrl+C 即可\033[0m"

使用说明

1. 执行脚本

bash

运行

复制代码
# 保存脚本后赋予执行权限
sudo chmod +x fail2ban_setup.sh
# 一键部署
sudo bash fail2ban_setup.sh

2. 后续常用操作(极简)

需求 命令
查看 SSHD 封禁状态 f2b status sshd
封禁 192.168.1.100 f2b ban sshd 192.168.1.100
解封 192.168.1.100 f2b unban sshd 192.168.1.100
启动 Web 管理界面 f2b web

3. 注意事项

  • 脚本自动适配 Ubuntu 新版 systemd 日志机制,无需手动改配置;
  • Web 界面仅绑定 127.0.0.1:8080,仅本地可访问,避免外网暴露风险;
  • 所有操作均以 sudo 权限执行,确保封禁规则生效。
相关推荐
爱吃香菜的初学者3 小时前
十四.Linux——消息队列
linux·运维·开发语言
缘友一世4 小时前
GLM5.3 flash cybersec本地部署[5]:生产运维与故障恢复
ubuntu·vllm·glm5.3 flash
h39748 小时前
DirectShow过滤器开发-视频源过滤器
c++·windows·音视频·directshow
Apipi*10 小时前
30天速通Linux 第六章信号及信号处理
linux·运维·信号处理
敬往事一杯酒哈11 小时前
海康 AGV 导航读码器学习
学习
天启HTTP11 小时前
爬虫防封核心原理:IP轮换机制与风控规避逻辑
linux·服务器·网络·爬虫·tcp/ip
qq_2842740512 小时前
机械原理笔记:平面机构自由度计算(复合铰链、局部自由度、虚约束)与四杆机构入门(含考点)
笔记·学习·平面·自动化·制造
广州浮点FLOATLIC13 小时前
许可证服务器迁移后软件打不开:研发 IT 怎样定位连接问题
linux·服务器·数据库
qq_2842740513 小时前
数控铣床与加工中心笔记:铣刀与刀柄系统、G54试切对刀、镜像加工指令、孔加工工艺(钻扩铰镗)与固定循环G73/G83/G81/G76/G87/G84
笔记·学习·自动化·制造
BLUcoding14 小时前
接口服务公网超时排查记录:SecureRandom 阻塞问题分析与解决
java·linux·springboot·aes·securerandom