web-dev-qa-db-ja.com

プロセスまたはユーザーを特定のIPにバインドする(Linux)

サーバーに3人の非rootユーザーがいて、それぞれに異なるIPアドレスを割り当てたいと思います(1つのネットワークインターフェイスに複数のIPがあります)。たとえば、user1には192.168.1.2、user2-192.168.1.3などがあります。または、それが不可能な場合、特定のプロセスを特定のIPアドレスにバインドするにはどうすればよいですか(iptablesで実行できることをお勧めしますが、どうすればよいですか?)。ありがとう。

7
int_32
iptables -t nat -A POSTROUTING -m owner --uid-owner user1 -j SNAT --to-source 192.168.1.2
iptables -t nat -A POSTROUTING -m owner --uid-owner user2 -j SNAT --to-source 192.168.1.3
iptables -t nat -A POSTROUTING -m owner --uid-owner user3 -j SNAT --to-source 192.168.1.4

(a)POSTROUTING natチェーンを使用していないこと、これらのルールが他のルールと競合しないこと、および(b)これらすべてのIPアドレスがNIC(それ以外の場合は多くの返信は聞こえません)。

これは、これらのユーザーが所有するプロセスからローカルに発信されたトラフィックにも影響します。これらのユーザーがネットワークリスニングデーモンを設定している場合、応答を処理するために別のアプローチが必要になります。サーバーがルーターとして機能している場合、これは機能しません。しかし、あなたはこれらの状況のどちらも当てはまるとは言わなかったので、私は問題に取り組んでいません。

11
MadHatter