質問: ユーザー(およびそのアプリ)を1つのネットワークインターフェイスに制限できますか? これを適用するための2つのシナリオが実際にあります。 マルチシートデスクトップ:インターネットゲートウェイを備えた2つのネットワーク接続と、それぞれで帯域幅を大量に消費するタスクを実行する2つのアカウント。 1つのアカウントがeth0のみを使用し、2番目のアカウントがeth1のみを使用するように、それらを分割したいと思います。 サーバー:サーバーに2つのipがあり、メールユーザーが2番目のip(eth0:1エイリアス)からのみメールを送信するようにしたい 2番目はおそらくiptabled(方法がわかりません)でそのインターフェイスを介して電子メールトラフィックをルーティングできますが、1番目はあらゆる種類のトラフィックを処理するため、ユーザーベースである必要があります。ユーザーベースのソリューションがあれば、両方の場所に適用できます。
回答: iptables ownerモジュールと、おそらくいくつかの巧妙なパケットマングリングを使用することをお勧めします。 所有者このモジュールは、ローカルで生成されたパケットについて、パケット作成者のさまざまな特性を照合しようとします。これはoutputチェーンでのみ有効であり、それでも一部のパケット(icmp ping応答など)には所有者がいないため、一致しない場合があります。 --uid-owner userid指定された有効な(数値の)ユーザーidを持つプロセスによってパケットが作成された場合に一致します。 --gid-owner groupid指定された有効な(数値の)グループidを持つプロセスによってパケットが作成された場合に一致します。 --pid-ownerprocessidパケットが指定されたプロセスidのプロセスによって作成されたかどうかに一致します。 --sid-ownersessionidパケットが指定されたセッショングループのプロセスによって作成された場合に一致します。