OPNsense安装与使用

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 能缓解这一问题(不推荐,更推荐 端口转发 )

OPNsense 入侵检测功能在 变动IP 网口上使用会导致 CPU占用 过高(说的就是 PPPOE拨号)

流量分析 、 流量图标 、 Unbound DNS 等 报告功能 在 突然断电 等情况下会导致数据损坏,进而导致 CPU占用 过高

请在 前期 做好 网络规划 !!! OPNsense 随意 添加网卡 会导致 标识符 和 设备 变动,其次 高可用 更要求 标识符 和 设备 一一对应,请务必做好 网络规划 !!!

目前 高可用 功能不能在 同一台 虚拟机平台(指一台机器安装 ESXI,并在 这台机器 的 ESXI虚拟平台 虚拟两个 OPNsense)(这一点存疑)

高可用 功能有 DUP! 问题在 ESXI 上, 所以 ESXI 用户请注意,在端口组开启 混杂模式 时会出现 DUP! 问题,但关闭后会导致 OpenWrt 无法访问 OPNsense,同时 Docker 的 MACVlan 也将无法使用。所以请尽量选择 PVE,而且 OPNsense 在 PVE 上的性能更好。

OPNsesne 的 VLAN配置 貌似无法使用,物理机用户请考虑一下

添加新网卡 可能会导致 FREEBSD 的网卡顺序更改,请不要慌张,到终端中设置一下(貌似仅限在 ESXI)

请注意主机带有 VPRO 功能的,并且使用 intel 2.5G 网卡 (淦,讲了句废话),由于INTEL网卡BUG,导致 OPNsense 无法发出 DHCP Offer,解决方法是不使用 intel 2.5G 网卡

推荐虚拟平台使用 PVE !!! 推荐虚拟平台使用 PVE !!! 推荐虚拟平台使用 PVE !!!(重要的事情说三遍,顺便提示一点: ESXI 无法准确计算 OPNsense 内存占用)

先前准备

两台电脑(双网口以上)

大于20G存储(推荐50G)

RJ45网线

显示器和键盘

性能测试

我是用的 i5-1135G7 、 64G DDR4内存 、 SN550 Nvme 1T 配置 ,系统是 ESXI8 ,网卡全虚拟,并没有做 直通 ,并且对 OPNsense 进行过 优化(目前已经换成 PVE)

OPNsense轻负载 的 各项占用 :

设备

参数

处理器频率占用(ESXI)

761MHz

内存(从 ESXI里 看占满,OPNsense 里为 7%)

16G

存储大小

120G

接近满速 的 OPNsense CPU占用 :

使用 QB BT 下载(速度为 92MB/S)作为负载

设备

参数

处理器频率占用(ESXI)

4.6G

内存(从 ESXI里 看占满)

16G

存储大小

120G

安装须知

支持的硬件架构

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内核中,硬件兼容性相同。

如需进一步的帮助和支持,请参阅

FreeBSD 11.1-RELEASE硬件兼容性列表

OPNsense论坛

安装

镜像下载

先从官网下载新版的安装镜像

可选项

选择

architecture

amd64

Select the image type

dvd

Mirror Location

Aivian(或者Peking University open source software mirror镜像源(北京大学镜像站))

安装OPNsense

虚拟机配置

系统选择 FreeBSD 13

CPU 尽量分配较多的核心,如果是 1G 外网,可以限制 CPU 份额 5000MHZ

内存也是尽量往大了选( 4G 朝上),如果开启 入侵检测 ,规则集多了,很吃内存和硬盘

硬盘大小选择 50G 如果使用 ESXI或者 PVE ,硬盘最好使用 厚置备,置零

安装

启动虚拟机或者物理机,等待至让 输入账号 画面(显示login:),中途请勿随意按键盘,否则就会进入 配置VLAN 、 配置LAGG 画面。

输入账号:installer 密码:opnsense,进入选择 键位图(Keymap Selection)

选择合适的 键位(默认回车就行)

选择 Install (UFS)

FreeBSD 硬盘一般是 da 开头,如果是单硬盘,选择 da0 就行

它会问你是否新建 8G 交换空间,看你需求

它会问你是否安装在 da0 硬盘上

等待系统安装完成

更改 ROOT 密码

重启 拔出安装介质 进入 OPNsense

基础使用

基础设置

输入 https://192.168.1.1 进入 OPNsense后台设置

请自行设置电脑或者手机与 OPNsense 同网段 192.168.1.0/24

默认会跳转到向导界面,点击 下一步(Next) 进行设置

可选项

选择

语言

中文

首选DNS服务器

223.5.5.5

辅助DNS服务器

119.29.29.29

覆盖DNS

不勾选

启用解析器

勾选

启用DNSSEC支持

推荐勾选

强化DNSSEC数据

推荐勾选

启用DNSSEC支持 可以有效防止 DNS劫持 ,原理是验证查询结果的 数字签名

