22.1 “Observant Owl” Series

For more than 7 years now, OPNsense is driving innovation through modularising and hardening the open source firewall, with simple and reliable firmware upgrades, multi-language support, fast adoption of upstream software updates as well as clear and stable 2-Clause BSD licensing.

22.1, nicknamed “Observant Owl”, features the upgrade to FreeBSD 13, switch to logging supporting RFC 5424 with severity filtering, improved tunable sysctl value integration, faster boot sequence and interface initiation and dynamic IPv6 host alias support amongst others.

On the flip side major operating system changes bear risk for regression and feature removal, e.g. no longer supporting insecure cryptography in the kernel for IPsec and switching the Realtek vendor driver back to its FreeBSD counterpart which does not yet support the newer 2.5G models. Circular logging support has also been removed. Make sure to read the known issues and limitations below before attempting to upgrade.

Download links, an installation guide [1] and the checksums for the images can be found below as well.

22.1.10 (July 07, 2022)

Today we are shipping small reliability improvements and a few security updates for bundled packages. Of special note is the upgrade of Phalcon 5, Python 3.9 and move of the StrongSwan vici library into a separate package.

This release will be the last of the 22.1 series. The release candidate for 22.7 will be available next week and the release date for the final version is July 28. Users wishing to try the release candidate can reach it from the development version or reinstall from the provided images.

A hotfix will be issued on the 28th to enable the upgrade path, but depending on testing and mirror availability this might be up to 24 hours after the intial image release of 22.7.

Here are the full patch notes:

  • system: properly shut down removed interfaces in console port assignment

  • system: if no temperature sysctls are exposed do nothing

  • system: fix firmware command shortcut in opnsense-shell utility

  • system: log hard limit results in 9999 entries for grid output

  • system: move add_user script out of shell scripts

  • interfaces: move lo0 interface registration to loopback

  • interfaces: simplify bridge destroy on deletion

  • firmware: update repository silently on remote list if needed

  • firmware: add python version to crash report header

  • ipsec: move vici library from core to ports

  • opendns: update OpenDNS IPv6 servers (contributed by Johan Rylander)

  • backend: except configparser read (contributed by agh1467)

  • mvc: AutoNumberField: set minimum value to 1

  • mvc: IntegerFieldType: fix for negative numbers (contributed by xbb)

  • plugins: os-ddclient 1.8 [1]

  • plugins: os-firewall 1.2 fixes internal backup restore

  • plugins: os-postfix 1.23 [2]

  • plugins: os-stunnel 1.0.5 adds intermediates to server chain (contributed by Johnny S. Lee)

  • plugins: os-telegraf 1.12.5 [3]

  • ports: curl 7.84.0 [4]

  • ports: nss 3.80 [5]

  • ports: openssl 1.1.1q [6]

  • ports: phalcon 5.0.0RC2 [7]

  • ports: py-vici 5.9.3

  • ports: python 3.9.13 [8]

  • ports: sudo 1.9.11p3 [9]

  • ports: syslog-ng 3.37.1 [10]

A hotfix release was issued as 22.1.10_4:

  • system: disable flag was not removing static route

  • firmware: added 22.7 series fingerprint

  • unbound: prevent crash of DHCP lease watcher due to unhandled CalledProcessError exception

  • mvc: fix two regressions in BaseField for Phalcon 5

22.1.9 (June 23, 2022)

Today we are addressing kernel memory leaks that occur when reading firewall rule information from the system. It seems that these leaks even slipped into the FreeBSD 13.1 release so we are happy to see them fixed now.

22.7 is very much on track. Our final target is getting ready for the PHP 8 upgrade but the timing is unclear as we wait for an official Phalcon 5 release version that supports it.

Other than that please enjoy the summer and hydrate responsibly.

Here are the full patch notes:

  • system: improve gateway subnet validation to fix IPv6 edge cases

  • system: dpinger support for IPv6 aliases

  • system: support 1500000 baudrate selection for ARM

  • system: non-functional cleanups for upcoming move to PHP 8

  • interfaces: add unique constraint for tag+if on VLANs

  • firewall: bring back missing toggle button in aliases

  • firewall: exclude internal aliases on import

  • firewall: fix alias removal

  • captive portal: add missing validation message for empty interface selection

  • dhcp: revert back to not adding an IP to static lease creation from leases page

  • openvpn: add domain search option to servers and overrides

  • unbound: disabling the first DNS override entry invalidates config

  • unbound: make blocklist additions/removals dynamic to prevent a restart

  • unbound: zero_ttl is no longer a valid statistic (contributed by David Mora)

  • plugins: os-ddclient 1.7 [1]

  • plugins: os-debug 1.5 fixes deprecated xdebug syntax

  • plugins: os-frr 1.29 [2]

  • plugins: os-nginx 1.28 [3]

  • plugins: os-wireguard 1.11 [4]

  • src: pf: fix memory leaks in nvlist usage

  • src: pf: stop resolving hosts as dns that use “:” modifier

  • src: e1000: Increase rx_buffer_size to 32b

  • src: igc: Increase rx_buffer_size local variable to 32b

  • src: assorted non-functional cleanups and typo corrections

  • ports: krb5 1.20 [5]

  • ports: lighttpd 1.4.65 [6]

  • ports: nss 3.79 [7]

  • ports: openvpn 2.5.7 [8]

  • ports: php 7.4.30 [9]

  • ports: py-certifi 2022.5.18.1

  • ports: sqlite 3.38.5 [10]

  • ports: sudo 1.9.11p2 [11]

  • ports: unbound 1.16.0 [12]

A hotfix release was issued as 22.1.9_1:

  • system: prefer primary IPv6 in dpinger

  • plugins: os-ddclient fix for missing IP property

  • plugins: os-nginx fix for obsoleted syntax (contributed by kulikov-a)

22.1.8 (May 25, 2022)

Small reliability update which also includes a rework for firewall alias handling and preformance.

Later today we will also publish a call for testing for the upcoming 22.7 operating system base using FreeBSD 13.1. It is going to be compatible with this 22.1.x series and existing feedback about it is promising so far.

Here are the full patch notes:

  • system: only restore missing or zero size ACL files

  • system: support plugin device reconfiguration in pluginctl utility

  • system: prevent gateway monitoring from entering a “filter reload” loop

  • system: use password_verify() in authenticators (contributed by oittaa)

  • system: hide password from command line during config encryption

  • interfaces: add technical interface ID display to assignments page

  • firewall: various usability and visibility improvements for aliases

  • firewall: performance improvement for large numbers of port type aliases

  • firewall: simplify sort and add natural sorting in alias diagnostics

  • captive portal: add extendedPreAuthData for MAC address retrieval during authentication

  • dhcp: refactor IPv4 lease removal and purge static leases before starting service

  • dhcp: allow custom configuration from directories

  • firmware: bypass cache with timestamp in “upgradestatus” call (contributed by gibwar)

  • firmware: lowercase search in plugins/packages

  • intrusion detection: fix log file ACL mismatch

  • ipsec: squelch spurious errors on stderr for backend status action

  • unbound: add custom “destination address” as advanced option for blocklists

  • mvc: distinct between HTTP errors 401 and 403 during authentication

  • mvc: call microtime(true) only once during config save (contributed by csbyte)

  • plugins: os-acme-client 3.11 [1]

  • plugins: os-nginx 1.27 [2]

  • plugins: os-postfix 1.22 [3]

  • src: tcp: rewind erroneous RTO only while performing RTO retransmissions

  • src: bnxt: Allow bnxt interfaces to use VLANs

  • src: rc: use _pidcmd to determine pid for protect

  • ports: curl 7.83.1 [4]

  • ports: sqlite 3.38.2 [5]

  • ports: strongswan 5.9.6 [6]

