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

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

実際には2つのアプリケーションシナリオがあります。

  1. マルチシートデスクトップ:インターネットゲートウェイを介した2つのネットワーク接続、帯域幅集約的なタスクを実行するためのそれぞれ2つのアカウント。 1つのアカウントはeth0のみを使用し、2番目のアカウントはeth1のみを使用するように分割したいと思います。

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

2つ目はそのインターフェイスを介して電子メールトラフィックをルーティングするIPTabled(方法はわかりません)ですが、最初のものはすべての種類のトラフィックを処理するため、ユーザーベースでなければなりません。ユーザーベースのソリューションがある場合は、両方の場所に適用できます。

答え1

物理マシンに 2 つの仮想マシンを設定し、ある仮想マシンが eth0 を使用し、別の仮想マシンが eth1 を使用するようにネットワーク インターフェイス ブリッジングを設定できます。よりブリッジされたネットワークの Virtual Box ドキュメントセクション

答え2

iptablesを使いたいでしょう所有者モジュール、そしておそらく賢いパケット修正があるかもしれません。

所有者このモジュールは、ローカルで生成されたパケットをパケットコンストラクタのさまざまな特性と一致させようとします。これはOUTPUTチェーン内でのみ機能し、一部のパケット(ICMP ping応答など)には所有者がいないため、一致しない可能性があります。

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

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

--pid-owner processid 指定されたプロセス ID を持つプロセスによってパケットが生成されたかどうかを照合します。

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

答え3

最初のポイントは、これが可能かどうかはわかりません。ユーザーのユーザーIDに基づいていくつかのルーティングを実行しようとしています。最後に確認したとき、そのような可能性は見られませんでした。

2番目の点では、iptablesではなくiproute2(http://lartc.org/howto/とhttp://www.policyrouting.org/iproute2.doc.html完全な文書化のため)。廃止と見なされる ifconfig/route コマンドをオーバーライドします。 iproute2を使用すると、パケットの送信元に基づいてパケットをルーティングできます。それはあなたが望むものです

関連情報