ユーザー(およびそのアプリ)を1つのネットワークインターフェイスに制限できますか?


15

実際に、これを適用する2つのシナリオがあります。

  1. マルチシートデスクトップ:インターネットゲートウェイと、それぞれで帯域幅を集中的に使用する2つのアカウントの両方を持つ2つのネットワーク接続。それらを分割して、1つのアカウントがeth0のみを使用し、2番目のアカウントがeth1のみを使用するようにします。

  2. サーバー:サーバー上に2つのIPがあり、メールユーザーが2番目のIP(eth0:1エイリアス)からのみメールを送信するようにしたい

2番目はおそらくIPTabled(方法がわからない)で、そのインターフェイスを介して電子メールトラフィックをルーティングできますが、1番目はあらゆる種類のトラフィックを処理するため、ユーザーベースである必要があります。ユーザーベースのソリューションがある場合、これを両方の場所に適用できます。

回答:


6

iptables 所有者モジュールと、おそらく巧妙なパケットマングリングを使用する必要があります。

ownerこのモジュールは、ローカルで生成されたパケットについて、パケット作成者のさまざまな特性との一致を試みます。これはOUTPUTチェーンでのみ有効であり、その場合でも一部のパケット(ICMP ping応答など)には所有者がいないため、一致しません。

--uid-owner useridパケットが、指定された有効な(数値)ユーザーIDを持つプロセスによって作成された場合に一致します。

--gid-owner groupid指定された有効な(数値)グループIDを持つプロセスによってパケットが作成された場合に一致します。

--pid-owner processidパケットが、指定されたプロセスIDを持つプロセスによって作成された場合に一致します。

--sid-owner sessionidパケットが指定されたセッショングループのプロセスによって作成された場合に一致します。


iptablesを使用してマークを設定し、ルーティングテーブルで使用できます。MARKおよびCONNMARKターゲットを参照してください。iprouteので、そのその後のIPルールの追加fwmark X ... '私は驚かないだろう、実際には、iproute2のは一人で...これを行うことができれば
derobert

3
オーナーマッチングを使用して大規模な作業を行った人物であるため、これが常に望ましい結果をもたらすとは限りません。つまり、すべてのパケットに期待どおりの所有者がいるわけではありません。ICMPとESPは、発信元アプリケーションに関係なくカーネル(またはルート)が所有するタイプであり、によって照合されません-m owner。TCPとUDPではかなり信頼できますが、他のタイプはそれほど信頼できません。唯一、この100%を達成するための信頼性の高い方法は、VMのか、コンテナです。
バハマ


1

それが最初の点で可能かどうかはわかりません。ユーザーのユーザーIDに基づいていくつかのルーティング操作を行います。前回確認したとき、この可能性は見当たりませんでした。

2番目のポイントについては、使用するiptablesではなく、iproute2(完全なドキュメントについては、http: //lartc.org/howto/およびhttp://www.policyrouting.org/iproute2.doc.html)です。廃止されたと考えられるifconfig / routeコマンドの代わりになります。iproute2を使用すると、ソースに応じてパケットをルーティングできます。それはあなたが望むものです

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.