OPNsense安装与使用
本文参考OPNsense中文手册、OPNsense 防火墙系列一:安装、基础配置(PPPoE、IPv6、更换软件源)
(都是优秀文章和作者,有问题推荐看看他们的文章)
简介
为了管控IPV6和为了一定程度上的安全性,我从 爱快 转到了 OPNsense。
以下来自OPNsense简介
OPNsense®是一个 开源 ,易用 且 易于构建 的基于FreeBSD的 防火墙 和 路由平台。
OPNsense包括昂贵的商业防火墙中提供的大多数功能。它带来了丰富的商业产品功能集,具有开放和可验证来源的优势。
使命宣言
为用户,开发人员和企业提供友好,稳定和透明的环境。使OPNsense成为使用最广泛的开源安全平台。该项目的名称源于开放和意义,代表:“开放(源)是有道理的。”
功能集
OPNsense的功能集包括高端功能,如 正向缓存代理 ,流量整形 ,入侵检测 和简单的 OpenVPN客户端 设置。最新版本基于最新的 FreeBSD,并使用基于 Phalcon 的新开发的 MVC框架 。OPNsense 对安全性的关注带来了独特的功能,例如使用 LibreSSL 而不是 OpenSSL(在GUI中可选)和基于 HardenedBSD 的自定义版本。
强大而可靠的更新机制使 OPNsense 能够及时提供重要的安全更新。
OPNsense核心功能
- 流量整形
- 强制门户网站
- 凭证支持
- 模板管理
- 多区域支持
- 正向缓存代理
- 支持透明模式
- 黑名单支持
- 虚拟专用网
- 站点到站点
- Road warrior
- IPsec
- OpenVPN
- 高可用性和硬件故障转移
- 包括配置同步和同步状态表
- 可以与流量整形相结合
- 入侵检测和内联预防
- 对Emerging Treats规则的内置支持
- 使用规则类别进行简单设置
- 定期自动更新
- 内置报告和监控工具
- 系统健康、RRD图表
- 数据包捕获
- 支持插件
- DNS服务器和DNS转发器
- DHCP服务器和中继
- 动态DNS
- 备份和还原
- 加密云备份到Google云端硬盘
- 配置的历史记录
- 本地驱动器备份和还原
- 状态检查防火墙
- 对状态表进行精细控制
- 802.1Q VLAN支持
- 更多..
注意
- OPNsense 是一个防火墙,所以并不支持 NAT1(也就是 全锥型NAT,当然曲线救国方法也有 1:1 NAT ),所以最高能支持到 端口限制型NAT,但是 UPNP 能缓解这一问题(不推荐,更推荐 端口转发 )
- 截止2023年11月6日,ESXI 的快照功能会影响 OPNsense 的 报告功能 和 入侵检测 功能,表现为 CPU占用极高,同 群晖 的虚拟机备份也会影响 OPNsense 的 报告功能 和 入侵检测 功能
- ZFS 文件系统不推荐使用在虚拟机中,极高内存要求可能会导致其他错误,更推荐使用 UFS 文件系统
先前准备
- 两台电脑(双网口以上)
- 大于20G存储(推荐50G)
- RJ45网线
- 显示器和键盘
硬件要求
我是用的 i5-1135G7
64G内存
1T SN550
配置 ,系统是 ESXI8
,网卡全虚拟,并没有做直通
下图仅供参考:
OPNsense轻负载 的 CPU占用 :
接近满速 的 OPNsense CPU占用 :
支持的硬件架构
OPNsense® 适用于 x86-32(i386) 和 x86-64(amd64) 处理器架构。OPNsense 可以在 SD存储卡 、 固态硬盘(SSD) 或 硬盘驱动器(HDD) 上进行完整安装。
虽然支持的设备范围从嵌入式系统到机架式服务器,但如果硬件能够运行64位操作系统,我们建议使用 64位版本 的 OPNsense 。可以在 64位(x86-64,amd64) PC硬件上安装和运行 32位(x86-32,i386) 版本的OPNsense®,但我们不建议这样做,特别是不适用于全新的部署安装。
硬件要求
最低要求:只需要运行不需要磁盘写入的OPNsense 标准功能,或少量写入磁盘的一些功能, 例如缓存代理 (缓存) 或 入侵检测 和 预防 (警报数据库)。
处理器 | 500MHz单核cpu |
---|---|
内存 | 512 MB |
安装方法 | 串行控制台或视频(vga) |
安装目标 | SD或CF卡至少4GB,使用nano镜像进行安装。 |
合理要求:运行所有OPNsense标准功能,但没有大量用户或高负载的情况。
处理器 | 1 GHz双核CPU |
---|---|
内存 | 1 GB |
安装方法 | 串行控制台或视频(vga) |
安装目标 | 40 GB SSD,安装程序运行至少需要1GB内存。 |
推荐要求:能够流畅运行所有OPNsense标准功能,适合大多数的使用情况。
处理器 | 1.5 GHz多核CPU |
---|---|
内存 | 4GB |
安装方法 | 串行控制台或视频(vga) |
安装目标 | 120 GB SSD |
OPNsense所需的硬件将由预期的最小吞吐量和功能来决定。
功能影响
虽然大多数功能不会影响硬件性能,但有一些功能会产生巨大影响。比如:
Squid
用于 Web内容控制的高速缓存Web代理。这些软件包强烈依赖于CPU负载和磁盘缓存写入。
强制门户
具有数百个同时服务的强制门户用户的设置将需要在下面显示的所有硬件规范中具有更多CPU的效能。
状态表
每个状态表条目需要大约 1KB(千字节) 的 RAM。填充了1000个条目 的 平均状态表 将占用大约 10MB(兆字节) 的 RAM。具有数十万个连接的OPNsense使用设置将相应地需要更多的内存。
吞吐量影响
OPNsense设置 的主要硬件因素是 CPU、RAM ,大容量存储(光盘),网络接口的数量和质量。
吞吐量(MBPS) | 硬件要求 | 功能 | 用户/网络 |
---|---|---|---|
1-10 | 基本要求 | 很少 | 很少(1-10) |
11-150 | 最低要求 | 一般 | 一般(10-30) |
151-350 | 合理要求 | 所有 | 大量(30-50) |
350-750 + | 推荐要求 | 所有 | 大量+(50-150 +) |
Mbps(Mbit / s或Mb / s) |
网卡
正如FreeBSD硬件列表和建议所说,用于LAN 连接的使用英特尔®网卡(NIC)更可靠、快速且不容易出错。英特尔芯片组NIC可以在降低CPU负载的情况下提供更高的吞吐量。
支持的硬件
FreeBSD 11.1-RELEASE 是 OPNsense 的基础(现在应该是 FreeBSD 13)。所有 FreeBSD驱动程序 都包含在 OPNsense内核中,硬件兼容性相同。
如需进一步的帮助和支持,请参阅
安装
镜像下载
先从官网下载新版的安装镜像
如图设置:
也可以使用 Peking University open source software mirror 镜像源(北京大学镜像站)
安装OPNsense
- 系统选择 FreeBSD 13
- CPU 尽量分配较多的核心,如果是 1G 外网,可以限制 CPU 份额
5000MHZ
- 内存也是尽量往大了选( 4G 朝上),如果开启 入侵检测 ,规则集多了,很吃内存和硬盘
- 硬盘大小选择
50G
如果使用 ESXI或者 PVE ,硬盘最好使用 厚置备,置零
启动虚拟机或者物理机,等待至如图画面,中途请勿随意按键盘
输入账号:installer
密码:opnsense
,会车显示如下图
- 选择 Install (UFS)
- FreeBSD 硬盘一般是
da
开头,如果是单硬盘,选择da0
就行 - 它会问你是否新建
8G
交换空间,看你需求 - 它会问你是否安装在
da0
硬盘上 - 等待系统安装完成
- 更改
ROOT
密码 - 重启 拔出安装介质 进入 OPNsense
如下图完成安装。
基础使用
基础设置
输入 https://192.168.1.1
进入 OPNsense后台设置
请自行设置电脑或者手机与
OPNsense
同网段192.168.1.0/24
- 默认会跳转到向导界面,点击 下一步(Next) 进行设置
如图自行设置
- 时区设置为
Asia/Shanghai
,下一步 - 设置
WAN
口 - 设置
LAN
口 - 确定 ROOT 密码,为空则不修改
- 重载系统
更换镜像源
默认的镜像速度很慢,所以我们需要更换镜像源
- 点击 系统: 固件 ,然后点击 设置 ,在 镜像 选项选择
Aivian (HTTPS,Shangxing,CN)
,然后保存
如果要 自定义的镜像源 则选择
(custom)
,填入http://mirrors.pku.edu.cn/opnsense/
(北京大学镜像源,请勿自行改成 https) 或者http://mirrors.163.com/opnsense/
(网易镜像源,请勿自行改成 https),然后保存
- 点击 状态 ,点击 检查升级
接口设置
接口分配
点击 接口: 分配 ,在这可以看到 接口描述 、 标识符 和 接口设备(接口在系统名称)
如果没有 WAN口 ,我们可以在下面 Assign a new interface ,选择 设备 vmx*
(一般是 vmx
开头), 然后在 描述 里输入 名称
(全英文和数字,不要有特殊符号,可以全大写)
WAN口设置
- 点击 接口: [WAN]
- 勾选
阻止私有网络
(私有网络IP,更多详情点击阻止私有网络
旁的感叹号) 和拦截bogon网络
(保留IP,更多详情点击拦截bogon网络
旁的感叹号) - 如果是 PPPOE拨号 上网,则在 IPv4配置类型 选择
PPPoE
如果是 DHCP 上网,则在 IPv4配置类型 选择DHCP
如果是 静态V4 上网,则在 IPv4配置类型 选择静态IPV4
- 如果是 PPPOE拨号 上网,下滑到 PPPoE配置 ,在 用户名 密码 填入对应参数,更多高级设置,请进入 接口: 点对点: 设备,保存
如果是 DHCP 上网,下滑到 DHCP客户端配置 查看是否有需要设置的,然后保存
如果是 静态V4 上网,下滑到 静态IPv4配置 ,填入IPv4地址和掩码
,点击 IPv4上游网关 那一行的 + 号,勾选默认网关
,填入IPv4网关
,网关名称 根据需求修改,保存 - 有关 IPV6设置 ,请看本文这里
LAN口设置
- 点击 接口: [LAN]
- 取消勾选
阻止私有网络
(私有网络IP,更多详情点击阻止私有网络
旁的感叹号) 和拦截bogon网络
(保留IP,更多详情点击拦截bogon网络
旁的感叹号) - IPv4配置类型 选择
静态IPV4
- 下滑到 静态IPv4配置 , 填入
IPv4地址
(在10.0.0.0/8
、172.16.0.0/12
、192.168.0.0/16
中任选) ,并选择对应子网掩码
(影响 DHCPV4 分配),保存
网页设置
反代理设置
主要针对的是通过 nginx 对 OPNsense 进行反代理,需要在 OPNsense 修改选项
点击 系统: 设置: 管理 ,勾选 禁用Web GUI重定向规则
、 禁用DNS重绑定检查
、 禁用HTTP_REFERER强制检查
,然后保存
如果遇到 CSRF check failure 请看本文这里
开启安全Shell
点击 系统: 设置: 管理 ,勾选 启用安全Shell
、 允许root用户登录
、 允许密码登录
,并 监听接口 全部接口,然后保存
系统DNS设置
设置网关DNS
这个一般用于系统的DNS(具体作用不太清楚,但要设置)
- 打开 系统: 设置: 常规 , 下滑到 网络 ,找到 DNS服务器 选项并填入
DNS
(阿里:223.5.5.5
腾讯:119.29.29.29
更多请百度) - 文本框 后面选择你的 WAN网关 ,保存
设置 参考 下图:
设置Unbound DNS
这个主要是给局域网用的,支持 dot 加密查询,功能比较多
- 打开 服务: Unbound DNS: 常规 ,点击
启用Unbound
和启用DNSSEC支持
,保存 - 打开 服务: Unbound DNS: 查询转发 ,取消勾选
使用系统DNS服务器
,在下面 添加一条 ,并填入DNS
(阿里:223.5.5.5
腾讯:119.29.29.29
更多请百度),然后保存 应用 - DOT查询设置(没需求这条可以跳过),打开 服务: Unbound DNS: DoT ,取消勾选
使用系统DNS服务器
,在下面 添加一条 ,勾选启用
,服务器IP 填入DNS服务商IP
(官网一般会写), 服务器端口 填入853
(dot 默认端口), 验证CN 填入 DNS服务商域名` (官网一般会写),然后保存 应用
参考 图片设置:
DHCPv4设置
OPNsense 的 DHCPv4
分配IP只能在网段内
- 打开 服务: DHCPv4: [LAN]
- 参考如图自行设置,网关 和 DNS 可以不填
端口限制型 NAT
主要是设置 NAT静态端口 ,所有从同一个内网的(IP,端口)发送出来的请求都会被映射到通过一个外网(IP,端口)
更多介绍查看NAT的四种分类:全锥形NAT,地址受限锥形NAT,端口受限锥形NAT,对称NAT
OPNsense 默认只支持到 对称型NAT ,在打洞等方面极其不友好
我们可以通过 防火墙: NAT: 出站 的 混合生成出站NAT规则
添加 手动规则
实现 端口限制型 NAT
设置参考本文这里 第四点 和 第五点,必须打开 IPV4 的 静态端口
选项(这个是重点),如果没有 NATv6需求 无需添加 IPV6出站规则
IPV4设置如图:
IPV6设置
注意:
如果被运营商分配 IPV6地址64掩码,并没有 IPV6-PD(也就是前缀),是不能给 下联设备 分配 公网IPV6 的,只能使用 NATv6
前缀请求必须和下发前缀的掩码一样,不然不能下发 IPV6
如果使用IPV6检测并提示IPV6大包错误,请调整 接口: [WAN] 的 通用配置 里 MSS
,通常为 1430
(MTU(计算的PPP MTU: 1492) - 60),根据情况可 适当减小 ,别小于 1260
就行(比这小就不能跑 ipv6 了)
Win:
ping -l 1500 baidu.com (减小 -s 后面数值,直到ping通为止,-s 后面数值则为 MSS 大小)
Linux:
ping -s 1500 baidu.com (减小 -s 后面数值,直到ping通为止,-s 后面数值则为 MSS 大小)
公网V6
- 点击 接口: [WAN],下滑到 通用配置 里找到 IPV6配置类型 选择为
DHCPv6
。 - 下滑到 DHCPv6客户端配置,打开
仅请求IPv6前缀
、发送IPv6前缀提示
、使用IPv4连接
,前缀委派大小 设置为60
(要与下发前缀匹配,不然会出BUG),保存
可以在 接口: 概况 里查看 IPv6前缀 ,如图
- 点击 接口: [LAN] ,通用配置 里 IPV6配置类型 设置为
跟踪接口
,下滑到 跟踪IPv6接口 打开允许手动调整DHCPv6和路由器通告
- 点击 防火墙: 设置: 高级 ,在 IPv6选项 打开
允许IPv6
,然后保存 - 点击 服务: DHCPv6: [LAN] (像安卓就不支持 DHCPv6 )或者 服务: 路由器通告: [LAN] (一般使用 路由器通告)
DHCPv6
设置 范围 并设置 DNS服务器,点击在LAN接口上启用DHCPv6服务
,然后 保存,如图参考
路由器通告
打开 通告默认网关 并设置 DNS服务器 ,路由器通告 选项为Assisted
,保存,如图参考
- 现在就能看在手机或者电脑看到
IPV6地址
,使用IPV6检测
NATv6
- 点击 接口: [WAN],下滑到 通用配置 里找到 IPV6配置类型 选择为
DHCPv6
。 - 点击 接口: [LAN],通用配置 里 IPV6配置类型 设置为
静态IPV6
,下滑到 静态IPv6配置 自行设置IPv6地址
(在fd00::/8
里挑选一个),推荐 掩码 设置为64
- 点击 防火墙: 设置: 高级 ,在 IPv6选项 打开
允许IPv6
,然后保存 - 点击 防火墙: NAT: 出站 ,在 模式 里选择
混合生成出站NAT规则
,然后保存 - 在 防火墙: NAT: 出站 的 手动规则 里添加
两条规则
(一条是 IPV4 另一条 IPV6),有关静态端口
选项作用描述 请参考本文这里
如图设置:
完成样子
IPV4设置,IPV6类似( TCP/IP版本 选项选择IPV6
即可):
- 点击 服务: DHCPv6: [LAN] (像安卓就不支持 DHCPv6 )或者 服务: 路由器通告: [LAN] (一般使用 路由器通告)
DHCPv6
设置 范围 并设置 DNS服务器,点击在LAN接口上启用DHCPv6服务
,然后 保存,如图参考
路由器通告
打开 通告默认网关 并设置 DNS服务器 ,路由器通告 选项为Assisted
,保存,如图参考
- 现在就能看在手机或者电脑看到
IPV6
地址,使用IPV6检测
NPTv6公网V6(实验性)
这种实现公网v6方式,兼具 了内网 可管理性,不因为 前缀变化 导致防火墙 规则失效 ,同时保证了 地址独立性 (类似 80端口 可以 共用),更多介绍可以参考IPv6至IPv6网络前缀翻译、适用于 IPv6 的无状态源网络前缀转换
这种实现方式同样需要 ipv6前缀
- 点击 接口: [WAN],下滑到 通用配置 里找到 IPV6配置类型 选择为
DHCPv6
。 - 点击 接口: [LAN],通用配置 里 IPV6配置类型 设置为
静态IPV6
,下滑到 静态IPv6配置 自行设置IPv6地址
(在fd00::/8
里挑选一个),推荐 掩码 设置为64
- 点击 防火墙: 设置: 高级 ,在 IPv6选项 打开
允许IPv6
,然后保存 - 点击 防火墙: NAT: NPTv6 ,点击 + 号,在 内部IPv6前缀 填入 NPTv6公网V6 的 第二步 的
IPv6地址
的前缀(如果填入的是fd88::1/64
,那么 前缀 则是fd88::/64
,那就填入fd88::
,后面选择64
),然后保存即可 - 点击 服务: DHCPv6: [LAN] (像安卓就不支持 DHCPv6 )或者 服务: 路由器通告: [LAN] (一般使用 路由器通告)
DHCPv6
设置 范围 并设置 DNS服务器,点击在LAN接口上启用DHCPv6服务
,然后 保存,如图参考
路由器通告
打开 通告默认网关 并设置 DNS服务器 ,路由器通告 选项为Assisted
,保存,如图参考
- 现在就能看在手机或者电脑看到
IPV6
地址,使用IPV6检测
网络时间设置(NTP对时)
点击 服务: 网络时间: 常规 ,默认是(忘了( • ̀ω•́ )✧)
推荐几个NTP服务器
-
腾讯云NTP授时服务器地址
ntp.tencent.com
ntp1.tencent.com -
阿里NTP授时服务器地址
ntp.aliyun.com
-
教育网内的授时服务器
edu.ntp.org.cn
2001:da8:9000::130
2001:250:380A:5::10
202.118.1.130
202.118.1.81 -
中国计量科学研究院 NIM 授时服务
ntp1.nim.ac.cn
ntp2.nim.ac.cn
111.203.6.13 -
教育网(高校自建)
ntp.sjtu.edu.cn
ntp.neu.edu.cn
ntp.bupt.edu.cn
ntp.shu.edu.cn
ntp.tuna.tsinghua.edu.cn # 清华大学(ipv4/ipv6) -
国家授时中心 NTP 服务器
ntp.ntsc.ac.cn
114.118.7.161
114.118.7.163 -
中国 NTP 快速授时服务
cn.ntp.org.cn
2001:da8:9000::81
223.113.97.98
114.67.103.73
119.29.26.206
120.25.115.20 -
香港地区
hk.ntp.org.cn
stdtime.gov.hk -
台湾地区
tw.ntp.org.cn
-
日本
jp.ntp.org.cn
-
韩国
kr.ntp.org.cn
-
新加坡
sgp.ntp.org.cn
-
美国
us.ntp.org.cn
-
德国
de.ntp.org.cn
-
印度尼西亚
ina.ntp.org.cn
-
国际 NTP 快速授时服务
cn.pool.ntp.org
-
国外授时服务器
time1.apple.com
time2.apple.com
time3.apple.com
time1.google.com
time2.google.com
time3.google.com
time.cloudflare.com
time.windows.com
time.nist.gov # 美国标准技术研究院 NTP 服务器
time-nw.nist.gov
time-a.nist.gov
time-b.nist.gov -
国际 NTP 快速授时服务
pool.ntp.org
0.pool.ntp.org
1.pool.ntp.org
2.pool.ntp.org
3.pool.ntp.org
asia.pool.ntp.org
进阶使用
别名
OPNsense 的 别名 是个非常强大的功能,在我们遇到遇到一堆主机需要使用相同的隔离规则的时候,不肯能一个一个添加,这太麻烦了,这个时候 别名 就起到了大作用
别名类型
首先我们先看看 别名类型 有哪些,有什么作用(以下来自OPNsense防火墙别名的使用)
主机
主机别名 类型允许输入 IP 地址
、本地主机名
或 完全限定域名 (FQDN)
。如果需要经常在规则中引用 IP 地址,则可以将其设为 主机别名 并在 规则 中使用该别名。由于 防火墙规则 仅允许 IP
或 网络地址
,因此必须使用 别名 才能在规则中使用 主机名
或 FQDN
。
主机别名 还允许使用 !
排除对象。例如,如果输入 !192.168.1.10
,则表示排除 192.168.1.10
。排除选项 只对 IP 地址
有效。
主机别名 示例:
- IP 地址 :
192.168.1.10
或!192.168.1.10
(也允许 IPv6 地址) - 本地主机名(不带域名) :
myserver
或!myserver
- FQDN :
pfchina.org
或!pfchina.org
- 可以在别名中输入以 逗号分隔 的 IP 地址 、 主机名 和 FQDN 的任意组合的多个值,例如:
192.168.1.10
,192.168.1.11
,myserver1
,pfchina.org
网络
网络别名 允许以 CIDR 格式
输入网络的 IP 地址范围。CIDR 表示法 是通过使用设置为 1
的位数来定义子网掩码的方法。其余设置为 0
。在 192.168.1.0/24
的示例中,/24
是 CIDR 表示法 网络地址的 一部分,相当于 子网掩码 255.255.255.0。允许排除网络别名,如 主机别名。
网络别名 示例:
192.168.1.0/24
或!192.168.1.0/24
(也允许 IPv6 地址)- 可以输入 多个网络:
192.168.1.0/24
,192.168.2.0/24
端口
端口别名 允许指定 端口号。可以输入 0
到 65,535
之间的数字。要指定一系列 连续端口,请在端口号之间使用 冒号 (:
)。
端口别名 示例:
- 端口 :
8080
- 端口范围 :
8000:8080
- 可以输入 多个端口,包括 端口范围:
22
,8000:8080
URL (IPs)
网址(IPs)别名 用于托管在网站上的 IP 地址列表。在 OPNsense 文档中没有提及 URL (IPs) 的 别名类型。将 URL (IPs) 与 URL Table (IPs) 进行比较时,主要区别在于 刷新频率,URL (IPs) 用于 IP 地址
的 静态列表。
网址(IPs)别名 可以使用 域名
、 主机名
、 IPV4地址
、 IPV6地址
、 IP 地址范围(CIDR 格式)
URL (IPs)别名 示例:
https://domainname.com/ip-list.txt
- 可以输入 多个 URL:
https://domainname.com/ip-list.txt
,https://domainname2.com/ip-list2.txt
URL Table (IPs)
URL Table (IPs)别名 用于 IP 地址列表,如 URL (IPs)别名。大多数用户最喜欢使用这个 URL 别名类型 ,它可以 定期刷新,对于阻止列表很有用。URL Table (IPs)别名 可以 指定更新间隔。
URL Table (IPs)别名 可以使用 域名
、 主机名
、 IPV4地址
、 IPV6地址
、 IP 地址范围(CIDR 格式)
URL Table (IPs)别名 示例:
https://domainname.com/ip-list.txt
- 可以输入 多个 URL:
https://domainname.com/ip-list.txt
,https://domainname2.com/ip-list2.txt
GeoIP
当需要阻止来自 其他国家/地区 的 IP/网络地址 时,可以使用 GeoIP别名。托管在云上的服务和通过 VPN、Tor 或 SSH 建立 隧道网络 连接,很容易绕过 GeoIP阻止。但是它仍然很有用,它可以 阻止 来自不熟练的攻击者 或来自其他国家的受感染机器的随机攻击。
要设置 GeoIP别名,必须注册 MaxMind 的 GeoIP 服务 以获取完全配置 GeoIP 别名 所需的 GeoIP 地址范围。
具体设置可以看这里MaxMind GeoIP’s Setup
网络组
网络组别名 可用于 对除 端口别名 和 外部(高级)别名 类型之外的 其他别名 类型进行分组。该别名类型仅允许对兼容的别名进行分组。使用 网络组别名 的主要好处是它可以防止对 不兼容 的别名进行分组。
网络组别名 示例:
hostalias1
,hostalias2
,urlalias
(从下拉列表中选择)
MAC地址
MAC 地址别名 允许在 别名 中使用 MAC 地址
。MAC 地址别名 无法 杜绝恶意用户 使用 欺骗MAC地址,这是该别名使用存在的缺陷。
MAC 地址别名 更新是需要时间的,如果客户端一直不使用 IP
进行访问,则不会记录 MAC 地址 所使用的 IP
MAC 地址别名 示例:
3f:cf:3f:1f:7f:bf
- 也可以输入多个 MAC 地址:
3f:cf:3f:1f:7f:bf
,3e:ce:3e:1e:7e:be
外部(高级)
当希望外部进程管理防火墙中别名的值时,可以使用 外部(高级)别名 类型。如果需要动态更改别名的值,这会非常方便。由于 OPNsense 具有 防火墙 API,可以更好的从外部进程更新/管理防火墙规则。(说得好,不会用 ̄ω ̄=)
别名嵌套
对于所有别名类型,可以在别名中 嵌套别名。如果希望将多个别名组合在一起,这会很有用。例如,如果有 server1
和 server2
的别名,可以创建一个名为 myservers
的第三个别名,其中包含 server1
和 server2
。这样做,可以在它们自己的特定防火墙规则中使用 server1
和 server2
别名,但随后有适用于两个服务器的更广泛的防火墙规则。
删除别名
要 删除嵌套 在另一个别名中和/或防火墙规则当前正在使用的别名,将收到错误消息。这样的设置可以防止违反任何防火墙规则。
创建别名
那么我们已经了解了 别名类型 就开始正式上手把
在上手之前提醒一下,别删内置的别名(反正你也删不了(~ ̄▽ ̄)~ )
- 点击 防火墙: 别名 ,点击下方的
+
号,创建别名 - 输入别名名称(名称必须以 字母 或 单个下划线 开头,少于 32个字符,并且仅由 字母数字字符 或 下划线 组成。可以使用此名称嵌套别名。)
- 选择类型(参考本文这里)
- 输入内容
- 输入描述(看你心情填与否)
- 保存
端口转发
相比 UPNP (通用随插即用) 端口转发手动控制转发安全性要好一点
普通转发
- 点击 防火墙: NAT: 转发 ,点击上方的
+
号,创建规则 - 接口 通常选择
WAN
- TCP/IP版本 看你需求
- 协议 一般选择
TCP/UDP
- 目标 一般为
WAN网络
或者WAN地址
- 目标端口范围 如果只转发一个端口,则填一样,如果转发一段端口,从 填入
开始端口
到 填入结束端口
- 重定向目标IP 可以填入
别名
和单主机
,别名 相关请看这里 - 重定向目标端口 填入想要
转发端口
,如果是一段端口,则填入开始端口
(1:1对应) - 保存,应用更改
目标重定向
对某个目标的端口进行重定向,这边就拿 DNS重定向 举例:
- 点击 防火墙: NAT: 转发 ,点击上方的
+
号,创建规则 - 接口 通常选择
LAN
- TCP/IP版本 看你需求
- 协议 一般选择
TCP/UDP
- 勾选
目标 / 反转
- 目标 一般为
LAN网络
或者LAN地址
- 目标端口范围 选择
DNS
- 重定向目标IP 填入
127.0.0.1
或者DNS服务器
- 重定向目标端口 选择
DNS
- 保存,应用更改
禁止重定向
如果我们不需要对 某个IP 重定向,这边那上面的 DNS重定向 举例
假设内网的 DNS查询 重定向到 192.168.1.2 ,这个时候我们需要取消对 192.168.1.2 重定向
- 点击 防火墙: NAT: 转发 ,点击上方的
+
号,创建规则 - 勾选
禁用重定向
- 接口 通常选择
LAN
- TCP/IP版本 看你需求
- 协议 一般选择
TCP/UDP
- 勾选
目标 / 反转
- 目标 填入
192.168.1.2
- 目标端口范围 选择
DNS
- 保存,应用更改
BUG解决
CSRF check failure
如果进入 OPNsense 网页端,登录后,显示 白色背景 和 黑色字 并包含 CSRF 词,多半是 跨站请求伪造 (CSRF) 保护
这种情况一般是 重启后,网页没有刷新,才会跳出,只需要 删除路径 ,直接访问 根目录
如果上面方法不行,可以尝试 无痕模式 、 清理缓存和cookie 、 更换浏览器 、 更换另一种设备 等操作
如果没有效果,并且尝试重启 OPNsense 所有服务后(不是重启,重启可能连系统都打不开),依然如此,可以判定为 PHP挂了