A hotfix release was issued as 22.1.8_1:

  • firewall: ignore empty lines when reading current alias content using pfctl

22.1.7 (May 10, 2022)

This is a small maintenance release which fixes known vulnerabilities in OpenSSL et al. Note that we are preparing for upgrade of Phalcon 5 framework and PHP 8.0 inclusion on our way to 22.7.

Here are the full patch notes:

  • system: tunables without hierarchy are just “environment” variables

  • system: use PHP random_bytes() builtin (contributed by oittaa)

  • system: support cd9660 file system in opnsense-importer

  • reporting: fix validation in NetFlow settings

  • interfaces: interface_ppps_configure() remove boot-time side effect

  • interfaces: include VIPS for primary IPv4 detection

  • interfaces: DHCPv6 advanced has a different flag to disable NA

  • firewall: add missing range validation to alias host type

  • firewall: make rule parsing more consistent as x:any and any:y are valid port options

  • captive portal: simplify the voucher generation code (contributed by oittaa)

  • firmware: list locked packages in health audit

  • ipsec: mark non-sortable columns

  • openvpn: change filetype of export to text/ovpn

  • unbound: updated no coin list (contributed by Luis Nachtigall)

  • unbound: change overrides grid label when no results are returned

  • unbound: restore duplicate domain behaviour in overrides

  • mvc: safeguard multi_sort in searchRecordsetBase()

  • mvc: prevent silent crashes in legacy XML attribute emulation

  • mvc: Phalcon 5 migration layer to reduce dependencies on Phalcon builtins

  • mvc: fix two regressions and deprecate __items

  • plugins: os-acme-client 3.10 [1]

  • plugins: os-bind 1.23 [2]

  • plugins: os-dnscrypt-proxy 1.12 [3]

  • plugins: os-frr 1.28 [4]

  • plugins: os-relayd 2.7 adds listen address and port range to virtual servers

  • plugins: os-zabbix-agent 1.12 [5]

  • plugins: os-zabbix-proxy 1.8 [6]

  • ports: curl 7.83.0 [7]

  • ports: nss 3.78 [8]

  • ports: openssl 1.1.1o [9]

  • ports: pcre2 10.40 [10]

  • ports: php 7.4.29 [11]

  • ports: pkg 1.17.5 [12]

  • ports: suricata 6.0.5 [13]

A hotfix release was issued as 22.1.7_1:

  • mvc: add missing URL validator class

  • plugins: os-nginx fix for validation class

22.1.6 (April 13, 2022)

Since the Unbound migration for overrides surfaced a number of issues in the new code this is a follow-up release to ensure interoperability. Thank you for the honest feedback, bug reports and code submissions.

Here are the full patch notes:

  • system: obsolete plugins calling missing functions shall not produce fatal errors

  • system: added the correct content-type for the dashboard plugins feed (contributed by Bo Frederiksen)

  • reporting: do not rely on /var/run/booting test in system health backend code

  • firewall: adjust default deny label to include mention of possible state violation

  • firewall: fix sessions page ACL

  • interfaces: bring back strict reordering of VIPs during dynamic address acquire

  • dhcp: added reload action for cron use

  • dhcp: support supplying iPXE filename

  • firmware: use isolated directory for database update check

  • firmware: cross-version check was not using correct information

  • firmware: cross-version update should indicate base/kernel reinstall

  • unbound: domain override IP may contain port information

  • unbound: show combined hostname.domain description in new alias popup

  • unbound: properly support “_msdcs” domain override prefix

  • unbound: add missing alias description

  • unbound: fix overrides case sort order (contributed by NYOB)

  • unbound: fix ACL for overrides

  • unbound: fix handling of wildcard aliases (contributed by devin122)

  • mvc: add generic searchRecordsetBase() to match existing searchBase()

  • ports: phpseclib 2.0.37 [1]

22.1.5 (April 07, 2022)

Due to popular demand the user experience for the revamped VLAN handling was improved in several areas. Also incuded are a larger Unbound MVC rework and DNS system route apply changes from one single spot. Last but not least the zlib vulnerability was fixed in FreeBSD amongst others.

Here are the full patch notes:

  • system: set up all DNS system routes from system_resolvconf_generate()

  • system: properly clear legacy files when clearing log files

  • reporting: add ACPI and ARM temperature support to health data

  • interfaces: do not assume exclusive use of router file in IPv6 PPPoE case

  • interfaces: for symmetry with PPPoE do not reload WAN when address disappears

  • interfaces: VLAN UX changes include better tag and parent visibility and handling

  • interfaces: improve VLAN parent selection for batch changes to allow for a single apply

  • interfaces: hint at missing apply when trying to add a new interface in assignment page

  • captive portal: prevent cleansing password field

  • dhcp: give a hint on why an interface was ignored in radvd

  • firmware: exclude revision matching from latest changelog version check

  • unbound: add custom forwarding and overrides MVC pages

  • ui: omit total entries display for log grids

  • plugins: os-acme-client 3.9 [1]

  • plugins: os-chrony 1.5 [2]

  • plugins: os-ddclient 1.5 [3]

  • src: pf(4) tables may fail to load [4]

  • src: potential jail escape vulnerabilities in netmap [5]

  • src: bhyve e82545 device emulation out-of-bounds write [6]

  • src: mpr/mps/mpt driver ioctl heap out-of-bounds write [7]

  • src: 802.11 heap buffer overflow [8]

  • src: zlib compression out-of-bounds write [9]

  • ports: curl 7.82.0 [10]

  • ports: expat 2.4.8 [11]

  • ports: libxml 2.9.13 [12]

  • ports: monit 5.32.0 [13]

  • ports: nss 3.77 [14]

  • ports: python 3.8.13 [15]

22.1.4 (March 24, 2022)

QinQ support based on the FreeBSD 13 VLAN base functionality is finally here! To make the best use of it a MVC conversion of the GUI pages was carried out meaning these are now fully API-enabled as well. Two bugs in the previous GIF/GRE rework have also been reported and fixed.

Note while this does fix CVE-2022-0778 even for LibreSSL the security audit database by FreeBSD will falsely flag the 3.3.6 release as vulnerable when in fact it is not. Since build issues arise on LibreSSL 3.4 that involve plugin dependencies in all likelihood we will be refraining from updating to version 3.4 altogether and do not have much hope for the upcoming 3.5 either.

