https://github.com/moreKing/web-firewall
https://github.com/moreKing/web-firewall
Last synced: 5 months ago
JSON representation
- Host: GitHub
- URL: https://github.com/moreKing/web-firewall
- Owner: moreKing
- Created: 2024-09-04T09:04:06.000Z (9 months ago)
- Default Branch: main
- Last Pushed: 2024-09-09T03:08:31.000Z (9 months ago)
- Last Synced: 2024-09-09T04:27:42.430Z (9 months ago)
- Language: Go
- Size: 1.97 MB
- Stars: 33
- Watchers: 2
- Forks: 5
- Open Issues: 0
-
Metadata Files:
- Readme: readme.md
- Changelog: CHANGELOG.md
Awesome Lists containing this project
- awesome-ops - moreKing/web-firewall - 09-04|2025-03-23 | 基于 golang+vue3 开发的 Web Linux 防火墙,可以在 Linux 系统中基于 nfatables 用于替代 firewalld 工具。 | (防火墙)
README
# 简介
`web-firewall`基于golang+vue3 开发的Web Linux防火墙,前端使用`SoybeanAdmin`框架,后端使用`goframe2`,数据库支持 `sqlite3(默认)`/`postgresql` ,它可以在Linux系统中基于`nfatables`用于替代`firewalld`工具。
Gitee Star:[](https://gitee.com/moujun/web-firewall)
Github Star:[](https://github.com/moreKing/web-firewall)
Github Forks:[](https://github.com/moreKing/web-firewall)
该防火墙可以提供以下功能
### 功能设计
- [x] 本地策略
- [x] 出站策略 output链
- [x] 出站流控 output链
- [x] 入站策略 input链
- [x] 入站流控 input链
- [x] 路由策略
- [x] DNAT prerouting链
- [x] SNAT postrouting
- [x] 转发策略forward 链
- [x] 流量控制 forward 链
- [x] 审计
- [x] 登录日志
- [x] 配置日志
- [x] webSSH日志
- [x] WebShell
- [x] webshell 支持rzsz
- [ ] 文件上传下载
- [ ] 文本在线编辑
- [ ] 首页
- [x] 系统设置
- [ ] ip黑名单 prerouting链
- [x] 本地密码
- [x] 会话配置
- [x] 邮件配置
- [x] 短信配置
- [x] 登录设置### 安装
本项目提供一个已经打包编译好的项目,用户仅需自己[下载](https://moujun.top/web-firewall/version.html)本项目解压后,执行 里面的`install.sh`文件即可,如果自己编译项目请根据前后端代码自行进行打包即可
```shell
unzip v1.1.0.zip
cd v1.1.0
bash install.sh# 查看服务是否正常运行
systemctl status web-firewalld# 建议停用firewalld服务
systemctl disable firewalld
systemctl stop firewalld
```访问地址:http://ip:8000
默认账号密码:admin/admin
### docker部署
构建项目镜像
```bash
# 拉取源代码
git clone https://github.com/moreKing/web-firewall.git
cd web-firewall
# 构建镜像
docker build -f ./server/manifest/docker/Dockerfile -t web-firewall:latest .
```docker使用必须以特权和host模式运行才能操作主机的网络配置
```bash
docker run -itd --network host --privileged \
-v /etc/sysctl.conf:/etc/sysctl.conf \
-v /proc:/host_proc \
web-firewall
```数据持久化需要映射以下几个目录
```bash
-v /path/config:/web-firewall/manifest/config # 配置文件 docker模式下 默认数据库文件也在此目录
-v /path/log:/web-firewall/log # 日志文件目录 所有日志文件均会在此目录下
-v /path/resources/template:/web-firewall/resources/template # 模板文件,用户可以自定义邮件样式
````/path/config`目录内需要提供config.yaml配置文件和db.sqlite3初始化数据库文件,可先运行一个镜像从里面对应位置拷贝出里面的默认文件,然后修改配置文件即可
### 项目截图







## 捐赠支持
为了开源项目更好的发展,现在接受捐赠。如果您觉得本项目对您有所帮助,请通过下列方式进行捐赠。您的帮助将给我们动力持续更新,谢谢!