强化DNSSEC数据 在遇到非权威结果时会直接丢弃,自建DNS 时 请勿开启

2. 时区设置为 Asia/Shanghai,下一步

3. 设置 WAN 口

4. 设置 LAN 口

5. 确定 ROOT 密码,为空则不修改

6. 重载系统

更换镜像源

默认的镜像速度很慢,所以我们需要更换镜像源

点击 系统: 固件 ,然后点击 设置 ,在 镜像 选项选择 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 分配),保存

终端中配置网卡

有时一不小心删除了管理网口,这个时候可以通过终端配置网卡

在终端中输入 账号密码 ,进入 管理选项

输入 数字1 ,进入 接口分配

先回问你是否需要配置 LAGGs VLANs ,回车即可跳过

接下来会问 WAN 分配的网卡,输入 网卡名称

然后问你 LAN 分配的网卡,输入 网卡名称(也可回车跳过)

后面就是问你 OPTN(N代表数字) 分配的网卡,输入 网卡名称(不填则代表配置结束)

最后问你 是否保存 ,输入 y 并回车确定

输入 数字2 ,进入 接口设置

输入配置接口的 数字

先问你是否要 配置DHCP

后问你这个接口 地址,请填入 IPV4地址

接下来问你是否配置 IPV6地址跟踪WAN

然后问你是否将 HTTPS改为HTTP

后问你是否创建新的 HTTPS证书

最后问你是否 重启组件

测试一下是否能够访问,能访问为配置完成

防火墙规则配置

OPNsense 作为开源防火墙,怎么能少了防火墙配置呢

创建简单的允许互访的规则

一般在 添加 、 分配 、 配置 接口后,需要在防火墙规则上配置允许访问的规则,否则无法与防火墙通讯(自动创建规则 允许SSH和WEB 访问)

点击 防火墙: 规则: LAN (点击 对应接口 选项卡,这里以 LAN 为例子)

点击 橙色的加号 添加规则,这里创建最简单的互访规则(允许 LAN网络 访问 防火墙及其它网络 )

参考如下设置:

选项

参数

操作

通过

禁用

不勾选

快速

勾选

接口

LAN

方向

in

TCP/IP版本

IPV4(根据情况自行选择)

协议

any

源 / 反转

不勾选

LAN网络

源(高级)

不更改

目标 / 反转

不勾选

目标

any

目标端口范围

any

日志

不勾选

类别

(根据自己需要填写)

描述

Default allow LAN to any rule(根据情况填写)

不同步XMLRPC

不勾选

计划

none

网关

默认

高级功能

不修改

点击保存

确认无误后,应用更改

创建简单的阻断规则

有时候需要禁止访问一些IP,设置一些阻止规则丢弃这些包

点击 防火墙: 规则: LAN (点击 对应接口 选项卡,这里以 LAN 为例子,禁止 LAN设备 访问 阿里的DNS )

点击 橙色的加号 添加规则,这里创建最简单的阻止规则(禁止 LAN设备 访问 阿里的DNS )

参考如下设置:

选项

参数

操作

阻止(或者拒绝)

禁用

不勾选

快速

勾选

接口

LAN

方向

in

TCP/IP版本

IPV4(根据情况自行选择)

协议

any

源 / 反转

不勾选

LAN网络

源(高级)

不更改

目标 / 反转

不勾选

目标

223.5.5.5(鼠标网上划,找到 单个主机或网络 ,即可填写IP,当然也可以填写别名)

目标端口范围

53(也可以填 any)

日志

不勾选

类别

(根据自己需要填写)

描述

禁止访问阿里DNS(根据情况填写)

不同步XMLRPC

不勾选

计划

none

网关

默认

高级功能

不修改

选择 阻止 防火墙会直接丢弃包,而 拒绝 防火墙会返回一个拒绝的包

点击保存

确认无误后,应用更改

网页设置

反代理设置

主要针对的是通过 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网关 ,保存

设置参考:

DNS服务器

应用网关

119.29.29.29

WAN_DHCP - wan-100.65.0……

2400:3200::1

WAN_DHCP6 - wan -fe80::3……

