Commit graph

425 commits

Author SHA1 Message Date
Gustavo Iñiguez Goia
d8ad8de6ef Lookup inode and uid via netlink
It has some advantages over parsing /proc, like performance and
reliability.
2019-12-01 20:10:49 +01:00
Gustavo Iñiguez Goia
4a30cc5b84 Reduced the pid cache sizes
It's somewhat arbitrary. It'll depend on each use case.
2019-12-01 20:05:20 +01:00
Gustavo Iñiguez Goia
39a3820ea7 Limit the number of connections on the main tab.
With ~500k logged connections the app becomes unresponsive.
This way it minimizes a bit the high usage impact, but
definitely there's a limitation on this side, how many
events are we going to log?

It needs to be tested, but the same should be applied for the rest of
the tabs, and provide a search field and < > operands to navigate
records.
2019-11-24 01:12:35 +01:00
Gustavo Iñiguez Goia
3e0b239d8f Display the app window when there's no system tray available
Like in some gnome-shell setups.
2019-11-23 23:56:15 +01:00
Gustavo Iñiguez Goia
911593e55a Prefer domains over IPs as default option to block/allow 2019-11-22 21:32:10 +01:00
Gustavo Iñiguez Goia
b2cc0eb164 Reset advanced rules check properly
In the future the state could be saved to the settings.
2019-11-21 22:12:28 +01:00
Gustavo Iñiguez Goia
891a3a4211 Fixed typo in tipPortsLabel 2019-11-20 18:51:49 +01:00
Gustavo Iñiguez Goia
cc27be2bae Added initial support for advanced rules (lists)
Probably not the best UI, just the one I came up with.
2019-11-20 10:27:28 +01:00
Gustavo Iñiguez Goia
925e2fe045 Removed unused import 2019-11-18 20:38:17 +01:00
Gustavo Iñiguez Goia
918433a1dd Improved performance and details view
- Added a label to let the user know that an item in a column can be
clicked to view details about that item (process, host, user, ...).
- Improved performance by only adding the new items, or items that has
changed, instead of all the stats.
- Search General statistics by any column.
2019-11-17 00:57:08 +01:00
Gustavo Iñiguez Goia
d38505650c added database file 2019-11-13 01:31:07 +01:00
Gustavo Iñiguez Goia
166cf49f4c improved UI
General tab:
 - Allow to filter by action(deny/allow) + column.

Details tabs:
 - Double clicking on a column displays detailed stats for that item.
 - Sort by column and order (asc/desc).

Added Rules tab
2019-11-13 01:24:55 +01:00
Gustavo Iñiguez Goia
912f85f5d1 Added more timeout options (30s, 5m, 15m, 30m, 1h)
Added 30s, 5m, 15m, 30m and 1h timeout options to deny or allow
connections.

It helps to avoid repetitive new connection dialogs, while at the same
time it allows you to deny/allow a connection for a short period of time,
and apply the default for the rest.
2019-11-09 01:35:13 +01:00
Gustavo Iñiguez Goia
93592b6b00 Allow to see which domain a process is trying to resolve
Ideally this information should go in a different Connection field, but
for now lets use DstHost.
2019-11-08 01:38:26 +01:00
Gustavo Iñiguez Goia
21c716492a Display username on the allow/deny dialog 2019-11-05 00:40:07 +01:00
Gustavo Iñiguez Goia
58cd5e9fc9 Added icons to allow and deny actions 2019-11-02 12:06:58 +01:00
Gustavo Iñiguez Goia
7eec749498 allow to configure unknown conns interception
/etc/opensnitchd/default-config.json can now contain
"intercept_unknown": true|false
2019-11-01 01:00:10 +01:00
Gustavo Iñiguez Goia
0773f8c01e
Merge pull request #1 from Ph0rkoz/master
Master
2019-10-31 13:36:40 +01:00
Phorkoz
e04353a869
grpcio-tools==1.10.1 pulls in grpcio of the correct version, stops the error on make install
grpcio-tools==1.10.1 pulls in grpcio of the correct version, stops the error on make install
2019-10-30 20:12:09 -05:00
Phorkoz
e7b853f7a2
Make upgrading the UI possible on code changes.
UI
2019-10-30 20:11:26 -05:00
Gustavo Iñiguez Goia
845e6a704f Intercept and parse UDPLite connections
/proc/net/udplite[6]
2019-10-29 20:01:45 +01:00
Gustavo Iñiguez Goia
a0eacfb8b8 Allow to intercept localhost and multicast connections 2019-10-29 19:53:07 +01:00
Gustavo Iñiguez Goia
65c3790106 Prompt the user to allow/deny all outgoing connections
With the current implementation, it's not possible to know what
process/pid has created an outgoing connection, but there's still
valuable information that the user may want to know, so:

- display outgoing connections even if the process name/path is unknown.
 (src ip, dst ip, dst port, uid)
