OpenSnitch

Makes internet connections from all apps visible, allowing you to block or manage traffic on a per-app basis. GNU/Linux port of the Little Snitch application firewall.

Open Source

OpenSnitch Source Code

Author

evilsocket

Description

OpenSnitch is a GNU/Linux interactive application firewall inspired by Little Snitch.

#application-firewall#data-breach#firewall#linux#networking#security

Homepage

License

GPL-3.0

Created

16 Apr 17

Last Updated

16 Jun 26

Latest version

v1.8.0

Primary Language

Python

Size

20,542 KB

Stars

13,778

Forks

645

Watchers

13,778

Language Usage

Language Usage

Star History

Star History

Recent Commits

  • Gustavo Iñiguez Goia (15 Jun 26)

    ui: improved virustotal plugin - fixed error that sent multicast addresses to analyze. - new configuration options: - allow to configure the plugin log level. - allow to change icon if the outbound connection is malicious. - allow to change the popup default action. - use community score, reputation or suspicious option to compute total malicious score. - allow to define ips and domains exclusions.

  • Gustavo Iñiguez Goia (12 Jun 26)

    ui: improved rows selection Now row selection while pressing shift is not limited by the view (query) limit. Users now can select rows across paginated results. - fixed crash in some systems when paginating results (fillVisibleRows). - now key up/down while pressing shift select rows. - ensure that row numbers are refreshed when paginating results.

  • Gustavo Iñiguez Goia (09 Jun 26)

    ui,popups: improved checksum management When a binary checksum mismatch occurs and you click on the checksums warning: - fixed error when updating a rule's checksum. Regardless of the rule selected in the combobox, always the last one was updated. - the last updated rule is now displayed first in the rules combobox.

  • Gustavo Iñiguez Goia (08 Jun 26)

    ui: disable temporary expired rules on start In some cases, temporary rules were not being marked as disabled on the database, making it difficult to see which temporary rules were active or not (for example when the GUI was closed, a temporary rule expired in the daemon, and the GUI was launched again). Now when launching the GUI, we'll mark expired rules as not enabled, including 'until-restart' rules. When the daemon connects to the GUI, it'll send the list of active rules, and the database will be updated accordingly. This change will also reduce the number of rules displayed when a binary checksum mismatch occurs (pop-ups, checksums). Sometimes when the invalid checksum warning was displayed, we listed rules that were no longer active.

  • nvdx (17 Apr 26)

    daemon: rule lists operators caching + lists matching enhancements (#1567) * daemon-go: port layered list caching and matching strategies * daemon-go: use immutable rule/list snapshots and add load benchmarks * daemon-go: dropped gobwas, rule/list now use go filepath.Match for globbing

  • Gustavo Iñiguez Goia (14 Apr 26)

    pkg,rpm: updated ui pyqt6 dependency package In ff05d94f41617cd4d5b001dbd14fbc7d3fad65e7 python311-PyQt6 was added as dependency, to help users install some needed dependencies automatically on old versions of Tumbleweed. However on new versions, it also install this package, which is not the default python3 version. Besides, python3-qt6 exists as dependency on latest versions. So let's use again python3-qt6 for SuSe. If someone wants to install the GUI on older versions of Tumbleweed (~2024-2025), they'll need to install PyQt6 via pip. Closes: #1576

  • Gustavo Iñiguez Goia (13 Apr 26)

    updated ebpf workflow

  • Gustavo Iñiguez Goia (13 Apr 26)

    updated workflows - fixed watch path - updated ebpf modules build matrix.

  • Gustavo Iñiguez Goia (12 Apr 26)

    Merge pull request #1572 from marcpinolpique/fix/rule-name-action-mismatch Fix rule filename not updating when action changes

  • Gustavo Iñiguez Goia (12 Apr 26)

    Merge pull request #1565 from nvandamme/fix-preference-dialog-crash-due-to-missing-ACTION_DROP_IDX fix: preference dialog crash, missing ref to ACTION_DROP_IDX

  • Gustavo Iñiguez Goia (12 Apr 26)

    Merge pull request #1561 from nvandamme/list_subscriptions [Feature] Blocklist subscriptions plugin with auto scheduled downloads and management UI

  • Marc Pinol Piqué (28 Mar 26)

    Fix rule filename not updating when action changes When editing a rule and changing its action (e.g. deny → allow), the JSON content updates correctly but the rule name (used as filename) retains the old action prefix, causing a mismatch between the filename and the actual rule action. Update save_rule() to detect auto-generated rule names and replace the action prefix when the action has changed. Co-Authored-By: Claude Opus 4.6 (1M context) <[email protected]>

  • Nicolas Vandamme (13 Mar 26)

    QObject Thread safeguards for DB rules enumeration and matching against existing attached list subs

  • Nicolas Vandamme (13 Mar 26)

    complete refactoring of runtime + ui (MVC, qt signals, qt threads, rules management)

  • Nicolas Vandamme (11 Mar 26)

    fix: preference dialog crash, missing ref to ACTION_DROP_IDX

  • Nicolas Vandamme (11 Mar 26)

    fixes for url test blocking ui thread + url test message ui bug + default rule creation options + hide node to foce local node

  • nvdx (11 Mar 26)

    Merge branch 'master' into list_subscriptions

  • Gustavo Iñiguez Goia (11 Mar 26)

    Merge pull request #1564 from nvandamme/protbuf-gen-with-pyi-stubs build: enable Protocol Buffers support for python annotations stub gen

  • Nicolas Vandamme (11 Mar 26)

    update proto/MakeFile to support python annotations stub generation

  • Nicolas Vandamme (11 Mar 26)

    UI overhaul

  • Nicolas Vandamme (11 Mar 26)

    restore orginal proto bindings and remove annotation stub

  • Nicolas Vandamme (10 Mar 26)

    decoupling UI and runtime with signaling + rule signaling upon refresh

  • nvdx (10 Mar 26)

    Merge branch 'evilsocket:master' into list_subscriptions

  • Nicolas Vandamme (10 Mar 26)

    defaults to PyQt6

  • Gustavo Iñiguez Goia (09 Mar 26)

    ui: replace Deny word by Drop This change only replaces the word in the GUI. The daemon still uses internally "deny". Discussion: #1519

  • Gustavo Iñiguez Goia (09 Mar 26)

    ui,preferences: move checkbox to UI tab It could be moved to the Server or UI tab, but this option is not part of the Database. Introduced in this PR: #1560.

  • Gustavo Iñiguez Goia (09 Mar 26)

    ui,events: fixed modifying sys fw rules

  • Gustavo Iñiguez Goia (09 Mar 26)

    Merge pull request #1560 from zackslash/master persist firewall interception state across restarts

  • Nicolas Vandamme (09 Mar 26)

    migrate live mutable config object in ui to mutable dataclasses

  • Nicolas Vandamme (09 Mar 26)

    migrate to Qt ui files

OpenSnitch Security

4.8/10

Repo Security Summary

Updated 25 May 26

  • Maintained 10/10
  • Dangerous-Workflow 10/10
  • Code-Review 5/10
  • Packaging N/A
  • Token-Permissions 0/10
  • CII-Best-Practices 0/10
  • Binary-Artifacts 10/10
  • Pinned-Dependencies 2/10
  • Security-Policy 0/10
  • Fuzzing 0/10
  • License 10/10
  • Branch-Protection 0/10
  • Signed-Releases 8/10
  • SAST 0/10

OpenSnitch Reviews

More Firewalls

About the Data: OpenSnitch

API

You can access OpenSnitch's data programmatically via our API. Simply make a GET request to:

https://api.awesome-privacy.xyz/v1/services/opensnitch

The REST API is free, no-auth and CORS-enabled. To learn more, view the API Docs or read the API Usage Guide.

Share OpenSnitch

Help your friends compare Firewalls, and pick privacy-respecting software and services.
Share OpenSnitch and Awesome Privacy with your network!

View Firewalls (13)