设置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服务商域名` (官网一般会写),然后保存 应用

DOT 设置参考:

选项

选择

编辑服务器

启用

勾选

服务器IP

223.5.5.5

服务器端口

853

验证CN

dns.alidns.com

DHCPv4设置

OPNsense 的 DHCPv4 分配IP只能在网段内

打开 服务: DHCPv4: [LAN]

参考如下,请自行设置,网关 和 DNS 可以不填,默认为路由器本机

选项

选择

启用

勾选

范围 从

192.168.1.10

范围 到

192.168.1.245

端口限制型 NAT

主要是设置 NAT静态端口 ,所有从同一个内网的(IP,端口)发送出来的请求都会被映射到通过一个外网(IP,端口)

更多介绍查看NAT的四种分类:全锥形NAT,地址受限锥形NAT,端口受限锥形NAT,对称NAT

OPNsense 默认只支持到 对称型NAT ,在打洞等方面极其不友好

我们可以通过 防火墙: NAT: 出站 的 混合生成出站NAT规则 添加 手动规则 实现 端口限制型 NAT

设置参考本文这里 第四点 和 第五点,必须打开 IPV4 的 静态端口 选项(这个是重点),如果没有 NATv6需求 无需添加 IPV6出站规则

IPV4设置如下:

选项

选择

禁用

不勾选

禁用NAT

不勾选

接口

WAN(一般选择出口)

TCP/IP

IPV4

协议

any

源反转

不勾选

源地址

LAN 网络

源端口

any

目标反转

不勾选

目标地址

any

转换/目标

接口地址

日志

不勾选

转换/端口

静态端口

勾选

IPV6设置

注意:

如果被运营商分配 IPV6地址64掩码,并没有 IPV6-PD(也就是前缀),是不能给 下联设备 分配 公网IPV6 的,只能使用 NATv6

前缀请求必须和下发前缀的掩码一样,不然不能下发 IPV6

如果使用IPV6检测并提示IPV6大包错误,请调整 接口: [WAN] 的 通用配置 里 MSS ,通常为 1430 (MTU(计算的PPP MTU: 1492) - 60),根据情况可 适当减小 ,别小于 1260 就行(比这小就不能跑 ipv6 了)

如果不知道该用什么数值的话,,可以试试1420 、 1400

具体原因可以看看这篇文章,简单来说 手机等终端设备 一些时候在发送数据包时会携带 不要分包标记 DF ( Don't Fragment ) ,但是当数据包经过一些 中间设备 超出 MTU限制 会 直接丢弃 而不是 发送需要分段 ICMP Fragmentation Needed,这就造成了 TCP超时 问题。

Win:

ping -l 1500 baidu.com (减小 -s 后面数值,直到ping通为止,-s 后面数值则为 MSS 大小)

Linux:

ping -s 1500 baidu.com (减小 -s 后面数值,直到ping通为止,-s 后面数值则为 MSS 大小)

公网V6

通过设置出站,同样可以实现 NATv6 ,参考本文这里 第四点 和 第五点

另一种实现方式可以参考本文这里

点击 接口: [WAN],下滑到 通用配置 里找到 IPV6配置类型 选择为 DHCPv6。

下滑到 DHCPv6客户端配置,打开 仅请求IPv6前缀、发送IPv6前缀提示 、使用IPv4连接,前缀委派大小 设置为 60 (要与下发前缀匹配,不然会出BUG),保存

可以在 接口: 概况 里点击 WAN口 旁边 搜索图标 查看 IPv6前缀 ,如下

项目

参数

路由

default

100.65.0.1

223.5.5.5

223.6.6.6

default

2400:3200::1

2400:3200:baba::1

2409:80:52:3**3::/64

fe80::%pppoe0/64

点击 接口: [LAN] ,通用配置 里 IPV6配置类型 设置为 跟踪接口,下滑到 跟踪IPv6接口 打开 允许手动调整DHCPv6和路由器通告

点击 防火墙: 设置: 高级 ,在 IPv6选项 打开 允许IPv6,然后保存

点击 服务: DHCPv6: [LAN] (像安卓就不支持 DHCPv6 )或者 服务: 路由器通告: [LAN] (一般使用 路由器通告)

DHCPv6

设置 范围 并设置 DNS服务器,点击 在LAN接口上启用DHCPv6服务,然后 保存

参考如下

项目

参数

启用

勾选

子网

(接口设置,无需填写)

子网掩码

(接口设置,无需填写)

有效范围

(接口设置,无需填写)

范围 从

::1

范围 到

::ffff

可用的前缀委派大小

(接口设置,无需填写)

前缀委派范围 从

前缀委派范围 到

前缀委派范围 前缀委派大小

DNS服务器

2400:3200::1

路由器通告

打开 通告默认网关 并设置 DNS服务器 ,路由器通告 选项为 Assisted,保存

如下参考

项目

参数

路由器通告

Assisted

路由器优先级

正常

源地址

自动

通告默认网关

勾选

广播路由 前缀

广播路由 长度

DNS选项

(全部不勾选)

DNS服务器

2400:3200::1

现在就能看在手机或者电脑看到 IPV6地址 ,使用IPV6检测

NATv6

点击 接口: [WAN],下滑到 通用配置 里找到 IPV6配置类型 选择为 DHCPv6。

点击 接口: [LAN],通用配置 里 IPV6配置类型 设置为 静态IPV6 ,下滑到 静态IPv6配置 自行设置 IPv6地址 (在 fd00::/8 里挑选一个),推荐 掩码 设置为 64

点击 防火墙: 设置: 高级 ,在 IPv6选项 打开 允许IPv6,然后保存

点击 防火墙: NAT: 出站 ,在 模式 里选择 混合生成出站NAT规则 ,然后保存

在 防火墙: NAT: 出站 的 手动规则 里添加 两条规则 (一条是 IPV4 另一条 IPV6),有关 静态端口 选项作用描述 请参考本文这里

如下设置:

完成样子

接口

源端口

目标

目标端口

NAT地址

NAT端口

静态端口

描述

WAN

LAN网络

*

*

*

接口地址

*

IPV4 NAT出站

WAN

LAN网络

*

*

*

接口地址

*

IPV6 NAT出站

IPV4设置,IPV6类似( TCP/IP版本 选项选择 IPV6 即可):

选项

选择

禁用

不勾选

禁用NAT

不勾选

接口

WAN(一般选择出口)

TCP/IP

IPV6

协议

any

源反转

不勾选

源地址

LAN 网络

源端口

any

目标反转

不勾选

目标地址

any

转换/目标

接口地址

日志

不勾选

转换/端口

静态端口

勾选

点击 服务: DHCPv6: [LAN] (像安卓就不支持 DHCPv6 )或者 服务: 路由器通告: [LAN] (一般使用 路由器通告)

DHCPv6

设置 范围 并设置 DNS服务器,点击 在LAN接口上启用DHCPv6服务,然后 保存

如下参考

项目

参数

启用

勾选

子网

(接口设置,无需填写)

子网掩码

(接口设置,无需填写)

有效范围

(接口设置,无需填写)

范围 从

::1

范围 到

::ffff

可用的前缀委派大小

(接口设置,无需填写)

前缀委派范围 从

前缀委派范围 到

前缀委派范围 前缀委派大小

DNS服务器

2400:3200::1

路由器通告

打开 通告默认网关 并设置 DNS服务器 ,路由器通告 选项为 Assisted,保存

如下参考

项目

参数

路由器通告

Assisted

路由器优先级

正常

源地址

自动

通告默认网关

勾选

广播路由 前缀

广播路由 长度

DNS选项

(全部不勾选)

DNS服务器

2400:3200::1

现在就能看在手机或者电脑看到 IPV6 地址,使用IPV6检测

NPTv6公网V6

这种实现公网v6方式,兼具 了内网 可管理性,不因为 前缀变化 导致防火墙 规则失效 ,同时保证了 地址独立性 (类似 80端口 可以 共用),更多介绍可以参考IPv6至IPv6网络前缀翻译、适用于 IPv6 的无状态源网络前缀转换

这种实现方式同样需要 ipv6前缀

点击 接口: [WAN],下滑到 通用配置 里找到 IPV6配置类型 选择为 DHCPv6。

点击 接口: [LAN],通用配置 里 IPV6配置类型 设置为 静态IPV6 ,下滑到 静态IPv6配置 自行设置 IPv6地址 (在 fd00::/8 里挑选一个),推荐 掩码 设置为 64

点击 防火墙: 设置: 高级 ,在 IPv6选项 打开 允许IPv6,然后保存

点击 接口: 设备: Loopback ,添加一个 Loopback 设备

点击 接口: 分配 , 给刚才的 Loopback 设备分配接口(我这里设置 描述 是 NPTv6 )

点击 刚才的分配的接口(接口: [NPTv6])

如下参考

项目

参数

启用

勾选

IPv6配置类型

Identity association

父接口

WAN

分配前缀ID

0x1(不要与其他接口重复)

点击 防火墙: NAT: NPTv6 ,点击 + 号

如下参考

项目

参数

启用

勾选

接口

WAN

内部IPv6前缀

fd00::/8(刚才在LAN填的)

跟踪接口

NPTv6(LoopBack)

点击 服务: DHCPv6: [LAN] (像安卓就不支持 DHCPv6 )或者 服务: 路由器通告: [LAN] (一般使用 路由器通告)

设置 范围 并设置 DNS服务器,点击 在LAN接口上启用DHCPv6服务,然后 保存

如下参考

项目

参数

启用

勾选

子网

(接口设置,无需填写)

子网掩码

(接口设置,无需填写)

有效范围

(接口设置,无需填写)

范围 从

::1

范围 到

::ffff

可用的前缀委派大小

(接口设置,无需填写)

前缀委派范围 从

前缀委派范围 到

前缀委派范围 前缀委派大小

DNS服务器

2400:3200::1

路由器通告

打开 通告默认网关 并设置 DNS服务器 ,路由器通告 选项为 Assisted,保存

如下参考

项目

参数

路由器通告

Assisted

路由器优先级

正常

源地址

自动

通告默认网关

勾选

广播路由 前缀

广播路由 长度

DNS选项

(全部不勾选)

DNS服务器

2400:3200::1

现在就能看在手机或者电脑看到 IPV6 地址,使用IPV6检测

网络时间设置(NTP对时)

使用默认NTP服务器

点击 服务: 网络时间: 常规

如下参考

项目

参数

NTP服务器

网络

首选

爆发

不使用

cn.pool.ntp.org

ntp.aliyun.com

ntp.tencent.com

使用Chrony对时

> 相比于 NTPD , Chrony 有着对时速度更快,更平滑的对时过渡,更精准的时钟精度的优势

点击 系统: 固件 , 勾选 显示社区插件 ,安装 os-chrony

点击 服务: Chrony: 常规 ,在 NTP远端 添加 NTP服务器地址 (因为选不了池,所以推荐多配置点)

ntp.aliyun.com

ntp.tencent.com

cn.pool.ntp.org

cn.ntp.org.cn

ntp.ntsc.ac.cn

ntp.cnnic.cn

ntp1.nim.ac.cn

time.cloudflare.com

time.apple.com

至于 允许的网络 ,如果需要作为 NTP服务器 ,就把哪些网段需要访问填入

允许内网访问配置如下

10.0.0.0/8

172.16.0.0/12

192.168.0.0/16

fd00::/8

流控

OPNsense 是在网络三层进行管控,相比一些带有流量识别路由器系统,OPNsense 的 流量整形 更加有效

本文主要介绍 流量优先级 ,其他可以参考博主 鐵血男兒 的 OPNsense设置带宽整形教程

创建流量优先级流控

点击 防火墙: 流控: 管道

创建 上传管道 、 下载管道

上传管道 :

带宽 输入 160 (根据你自己宽带来)

单位 Mbit/s (根据你自己需求来)

描述上传管道

下载管道 :

带宽 输入 1000 (根据你自己宽带来)

单位 选择 Mbit/s (根据你自己需求来)

描述 下载管道

创建 HTTP上传队列 、 HTTP下载队列 、 其他流量队列上传 、 其他流量队列下载

权重 数值越低的,拥挤情况下获得带宽就越多,但不是优先事项

HTTP上传队列:

管道 选择 上传管道

权重 设置为 50

描述 HTTP上传队列

HTTP下载队列:

管道 选择 下载管道

权重 设置为 50

描述 HTTP下载队列

其他流量队列上传:

管道 选择 上传管道

权重 设置为 80

描述 其他流量队列上传

其他流量队列下载:

管道 选择 下载管道

权重 设置为 80

描述 其他流量队列下载

创建 HTTP上传规则 、 HTTP下载规则 、 HTTPS上传规则 、 HTTPS下载规则 、 其他流量规则上传 、 其他流量规则下载

HTTP上传规则:

勾选 启用

接口 选择 WAN

协议 选择 IP

源 源端口 目标 均设置为 any

目标端口 http 或者 80

目标管道 选择 HTTP上传队列

描述 HTTP上传规则

HTTP下载规则:

勾选 启用

接口 选择 WAN

协议 选择 IP

源 目标 目标端口 均设置为 any

源端口 http 或者 80 (注意!!! 是源端口)

目标管道 选择 HTTP下载队列

描述 HTTP下载规则

HTTPS上传规则:

勾选 启用

接口 选择 WAN

协议 选择 IP

源 源端口 目标 均设置为 any

目标端口 https 或者 443

目标管道 选择 HTTP上传队列

描述 HTTPS上传规则

HTTPS下载规则:

勾选 启用

接口 选择 WAN

协议 选择 IP

源 目标 目标端口 均设置为 any

源端口 https 或者 443 (注意!!! 是源端口)

目标管道 选择 HTTP下载队列

描述 HTTPS下载规则

其他流量规则上传:

勾选 启用

接口 选择 WAN

协议 选择 IP

源 源端口 目标 目标端口 均设置为 any

目标管道 选择 其他流量队列上传

描述 其他流量规则上传

其他流量规则下载:

勾选 启用

接口 选择 WAN

协议 选择 IP

源 源端口 目标 目标端口 均设置为 any

目标管道 选择 其他流量队列下载

描述 其他流量规则下载

点击应用保存

点击 防火墙: 流控: 状态 查看队列是否有字节。

进阶使用

别名

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网络

目标端口范围 选择 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

保存,应用更改

高可用

高可用 在 ESXI 上多少有点水土不服(本是同根生,相煎何太急),端口组 和 虚拟交换机 的 混杂模式 选择 拒绝 ,这个时候就可以使用高可用了,但 OpenWrt 就无法连接 OPNsense ,所以推荐试试 PVE

高可用 在外网访问切换速度很快(大概5-10秒),内网主要看设备(大概1-2分钟)

如果发现跨网段无法访问,可以用 TRACERT (win)查看一下路由

准备

首先需要先安装 两个 OPNsense

其次两个 OPNsense 之间 接口分配 一定要一样( 接口 和 标识符 匹配, MAC地址 不能冲突)

给各个接口添加 静态IP地址(请勿分配 一样 的 IP地址 ,如果是 PPPOE拨号 则不用)

添加一个 HA接口(用于防火墙之间通信)

参考接口设置如下:

主防火墙:

接口

标识符

IP地址

LAN

lan(也可能是opt1,请根据实际情况分配)

192.168.1.254/24

WAN

wan

PPPOE

HA

opt1(如果LAN是opt1,则这里是opt2)

198.19.1.254/24

备防火墙:

接口

标识符

IP地址

LAN

lan(也可能是opt1,请根据实际情况分配)

192.168.1.253/24

WAN

wan

PPPOE

HA

opt1(如果LAN是opt1,则这里是opt2)

198.19.1.253/24

设置防火墙规则

在两台防火墙的 HA接口 添加 any to any 规则

点击 防火墙: 规则: HA,规则设置参考这里

在 LAN 添加允许 CARP规则 (如果 WAN口 需要 CARP 的也需要设置)

点击 防火墙: 规则: LAN ,添加规则

参考如下设置:

选项

参数

操作

通过

禁用

不勾选

快速

勾选

接口

LAN

方向

in

TCP/IP版本

IPV4(根据情况自行选择)

协议

CARP

源 / 反转

不勾选

LAN网络

源(高级)

不更改

目标 / 反转

不勾选

目标

any

目标端口范围

any

日志

不勾选

类别

(根据自己需要填写)

描述

允许CARP协议访问(根据情况填写)

不同步XMLRPC

不勾选

计划

none

网关

默认

高级功能

不修改

如果是多网口,设置可以到 防火墙: 规则: 浮动 中设置

在主防火墙上设置CARP

注意,如果有 IPV6路由通告 使用需要,需要设置 CARP 本地链路IPV6地址

点击 接口: 虚拟IP: 设置 ,点击最底下的 橘色加号

模式 选择 CARP

接口 选择 LAN (如果要设置 WAN口,请选择 WAN)

网络/地址 输入 192.168.1.1/24

拒绝服务绑定 勾选 (这个选项最明显的会影响DHCP,如果是IPV6,不勾选时路由通告时会通告IP,至于会不会有其他影响,我暂时不清楚)

密码 随便输入就行

VHID组 点击 选择一个未分配的VHID 或者 自己填一个

基本值 默认即可

在主防火墙上设置NAT(仅限设置了WAN的CARP,其他跳过即可)

点击 防火墙: NAT: 出站 ,在 模式 里选择 手动生成出站NAT规则 ,然后保存

在 防火墙: NAT: 出站 的 手动规则 里添加 两条规则 (一条是 IPV4 另一条 IPV6),有关 静态端口 选项作用描述 请参考本文这里

如下设置:

完成样子

接口

源端口

目标

目标端口

NAT地址

NAT端口

静态端口

描述

WAN

LAN网络

*

*

*

WAN口的CARP地址

*

IPV4 NAT出站

WAN

LAN网络

*

*

*

WAN口的CARP地址

*

IPV6 NAT出站

IPV4设置,IPV6类似( TCP/IP版本 选项选择 IPV6 即可):

选项

选择

禁用

不勾选

禁用NAT

不勾选

接口

WAN(一般选择出口)

TCP/IP

IPV6

协议

any

源反转

不勾选

源地址

LAN 网络

源端口

any

目标反转

不勾选

目标地址

any

转换/目标

WAN口的CARP地址

日志

不勾选

转换/端口

静态端口

勾选

在主防火墙上 高可用设置

点击 系统: 高可用: 设置

勾选 同步状态

同步接口 选择 HA

同步对端IP 填入 198.19.1.253

同步配置对端IP 填入 https://198.19.1.253

远程系统用户名 填入 root

远程系统密码 填入 root密码

选择需要 同步模块

保存,并点击 系统: 高可用: 状态 ,出现信息后即为 防火墙状态 获取成功

点击 上传的小图标 ,同步配置

点击 接口: 概况 ,可以看到 LAN接口 IPV4 一栏中,在 192.168.1.1/24 旁会有个绿色图标,这表示当前为 主设备 ,如果在 备防火墙 看到是灰色,表示配置成功

注意:LAN口防火墙之间必须要能够互访,否则都会认为自己是 主设备

在备防火墙上 高可用设置

点击 系统: 高可用: 设置

勾选 禁用抢占

勾选 断开拨号接口

勾选 同步状态

同步对端IP 填入 198.19.1.254

保存即可

BUG解决

如果遇到 在主防火墙上 应用更改时,出现以下文字:

Fatal error: Uncaught ValueError: Unknown format specifier "�" in /usr/local/www/guiconfig.inc:317 Stack trace: #0 /usr/local/www/guiconfig.inc(317): sprintf('\xE6\x9B\xB4\xE6\x94\xB9\xE5\xB7\xB2\xE6\x88\x90\xE5\x8A\x9F...', '

不用担心,这段话是提示 记得在高可用中同步 ,如果返回还是要 应用更改 ,可以将语言设置为英文(在 系统: 设置: 常规 中的 语言)

OPNsense性能优化

以下内容主要来自于博主 鐵血男兒 的 OPNsense提升网络性能教程 (略有修改),极力推荐看看这位博主的文章

硬件卸载

有关于 硬件卸载 是什么,可以看看这篇文章硬件加速与功能卸载

简单来说 硬件卸载 可以 接收侧针对VLAN进行包过滤 、 发包时VLAN Tag的插入 、IP TCP/UDP/SCTP checksum硬件卸载功能 、 TCP分片功能的硬件卸载 、 TCP组包功能的硬件卸载

推荐关闭 硬件卸载 功能(当然默认是关闭的)

PVE设置(ESXI没有,请跳过ψ(`∇´)ψ)

