gofirewall/USAGE.md

2.1 KiB
Raw Permalink Blame History

GoFirewall 使用文档

目录

  1. 基本概念
  2. 配置文件
  3. 规则管理
  4. 日志系统
  5. 流量转发
  6. API参考

基本概念

GoFirewall 是一个基于规则的网络防火墙,主要功能包括:

  • 流量过滤:根据规则允许或阻止网络流量
  • 日志记录:记录匹配的流量和系统事件
  • 流量转发支持NAT规则转发数据包

配置文件

配置参数

参数 类型 默认值 描述
log_level string "info" 日志级别 (debug/info/warn/error)
capture_interface string "" 监听的网络接口
forward_enabled bool false 是否启用流量转发
max_packet_size int 65536 最大数据包大小

规则管理

规则格式

{
  "id": "rule-1",
  "name": "Allow SSH",
  "protocol": "tcp",
  "src_ip": "192.168.1.1",
  "src_port": "",
  "dst_ip": "",
  "dst_port": "22",
  "action": "allow",
  "description": "Allow SSH access",
  "enabled": true
}

规则字段

字段 必填 描述
protocol 协议类型 (tcp/udp/icmp/all)
src_ip 源IP地址支持通配符*
dst_ip 目标IP地址支持通配符*
src_port 源端口,支持范围(如8000-9000)
dst_port 目标端口,支持范围
action 动作 (allow/deny)
enabled 是否启用规则

日志系统

日志文件默认输出到firewall.log,包含以下信息:

  • 匹配的规则ID
  • 数据包源/目标信息
  • 执行动作
  • 时间戳

流量转发

转发规则示例

forwarder.AddForwardRule(ForwardRule{
  SrcIP:   "192.168.1.100",
  SrcPort: 8080,
  DstIP:   "10.0.0.2",
  DstPort: 80,
})

API参考

Firewall 接口

type Firewall interface {
  Start() error
  Stop()
  AddRule(rule *Rule)
  RemoveRule(ruleID string) bool
}

Logger 接口

type Logger interface {
  Info(v ...interface{})
  Warn(v ...interface{})
  Error(v ...interface{})
  Debug(v ...interface{})
}