web-dev-qa-db-ja.com

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

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

  1. マルチシートデスクトップ:インターネットゲートウェイを備えた2つのネットワーク接続と、それぞれで帯域幅を大量に消費するタスクを実行する2つのアカウント。 1つのアカウントがeth0のみを使用し、2番目のアカウントがeth1のみを使用するように、それらを分割したいと思います。

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

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

15
Oli

Iptables ownerモジュールと、おそらくいくつかの巧妙なパケットマングリングを使用することをお勧めします。

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

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

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

--pid-ownerprocessidパケットが指定されたプロセスIDのプロセスによって作成されたかどうかに一致します。

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

6
Li Lo

物理マシン上に2つの仮想マシンをセットアップし、一方のVMがeth0を使用し、もう一方のVMがeth1を使用するように、ネットワークインターフェイスブリッジングをセットアップできます。 ブリッジネットワークに関する仮想ボックスのドキュメントセクション を参照してください。

7
Wim Coenen

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

2番目のポイントとして、これは使用したいiptablesではなく、iproute2(http://lartc.org/howto/ and http://www.policyrouting.org/iproute2.doc.html for完全なドキュメント)。これは、廃止されたと見なされるifconfig/routeコマンドの代わりになります。 iproute2を使用すると、送信元に従ってパケットをルーティングできます。それはあなたが望むものです

1
Luc Stepniewski