常规 选项卡请根据自己情况填写

操作系统 选项卡请根据自己情况填写(LINUX就行拉)

系统 选项卡

Qemu代理 选择 开启(一般会安装的,类似 ESXI agent,用于与 虚拟机通信 获取 虚拟机信息)

BIOS 选择 OVMF(UEFI) ,并选择 EFI存储 (务必不要选择 预制秘钥)

磁盘 选项卡请根据自己情况填写

CPU 选项卡

类别 推荐选择 kvm64

Extra CPU Flags: 中选择 aes 旁的 + 旁的 圆圈 (这样就打开了 aes ヾ(≧▽≦*)o)

网络 选项卡请根据自己情况填写

模型 选择 ViriIO

取消勾选 防火墙

Multiqueue 设置为 8

确认

可调参数

点击 系统: 设置: 可调参数 进行设置

参照​ ​FreeBSD网络性能调优​​指南

这是一个与 CPU相关 的可调参数,用于 缓解Spectre V2漏洞 。禁用它对性能有非常大的提升(一个漏洞干掉几代性能提升( ̄y▽ ̄)╭ )。无需添加新条目

hw.ibrs_disable=1

取消可用于 netisr处理 的 CPU数量 。默认情况下,FreeBSD网络堆栈 是 单线程 的。设置为 -1 可以使用全部8个CPU线程。需要创建新条目

