An OpenSnitch UI in Go using Fyne
The application is running as a gRPC server on a unix socket and will interact with OpenSnitch daemon.
THIS SOFTWARE IS WORK IN PROGRESS, DO NOT EXPECT IT TO BE BUG FREE AND DO NOT RELY ON IT FOR ANY TYPE OF SECURITY.
- OpenSnitch daemon >= v1.0.0b
- Fyne dependencies to compile the application
By default the UI will load its configuration from ~/.opensnitch/ui-config.json
(customizable with the --config
argument), the default contents of this file are:
{
"default_timeout": 15,
"default_action": "allow",
"default_duration": "until restart",
"default_operand":"process.path"
}
The default_timeout
is the number of seconds after which the UI will take its
default action, the default_action
can be allow
or deny
and the
default_duration
, which indicates for how long the default action should be
taken, can be once
, until restart
or always
to persist the action as a new
rule on disk. default_operand
indicates the operand type to use for
the rule, can be process.path
(the path of the executable), user.id
,
dest.ip
, dest.host
or dest.port
.
For more details about rules please refer to the opensnitch readme.
Ensure the OpenSnitch daemon is configured and running.
go build -o fyne-opensnitch && ./fyne-opensnitch
And you should see a main window containting the OpenSnitch Network Statistics like the following:
and every time an action is required to add a new rule:
- Icon is from OpenSnitch
- OpenSnitch
- Fyne
- Statik for the static assets embedding
- GNOME Terminal for the terminal icon