Tak si to klikátko napiště, dám vám pár rad...
Vytvořte novou cgroup třeba unknownapp, ve které se bude defaultně spouštět všechno, co nepasuje na předchozí pravidla. Monitorujte /sys/fs/cgroup/net_cls/unknownapp/tasks , při změně souboru projděte PIDy, založte novou cgroup s nějakým náhodným identifikátorem, popřesouvejte do něj všechny PIDy dané aplikace (podle parent) a vytvořte iptables pravidla (budou potřeba nový iptables, který mají match na cgroup - 1.6.1 to umí) a zapište novou aplikaci do /etc/cgrules.conf.
Ty pravidla třeba něco jako
iptables -t mangle -A OUTPUT -m cgroup --cgroup $dalsi_cislo -j MARK --set-mark $dalsi_cislo
iptables -N $dalsi_cislo-APPFW
iptables -A OUTPUT -m mark --mark $dalsi_cislo -j $dalsi_cislo-APPFW
iptables -A $dalsi_cislo-APPFW -j LOG --log-prefix "APPFW - $dalsi_cislo - "
iptables -A $dalsi_cislo-APPFW -j DROP
Defaultně udělejte LOG a DROP a podle prefixu si to logujte do zvláštního souboru. Tento soubor opět monitorujte a pokud se objeví nový záznam, tak si zavolejte GUI klikátko. Tohle všechno se dá zvládnout i s bashem a pár nástroji.
Přichází na řadu GUI část - daemon zavolá GUI klikátko, které vám řekne, který program se pokouší kam lézt - zatrhnete povolit, zakázat, cokoliv a GUIovátko asi ideálně vrátí hodnotu daemonovi, kterej se podle toho zařídí a vytvoří/upraví dané pravidlo.
K tomu si vymyslete nějakou jednoduchou konfiguraci, kterou si bude daemon ukládat a při startu načítat, na prvním místě se načtou defaultně povolené komunikace, po té konfigurace aplikací a je vymalováno. Možná bych se ještě zamyslel nad whitelistem systémových nástrojů, které se budou spouštět v jedné společné cgroupě, aby neměla každá kravina svou vlastní.
Nezapomeňte na IPv6.
A máte pěkný linuxový projekt, základ je hotovej za pár hodin, a pak můžete ladit blbinky až do zblbnutí.