Commit graph

839 commits

Author SHA1 Message Date
Gustavo Iñiguez Goia
f63d9dce72
ui,prefs: allow to configure CA cert for TLS comms
TLS simple: server cert + key
TLS mutual: CA cert + server cert + server key
2023-06-25 13:56:05 +02:00
Gustavo Iñiguez Goia
b1e85da2f7
ui: restrict ipc socket permissions
- Restrict ipc socket permissions to the current user.
- Store ipc socket in the runtime private dir of the user.
2023-06-25 13:48:56 +02:00
Gustavo Iñiguez Goia
6d45d9db12
Merge pull request #975 from WojtekWidomski/master
Allow starting the GUI in background when tray not available
2023-06-25 00:43:48 +02:00
Gustavo Iñiguez Goia
dbc5a9cef3
ui,prefs: allow to configure certs and auth type
- Added options to configure authentication type and certs from the
  preferences dialog.
- Reorganize code a little bit to displaya message when restarting the
  GUI is needed.
2023-06-24 18:28:04 +02:00
Wojtek Widomski
440e00dae1 add --background command line argument 2023-06-24 14:24:10 +02:00
Wojtek Widomski
4e87b1f8e4 use QLocalSocket and QLocalServer
use QLocalSocket and QLocalServer instead of lockfile
This allows to open window of running instance
when user is trying to start new instance.
2023-06-24 13:46:42 +02:00
Gustavo Iñiguez Goia
11bb32cbae
ui: allow to load credentials from settings file
- added munix9 to the list of contributors.
2023-06-24 00:52:42 +02:00
tioguda
885f0f7f27
i18n: update Brazilian Portuguese translation 2023-06-23 14:10:38 -03:00
Gustavo Iñiguez Goia
b3f772c34d
ui: added needed file for auth with certificates 2023-06-23 17:05:45 +02:00
Gustavo Iñiguez Goia
12b4cf3104
added option to secure channel communications
Allow to cypher channel communications with certificates.

There are 3 authentication types: simple, tls-simple and tls-mutual.

 - 'simple' wont't cypher communications.
 - 'tls-simple' uses a server key and certificate for the server, and a
   common CA certificate or the server certificate to authenticate all
   nodes.
 - 'tls-mutual' uses a server key and certificate for the server, and a
   client key and certificate per node.

There are 2 options to verify how gRPC validates credentials:
 - SkipVerify: https://pkg.go.dev/crypto/tls#Config
 - ClientAuthType: https://pkg.go.dev/crypto/tls#ClientAuthType

Example configuration:
    "Server": {
        "Address": "127.0.0.1:12345",
        "Authentication": {
            "Type": "tls-simple",
            "TLSOptions": {
                "CACert": "/etc/opensnitchd/auth/ca-cert.pem",
                "ServerCert": "/etc/opensnitchd/auth/server-cert.pem",
                "ClientCert": "/etc/opensnitchd/auth/client-cert.pem",
                "ClientKey": "/etc/opensnitchd/auth/client-key.pem",
                "SkipVerify": false,
                "ClientAuthType": "req-and-verify-cert"
            }
        }
    }

More info: https://github.com/evilsocket/opensnitch/wiki/Nodes
2023-06-23 16:51:36 +02:00
Gustavo Iñiguez Goia
0d6b9101b0
ui: configure GUI autostart from global preferences 2023-06-22 12:15:44 +02:00
Gustavo Iñiguez Goia
6f752d56fe
ui,prefs: allow to configure gRPC channel max size 2023-06-22 01:42:13 +02:00
Gustavo Iñiguez Goia
0a30906305
ui: minor refactoring
- Use Message util.
  Maybe it'd be better to display a desktop notification for a more
  better experience, or a dialog box if notify2 is not installed.