Here are the full patch notes:

  • system: prefer configured IP address family use earlier on boot

  • system: allow boot to perform generic UFS/ZFS grow using the /.probe.for.growfs marker file

  • system: import ZFS pools before mounting ZFS datasets

  • reporting: use asynchronous DNS resolver for reverse lookups on traffic page

  • interfaces: loopback “lo0” exists for VIPs

  • interfaces: only strip addresses on configured IP types

  • interfaces: use new ifctl utility for DHCPv6 IP type and add manual page

  • interfaces: adjust MTU configuration when parent also requires MTU changes

  • interfaces: VLAN MVC conversion with API and QinQ support

  • interfaces: cleanup surrounding LAGG function use

  • firewall: constrain default CARP allow rules to those defined in RFC 5798

  • firewall: make sure that rule use of gateways (route-to) and reply-to are mutually exclusive

  • firewall: tighten alias FQDN validation to avoid accepting mistypes such as “192.168.01.1”

  • firmware: revoke the 21.7 fingerprint

  • intrusion detection: improve row count on alerts page

  • backend: consolidate configctl utility into one location and add manual page

  • plugins: os-ddclient 1.4 [1]

  • plugins: os-theme-cicada 1.29

  • plugins: os-theme-vicuna 1.41

  • src: openssl: fix a bug in BN_mod_sqrt() that can cause it to loop forever [2]

  • src: zfs: fix handling of errors from dmu_write_uio_dbuf() [3]

  • src: debugnet: remove spurious message on boot

  • ports: ca_root_nss fix for faulty upstream file linking

  • ports: libressl 3.3.6 [4]

  • ports: openssl 1.1.1n [5]

  • ports: openvpn 2.5.6 [6]

A hotfix release was issued as 22.1.4_1:

  • mvc: properly root the model mount point to avoid unrelated XML node name overlap

22.1.3 (March 17, 2022)

This update includes groundwork for interface handling improvements making the boot more flexible in complex interface assignment scenarios involving GIF, GRE and bridge devices.

Please note this update does not include the current OpenSSL security advisory due to overlapping time schedules. 22.1.4 will include these and will likely be released next week.

Here are the full patch notes:

  • system: remove “all” group handling code forgotten in 2015

  • interfaces: resolve device/interface interdependency on boot

  • interfaces: do not update VIPs on dynamic address changes

  • interfaces: remove unused reference and return value from interface_carp_configure()

  • interfaces: remove unused reference from interface_ipalias_configure()

  • interfaces: stop IPv6 from reacting to simple stop/detach/down events via rc.linkup

  • interfaces: introduce ifctl helper for future use

  • firewall: allow per-rule adaptive timeouts (contributed by kulikov-a)

  • dhcp: stream-read log and leases files for “dhcpd update prefixes” action

  • firmware: use opnsense-update for version info in update checks

  • firmware: independently check for available upgrade sets

  • firmware: separate the “needs_reboot” and “upgrade_needs_reboot” check flags

  • firmware: add URL return feature to changelog script

  • firmware: improve the connectivity audit

  • ipsec: clean up stale CA certificates on reconfigure

  • plugins: os-ddclient 1.3 [1]

  • plugins: os-freeradius templating generation fix

  • ports: dnspython 2.2.1 [2]

  • ports: dpinger 3.2 [3]

  • ports: expat 2.4.7 [4]

  • ports: krb5 1.19.3 [5]

  • ports: nss 3.76 [6]

  • ports: openssh 8.9p1 [7]

  • ports: sudo 1.9.10 [8]

  • ports: syslog-ng 3.36.1 [9]

22.1.2 (March 01, 2022)

This release adds GUI support for Intel QuickAssist Technology (QAT) and SYN cookies as per virtue of the FreeBSD 13 operating system. The work to modernise the interfaces subsystem and improve the new ddclient dynamic DNS plugin are also progressing.

Due to signs of decay in the build infrastructure, license nitpicking in FreeBSD ports and the upcoming OpenSSL 3 release (which will complicate things most likely) we have decided to discontinue LibreSSL at the end of this year meaning there will be no more LibreSSL flavour starting with version 23.1. Non-essential software will no longer be manually fixed and provided as binary packages if broken by upstream from this point on.

Since 2015 we have been working on functional LibreSSL support with steady means, but 7 years later and OpenSSL making an effort through numerous ways we are sad to give up this alternative since we do not see LibreSSL being used and properly integrated in software projects as often anymore. It has been a slow but steady decline for the past 2 years that also has to do with a LibreSSL release cycle tailored for OpenBSD in particular and OpenSSL library integration quality, which is almost impossible to improve upon in complex third-party software projects. We simply cannot afford the time for it any longer.

All users are able to update to the OpenSSL flavour without issues now or at any later given point.

Here are the full patch notes:

  • system: Intel QuickAssist Technology (QAT) crypto module selection and support multiple selection

  • system: AESNI crypto module is a kernel-builtin since 22.1 and no longer needs to be selected to work

  • system: enable library support of PCRE JIT included since 22.1.1

  • system: limit rowCount in log viewer (contributed by kulikov-a)

  • system: unify system tunables handling and tweak UX of the respective GUI page

  • system: no longer default to hw.uart.console use in factory configuration

  • system: remove console mute use from boot sequence

  • reporting: fill missing insight data with zeros

  • interfaces: assignments should take OpenVPN into account

  • interfaces: only ever store nobind for ipalias/carp

  • interfaces: align IPv4 address statistics read with IPv6

  • interfaces: simplify device destroy code

  • interfaces: no longer use legacy_get_interface_addresses() in MAC address read

  • interfaces: remove unused opportunistic interface address functions

  • firewall: exclude localhost stateless traffic from default logging (contributed by kulikov-a)

  • firewall: using port type aliases the “enable” flag was ignored when not enabled

  • firewall: add support for SYN cookies

  • firmware: opnsense-code: support “-z” snapshot mode

  • firmware: opnsense-revert: support “-z” snapshot mode

  • firmware: opnsense-update: support version print for sets

  • firmware: check repository and plugin state in health audit

  • ipsec: pass protocol when resolving via ipsec_resolve() (contributed by FloMeyer)

  • ipsec: fix mobile property passing when creating a new phase 2 entry

  • ipsec: rename “My Certificate Authority” to “Remote Certificate Authority” to avoid ambiguity

  • openvpn: avoid use of find_interface_network() et al

  • openvpn: stop removing name server-related files never written

  • openvpn: improve gateway detection in topology mode

  • ipsec: avoid use of find_interface_network() et al

  • dhcp: avoid use of find_interface_network() et al

  • console: move console mute calls into port setting function

  • ui: sidebar 2nd submenu view fix (contributed by Team Rebellion)

  • mvc: refactor and extend HostnameField to add options to validate partial hostnames and root zones

  • plugins: os-bind 1.22 [1]

  • plugins: os-ddclient 1.2 [2]

  • plugins: os-freeradius 1.9.19 [3]

  • plugins: os-stunnel 1.0.4 fix connect format for IPv6 (contributed by Johnny S. Lee)

  • src: stand: add EFI support for MMIO serial consoles

  • src: apei: make sure event data fit into the buffer

  • ports: php 7.4.28 [4]

  • ports: unbound 1.15.0 [5]

