GNU/Linux >> Linux の 問題 >  >> Linux

Linux –ネットワークインターフェイスバインディングはルートとしてのみ機能するように見えますか?

2つのネットワークインターフェイスを備えたCentOS7サーバーがあります。 1つはLAN(ens32)を指し、もう1つはDMZ(ens33)を指します。

LANインターフェイスは正常に機能しますが、トラフィックはrootとしてログインした場合にのみDMZインターフェイスを通過するように見えます。これが何を意味するのか、または発生している他の問題に正味の影響があるのか​​どうかはわかりません。 。

たとえば、次のように実行します:

curl --interface ens32 ipecho.net/plain

root以外のユーザーとして、そのインターフェースのパブリックIPを取得します。

実行した場合:

curl --interface ens33 ipecho.net/plain

root以外のユーザーとして、コマンドが停止しているように見え、プロセスを強制終了します。

前のコマンドをrootとして実行すると、そのインターフェースのパブリックIPである期待される出力が得られます。

誰かがここで何が起こっているのか説明できますか?

承認された回答:

公式のcurlで見ることができるように ページ、特定のインターフェースを指定/バインドするには、CAP_NET_RAWを使用するか、rootとして実行する必要があります。 。

したがって、root バインディング/ルーティングを実行でき、通常のユーザーでは機能しません。

通常のユーザーがcurlを使用している場合 、--interfaceの使用が許可されていない場合 オプションの場合、サーバーのデフォルトのルーティングルールが代わりにその操作に適用されます。

curlの公式ページcurl.1のマニュアルページから:

–interface

指定されたインターフェースを使用して操作を実行します。
インターフェース名、IPアドレス、またはホスト名を入力できます。例は次のようになります:

curl –interface eth0:1 https://www.example.com/

このオプションを複数回使用すると、最後のオプションが使用されます。

LinuxではVRFを指定するために使用できますが、バイナリは
CAP_NET_RAWを持っているか、rootとして実行する必要があります。


Linux VRFの詳細:https://www.kernel.org/doc/Documentation/networking/vrf.txt


Linux
  1. ネットワーク インターフェイス HA の Linux Etherchannel ボンディングをセットアップする方法

  2. proc のみを使用してローカル ネットワーク インターフェイス アドレスを取得しますか?

  3. Linuxはルートパーティションのみを検索/検索しますか?

  1. root であっても Linux でファイルを読み取り専用にする

  2. Linux ネットワーク インターフェイス名に文字を使用できますか?

  3. Linux で優先ネットワーク インターフェイスを設定する方法

  1. RHEL7LinuxでネットワークインターフェイスをDHCPクライアントとして構成する

  2. Linux Setuidが機能しませんか?

  3. Linux –Setuidが機能しないのはなぜですか??