net.isr.maxthreads=-1

将每个 ISR线程 绑定到1个 CPU核心 ,为 每个核心 启动一个线程。需要创建新条目

net.isr.bindthreads=1

参考​​这个Github ISSUE​​,似乎需要将此可调参数更改为 deferred 或 hybrid 才能使其他 net.isr可调参数 生效。需要创建新条目

net.isr.dispatch=deferred

启用 接收方缩放 ,RSS 是另一个可以改进 多核系统网络流量并行处理 的参数。需要创建新条目

net.inet.rss.enabled=1

这是来自同一论坛​的接收端缩放可调参数。将其设置为2,是因为最佳值是CPU内核数除以4。CPU有8个内核,所以8/4=2。您的值应基于 OPNsense虚拟机 上的 CPU内核数。需要创建新条目

net.inet.rss.bits=2

从​​FreeBSD网络性能调优​​指南​中发现了这个。需要创建新条目

参考如下 网卡与参数 对应关系:

网卡速率

参数值

1 Gbit

2097152

2 Gbit

4194304

10 Gbit

16777216

40 Gbit

157286400

100 Gbit

614400000

kern.ipc.maxsockbuf=16777216

这些 TCP缓冲区 设置取自​FreeBSD网络性能调优​​指南​,没有深入研究它们,但它们都给 OPNsense 提供了 缓冲区相当或更大,所以采用了它。该指南详细说明了这些值如何帮助提高性能。需要创建新条目