A hotfix release was issued as 22.1.2_1:

  • ipsec: fix mobile switch logic

  • ports: cyrus-sasl 2.1.28

Images have been subsequently released as 22.1.2(_2):

  • system: fix return code on factory port assignment to prevent configuration loop

# SHA256 (OPNsense-22.1.2-OpenSSL-dvd-amd64.iso.bz2) = d066d5620e28c22ff1d8de18532b61f8c7317b3258d5bdafb6a7a8dbb1eea002
# SHA256 (OPNsense-22.1.2-OpenSSL-nano-amd64.img.bz2) = dea720e15e67063d839bbf48017d32eb27071d58afee36bec40029319f5cc47e
# SHA256 (OPNsense-22.1.2-OpenSSL-serial-amd64.img.bz2) = 1b32287c13cc445a9a7a365b7879d00d3413ea53faf4cb23b3ef77b7916a1b7c
# SHA256 (OPNsense-22.1.2-OpenSSL-vga-amd64.img.bz2) = c6bbc0755d9458cc6484a98f074b62beaa30c5f02bd728ee1b0e896d2613b4b4

22.1.1 (February 16, 2022)

The first stable release brings in minor fixes from FreeBSD and instant log file visibility for files without severity written which can happen for individual plugins.

We have also gone ahead to restructure the interface code further to resolve dependencies between configured devices and interfaces automatically and the bundled development version is worth a try for everyone having issues with GIF/GRE not coming up after boot.

Here are the full patch notes:

  • system: changing interface gateway was ignored during route reconfiguration

  • system: allow to configure SSH setting PubkeyAcceptedAlgorithms (contributed by Manuel Faux)

  • system: add backward compatibility for reading logs without severity by default (contributed by kulikov-a)

  • system: fix typo causing PHP warning on IPv6 login (contributed by ppascher)

  • system: cron command drop down size was extending below screen

  • system: add a sysctl cache to improve tuneable overview load time

  • system: replace obsolete find_interface_network*() use in GUI

  • system: allow severity levels in PHP log messages and mark authentication success messages as notice

  • interfaces: fix default handling for VIP nobind option

  • interfaces: allow VIP nobind feature on CARP addresses

  • interfaces: stop mpd5 daemon before starting

  • interfaces: always show interface in GIF and GRE overview even on VIP use

  • interfaces: fix GIF and GRE VIP use loading order in IP alias cases

  • interfaces: remove device creation side effect from bridge, LAGG, GIF, GRE and VLAN GUI pages

  • interfaces: prevent DHCP from installing name servers when not allowed

  • interfaces: get_interface_list() must exclude OpenVPN

  • interfaces: replace obsolete find_interface_network*() use in GUI

  • firewall: remove ruleset optimization support which did not work since rule labels are mandatory for live log

  • firewall: exclude external alias for nesting

  • firewall: encode rules names in aliases (contributed by kulikov-a)

  • firewall: check state before selecting categories (contributed by kulikov-a)

  • firewall: synchronise “disabled” flag on linked firewall rule of port forward

  • firewall: local file corruption might prevent alias to be loaded

  • firewall: default pass all loopback without state tracking

  • dhcp: change prefix watcher to work without circular logging now that it is gone

  • dhcp: replace obsolete find_interface_network*() use in GUI

  • dhcp: fix implode() call (contributed by Clement Moulin)

  • ipsec: replace obsolete find_interface_network*() use in GUI

  • firmware: opnsense-version: support reading lock files operated by opnsense-update

  • firmware: patch version / date header in consistently for backend scripts

  • mvc: overload __isset() magic method

  • plugins: os-bind 1.21 [1]

  • plugins: os-ddclient 1.1 [2]

  • plugins: os-dnscrypt-proxy 1.11 [3]

  • plugins: os-dyndns menu compatibility with os-ddclient

  • plugins: os-frr 1.27 [4]

  • plugins: os-mdns-repeater 1.1 [5]

  • plugins: os-rspamd 1.12 [6]

  • plugins: os-zabbix-agent 1.11 [7]

  • src: pf: set_prio was not set after nvlist conversion

  • src: if_vtnet: Restore the ability to set promisc mode

  • src: hn: disable Hyper-V vSwitch RSC support

  • ports: curl 7.81.0 [8]

  • ports: expat 2.4.4 [9]

  • ports: lighttpd 1.4.64 [10]

  • ports: monit 5.30.0 [11]

  • ports: nss 3.75 [12]

  • ports: pcre / pcre2 enable JIT support

  • ports: phpseclib 2.0.36 [13]

  • ports: strongswan 5.9.5 [14]

  • ports: sudo 1.9.9 [15]

A hotfix release was issued as 22.1.1_1:

  • interfaces: revert “prevent DHCP from installing name servers when not allowed”

A hotfix release was issued as 22.1.1_3:

  • interfaces: revert “get_interface_list() must exclude OpenVPN”

  • web proxy: fix a typo in extended logging parser (contributed by kulikov-a)

22.1 (January 27, 2022)

For more than 7 years now, OPNsense is driving innovation through modularising and hardening the open source firewall, with simple and reliable firmware upgrades, multi-language support, fast adoption of upstream software updates as well as clear and stable 2-Clause BSD licensing.

22.1, nicknamed “Observant Owl”, features the upgrade to FreeBSD 13, switch to logging supporting RFC 5424 with severity filtering, improved tunable sysctl value integration, faster boot sequence and interface initiation and dynamic IPv6 host alias support amongst others.

On the flip side major operating system changes bear risk for regression and feature removal, e.g. no longer supporting insecure cryptography in the kernel for IPsec and switching the Realtek vendor driver back to its FreeBSD counterpart which does not yet support the newer 2.5G models. Circular logging support has also been removed. Make sure to read the known issues and limitations below before attempting to upgrade.

Download links, an installation guide [1] and the checksums for the images can be found below as well.

