16830 Commits

Author SHA1 Message Date
Franco Fichtner
d4ddc8def6 ipsec: add missing copyright header 2025-04-11 08:41:32 +02:00
Franco Fichtner
fb87f688f6 ipsec: fix auth server parsing regression
PR: https://forum.opnsense.org/index.php?topic=46774.0
2025-04-10 20:52:25 +02:00
Ad Schellevis
25b2716325 Services: Captive Portal - regression in https://github.com/opnsense/core/issues/8326 when reflection is enabled.
Captive portal installs redirects, but these should be excluded when calculating reflection rules.

ref: https://forum.opnsense.org/index.php?topic=46775.0
2025-04-10 20:34:32 +02:00
Ad Schellevis
7e838c6d92 Services: Captive Portal - configd actions should use long opts 2025-04-10 14:16:11 +02:00
Ad Schellevis
6d507b1dd9 Services: Captive Portal - fix regresssion in 8ba454ab04, argparse doesn't seem to like an argument starting with a minus (-) sign even when quoted.
making assignments explicit with an equal [=] sign seems to fix this.
2025-04-10 14:07:37 +02:00
Franco Fichtner
86ffbd88ad firmware: this broke too 2025-04-10 12:42:00 +02:00
Franco Fichtner
0e5a5c3ba2 system: fix gateway watcher backoff 2025-04-10 11:27:12 +02:00
Franco Fichtner
da6fab5bff backend: adjust for #8525 2025-04-10 09:44:03 +02:00
Ad Schellevis
7446f8cbbf logging: reverse_log_reader() - fix off by one error due to line ending at the end of the file
Usually log lines start with a line ending, which means the first hit is always an empty line with reading things backwards.
This empty line has no relevance, but only indicates we're at the end of the file.