net.inet.tcp.recvbuf_max=4194304

net.inet.tcp.recvspace=65536 (无需添加新条目)

net.inet.tcp.sendbuf_inc=65536

net.inet.tcp.sendbuf_max=4194304

net.inet.tcp.sendspace=65536 (无需添加新条目)

该参数启用了 优化的内核套接字接口 ,可以显著降低快速 TCP流对CPU的影响。需要创建新条目

net.inet.tcp.soreceive_stream=1

该值增加 PF防火墙哈希表的大小,以便在性能下降之前允许表中有更多的连接。需要创建新条目

net.pf.source_nodes_hashsize=1048576

这些参数值 提高处理IP片段 时的效率。您也可以在此处设置更激进的值,但似乎这些值更安全,所以我选择了它们。需要创建新条目

net.inet.tcp.mssdflt=1240

net.inet.tcp.abc_l_var=52

该参数配置了 最小段大小,或 单个IPv4 TCP段同意传输 的 最小数据负载,旨在提高效率。需要创建新条目

net.inet.tcp.minmss=536

这与网络完全无关,这是用于 改善RNG熵池 的值。因为防火墙系统上有 VPN,认为 RNG 越多越好。需要创建新条目

kern.random.fortuna.minpoolsize=128

参考​Reddit​,它在最后一批可调参数中被添加,最终将吞吐量提升到了极值。需要创建新条目

