Lucky IPv6防火墙规则:端口开放策略,公网访问的边界防护
一、IPv6防火墙核心模块解析
Lucky防火墙体系基于黑白名单双机制实现访问控制,核心逻辑封装在安全模块中。安全检查入口函数SafeCheck通过模式参数切换黑白名单验证流程,其中白名单采用"默认拒绝"策略,仅允许列表内IP访问;黑名单则采用"默认允许"策略,仅拦截指定IP。
安全检查实现:
- config/safecheck.go:全局安全检查函数实现
- module/safe/safecheck.go:模块化安全验证逻辑
白名单验证流程会检查IP匹配状态和时间有效性,代码片段如下:
func whiteListCheck(ip string) bool {
for _, item := range config.Configure.WhiteListConfigure.WhiteList {
if !item.Contains(ip) {
continue
}
// 时间有效性校验逻辑
itemEffectiveTime, err := time.ParseInLocation("2006-01-02 15:04:05", item.EffectiveTime, time.Local)
if time.Since(itemEffectiveTime) < 0 {
return true // IP在有效期内允许访问
}
}
return false // 默认拒绝
}
二、白名单配置实战指南
白名单配置通过Web界面可视化操作,支持IP段设置、时间限制和精细权限控制。系统提供两种配置视图:列表视图用于规则管理,设置视图用于详细参数配置。
核心配置文件:
- module/safe/conf/white.go:白名单配置结构定义
- module/safe/whitelist.go:白名单管理实现
配置项说明: | 参数 | 类型 | 说明 | |------|------|------| | Name | 字符串 | 规则名称 | | IP | 字符串 | 支持CIDR格式(如2001:db8::/32) | | EffectiveTime | 时间 | 规则生效时间 | | ExpireTime | 时间 | 规则过期时间 |
三、端口转发安全策略
端口转发模块采用"规则即策略"设计,每个转发规则可独立配置访问控制选项。在IPv6环境下,需特别注意监听地址配置,建议明确指定IPv6地址而非使用通配符绑定。
端口转发配置结构:
type PortForwardsRule struct {
Name string `json:"Name"`
Enable bool `json:"Enable"`
ForwardTypes []string `json:"ForwardTypes"` // 支持tcp/udp
ListenAddress string `json:"ListenAddress"` // 如[2001:db8::1]:8080
TargetAddressList []string `json:"TargetAddressList"`
// 安全选项
Options proxy.RelayRuleOptions `json:"Options"`
}
规则配置文件:module/portforward/conf/portforward.go
转发规则支持端口范围配置,通过短横线表示连续端口,逗号分隔多个范围:
# 端口配置示例
ListenPorts: "80-82,443"
TargetPorts: "8080-8082,8443"
四、IPv6访问控制最佳实践
4.1 地址规划原则
- 使用唯一本地地址(ULA)作为内网标识,避免直接暴露全局单播地址
- 为关键服务配置独立的IPv6地址,便于精细化权限控制
- 定期审计IPv6地址分配,清理无效地址映射
4.2 端口开放最小权限
仅开放必要服务端口,典型场景配置示例:
| 服务 | 端口 | 协议 | 访问控制 |
|---|---|---|---|
| Web管理 | 8080 | TCP | 限制特定IPv6段 |
| SSH | 22 | TCP | 白名单IP + 密钥认证 |
| 媒体服务 | 8090 | TCP/UDP | 家庭网段开放 |
4.3 安全日志审计
启用访问日志记录功能,通过Web界面查看连接记录:
- 日志配置:module/portforward/conf/portforward.go#L35-L39
- 日志查看:Web管理界面"系统日志"模块
五、配置文件与模块路径索引
核心安全模块:
- 黑白名单配置:config/blacklist.go、config/whitelist.go
- 安全检查实现:module/safe/safe.go
端口转发模块:
- 主配置文件:config/portforward.go
- 代理实现:module/portforward/portforward.go
- 套接字代理:proxy/tcpproxy.go、proxy/udpproxy.go
Web管理界面:
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考







