Jak zablokować dostęp do Internetu dla aplikacji

8

Chciałbym znaleźć sposób na uruchomienie aplikacji, która uniemożliwiłaby jej dostęp do Internetu, być może bez zainstalowania konkretnego programu. Większość odpowiedzi Znalazłem dotyczy TYM poście, więc próbowałem to rozwiązanie. Krótko mówiąc, stworzyłem grupę bez internetu (z powiązanym poleceniem ni ) i uruchamiam aplikację za pomocą tej grupy. Ale to nie działa całkowicie, prawdopodobnie dlatego, że post pochodzi z 2009 roku i coś w iptables zostało zmienione (używam Ubuntu 14.04). Na przykład, jeśli uruchomię ni "ping google.com"dane wyjściowe ping: sendmsg: Operation not permitted, to rozwiązanie działa świetnie. Ale w przypadku innych programów, takich jak Firefox lub wget (np. ni firefox), Połączenie internetowe nadal działa. Jak mogę rozwiązać?

ᴜsᴇʀ
źródło

Odpowiedzi:

3

Możesz użyć, apparmoraby odmówić ruchu sieciowego dla niektórych aplikacji. Najpierw musisz zainstalować apparmori apparmor-utils..

sudo apt-get install apparmor*

Następnie możesz wygenerować profil do swojej aplikacji ...

sudo aa-genprof /usr/bin/google-chrome

Następnym krokiem jest zmiana Networkingczęści profilu na:

sudo nano /etc/apparmor.d/usr.bin.chromium-browser

audit deny network,
audit deny network inet stream,
deny network inet6 stream,
deny @{PROC}/[0-9]*/net/if_inet6 r,
deny @{PROC}/[0-9]*/net/ipv6_route r,
deny capability net_raw,

Następnie sprawdź config za pomocą apparmor_parser i załaduj ponownie config

sudo apparmor_parser -r /etc/apparmor.d/usr.bin.chromium-browser

Zmień tryb z complainna enforceaka włączony apparmordla tej aplikacji.

sudo aa-complain /etc/apparmor.d/usr.bin.chromium-browser

Więcej instrukcji można znaleźć tutaj i tutaj i tutaj

2707974
źródło
To nie działa. Zauważ, że dodałem linie w pliku /etc/apparmor.d/usr.bin.APPNAMEpo linii /usr/bin/APPNAME r,i nie wiem, czy to prawda.
ᴇʀsᴇʀ