net.isr.defaultqlimit=2048

注意: 组 在很多功能中是 无法正常使用 的,除 防火墙: 规则 、 防火墙: NAT: 出站 中以外,尽量 选择接口

OPNsense 的 组 功能可以节省很多重复配置在接口上,组规则 优先级高于 接口规则 ,同时可以创建 不同优先级 的 组

创建组

点击 防火墙: 组,点击红色 + 号

输入 组 的 名称

选择 组 的 成员

(no)GUI组 选项勾选时,接口 则不会 按照 组——>接口 方式显示

顺序默认为 0 ,数字 越大 优先级 越低

描述看心情填写

创建组规则

点击 防火墙: 规则:(组名称) ,点击红色 + 号

参考如下设置 (简单 any to any 规则):

选项

参数

操作

通过

禁用

不勾选

快速

勾选

接口

(组名称)

方向

in

TCP/IP版本

IPV4(根据情况自行选择)

协议

any

源 / 反转

不勾选

(组名称)网络(组一般是没有地址这个选项的)

源(高级)

不更改

目标 / 反转

不勾选

目标

any

目标端口范围

any

日志

不勾选

类别

(根据自己需要填写)

描述

Default allow LAN to any rule(根据情况填写)

不同步XMLRPC

不勾选

计划

none