Here are the full patch notes against version 21.7.7:

  • system: improved visibility and flexibility of tunables

  • system: move multiple sysctl manipulations to tunables framework to allow overriding them

  • system: prevent more than one default route by default

  • system: sync recovery utility contents with FreeBSD 13

  • system: prevent syslog-ng from crashing after update due to “syslog-ng-ctl reload” use

  • system: add severity to syslog output and allow to filter for it

  • system: create latest.log links for easier log consumption

  • system: added opnsense-log utility to inspect logs on the console

  • system: removed circular logging support

  • system: background all cron backend command invokes

  • system: unified cron start between legacy and MVC components

  • system: improve the fallback after failing to look up specific IPv4 address match for dpinger

  • system: use correct IPv6 interface for dpinger gateway monitoring when using 6RD

  • system: default net.inet6.ip6.intr_queue_maxlen to 1000 like its IPv4 counterpart

  • system: default net.inet6.ip6.redirect to off like its IPv4 counterpart

  • system: fix potential issues with “search” syntax in resolv.conf

  • system: fix general settings PHP warnings that only appear when validation fails

  • system: allow additional search domain (Pierre Fevre)

  • system: make /var MFS work when /var directories are mount points, e.g. on ZFS

  • system: optionally disconnect PPP interfaces when going into CARP backup mode

  • system: fix new PPP CARP hook function call (contributed by Markus Reiter)

  • system: separate core and thread count in information widget

  • system: MSDOS file system awareness in information widget for new /boot/efi partition

  • system: no longer display duplicated mounted partitions on the dashboard

  • system: remove spurious XML validation that cannot cope with attributes from backup restore

  • system: refactor GUI rebind protection and remove its os-dyndns/os-rfc2136 references

  • reporting: fix display of total in/out traffic values

  • interfaces: LAGG support in console port assignment (contributed by sarthurdev)

  • interfaces: improve LAGG/VLAN assignments via console option

  • interfaces: repair get_interface_list() for console use

  • interfaces: aligned the name and use of special /tmp files for internal interface handling

  • interfaces: correctly write nameserverv6 and searchdomainv6 information on dhcp6c lease acquire

  • interfaces: make cache IP files exclusive to rc.newwan and rc.newwanv6 scripts to avoid missing IP changes

  • interfaces: refactored linkup event handler to avoid unnecessary recursion in the code

  • interfaces: removed opportunistic functions find_interface_ip(), find_interface_ipv6() and find_interface_ipv6_ll()

  • interfaces: get_interface_ip() and get_interface_ipv6() now return a valid IP address if one was given to support VIP aliases

  • interfaces: interfaces_addresses() can now map a configuration interface to returned addresses to track its origin

  • interfaces: VIPs now support the “no bind” option to exclude them from automatic service use when configured

  • interfaces: interfaces_primary_address() is now being used like its IPv6 equivalent throughout the code

  • interfaces: interfaces_primary_address6() is now considering addresses from tracking interfaces when needed

  • interfaces: interfaces_scoped_address6() is now being used throughout the code

  • interfaces: “tentative” state now leads to the address being ignored during configuration like “deprecated”

  • interfaces: removed unmaintained 3G statistics gathering for Huawei modems that could lock up other modems

  • interfaces: reworked interface creation on boot up

  • interfaces: spoof MAC now only applies to actual interface and not all of its VLAN siblings or parent

  • interfaces: added permanent promiscuous mode setting

  • interfaces: add the interface description via ifconfig to its respective device

  • interfaces: stop special treatment of bridge interfaces on linkup

  • interfaces: improve validations and fix defaults for bridges

  • interfaces: allow bridges to attach to VXLAN on boot

  • interfaces: background all interface reconfiguration script hooks

  • interfaces: no longer allow and apply media configuration for non-parent devices

  • interfaces: removed restriction from interfaces without configuration to not being able to hold VIPs

  • interfaces: remove defunct link support for GRE

  • interfaces: align GIF configuration with base system options

  • firewall: properly kill all connections from and to a WAN IPv4 on an address change

  • firewall: skip rule ID for NAT type log entries (contributed by kulikov-a)

  • firewall: display interface descriptions on normalisation rules (contributed by vnxme)

  • firewall: dynamic IPv6 host alias support (contributed by Team Rebellion)

  • firewall: removed obsolete kill states option on gateway failure

  • firewall: removed the $aliastable cache

  • firewall: support “no scrub” option in normalisation rules

  • firewall: correctly handle IPv6 NAT in states view

  • firewall: plain log default logging severity selection is now “informational”

  • firewall: improve maximum shaper value validation and add Gbit/s support

  • captive portal: prevent session removal crashing when no IP address was registered

  • dhcp: allow for ARM architectures in network boot options (contributed by Keith Cirkel)

  • dhcp: allow router advertisements to use a specific link-local VIP alias

  • dhcp: refactor the IPv4 and IPv6 configuration pages and add minimal subnet size requirement hints

  • dhcp: rework router advertisement “static” mode flags to separate advanced options

  • dnsmasq: fix all-server overwriting strict-order configuration directive (contributed by Christian Tramnitz)

  • dnsmasq: no-hosts option (contributed by agh1467)

  • firmware: add a “status_reboot” variable to API return data to make clear it belongs to the offered minor update or major upgrade

  • firmware: add random delays to existing firmware cron jobs to avoid update server load spikes

  • firmware: added an automatic cron job to fetch changelog daily to use it as a lightweight check for updates on the dashboard

  • firmware: implement cross-ABI reinstall of all packages for future use

  • firmware: opnsense-update: exclude /boot/efi permission reset from base set extract

  • firmware: removed obsolete business repository fingerprints and added 22.1 fingerprint

  • firmware: return product info for status endpoint even when no firmware check was done

  • installer: fix installation of rc.conf keymap setting selected earlier during installation

  • installer: add EFI partition as a default mount point

  • installer: increase EFI partition size to 260 MB

  • installer: improve disk and ZFS pool scan and display

  • intrusion detection: prevent config migration from crashing

  • intrusion detection: update to ET-Open to version 6

  • ipsec: update security of default settings when creating new phase 1 and 2

  • ipsec: remove hashes and algorithms no longer supported by FreeBSD 13

  • ipsec: migrated tunnel settings page to MVC

  • lang: update translations for Chinese, French, German, Italian, Japanese, Norwegian, Spanish, and Turkish

  • lang: demote Italian to development-only language due to lowered translation ratio

  • monit: move logging to own target

  • network time: add “iburst” option and stop using it by default (contributed by Patrick M. Hausen)

  • network time: detach “limited” from “kod” option (contributed by Zsolt Zsiros)

  • network time: remove PID file use as it can be unreliable

  • openvpn: kill by common name when kill by address does not work

  • unbound: disable do-not-query-localhost on local address server use

  • unbound: update DNS with hostname-only static entries (contributed by Gareth Owen)

  • update: opnsense-bootstrap: -z snapshot mode

  • update: opnsense-bootstrap: improved type detection

  • update: opnsense-code: -r for repository removal

  • update: opnsense-fetch: emit error message of failed download

  • update: opnsense-update: handle kernel debug directory like /boot/kernel

  • update: opnsense-update: removed “firmware-upgrade” file support

  • update: opnsense-verify: synced shared code with FreeBSD 13

  • backend: unify use of configctl utility

  • images: removed deprecated os-dyndns plugin from default installation

  • mvc: fix logging of configd errors

  • mvc: add BlankDesc to ModelRelationField (contributed by agh1467)

  • mvc: emulation versioning empty nodes for the legacy configuration sections

  • mvc: add getInterfaceConfig endpoint to interface API (contributed by Paolo Asperti)

  • mvc: add hint support for text fields (contributed by agh1467)

  • ui: add support for terabytes, and petabytes to format_bytes() (contributed by agh1467)

  • ui: universal striping adjustment for MVC components (contributed by kulikov-a)

  • ui: move storing jQuery Bootgrid settings in browser from core to bootgrid (contributed by Manuel Faux)

  • src: FreeBSD 13-STABLE as of 4ee9fbcd853

  • src: migrated to LUA boot loader (contributed by Kyle Evans)

  • src: revert upstream permission change for /root directory

  • src: fix kernel build creating wrong linkers.hint file

  • src: carp: fix send error demotion recovery

  • src: ixgbe: prevent subsequent I2C bus read timeouts

  • src: reworked shared forwarding

  • plugins: os-acme-client 3.8 [2]

  • plugins: os-bind 1.20 [3]

  • plugins: os-ddclient 1.0 as an eventual replacement for os-dyndns

  • plugins: os-dyndns adds local copy of get_dyndns_ip()

  • plugins: os-freeradius 1.9.18 [4]

  • plugins: os-frr 1.26 [5]

  • plugins: os-haproxy 3.10 [6]

  • plugins: os-nginx 1.26 [7]

  • plugins: os-openconnect 1.4.2 [8]

  • plugins: os-postfix 1.21 [9]

  • plugins: os-rfc2136 adds local copy of get_dyndns_ip()

  • plugins: os-telegraf 1.12.4 [10]

  • plugins: os-wireguard 1.10 [11]

  • plugins: os-wol adds cron support for wake action (contributed by digitalshow)

  • plugins: os-zabbix-proxy 1.7 [12]

  • ports: expat 2.4.2 [13]

  • ports: filterlog 0.6 [14]

  • ports: flock 2.37.2

  • ports: hostapd 2.10 [15]

  • ports: lighttpd 1.4.63 [16]

  • ports: nss 3.74 [17]

  • ports: openssl 1.1.1m [18]

  • ports: openvpn 2.5.5 [19]

  • ports: pecl-psr 1.2.0 [20]

  • ports: phalcon 4.1.3 [21]

  • ports: php 7.4.27 [22]

  • ports: pkg fixes validation failures on HTTPS fetch in static binary [23]

  • ports: sqlite 3.37.2 [24]

  • ports: syslog-ng 3.35.1 [25]

  • ports: unbound 1.14.0 [26]

  • ports: wpa_supplicant 2.10 [27]