- Translate warning message.
2023-06-22 01:17:06 +02:00
Gustavo Iñiguez Goia
c387ddf468
ui: minor refactoring
- Removed unused imports.
- Moved max gRPC channel settings to config.py
2023-06-22 00:49:03 +02:00
munix9
59621017e9
xdg updates + autostart + lockfile (#964)
* require pyxdg

* extend xdg, introduce autostart

* use xdg_current_desktop from opensnitch.utils.xdg

* control autostart in tray

* dont use pkill anymore

* check if os-ui is already running

* don't require pyxdg (for now)

* simplify xdg_current_desktop

* do not use pyxdg (for now), use some code from there

* update autostart status when menu is open

* fix possible SameFileError
2023-06-21 23:28:13 +02:00
Gustavo Iñiguez Goia
6e61958c23
ui: let DEs control notifications timeouts
There have been some issues (#673) informing that the notifications
timeout were not working on KDE.

On 843412d I wrote that the timeout unit is millisecond, as stated on
the docs here:
https://notify2.readthedocs.io/en/latest/#notify2.Notification.set_timeout

But after some trial and error:
 - set_timeout() units are in seconds, at least for KDE 5.26.3, Xfce
   4.18 and GNOME 43.
 - not specifying the timeout with set_timeout() lets the Desktop
   Environment handle the timeout for us, from their respective
   preferences window.

So at least now there're some DEs where the notifications are closed as
expected.
2023-06-20 12:48:03 +02:00
Gustavo Iñiguez Goia
f7eec83367
sys fw: allow to add icmp types by commas
- Previously we only supported multiple ICMP types on the same rule
by adding multiple keys:
 Key: type
 Value: echo-request
 Key: type
 Value: echo-reply

Now it's possible to specify them using ',':
 Key: type
 Value: echo-request,echo-reply

- Validate ICMP types before adding them.
2023-06-20 01:14:57 +02:00
Gustavo Iñiguez Goia
01069d363b
ui,fw: added help button to open the fw rules wiki 2023-06-17 12:01:26 +02:00
Gustavo Iñiguez Goia
06f333c281
ui,prefs: increased default timeout widget size 2023-06-17 11:41:21 +02:00
Gustavo Iñiguez Goia
370a978b24
changed systray warning help url 2023-06-16 11:48:47 +02:00
Gustavo Iñiguez Goia
5f5cf11c67
updated systray warning help url 2023-06-16 01:59:09 +02:00
Gustavo Iñiguez Goia
c42232d92e
ui,events: fixed behaviour jumping to the rules view
* There was a situation where the details of an app rule was not being
displayed correctly:
 - on the tab rules select any system fw rule.
 - go to the Events tab
 - double click on the Rule column to view the details.
 - instead of the app rules details, the list of system fw rules was
   displayed.

* On the other hand, when going back from the details view, the list of
  rules was not being refreshed correctly.

  In this situation now we select the Application rules view.
2023-06-15 19:18:58 +02:00
Gustavo Iñiguez Goia
a897dd9dc3
ui: updated url with fw config upgrade instructions
Some users coming from v1.5.x version may end up with an incompatible fw
configuration, so point them to a url with instructions to solve it.
2023-06-15 17:05:54 +02:00
Gustavo Iñiguez Goia
7905bf4477
ui: make some label texts selectable by mouse 2023-06-15 16:15:34 +02:00
Gustavo Iñiguez Goia
64a5222950
ui:don't allow duplicated values when adding fw rules
When adding fw rules, don't allow duplicated values. For example:

 "Name": "meta",
 "Values": [
   {
     "Key": "mark",
     "Value": "2"
   },
   {
     "Key": "mark",
     "Value": "2"
   }
2023-06-15 13:01:53 +02:00
Gustavo Iñiguez Goia
6402031f54
ui,fw: beautify rules parameters,organized imports 2023-06-15 01:46:47 +02:00
Gustavo Iñiguez Goia
cf3205b209
ui, prefs: set pop-ups tab as the default tab 2023-06-15 01:26:13 +02:00
Gustavo Iñiguez Goia
682e6d667b
ui, prefs: reorganized Nodes options 2023-06-15 01:24:21 +02:00
Gustavo Iñiguez Goia
aa71b7d9f6
ui, prefs: fixed exception loading outdated config
Be sure that users with outdated default-config.json files can load and
save the configuration (those without LogUTC).
2023-06-15 01:07:20 +02:00
Gustavo Iñiguez Goia
77c3cf4512
fw rules: beautify rules escription
make it more nftables style:
 ip daddr 127.0.0.1 tcp dport 53 accept
instead of:
 ip daddr == 127.0.0.1 tcp dport == 53 accept

It'll be easier to translate our rules to nftables rules in this way.
2023-06-14 17:31:12 +02:00
Gustavo Iñiguez Goia
cc2b4f5824
ui,fw: don't allow empty rules 2023-06-14 01:27:40 +02:00
Gustavo Iñiguez Goia
d4bdfed1d1
ui,fw: fixed loading ct, quota, limit and meta statements 2023-06-14 01:16:06 +02:00
Gustavo Iñiguez Goia
e60b443c60
ui,fw: fixed setting dport/sport statement title 2023-06-13 15:10:28 +02:00
Gustavo Iñiguez Goia
1c90a51dbb
ui,fw: fixed adding dpotr/sport rule
When changing between dport and sport, the rule was not being added.
2023-06-13 14:02:19 +02:00
Gustavo Iñiguez Goia
5b7d2a2cbc
ui,fw: new rules creation fixes
- Fixed setting the protocol of a dport/sport statement.
- Fixed translating ports to service name, and back (/etc/service).
- Enable Save button when modifying the description of a rule.
2023-06-13 12:29:33 +02:00
Gustavo Iñiguez Goia
173e61b65a
ui: fixed displaying flatpak icons
Closes: #956
2023-06-12 00:14:40 +02:00
Gustavo Iñiguez Goia
2ad38fbf05
ui: set default rules editor button to Save
Closes #963
2023-06-09 13:16:55 +02:00
selfdenial
52c23ffd5d Introduce 2 new daemon logging options: LogUTC & LogMicro. 2023-06-05 20:46:42 -06:00
selfdenial
9a89ad98b9 Use if statements instead of match/case to set max_message_length. 2023-06-05 10:21:08 -06:00
selfdenial
f6623fad95 Add non-gui setting for gRPC server max_message_length. 2023-06-03 23:29:40 -06:00
Gustavo Iñiguez Goia
9c483b1a59
sys,fw: allow to create multiprotocol rules
Now you can add rules to allow multiple protocols.
For example you can add a rule to allow dport/sport for both TCP
and UDP.

There're two options to allow a port:

Statement {
 Name: tcp
 Values:
   Key: dport
   Value: 1234
}

Statement {
 Name: meta
 Values:
   Key: l4proto
   Value: tcp,udp

   Key: dport
   Value: 1234
}

Closes #951.
2023-05-27 22:02:14 +02:00
Gustavo Iñiguez Goia
3432c6a694
ui,fw: fixed allowing inbound services
The helper dialog to allow inbound connections to a port was adding a
rule to source port, instead of destination port.

The source port is needed to allow the traffic of a *local service"
when the inbound policy is set to Deny.
2023-05-25 17:39:17 +02:00
Gustavo Iñiguez Goia
500f5fe256
i18n: removed .qm from the repo 2023-05-23 18:01:00 +02:00
Toni Lähdekorpi
6afa7a3d0e
i18n: add Finnish translations (#948)
* i18n: initial support for Finnish

* i18n: add Finnish translations for rules

* i18n: add Finnish translations for rules

* i18n: translated using Weblate (Finnish)

Currently translated at 99.6% (516 of 518 strings)

Translation: Open Source/opensnitch

* i18n: finalize Finnish translations

* i18n: run Finnish translations through lrelease

---------

Co-authored-by: Toni Lähdekorpi <toni.lahdekorpi@neuvo.ai>
2023-05-23 17:58:18 +02:00
Gustavo Iñiguez Goia
0402bb1555
i18n: updated translations definitions 2023-05-19 18:31:26 +02:00
Gustavo Iñiguez Goia
3d99eae3ae
i18n: updated translations 2023-05-19 18:26:07 +02:00
Gustavo Iñiguez Goia
7c631376db
ui, fw: avoid unnecessary rules reloads
- When changing a policy, disable it until we receive a response.
  Maybe we should even delay it a little bit more.
- When editing a fw rule, disable the Save button if the user didn't
  change any field.
2023-05-19 01:24:56 +02:00
Gustavo Iñiguez Goia
13ef497538
Merge pull request #944 from davide125/shebang
ui: remove unnecessary shebang
2023-05-18 23:08:29 +02:00
Davide Cavalca
c6153ec661 ui: remove unnecessary shebang 2023-05-18 12:04:14 -07:00
Davide Cavalca
b3ecb69a5a ui: bump unicode_slugify to 0.1.5 2023-05-18 11:27:21 -07:00