web-dev-qa-db-ja.com

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

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

追加:virtualboxはポート80も使用しますか?ゲストOSのブラウザがサイトにアクセスしたとき..それを宣言する方法は? -通常のユーザーを設定すると、穴が多すぎます

8
LanceBaynes

これがiptablesコマンドで、特定のポートを介して特定のuidを許可します。

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

manページから

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

virtualboxまで..独自のカーネルを実行していると思います...したがって、ホストOSでvirtualboxの--uid-ownerを使用することをお勧めしますが、仮想マシンで--uid-owner所有者ルールを設定する同じように。

--gid-ownerも存在し、グループbrowsersgidを作成してブラウザアプリを有効なグループbrowserで実行し、そのグループで閲覧したいユーザーのみを配置することもできます。 ...これは完璧な解決策ではありません...しかし、ほとんどのユーザーはそのグループとして他のアプリを実行しようとはしません。したがって、一般的に、そのアプリケーションへの送信を制限します。私はこれを試したことがないので、私が説明したように機能することは100%ではありません。

8
xenoterracide