Known issues and limitations:

  • This release contains a new major operating system version and should be carried out with the necessary care. Despite extended test coverage changes made by FreeBSD may still affect operation without our knowledge. Except for ZFS boot environments rollbacks between major operating system versions are extremely fragile and a reinstall of an older version should be attempted in the worst case. For more information please consult the FreeBSD 13.0 release notes [28] .

  • IPsec hash and cipher removals in FreeBSD 13 can affect existing setups as insecure cryptographic options have been removed upstream. If you are using MD5, Blowfish, DES, 3DES, or CAST128 in your phase 2 please move to more secure settings prior to the upgrade. Note that phase 1 settings are unaffected, but insecure settings should still be avoided. For more information see the FreeBSD commit in question [29] .

  • The Realtek vendor driver is no longer bundled with the updated FreeBSD kernel. If unsure whether FreeBSD 13 supports your Realtek NIC please install the os-realtek-re plugin prior to upgrading to retain operability of your NICs.

  • MAC spoofing now only pertains to the configured interface and not the VLAN siblings or parent interface. This can introduce unwanted configuration due to previous side effects in the code. Make sure to assign and set the spoofed MAC for all interfaces that require a spoofed MAC or simply spoof the MAC on the parent and leave the VLAN sibling settings empty to let them follow the parent MAC automatically. If in doubt the parent interface can be set into promiscuous mode now to allow for mixed MAC address use across VLANs too.

  • Media and hardware offload settings are no longer shown for non-parent interfaces and need to be set individually on the parent interface to take effect. This can introduce unwanted configuration due to previous side effects in the code. If the parent interface was not previously assigned please assign it to reapply the required settings.

  • NTPD defaults changed to exclude the “iburst” option by default. “limited” setting was detached from “kod” option. In both cases configuration adjustments can achieve previous behaviour if required.

  • Rebind checks through os-dyndns or os-rfc2136 will no longer work due to the deprecation of both plugins. Please add your rebind hosts manually or disable rebind protection prior to the upgrade.

  • GRE link1 support has been removed and needs a static route to function now.

  • Circular logging support has been removed. No user interaction is required.

The public key for the 22.1 series is:

# -----BEGIN PUBLIC KEY-----
# MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA1o1Bk31AcX5xsqgVAoWQ
# 1fTDznz22ojsK+qCkhW7MKSWlCyEZYEueUtq7hOt/gqttc3qT0WgHjhjI/WE2RQ4
# 53yfSw/2DDdt3v2WRoupaMzu2Px6I0A+dzo/DM0UWHHsjUaa1HnTvrC14W2vy9wY
# rdotDpp6vSA3WoBmpz+6cpAOlOMTboJouaZy2gSAAcFUmnmP6KDE+lQEqudENTpr
# wb/tIILTE3s6HMBrnmyTNz3Oyy77qH0Xq4mU0r+GS3If0LN+zIr3evt/hhS80otG
# 4WA2ifFeoZVUC//ArAqRiuOJKWvDe5455W1tOuoLkVKVwWMUd1YjaLq8/SRNtTVT
# jRWO6znUHJa7LKtwY7SJvJ8bl8kR8QnrEBRLqT3IA+FcRH+8RaeCivPV7oS1tMiV
# 7hUmu4yXkiMU9c/RrUj7UGZfPKa6K1yP2p3pRvHwCpMclhlVdaiAGNQ8X1GmUAmg
# 3hsoay1ximpj0Yzs+ynDdT1WPkjx8+mDWI08qTuVX+KN3xiohzjxUyD6kBbw2N4z
# EkKTu36KLxo+Hs2iHh4iPWV+EZ5pBn/BseUeHha+V76xM/fPU3H2htwF6/lAz3KH
# J6cevsMenCaYBAqpUsQMBjxhDgMmpCcjiZRPijFpe5zsNSUD1NJ8QMpecBZCE6Vt
# YHWiWxZTN13z4mPqA4uebakCAwEAAQ==
# -----END PUBLIC KEY-----
# SHA256 (OPNsense-22.1-OpenSSL-dvd-amd64.iso.bz2) = 72146dd3a8e57774ad12dbaa503c19111e5f1c43db63a32ad2dab6b3ea6f12f1
# SHA256 (OPNsense-22.1-OpenSSL-nano-amd64.img.bz2) = ec3b3c5fafc39e9d67c500a31d6c0be99566a130a158a2ae60904e6a6854bf1f
# SHA256 (OPNsense-22.1-OpenSSL-serial-amd64.img.bz2) = 418e4abc233a89c11e296f7e510e2074242dc2a285a042592171d45b257c4857
# SHA256 (OPNsense-22.1-OpenSSL-vga-amd64.img.bz2) = f791e9024888f5f668175a78cbbcd9eb96b36ba523f38d00cad9dd4d64243b4f

22.1.r2 (January 20, 2022)

Quick update on the 22.1 front includes feedback from the RC1 release, a FreeBSD package tool fix for its static binary failing to validate certain TLS certificates and a number of small improvements that do not fit into the former categories.

The 22.1 release is scheduled for January 27 which is next week already. ;)