- get outgoing connection uid if kernel > 3.6.
2019-10-25 00:55:32 +02:00
Gustavo Iñiguez Goia
9cc3da6446 experimental cache of inodes and pids
Just an experimental cache of inodes and pids, which lowers the CPU
usage and improves user's experience.
2019-10-24 01:01:20 +02:00
Gustavo Iñiguez Goia
dea50635d5 Merge branch 'fix_process_finding' into main 2019-10-21 19:48:17 +02:00
Gustavo Iñiguez Goia
59a11a530c Workaroung process name lookup 2019-10-21 19:45:35 +02:00
Gustavo Iñiguez Goia
5690d37d52 Merge branch 'clean_fw_rules_before_start' into main 2019-10-21 19:25:42 +02:00
Gustavo Iñiguez Goia
8922d445af Clean firewall rules before start
If opensnitchd dies unexpectedly, firewall rules are not cleaned up.
2019-10-21 19:23:29 +02:00
Gustavo Iñiguez Goia
cf01281911 Merge branch 'fix_prompt_dialog_countdown' into main 2019-10-21 00:52:06 +02:00
Gustavo Iñiguez Goia
44c2b6b90b Fixed prompt dialog countdown 2019-10-21 00:47:00 +02:00
Gustavo Iñiguez Goia
ad70655698 removed useless trace log 2019-10-21 00:40:26 +02:00
Gustavo Iñiguez Goia
935260abbc Merge branch 'fix_ui_high_cpu_usage' into main 2019-10-21 00:09:31 +02:00
Gustavo Iñiguez Goia
fb3b32d8c7 Merge branch 'fix_prompt_dialog_IPs_regex' into main 2019-10-21 00:06:01 +02:00
Gustavo Iñiguez Goia
ce71c383a9 fixed missing funcs declarations and non used var 2019-10-21 00:04:15 +02:00
Gustavo Iñiguez Goia
dedd009204 Merge branch 'daemon_default_config' into main 2019-10-21 00:02:25 +02:00
Gustavo Iñiguez Goia
067d0d8eed Merge branch 'fixed_unwanted_rules_reloading' of github.com:gustavo-iniguez-goya/opensnitch into main 2019-10-20 23:46:04 +02:00
Gustavo Iñiguez Goia
2c3339c728 Merge branch 'fix_grpc_sockets_leaks' into main 2019-10-20 23:25:21 +02:00
Gustavo Iñiguez Goia
1778a5502a Merge branch 'fix_race_read_write_stats' into main 2019-10-20 22:28:45 +02:00
Gustavo Iñiguez Goia
a7e9b5072f project import paths changed 2019-10-20 21:51:35 +02:00
Gustavo Iñiguez Goia
843924fff4 Fixed unwanted rules reloading after adding a new one
fixes #271
2019-08-13 19:19:17 +02:00
Gustavo Iñiguez Goia
3bc83efd10 apply default action to connections that can not be parsed
If a connection can not be parsed for some reason, apply the default
action configured.
2019-07-31 01:44:41 +02:00
Gustavo Iñiguez Goia
152eafd743 Fixed prompt dialog IPs regex pattern order
Previously a regex pattern like this was shown: *.*.1.1
Now this regex pattern is displayed: 1.1.*.*
2019-07-05 00:29:28 +02:00
Gustavo Iñiguez Goia
eeed991f8d Allow to configure daemon's default action rule
If the file /etc/opensnitchd/default-config.json exists,
read it and apply the options to the default rule when there's no client
connected.

If it doesn't exist, just apply the default rule, allow connections
once.

Config example: {"default_action": "deny", "default_duration": "once"}
2019-07-02 23:41:41 +02:00
Gustavo Iñiguez Goia
e356c84baa Fix grpc sockets leaking when connecting to a UI
Failured connections to a UI were not being closed, so we ended up
with > 1024 opened sockets, which caused the error Too many files open.
2019-06-29 13:55:44 +02:00
Gustavo Iñiguez Goia
57d1198635 Fixed race when reading and collecting stats
When reading stats, a race can occur when sending them to remote UI via
Ping()s if at the same time more stats are being collected(written).
2019-06-29 13:46:26 +02:00
Gustavo Iñiguez Goia
4617cd5e90 update stats only when the window is visible and when needed
- Update the statistics only when the window is open and visible.
- Update only the relevant statistic tab shown to the user.
- Update only the row which has changed, instead of clearing up all
the table (except for the general tab).
- Update the status labels only when the connection with the daemon
changes.
- Allow to sort the hits column by order.
2019-06-23 17:05:42 +02:00
Gustavo Iñiguez Goia
881812deae Use QTableView instead of QTableWidget to render data
This change drops down the cpu usage from 100% to 2-5%.
2019-06-16 23:26:21 +02:00
evilsocket
aa05ceb60b
Merge pull request #261 from ofrancois/master
README.md: add missing steps for TL;DR
2019-06-12 17:53:13 +02:00
ofrancois
5346327eff README.md: add missing steps for TL;DR 2019-06-10 14:05:42 +02:00
evilsocket
55e32209e7
Merge pull request #254 from p-/issue-252
UI: improve regex for domain matching
2019-06-04 11:55:59 +02:00