web-dev-qa-db-ja.com

アプリケーションのインターネットアクセスをブロックする方法

おそらく特定のプログラムをインストールせずに、インターネットへのアクセスを防ぐアプリケーションを実行する方法を探します。私が見つけた答えのほとんどは THIS postを参照しているので、この解決策を試しました。要するに、no-internetグループ(関連するniコマンド)そして、このグループを使用してアプリケーションを起動します。しかし、これはおそらく投稿が2009年からのものであり、iptablesの何かが変更されたために完全に機能しません(Ubuntu 14.04を使用しています)。たとえば、ni "ping google.com"を実行すると、出力はping: sendmsg: Operation not permittedであるため、ソリューションはうまく機能します。しかし、Firefoxやwget(ni firefoxなど)などの他のプログラムでは、インターネット接続は引き続き機能します。どうすれば解決できますか?

8
ᴜsᴇʀ

apparmorを使用して、一部のアプリケーションのネットワークトラフィックを拒否できます。最初にapparmorおよびapparmor-utils ..をインストールする必要があります。

Sudo apt-get install apparmor*

その後、アプリケーションにプロファイルを生成できます...

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

次のステップは、プロファイルのNetworking部分を次のように変更することです。

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,

次に、apparmor_parserで構成を確認し、構成を再読み込みします

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

モードをcomplainからenforceに変更します。別名、このアプリのapparmorをオンにします。

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

より多くのマニュアルを見つけることができます here および here および here

3
2707974