Here are the full patch notes:

  • system: use correct IPv6 interface for dpinger gateway monitoring when using 6RD

  • system: remove spurious XML validation that cannot cope with attributes from backup restore

  • system: sync recovery utility contents with FreeBSD 13

  • system: fix new PPP CARP hook function call (contributed by Markus Reiter)

  • system: allow additional search domain (Pierre Fevre)

  • system: fix general settings PHP warnings that only appear when validation fails

  • system: move multiple sysctl manipulations to tunables framework to allow overriding them

  • system: prevent more than one default route by default

  • system: prevent syslog-ng from crashing after update due to “syslog-ng-ctl reload” use

  • system: MSDOS file system awareness in information widget for new /boot/efi partition

  • system: separate core and thread count in information widget

  • system: refactor GUI rebind protection and remove its os-dyndns/os-rfc2136 references

  • reporting: fix display of total in/out traffic values

  • interfaces: improve validations and fix defaults for bridges

  • interfaces: remove defunct link support for GRE

  • interfaces: align GIF configuration with base system options

  • interfaces: allow bridges to attach to VXLAN on boot

  • interfaces: repair get_interface_list() for console use

  • interfaces: improve LAGG/VLAN assignments via console option

  • firewall: plain log default logging severity selection is now “informational”

  • firewall: improve maximum shaper value validation and add Gbit/s support

  • dhcp: rework router advertisement “static” mode flags to separate advanced options

  • dnsmasq: no-hosts option (contributed by agh1467)

  • firmware: opnsense-update: exclude /boot/efi permission reset from base set extract

  • intrusion detection: prevent config migration from crashing

  • intrusion detection: update to ET-Open to version 6

  • network time: detach “limited” from “kod” option (contributed by Zsolt Zsiros)

  • network time: remove PID file use as it can be unreliable

  • mvc: fix logging of configd errors

  • mvc: add BlankDesc to ModelRelationField (contributed by agh1467)

  • ui: move storing jQuery Bootgrid settings in browser from core to bootgrid (contributed by Manuel Faux)

  • plugins: os-ddclient 1.0 as an eventual replacement for os-dyndns

  • plugins: os-dyndns adds local copy of get_dyndns_ip()

  • plugins: os-freeradius 1.9.18 [1]

  • plugins: os-nginx 1.26 [2]

  • plugins: os-rfc2136 adds local copy of get_dyndns_ip()

  • plugins: os-wol adds cron support for wake action (contributed by digitalshow)

  • src: revert upstream permission change for /root directory

  • src: fix kernel build creating wrong linkers.hint file

  • ports: hostapd 2.10 [3]

  • ports: nss 3.74 [4]

  • ports: pecl-psr 1.2.0 [5]

  • ports: pkg fixes validation failures on HTTPS fetch in static binary [6]

  • ports: sqlite 3.37.2 [7]

  • ports: syslog-ng 3.35.1 [8]

  • ports: wpa_supplicant 2.10 [9]

22.1.r1 (January 12, 2022)

For more than 7 years now, OPNsense is driving innovation through modularising and hardening the open source firewall, with simple and reliable firmware upgrades, multi-language support, fast adoption of upstream software updates as well as clear and stable 2-Clause BSD licensing.

We thank all of you for helping test, shape and contribute to the project! We know it would not be the same without you. <3

Download links, an installation guide [1] and the checksums for the images can be found below as well.

Here are the full patch notes against 21.7.7:

  • system: improved visibility and flexibility of tunables

  • system: create latest.log links for easier log consumption

  • system: added opnsense-log utility to inspect logs on the console

  • system: removed circular logging support

  • system: background all cron backend command invokes

  • system: unified cron start between legacy and MVC components

  • system: improve the fallback after failing to look up specific IPv4 address match for dpinger

  • system: default net.inet6.ip6.intr_queue_maxlen to 1000 like its IPv4 counterpart

  • system: default net.inet6.ip6.redirect to off like its IPv4 counterpart

  • system: fix potential issues with “search” syntax in resolv.conf

  • system: make /var MFS work when /var directories are mount points, e.g. on ZFS

  • system: optionally disconnect PPP interfaces when going into CARP backup mode

  • system: add severity to syslog output and allow to filter for it

  • system: no longer display duplicated mounted partitions on the dashboard

  • interfaces: LAGG support in console port assignment (contributed by sarthurdev)

  • interfaces: aligned the name and use of special /tmp files for internal interface handling

  • interfaces: removed opportunistic functions find_interface_ip(), find_interface_ipv6() and find_interface_ipv6_ll()

  • interfaces: get_interface_ip() and get_interface_ipv6() now return a valid IP address if one was given to support VIP aliases

  • interfaces: interfaces_addresses() can now map a configuration interface to returned addresses to track its origin

  • interfaces: VIPs now support the “no bind” option to exclude them from automatic service use when configured

  • interfaces: interfaces_primary_address() is now being used like its IPv6 equivalent throughout the code

  • interfaces: interfaces_primary_address6() is now considering addresses from tracking interfaces when needed

  • interfaces: interfaces_scoped_address6() is now being used throughout the code

  • interfaces: “tentative” state now leads to the address being ignored during configuration like “deprecated”

  • interfaces: removed unmaintained 3G statistics gathering for Huawei modems that could lock up other modems

  • interfaces: reworked interface creation on boot up

  • interfaces: spoof MAC now only applies to actual interface and not all of its VLAN siblings or parent

  • interfaces: added permanent promiscuous mode setting

  • interfaces: add the interface description via ifconfig to its respective device

  • interfaces: stop special treatment of bridge interfaces on linkup

  • interfaces: correctly write nameserverv6 and searchdomainv6 information on dhcp6c lease acquire

  • interfaces: background all interface reconfiguration script hooks

  • interfaces: refactored linkup event handler to avoid unnecessary recursion in the code

  • interfaces: make cache IP files exclusive to rc.newwan and rc.newwanv6 scripts to avoid missing IP changes

  • interfaces: no longer allow and apply media configuration for non-parent devices

  • interfaces: removed restriction from interfaces without configuration to not being able to hold VIPs

  • firewall: properly kill all connections from and to a WAN IPv4 on an address change

  • firewall: skip rule ID for NAT type log entries (contributed by kulikov-a)

  • firewall: display interface descriptions on normalisation rules (contributed by vnxme)

  • firewall: dynamic IPv6 host alias support (contributed by Team Rebellion)

  • firewall: removed obsolete kill states option on gateway failure

  • firewall: removed the $aliastable cache

  • dhcp: allow for ARM architectures in network boot options (contributed by Keith Cirkel)

  • dhcp: allow router advertisements to use a specific link-local VIP alias

  • dhcp: refactor the IPv4 and IPv6 configuration pages and add minimal subnet size requirement hints

  • dnsmasq: fix all-server overwriting strict-order configuration directive (contributed by Christian Tramnitz)

  • firmware: add a “status_reboot” variable to API return data to make clear it belongs to the offered minor update or major upgrade

  • firmware: add random delays to existing firmware cron jobs to avoid update server load spikes

  • firmware: added an automatic cron job to fetch changelog daily to use it as a lightweight check for updates on the dashboard

  • firmware: return product info for status endpoint even when no firmware check was done

  • firmware: removed obsolete business repository fingerprints and added 22.1 fingerprint

  • firmware: implement cross-ABI reinstall of all packages for future use

  • installer: fix installation of rc.conf keymap setting selected earlier during installation

  • installer: improve disk and ZFS pool scan and display

  • installer: increase EFI partition size to 260 MB

  • installer: add EFI partition as a default mount point

  • ipsec: update security of default settings when creating new phase 1 and 2

  • ipsec: remove hashes and algorithms no longer supported by FreeBSD 13

  • ipsec: migrated tunnel settings page to MVC

  • lang: update translations for Chinese, French, German, Italian, Japanese, Norwegian, Spanish, and Turkish

  • lang: demote Italian to development-only language due to lowered translation ratio

  • monit: move logging to own target

  • network time: add iburst option and stop using it by default (contributed by Patrick M. Hausen)

  • openvpn: kill by common name when kill by address does not work

  • unbound: disable do-not-query-localhost on local address server use

  • unbound: update DNS with hostname-only static entries (contributed by Gareth Owen)

  • update: opnsense-bootstrap: -z snapshot mode

  • update: opnsense-bootstrap: improved type detection

  • update: opnsense-code: -r for repository removal

  • update: opnsense-fetch: emit error message of failed download

  • update: opnsense-update: handle kernel debug directory like /boot/kernel

  • update: opnsense-update: removed “firmware-upgrade” file support

  • update: opnsense-verify: synced shared code with FreeBSD 13

  • backend: unify use of configctl utility

  • images: removed deprecated os-dyndns plugin from default installation

  • mvc: emulation versioning empty nodes for the legacy configuration sections

  • mvc: add getInterfaceConfig endpoint to interface API (contributed by Paolo Asperti)

  • mvc: add hint support for text fields (contributed by agh1467)

  • ui: add support for terabytes, and petabytes to format_bytes() (contributed by agh1467)

  • ui: universal striping adjustment for MVC components (contributed by kulikov-a)

  • src: FreeBSD 13-STABLE as of 4ee9fbcd853

  • src: reworked shared forwarding

  • src: migrated to LUA boot loader (contributed by Kyle Evans)

  • plugins: os-acme-client 3.8 [2]

  • plugins: os-bind 1.20 [3]

  • plugins: os-frr 1.25 [4]

  • plugins: os-haproxy 3.9 [5]

  • plugins: os-nginx 1.25 [6]

  • plugins: os-openconnect 1.4.2 [7]

  • plugins: os-postfix 1.21 [8]

  • plugins: os-telegraf 1.12.4 [9]

  • plugins: os-zabbix-proxy 1.7 [10]

  • ports: expat 2.4.2 [11]

  • ports: filterlog 0.6 [12]

  • ports: flock 2.37.2

  • ports: lighttpd 1.4.63 [13]

  • ports: nss 3.73.1 [14]

  • ports: openssl 1.1.1m [15]

  • ports: openvpn 2.5.5 [16]

  • ports: phalcon 4.1.3 [17]

  • ports: php 7.4.27 [18]

  • ports: sqlite 3.37.1 [19]

  • ports: unbound 1.14.0 [20]