This commits stores the file starting position in all cases and ignores the output when we trying to yield the end of the file.
2025-04-10 09:08:23 +02:00
Ad Schellevis
d0b1c8d369 Services: Intrusion Detection: Administration - example usage of configd errors:no property (https://github.com/opnsense/core/issues/8525) 2025-04-09 17:38:11 +02:00
Ad Schellevis
9f7a1fa062 configd: support "errors:no" clause on actions, closes https://github.com/opnsense/core/issues/8525 2025-04-09 17:36:13 +02:00
Stephan de Wit
8d3d392ae6 dashboard: traffic: use client time (https://github.com/opnsense/core/issues/8225) 2025-04-09 14:39:26 +02:00
Franco Fichtner
7b2ad791ee src: syle sweep 2025-04-09 13:16:51 +02:00
Ad Schellevis
983a0663b0
Interfaces: Devices: Bridge - refactor to MVC closes https://github.com/opnsense/core/issues/8353 (#8534)
* Interfaces: Devices: Bridge - refactor to MVC for https://github.com/opnsense/core/issues/8353

* move existing properties to model which overlays existing config path
* add a simple wrapper script for [re]configuration which diffs and applies using the new _interfaces_bridge_configure() implementation

* Update src/opnsense/mvc/app/models/OPNsense/Interfaces/Bridge.xml

Co-authored-by: Franco Fichtner <franco@opnsense.org>

---------

Co-authored-by: Franco Fichtner <franco@opnsense.org>
2025-04-09 13:09:09 +02:00
Ad Schellevis
09bd2d96cc Interfaces: Devices: Bridge - refactor bridge (re)configuration, as with most new components, we should check what we have first before applying to prevent a lot of unuseful calls and possible service disruptions. pre work for https://github.com/opnsense/core/issues/8353
In order to plan->do->act we need the current settings of the existing bridge, which is where legacy_interfaces_details() comes into play, which needs some additional parsing.
Next we can diff per type of setting and apply when changed.
2025-04-09 11:16:42 +02:00
Ad Schellevis
5629911558 System: Trust: Authorities - prevent recusrion loop when ca's are cross referencing eachother.
Although this is highly uncommon, it's very annoying when the certificate path leads to an "Fatat error: Allowed memory size exhausted...".
If we do end in a loop (e.g. same ca already in the path), exit the calculation and return what we found sofar.
2025-04-08 11:45:21 +02:00
Franco Fichtner
d240c8b0fa firmware: fix page after f569ead1a5371 changed the defaults
Make it backwards-compatible but always store the new value now.

    # pluginctl -g firmware.reboot

will still return an empty string instead of "0".
2025-04-08 11:29:59 +02:00
Franco Fichtner
c1b1af2ac2 src: style sweep 2025-04-07 19:51:40 +02:00
Franco Fichtner
0a33697a90 interfaces: allow literal comma by escape sequence '\,'; closes #8503 2025-04-07 12:09:23 +02:00
Monviech
ce2abde150
dashboard: Certificates.js adjustments for f90e544 (#8526)
* dashboard: Use search link for certificates not in the trust model

* dashboard: Use toLocaleDateString to only display the expiry date but not the exact time.

* dashboard: Show the commonname of a certificate if it exists. Since certificates from external sources all have the same description, they would not be easily distinguished otherwise.

* Fix style

* dashboard: The value of hidden items must be changed to uuid to ensure uniqueness when hiding certificates

* dashboard: Simplify hiddenItemOptions value
2025-04-04 14:12:27 +02:00
Franco Fichtner
d3c5aa22a0 system: refactor vip access 2025-04-04 11:52:39 +02:00
Franco Fichtner
e6a4bde0bf system: cleanup unused since 945bd66a3dc8 2025-04-04 11:49:55 +02:00
Franco Fichtner
868a74e058 interfaces: cleanup spurious functions regarding VIP access
We do this for different reasons, but mainly for code maintenance
and simplicity.  It also fixes a few aquire/display bugs with
overlapping linl-local VIPs across interfaces, but not all.
2025-04-04 11:29:51 +02:00
Monviech
7210f016eb
dnsmasq: Implement a light validation for option6 values (#8520)
* dnsmasq: Implement a light validation for option6 values as they require to be wrapped inside square brackets if they contain an IPv6 address

* dnsmasq: Improve the IPv6 bracket check, also handle multiple ipv6 addresses that are comma separated, use isIpv6Address()

* dnsmasq: Put IPv6 value check inline since dhcp-match and dhcp-option have been unified in master.

* Update src/opnsense/mvc/app/models/OPNsense/Dnsmasq/Dnsmasq.php

Co-authored-by: Ad Schellevis <AdSchellevis@users.noreply.github.com>

* Update src/opnsense/mvc/app/models/OPNsense/Dnsmasq/Dnsmasq.php

Co-authored-by: Ad Schellevis <AdSchellevis@users.noreply.github.com>

* dnsmasq: trim value directly

---------

Co-authored-by: Ad Schellevis <AdSchellevis@users.noreply.github.com>
2025-04-04 08:42:13 +02:00
Ad Schellevis
905b990dea filter: replace update_params for argparse 2025-04-03 21:05:18 +02:00
Monviech
207bddcad5
TrafficShaper: Implement base_bootgrid_table and base_apply_button (#8524) 2025-04-03 16:08:04 +02:00
Ad Schellevis
f90e5445db System: Trust: Certificates - offer config directory (/usr/local/etc/ssl/ext_sources/) to store locations for certificates not managed by us, but practical to know about their existence. closes https://github.com/opnsense/core/issues/8279
This is useful for services like OPNWAF and Caddy. This commit only adds the facility and changes the admin page, the widget is left unaltered.
2025-04-03 15:11:54 +02:00
Franco Fichtner
63b9f2e1aa system: allow multiple manual DNS search domains; closes #8522
The length and input isn't bound but when writing resolv.conf
we will adhere to the requirement mentioned in the man page:

    The search list is currently limited to six domains
    with a total of 256 characters.

We simply don't always know how many the system was being provided
with from the ISP so it is what it is.
2025-04-03 11:18:25 +02:00
Stephan de Wit
dbf37413b9 Revert "bootgrid: resizable columns (#8496)"
This reverts commit de5dd5f5278edbae14bfa1bc76751ae360b834e0.

table-layout: auto; seems to do more harm than good, while originally
intended to improve out-of-bounds table row situations, it proves
to cause the same issue for long cell content as it now
ignores overflow:ellipsis.
2025-04-03 08:37:26 +02:00
Monviech
732a393fb7
dnsmasq: Unify dhcp-option and dhcp-match in the same grid (#8516)
* dnsmasq: Unify dhcp-option and dhcp-match in the same grid

Both dhcp-option and dhcp-match use almost the same fields in the form and concern the same options.
Unifying them could make sense to remove some duplicate code and potentially improving the UX.

* make plist and remove console log debug statement
2025-04-03 08:10:48 +02:00
Ad Schellevis
7ec7e1d174 Firewall: Aliases - fix regression in alias table in json format (https://github.com/opnsense/core/issues/8277)
In order to support both formats, we should break with the first succesful compile().

A workaround in the current version is to omit the {.} in the path expression.
2025-04-02 18:05:01 +02:00
Franco Fichtner
97da2221d7 radvd: refactor use of get_configured_carp_interface_list() 2025-04-02 16:24:44 +02:00
Monviech
ef1c4e07c8
kea: Fix missing ACL privileges (#8519) 2025-04-02 14:13:58 +02:00
Franco Fichtner
adf95bc108 radvd: fix description lookup for #8512 2025-04-02 13:19:58 +02:00
Robin Müller
25d629fcd3
radvd: fix list of source addresses on overlapping link-locals (#8517) 2025-04-02 13:08:32 +02:00
Franco Fichtner
557b793a4e mvc: style 2025-04-02 12:13:45 +02:00
Ad Schellevis
04b5749010 System: Access: Users - fix two typo's, missing comments in grid and disfunctional default landing page 2025-04-02 09:45:40 +02:00
Ad Schellevis
b55023315c Services: Kea DHCP: Kea DHCPv4 - allow manual configuration for advanced scenarios, closes https://github.com/opnsense/core/issues/7822
This commit adds a toggle which skips config file generation for kea-dhcp4.conf and lets the user handle it manuallt, service startup and control stays in place while manually configured.
When manual mode is selected, all other options will be hidden in the form, which should help people understand (and read) what the purpose of this toggle is (advanced mode).
2025-04-01 21:22:02 +02:00
Ad Schellevis
4de4bd2774 Firewall: Rules - fix presentation when alias name overlaps group name. closes https://github.com/opnsense/core/issues/8423
Unfortunately we can't prevent all overlaps, but at least we cab make it consistent with the rules being generated. loadAliasMap() overlays aliases on top of networks (and interface groups), swapping the order makes sure we thread them equally.
2025-04-01 20:48:29 +02:00
Alexander Lauster
8c609298f3 Sunset mirror dns-root.de 2025-03-31 20:57:40 +02:00
Ad Schellevis
d8adc429f7 VPN: OpenVPN: Client Export - add "Enable static challenge (OTP)" option, closes https://github.com/opnsense/core/issues/8488 2025-03-31 18:52:26 +02:00
Franco Fichtner
f698e25cbb firmware: "fix" the issue of user clicking check after clicking check from dashboard
We could move the check to backend() at the risk of breaking firmware upgrades on
errors.  Breaking the auto-check seems like the lesser evil.

In reality you can always go back to the status tab and re-create the issue by
clicking check for updates again after already having it clicked.  That is why the
page actually switches to the updates tab on click.  The update click is also delayed
to give the status call to fill the status tab first which immitates a normal page
render.

The issue actually appears because:

1. Backend options are detached and are dispatched, but since they run in the backround
   we don't return any feedback because we don't have it.  This then...
2. ... creates a parallel chain of trackStatus() calls which eventually reports the same
   modal.

The issue only appears when no updates are found or triggering a separate error modal.
When updates are found this is handled gracefully.

Making the modals and errors static seems like overkill as well.

Keeping friction and magic out of this page is important too.
2025-03-31 17:06:18 +02:00
Monviech
3f1ed2dff5
auth/user: Fix url hash in link so redirection shows the correct menu path (#8509) 2025-03-31 13:06:47 +02:00
Monviech
c48353cdc1 dnsmasq: Change add_mac OptionValue from default to standard to satisfy lint 2025-03-28 20:57:42 +01:00
Monviech
8d6ca1fa98
dnsmasq: Add full dhcp-host support for IPv4 and IPv6 (#8497)
* dnsmasq: Add full dhcp-host support for IPv4 and IPv6

* dnsmasq: Cleanup previous in dnsmasq.inc

* dnsmasq: Change comma placement in template to reduce one condition

* dnsmasq: Add validation to client_id

* dnsmasq: There can be multiple hardware addresses so change label accordingly

* dnsmasq: Change hostname validation so that client_id is also a valid choice without hostname defined.

* dnsmasq: Add validation that prevents duplicate IP addresses in dhcp-host set

* remove one stray newline

* Services: Dnsmasq DNS & DHCP - minor cleanups in https://github.com/opnsense/core/pull/8497

o fix possible race condition in validations
o simplify jinja template

---------

Co-authored-by: Ad Schellevis <ad@opnsense.org>
2025-03-28 19:48:33 +01:00
Ad Schellevis
ad09e7aa6c Services: Unbound DNS: Blocklist - drop "exclude" phrase from log entry as it doesn't make much sense anymore (as a result of aa2cff3e66) 2025-03-28 17:53:39 +01:00
Franco Fichtner
b2dc6fed7c firmware: add cleanup to audits, small refactor to avoid controller repetition; closes #8154 2025-03-28 13:42:13 +01:00
Franco Fichtner
d8ecd8c31b firmware: hook cleanup as hidden "f"lush command in console #8154
Some may argue the hidden commands are not good, but they are really
only to be intended to be called upon request.  None of these things
magically fix firmware updates on their own, but can be useful (and
copying console output into the forum can also be more difficult).
2025-03-28 12:51:50 +01:00
Franco Fichtner
433d8d62b3 unbound: model style 2025-03-28 12:19:33 +01:00
Franco Fichtner
51a5118d6e ipsec: pre-shared key permission fix
PR: https://forum.opnsense.org/index.php?topic=46595.0
2025-03-28 12:17:51 +01:00