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