Представлен проект OpenSnitch, в рамках которого подготовлен свободный аналог проприетарного сетевого экрана Little Snitch.
Программа представляет собой интерактивную оболочку для подсистемы Netfilter ядра Linux, и обладает следующими возможностями:
- Отслеживание сетевой активности приложений и различных процессов в режиме реального времени;
- Вывод экранных уведомлений с подробной информацией о приложении, начавшем сетевую активность (имя процесса и его идентификатор, локальный IP адрес, IP адрес назначения, порт);
- Гибкий механизм создания правил: блокировка или разрешение выхода в сеть всему приложению или одному конкретному процессу, учёт пользователей, хостов и портов; разрешения в рамках текущей сессии либо на постоянной основе;
- Ведение подробной статистики блокировок и сетевой активности приложений.
Программа состоит из двух частей: системного демона, написанного на языке Go и работающего с правами root - opensnitchd, взаимодествующего с подсистемой Netfilter через libnetfilter-queue, вносящего изменения в правила Iptables и контролирующего сетевой трафик через libcap; графического интерфейса, построенного с использованием PyQt5 и работающего в непривелегированном режиме. Правила блокировок хранятся в формате JSON, взаимодействие графического интерфейса и системного демона осуществляется по протоколу gRPC.
>>> Подробности