web-dev-qa-db-ja.com

カーネルIP転送とは何ですか?

Linuxで多くのネットワークセキュリティ/スニッフィングツールを使用しながら、このコマンドを使用してIP転送を有効にする多くのブログで見ました

echo 1 > /proc/sys/net/ipv4/ip_forward

誰でも簡単に私に説明できますか?このコマンドは本質的に何をしますか?それはあなたのシステムをルーターに変えますか?

76
Madhur Ahuja

「IP転送」は「ルーティング」の同義語です。これはLinuxカーネルの機能であるため、「カーネルIP転送」と呼ばれます。

ルーターには複数のネットワークインターフェイスがあります。トラフィックが別のネットワークインターフェイスのサブネットと一致する1つのインターフェイスに着信した場合、ルーターはそのトラフィックを他のネットワークインターフェイスに転送します。

したがって、2つのNICがあり、一方(NIC 1)がアドレス192.168.2.1/24にあり、もう一方(NIC 2)が192.168.3.1/24であるとします。転送が有効で、パケットがNIC 1に着信し、「宛先アドレス」が192.168.3.8の場合、ルーターはNIC 2からパケットを再送信します。

インターネットへのゲートウェイとして機能するルーターがデフォルトルートを持っていることは一般的です。これにより、どのNICにも一致しないトラフィックはデフォルトルートのNICを通過します。したがって、上記の例では、NIC 2にインターネット接続がある場合、NIC 2をデフォルトルートとして設定し、NIC 1が192.168.2.0/24で宛先が指定されていない場合はNICを通過します。NIC 2を通過して、さらにルーティングできる他のルーターがある場合(インターネットの場合、ネクストホップはISPのルーター、次にプロバイダーの上流ルーターなどになります。)

ip_forwardを有効にすると、これをLinuxシステムに指示します。意味のあるものにするためには、2つのネットワークインターフェイス(2つ以上の有線NICカード、Wifiカードまたはチップセット、56kモデムまたはシリアル上のPPPリンクなど)が必要です。 。

ルーティングを行う場合、セキュリティは重要であり、Linuxのパケットフィルターiptablesが関与します。したがって、ニーズに合ったiptables構成が必要になります。

iptablesを無効にして、またはファイアウォールやセキュリティを考慮せずに転送を有効にすると、NICの1つがインターネットまたは制御できないサブネットに面している場合、脆弱性にさらされる可能性があります。

89
LawrenceC

「IP転送」を有効にすると、Linuxマシンは着信パケットを受信して​​転送できます。通常のホストとして機能するLinuxマシンは、それ自体の目的(つまり、ユーザーの目的)のためにIPトラフィックを生成および受信するだけなので、IP転送を有効にする必要はありません。

ただし、IP転送が役立つ場合もあります。1.マシンをルーターとして機能させ、他のホストからパケットを受信して​​宛先にルーティングします。 2.私たちは悪者なので、いわゆる " man-in-the-middle-attack "で別のマシンになりすまします。この場合、被害者に向けられたすべてのトラフィックを傍受して確認しますが、このトラフィックを被害者に転送して、被害者が私たちの存在を「感知」しないようにします。

4
Andrea Araldo