Known issues and limitations:

  • This release contains a new major operating system version and should be carried out with the necessary care. Despite extended test coverage changes made by FreeBSD may still affect operation without our knowledge.

  • MAC spoofing now only pertains to the configured interface and not the VLAN siblings or parent interface. This can introduces unwanted configuration due to previous side effects in the code. Make sure to assign and set the spoofed MAC for all interfaces that require a spoofed MAC.

  • Media settings are no longer shown for non-parent interfaces and need to be set individually to take effect. This can introduce unwanted configuration due to previous side effects in the code. If the parent interface was not previously assigned please assign it to reapply the required media settings.

  • Router advertisement static mode option is still subject to change in this release candidate series.

  • IPsec hash and cipher removals in FreeBSD 13 can affect existing setups as insecure cryptographic options have been removed upstream. For more information see the FreeBSD commit in question [21] . We will be adding an explict configuration check to 21.7 before its end of life.

  • Circular logging support has been removed. No user interaction is required.

  • The migration notes are subject to change and will be extended as needed in the upcoming weeks.

The public key for the 22.1 series is:

# -----BEGIN PUBLIC KEY-----
# MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA1o1Bk31AcX5xsqgVAoWQ
# 1fTDznz22ojsK+qCkhW7MKSWlCyEZYEueUtq7hOt/gqttc3qT0WgHjhjI/WE2RQ4
# 53yfSw/2DDdt3v2WRoupaMzu2Px6I0A+dzo/DM0UWHHsjUaa1HnTvrC14W2vy9wY
# rdotDpp6vSA3WoBmpz+6cpAOlOMTboJouaZy2gSAAcFUmnmP6KDE+lQEqudENTpr
# wb/tIILTE3s6HMBrnmyTNz3Oyy77qH0Xq4mU0r+GS3If0LN+zIr3evt/hhS80otG
# 4WA2ifFeoZVUC//ArAqRiuOJKWvDe5455W1tOuoLkVKVwWMUd1YjaLq8/SRNtTVT
# jRWO6znUHJa7LKtwY7SJvJ8bl8kR8QnrEBRLqT3IA+FcRH+8RaeCivPV7oS1tMiV
# 7hUmu4yXkiMU9c/RrUj7UGZfPKa6K1yP2p3pRvHwCpMclhlVdaiAGNQ8X1GmUAmg
# 3hsoay1ximpj0Yzs+ynDdT1WPkjx8+mDWI08qTuVX+KN3xiohzjxUyD6kBbw2N4z
# EkKTu36KLxo+Hs2iHh4iPWV+EZ5pBn/BseUeHha+V76xM/fPU3H2htwF6/lAz3KH
# J6cevsMenCaYBAqpUsQMBjxhDgMmpCcjiZRPijFpe5zsNSUD1NJ8QMpecBZCE6Vt
# YHWiWxZTN13z4mPqA4uebakCAwEAAQ==
# -----END PUBLIC KEY-----

Please let us know about your experience!

# SHA256 (OPNsense-22.1.r1-OpenSSL-dvd-amd64.iso.bz2) = c6388b7960ec8e65a89dd8baf0a118410340f94b260bfea64faf3008c525376e
# SHA256 (OPNsense-22.1.r1-OpenSSL-nano-amd64.img.bz2) = 10aa979b754c8d4b0ffdad4c8befa1ab3b0bb146981333d5731ffa5c7b99b9b3
# SHA256 (OPNsense-22.1.r1-OpenSSL-serial-amd64.img.bz2) = e09addbab2a479cd5155926373c2bbe141d3f6aa057f044b43d9ad11fcc75e85
# SHA256 (OPNsense-22.1.r1-OpenSSL-vga-amd64.img.bz2) = 7f02135fdddf6227fd1ef4bb3012ce83b622bf7ec18baadaf03105792a38576c