LinuxのMACフレームワーク(SELinuxまたはAppArmor)を使用して、信頼できないプロセスをサンドボックス化しようとしています。
SELinuxとAppArmorの両方が、サンドボックス化されているプログラムへのソケットレベルアクセスの選択された許可を許可することがわかります。ただし、ネットワークアクティビティをIPアドレスのセットや特定の種類のトラフィック(TCP/UDPなど)のみに制限するなど、よりきめ細かい制御を実行することはできますか?
免責事項:私はSELinuxやAppArmorの専門家とはほど遠いので、私が言うことすべてを自分で確認する必要があります。
SELinuxとIPTablesを連携させる方法はあると思います。 SELinuxは、パケットに適用されるSELinuxコンテキスト/起源/プロバンスを示すタグでパケットにラベルを付けることができます。次に、このタグを検査するIPTablesルールを記述して、このタグの値に応じて異なるファイアウォールポリシーを適用できます。これは、たとえば、特定のアプリケーションが特定のポート番号またはプロトコルとしか通信できないようにするなど、きめ細かい制御を実行するための1つの潜在的な方法のようです。参考資料: SELinuxとIPTablesが互いに対話する 、 これに関する記事 および LWNに関する対応する議論 、および 背景secmark、パケットマーキングサブシステム 。
AppArmorの場合、私が知る限り、これは現在サポートされていません。この機能をリクエストする バグトラッカーエントリ があります。
Systraceは、この種のより細かい制御を組み込みでサポートしていると思います。