iptables/pfルールはXYアプリケーション/ユーザーのみを許可しますか?

iptables/pfルールはXYアプリケーション/ユーザーのみを許可しますか?

たとえば、アウトバウンドTCPポート80、eth0でXYアプリケーションのみを許可するiptables / pfソリューションはないと思います。したがって、ユーザーIDが「500」の場合、ポート80 / outbound / tcp / eth0に記載されている他のトラフィックをどのようにブロックしますか? (例:privoxyのみeth0でポート80を使用します。)

追加:virtualboxもポート80を使用しますか?ゲストOSのブラウザがサイトにアクセスするとき..どのように宣言しますか? - 一般ユーザー設定には抜け穴が多すぎます。

答え1

iptables特定のポートを通過できるようにするuidコマンドです。

iptables -A OUTPUT -p tcp -m tcp --dport 80 -m owner --uid-owner username -j ACCEPT 

マニュアルページから

[!] --uid-owner userid[-userid] パケットソケットのファイル構造(存在する場合)が指定されたユーザの所有かどうかと一致します。数値 UID または UID の範囲を指定することもできます。

virtualboxの場合は..独自のカーネルを実行すると思います...したがって、--uid-ownerホストOSでvirtualboxを使用したいかもしれませんが、--uid-ownerVMの所有者ルールもあるかもしれません。

それが存在することを知っておくと--gid-owner便利です。有効なグループで実行するようにグループとbrowserブラウザアプリケーションを作成し、検索したいユーザーだけがそのグループに入れることができます... ...これが勝利しました。完璧な解決策ではありませんが、ほとんどのユーザーはそのグループで別のアプリケーションを実行しようとしないため、そのアプリケーションへのアウトバウンドを制限するのが一般的だと思います。まだこの方法を試していないため、説明どおりに機能すると100%確信できません。sgidbrowser

関連情報