值得一看
广告
彩虹云商城
广告

热门广告位

Docker 快速部署可视化防火墙工具:使用 go 语言开发,底层是 iptables,提供 API 调用

一、简介

  • 该工具相关接口使用go语言开发,高性能,资源占用低,前端页面使用Ant Design Pro开发,简洁美观
  • 底层基于iptables,可以针对不同的IP、不同协议进行有效拦截
  • 支持定时封禁控制,到期自动释放
  • 提供相关API接口,方便接入风控检测系统,进行精准攻击拦截与控制
  • 开源地址参考:https://github.com/luler/hello_firewall
  • 本工具运行原理概览可参考下图:

二、安装

  • 只能在基于iptables防火墙的Linux主机上使用,大多数Linux主机都是自带iptables防火墙工具的,如果没有,可自行安装

  • 准备好Docker、docker-compose软件环境

  • 新建docker-compose.yml配置文件,内容如下:

    version: "3"
    services:
      hello_firewall:
        image: ghcr.io/luler/hello_firewall:latest
        privileged: true
        network_mode: host
        restart: always
        environment:
          - TZ=Asia/Shanghai #时区
          - PORT=3000         #服务端口
          - ADMIN_NAME=admin      #管理员账号
          - ADMIN_PASSWORD=admin  #管理员登录密码
          - JWT_EXPIRE=7200 #访问token过期时间,单位秒
          - JWT_SECRET=Hw_KtnqHJ   #页面访问token加密秘钥,自定义一个复杂的
          - IPTABLES_TARGET_CHAINS=INPUT,DOCKER-USER #iptables目标链,如果不清楚不需要修改
          - DATABASE_DEFAULT_DRIVER=sqlite #数据库驱动
          - DATABASE_DEFAULT_NAME=runtime/hello_firewall.sqlite #数据库文件路径
        volumes:
          - ./runtime:/app/runtime
  • 新建配置文件完毕后,可在配置文件目录直接运行下面命令启动

    docker-compose up -d

三、卸载

  • 第一步:停止并删除容器
    docker-compose down
  • 第二步:清理iptables链
    iptables-save | grep -i "hello-firewall" | grep -v "^:HELLO-FIREWALL" | sed 's/^-A \([^ ]*\) \(.*\)/-D \1 \2/' | \
    (xargs -L1 iptables 2>/dev/null || true) && (iptables -F HELLO-FIREWALL 2>/dev/null || true) \
    && (iptables -X HELLO-FIREWALL 2>/dev/null || true)

四、使用示例

1. 登录可视化界面操作

  • 访问地址:http://127.0.0.1:3000/,登录账号密码就是docker-compose.yml文件配置的ADMIN_NAME、ADMIN_PASSWORD,默认都是:admin

  • 可以在线查询、添加、删除、禁用封禁项目

2. 使用API接口

2.1 获取授权接口

  • 接口:/api/login
  • 请求方法:POST
  • 请求参数:
    {
        "name": "admin", //账号
        "password": "admin" //密码
    }
  • 返回结果:
    {
        "code": 200,
        "data": {
            "jwtExpire": 7200,  //有效期,单位秒
            "token": "eyJhbGciOiJIUzI1NiXXXXXXX", //授权凭证
            "type": "Bearer"
        },
        "message": "登录成功"
    }

2.2 封禁ip接口

  • 接口:/api/banIp
  • 请求方法:POST
  • 请求头:
    Authorization=token
  • 请求参数:
    {
        "ips": "127.0.0.1", //ip数据,多个用英文逗号隔开,格式:127.0.1,192.168.1.1
        "protocol": "tcp", //封禁协议,不传-全部协议,指定协议:tcp udp icmp
        "port": 8080, //封禁端口号,0-全端口(默认),1-65535(指定端口,传封禁协议时才有效)
        "expiredAt": "2025-06-31 15:04:05", //过期时间,不传则无过期时间,格式:2006-01-02 15:04:05
        "reason": "封禁原因" //封禁原因
    }
  • 返回结果
    {
        "code": 200,
        "data": [],
        "message": "封禁IP成功"
    }

2.3 更多接口使用逻辑与后台页面接口一致,如查询、删除、启用禁用等接口,可自行获取…

五、总结

  • Docker一键部署,并且提供界面和API,使用起来更加灵活与方便
  • 该工具功能仅专注于IP封禁,可以作为组件接入系统风险感知系统,如配合接口日志分析系统挖掘并封禁风险IP、业务代码识别并封禁IP、AI防火墙等等

临时演示使用地址可参考:https://cas.luler.top/?search=685982c3f0e05

温馨提示: 本文最后更新于2025-09-30 16:07:10,某些文章具有时效性,若有错误或已失效,请在下方留言或联系在线客服
文章版权声明 1 本网站名称: 创客网
2 本站永久网址:https://new.ie310.com
1 本文采用非商业性使用-相同方式共享 4.0 国际许可协议[CC BY-NC-SA]进行授权
2 本站所有内容仅供参考,分享出来是为了可以给大家提供新的思路。
3 互联网转载资源会有一些其他联系方式,请大家不要盲目相信,被骗本站概不负责!
4 本网站只做项目揭秘,无法一对一教学指导,每篇文章内都含项目全套的教程讲解,请仔细阅读。
5 本站分享的所有平台仅供展示,本站不对平台真实性负责,站长建议大家自己根据项目关键词自己选择平台。
6 因为文章发布时间和您阅读文章时间存在时间差,所以有些项目红利期可能已经过了,能不能赚钱需要自己判断。
7 本网站仅做资源分享,不做任何收益保障,创业公司上收费几百上千的项目我免费分享出来的,希望大家可以认真学习。
8 本站所有资料均来自互联网公开分享,并不代表本站立场,如不慎侵犯到您的版权利益,请联系79283999@qq.com删除。

本站资料仅供学习交流使用请勿商业运营,严禁从事违法,侵权等任何非法活动,否则后果自负!
THE END
喜欢就支持一下吧
点赞5 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容