16159 Commits

Author SHA1 Message Date
doktornotor
4e4f28bf09 Make the GUI interfaces selection actually honored by ntpd
Without the "interface ignore wildcard" directive, the service still listens on wildcard.
2023-12-18 10:15:35 +01:00
Franco Fichtner
35548cee4f src: style sweep 2023-12-14 21:24:56 +01:00
Franco Fichtner
60b262bcaf pkg: fix plist 2023-12-14 21:24:45 +01:00
Ad Schellevis
a1b0dd8071 configd - support optional configd config additions. This can for example be used to enforce a custom proxy or overwrite default settings specified in configd.conf
Additions may be written inside opnsense/service/conf/configd.conf.d/ using a name ending in .conf

Another use-case it to "lock-down" configd access by default using a newly default action, e.g.:

[action_defaults]
allowed_groups = wheel
2023-12-14 11:25:23 +01:00
Ad Schellevis
3e49c338b2 Core/Firmware - add audit messages for firmware actions. 2023-12-14 11:05:25 +01:00
Franco Fichtner
80b24b547b interfaces: change default port to a hint in latest VXLAN addition 2023-12-14 08:34:08 +01:00
Ad Schellevis
72dfc48866 core / ManuSystem - obey group sequence when specified for interfaces (moving them to top in the requested order). When no sequence is specified ordering remains unchanged. 2023-12-13 20:51:33 +01:00
Ad Schellevis
dea5f295ac Interfaces: Other Types: VXLAN - add optional local/remote port. closes https://github.com/opnsense/core/issues/7047 2023-12-13 19:39:19 +01:00
Ad Schellevis
86686eff4b Interfaces: Assignments - opening a new window/tab to navigate feels a bit excessive in this page. remove the target=blank tag. 2023-12-13 17:29:55 +01:00
kulikov-a
b1a77c8375
Log / use built-in event & remove auto-init (#7054) 2023-12-13 11:21:43 +01:00
Franco Fichtner
c847fb5fb3 scripts: whitespace sweep 2023-12-13 08:50:08 +01:00
Franco Fichtner
549c180e92 interfaces: follow upstream commit
Safe now after 23.7.10 base update.

See: https://reviews.freebsd.org/D38908
2023-12-12 13:03:19 +01:00
Ad Schellevis
29377cecc4 Services: Unbound DNS - add manual restore function for easier db repair. (ref https://github.com/opnsense/core/issues/7049) 2023-12-12 11:18:45 +01:00
Franco Fichtner
16836f4562 system: coding style 2023-12-12 09:49:53 +01:00
Franco Fichtner
b68fa36ea6 system: minor style thing #7063 2023-12-12 09:24:31 +01:00
Franco Fichtner
5e785afe06 system: move helper script out of the way; closes #7063 2023-12-12 08:49:32 +01:00
Franco Fichtner
a3f40673ef system: place relative links like certctl does #7063 2023-12-12 08:34:56 +01:00
Ad Schellevis
8c4b1636f8 fix plist 2023-12-11 18:12:07 +01:00
Ad Schellevis
eadb83baa4 core / trust - add simple re-implementation of certctl tool to speedup the process.
Although "openssl rehash" would be more portable, it doesn't seem to match FreeBSD's file layout.
The script in this commit mimics the certctl tool for the relevant parts, but spending a lot less time while doing so.

If at some point in time the certctl tool starts to behave again, we can simply trash this one and go back to the default option.

proposal for https://github.com/opnsense/core/issues/7063
2023-12-11 18:06:13 +01:00
Franco Fichtner
36928eb056 mvc: style sweep 2023-12-11 16:25:12 +01:00
Ad Schellevis
a59e936389 core / configd command - remove unused "json" parameter from list_macdb.py, which was made redundant in 8973b7e67d 2023-12-11 10:20:42 +01:00
Ad Schellevis
39ddda3cdc Interfaces: Virtual IPs: Settings - ProxyARP requires strict subnets. 2023-12-11 09:53:29 +01:00
Franco Fichtner
a8a3ef965b src: style sweep 2023-12-11 09:18:54 +01:00
Ad Schellevis
8973b7e67d Services: DHCPvX: Leases - cache configd action 'interface list macdb' to increase responsiveness 2023-12-10 19:50:32 +01:00
Ad Schellevis
ccee85994b core / treeview - move double click event inside treeview js code for easier re-use. 2023-12-10 15:45:42 +01:00
Ad Schellevis
b921d8fe2e core / treeview - add double click event with grid dialog. when comparing a specific path inside the tree its often easier to inspect rows, this commit adds a table representation of a node inside our standard tree. 2023-12-09 16:20:13 +01:00
Ad Schellevis
547c97a931 MVC / forms - auto trim input fields when being pasted. There is a small risk the current selector is actuall too wide, but we can tailer when needed if specific <input> tags cause issues. (https://github.com/opnsense/core/issues/2217) 2023-12-09 11:52:12 +01:00
Ad Schellevis
7c74e22554 VPN: IPsec: Mobile Clients - move save button into its own container, closes https://github.com/opnsense/core/issues/7062 2023-12-08 15:32:20 +01:00
Ad Schellevis
bb4cddda35 Firewall: Aliases - read before write in update_tables.py (minor stylefix) 2023-12-08 08:43:14 +01:00
Ad Schellevis
935c64295b Firewall: Aliases - read before write in update_tables.py.
Although in theory we should also be able to determine a change by looking at the alias and it siblings, it needs more parameters and is likely more difficult to read.
This commit should address the concerns of https://github.com/opnsense/core/pull/7057 by wrapping "read an alias content file" into a static method called "read_alias_file" and use it to determine change in both the resolv() {keeping track of this alias without siblings} and the one in update_tables.py {which is flushed to pf}
2023-12-07 17:45:44 +01:00
Franco Fichtner
52f3939106 firewall: preg_replace() nibbles away our non-catpure group; closes #7060 2023-12-07 13:22:58 +01:00
Franco Fichtner
39c1b358d1 firmware: change the changelog to always run through launcher.sh
Add -u option for this reason as we cannot afford to abort when
otherwise locked and here it also doesn't matter.  We could also
wait for the lock but this seems more beneficial and we can pick
up the correct environment as well, see 5c064a57090.
2023-12-07 10:17:16 +01:00
Franco Fichtner
5c064a5709 firmware: disallow TLS 1.0 and 1.1 on business mirror
On the mirror we control prevent the use of "legacy" TLS versions
to allow for better security.  This could be carried over to other
servers but since we don't controll most community servers this
could have negtive impact on availability depending on their config.

A quick sweep shows that all main functions check.sh, update.sh and
upgrade.sh use the launcher so that works as intended even from the
console.  Another audit is required for other firmware scripts and
situations where e.g. opnsense-update is called manually.  Ideally
all should go to launcher.sh or somehow be able to access the
required environment.
2023-12-07 09:51:11 +01:00
Franco Fichtner
3001316441 mvc: style sweep 2023-12-07 09:25:22 +01:00
Ad Schellevis
6bd5746e3f core / add configdStream action to ApiControllerBase and use it in our log viewer (https://github.com/opnsense/core/issues/6680). Sreaming might be practical in more cases, in which case it helps to isolate the functionality in our base class. 2023-12-06 11:49:54 +01:00
Ad Schellevis
f1024ebc06 crashreporter - safeguard /tmp/PHP_errors.log file before usage. 2023-12-04 18:28:07 +01:00
Ad Schellevis
bbf4bdb733 legacy/head.inc - cleanse system_get_language_code() 2023-12-04 17:47:32 +01:00
Ad Schellevis
0e3d660e18 Firewall: Aliases - read before write in alias resolve to spare unneeded diskwrites. (for https://github.com/opnsense/core/issues/6596)
Try to only save current alias content and md5 checksum when changed, but do update the md5 file modification date to ensore proper ttl handling.
2023-12-03 14:45:09 +01:00
Stephan de Wit
d73f4f7be4 MVC: flatten complex array structures for better search functionality
implode() dies when provided with arrays in arrays (on development),
so this is a good opportunity to extend the behavior a bit.

The consequence of this commit is that information that is not displayed
in a bootgrid, but still passed in as part of the dataset is also
searchable. This isn't a bad thing, but controllers still have
the option of constraining the amount of fields that should be
searched, as showcased here in interfacesInfoAction().
2023-11-30 16:45:17 +01:00
Franco Fichtner
f9a745f472 openvpn: evil newline 2023-11-30 14:06:17 +01:00
Franco Fichtner
2dad1a3690 openvpn: cope with display and fix copy+paste errors 2023-11-30 14:03:58 +01:00
cs-1
8e18956cc4
Add IPv6 to OpenVPN widget and status page (#7044) 2023-11-30 13:39:29 +01:00
Ad Schellevis
f2427d6173 core / log views - fix regression in selectpicker. closes https://github.com/opnsense/core/issues/7045
It looks like calling 'toggle' instantly after creation looses the contens of the actual select. This commit adds a timeout and keeps track if picker was already created or not.
2023-11-30 09:13:15 +01:00
Ad Schellevis
d662097d1d Dashboard : Reporting - OpenVPN server instances missing. closes https://github.com/opnsense/core/issues/7038 2023-11-30 08:41:52 +01:00
Ad Schellevis
041cf134f6 system - remote backup / add an optional random delay before executing remote backups, 3600 seconds max when executed automatically in the nighly run. ref https://github.com/opnsense/plugins/pull/3689 2023-11-29 18:05:58 +01:00
Ad Schellevis
bcc067cb7c configd - constraint user actions to members of the wheel group.
It's a bit of an experiment, but likely low risk due to the amount of callers.
These are being used by our login sequence as our usual suspects all run as root, this shouldn't cause any interference.

requires 86c1087dd6 to function.
2023-11-29 17:46:37 +01:00
Ad Schellevis
b5d0ab2d91 plist-fix 2023-11-29 17:36:05 +01:00
Ad Schellevis
86c1087dd6 configd - implement optional trustmodel and add extended logging, closes https://github.com/opnsense/core/issues/6647
Use socket.LOCAL_PEERCRED to fetch the callers credentials so we are able to log system (shell) users calling our configuration engine.
Messages are send to our Audit log using severity informational (action succeeded) or error (not allowed or unknown action), this needs a small change in our syslog template to exclude the audit messages (included in this commit).

While here, also add a general overwrite for settings that should apply for all actions, as this would ease applying future default restrictions for all actions.
Action defaults can be set in configd.conf using the following construct:

[action_defaults]
allowed_groups = wheel

To require group membership, the `allowed_groups` option is added to the action, when set, the connected user should be a member to at least one of the mentioned groups. For example, to require wheel membership for a call "echo", the configuration might look like this:

[echo]
command:echo
parameters:%s
type:script_output
allowed_groups = wheel

Finally, remove the simulation mode for the configd service as this is less useful nowadays.
2023-11-29 17:34:36 +01:00
Franco Fichtner
829ae3dd9a system: try not to taint the root shell
If someone strips root of the admin privilege don't try
to pry away the root shell as well.  None of this really
works well in practice.
2023-11-29 12:31:02 +01:00
Franco Fichtner
a0581ae0f6 system: prevent activating shell for non-admins
Our policy has always been that shell access should not
not be granted to untrusted users.  Apparently this is
also a way to wedge in security reports stemming from
this misconfiguration while glossing over this point and
focusing on something else found in the file system.

If you need access for a user just give them full admin
privileges and that's fixed. For everyone else no longer
render the shell and add a warning in the user edit page.
2023-11-29 12:16:53 +01:00