web-dev-qa-db-ja.com

apparmorカスタムプロファイルを使用してアプリのインターネットをブロックするにはどうすればよいですか?

アプリは無料ですが、購入または更新を常に要求するため、アプリのインターネットアクセスをブロックしようとしています。そのアプリのapparmorプロファイルを作成して強制しましたが、強制した後、アプリが起動しません。

これは/etc/apparmor.d/opt.sublime_text.sublime_textのプロファイルです:

/opt/sublime_text/sublime_text {

        deny network inet,
        deny network inet6,
        deny network raw,  #include <abstractions/base>

        /opt/sublime_text/sublime_text mr,
        /opt/sublime-text/ rw,
        /home/shady/.config/sublime-text-3/ rw,
}

このアプリに必要なディレクトリを含めました。私は何を間違えていますか?

2

このタイプのアプリを起動するにはさらに多くが必要です。プロフィールに何かが欠けている場合、プロフィールにアクセスできません。 Sublimetextは次のようなものにアクセスできる必要があります。

  • Xサーバー
  • システムフォント
  • Xauthorityファイル
  • dconf
  • グリブ
  • など...

独自のプロファイルを作成する最良かつ最も簡単な方法は、apparmor-utilsをインストールすることです

Sudo apt-get install apparmor-utils

次に、プロファイル生成ツールを使用してプロファイルを作成します。

Sudo aa-genprof /opt/sublime_text/sublime_text  

この時点で、/etc/apparmor.d/にsublimetextプロファイルを作成し、プログラムアクションをリッスンしています。このプロファイルはcomplainモードであり、/var/log/syslogにログを記録しています。ここで、sublimetextを起動し、ファイルを開いたり保存したりするなどのアクションを実行する必要があります。これらのすべてのアクションは、aa-genprofがルールを作成するために使用するログファイルに保存されます。アクティビティが完了したら、sキーを押して、リソースに対するaccessまたはdenyに関する質問に答えます。完了したら、fキーを使用して、新しく作成したプロファイルを保存し、enforceモードに切り替えます。


ただし、このツールが完全に機能していないのは非常に簡単です。すべてが含まれるわけではないため、Xへのアクセスなどの手動で追加する必要があります
_/etc/apparmor.d/opt.sublime_text.sublime_text

include <abstractions/X>  

変更が行われた場合、設定ファイルをリロードする必要があります。

Sudo apparmor_parser r /etc/apparmor.d/opt.sublime_text.sublime_text      
2
EdiD