网关

默认

高级功能

不修改

保存,应用更改

点击 防火墙: 规则:(组成员) ,展开规则即可看到 组规则

网关组

网关组主要是用于负载均衡或者故障转移,本次主要介绍故障转移

准备

当然,起码需要两个 WAN口

WAN口:

协议

网关名称

IPV4

WAN_GW

IPV6

WAN_DHCP6

WAN2口:

协议

网关名称

IPV4

WAN2_DHCP

IPV6

WAN2_DHCP6

配置网关

点击 系统: 网关: 配置 ,点击 WAN_GW 、 WAN_DHCP6 、 WAN2_DHCP 、 WAN2_DHCP6 右边的 编辑

参考如下设置

选项

参数

禁用

不勾选

名称

WAN_GW

描述

WAN Gateway

接口

WAN

地址簇

IPV4

IP地址

留空

上游网关

勾选

远程网关

不勾选

禁用网关监控

不勾选

禁用主机路由

不勾选

监控IP

223.5.5.5 (IPV6则使用2400:3200::1,注意:一个网关一个地址,不可以复用)

将网关标记为关闭

不勾选

优先级

254

应用,检查各个 网关状态 是否是 正常(online)

创建网关组

点击 系统: 网关: 组 ,点击 红色加号 创建网格组

参考如下设置

选项

参数

组名

WAN_Group_V4 (v4和v6要分别创建)

网关优先级(故障转移) WAN_GW

层级1

WAN2_DHCP

层级2

——————————

——————————

网关优先级(负载均衡) WAN_GW

层级1

WAN2_DHCP

层级1

触发条件

丢包

池选项

默认

描述

IPV4网关组

保存

防火墙LAN口规则设置

修改或者创建 any to any 规则在 LAN网口

参考如下设置:

选项

参数

操作

通过

禁用

不勾选

快速

勾选

接口

LAN

方向

in

TCP/IP版本

IPV4(根据情况自行选择)

协议

any

源 / 反转

不勾选

LAN网络

源(高级)

不更改

目标 / 反转

不勾选

目标

any

目标端口范围

any

日志

不勾选

类别

(根据自己需要填写)

描述

Default allow LAN to any rule(根据情况填写)

不同步XMLRPC

不勾选

计划

none

网关

WAN_Group_V4

高级功能

不修改

网关组防火墙设置注意事项

为了减少规则的重复设置,可以选择创建 防火墙: 组

但是可能存在 数据包被丢弃 的问题,所以个人建议除了 防火墙规则 以外 不使用组

请勿在流控中使用 防火墙: 组 ,规则将不起作用

ZeroTier

BUG解决

CSRF check failure

如果进入 OPNsense 网页端,登录后,显示 白色背景 和 黑色字 并包含 CSRF 词,多半是 跨站请求伪造 (CSRF) 保护

这种情况一般是 重启后,网页没有刷新,才会跳出,只需要 删除路径 ,直接访问 根目录

如果上面方法不行,可以尝试 无痕模式 、 清理缓存和cookie 、 更换浏览器 、 更换另一种设备 等操作

如果没有效果,并且尝试重启 OPNsense 所有服务后(不是重启,重启可能连系统都打不开),依然如此,可以判定为 PHP挂了

相关风雨

七日世界猎鹰套装部件在哪
bt365手机投注

七日世界猎鹰套装部件在哪

🌊 11-01 💨 阅读 2567
打擂的意思
365足球英超欧冠

打擂的意思

🌊 10-09 💨 阅读 5459
天猫超市红包雨会过期吗?有效期多久?
bt365手机投注

天猫超市红包雨会过期吗?有效期多久?

🌊 06-29 💨 阅读 8636