web-dev-qa-db-ja.com

OpenVPNtunでのIPスプーフィングの防止

IPスプーフィングと認証について質問があります。同じVPNネットワーク内に信頼できないクライアントが多数あるTUNモードのOpenVPNサーバーがあり、あるクライアントがVPN IPアドレスをスプーフィングして、別のクライアントのようにサーバーに表示できるかどうか疑問に思っていました。それを防ぐ方法はありますか?

1)静的IPアドレスをクライアントに割り当ててから2)マッピングIPアドレスを保存する-各クライアントのTLS証明書を保存してから3)サーバーへの各着信パケット、送信元IPアドレス、およびそのパケットを送信したTLS接続のフィンガープリント(または共通名)とそれらが一致するかどうかを確認します。

それは可能ですか?もしそうなら、どのように?

Tls-verifyを使用すると、たとえばクライアントがOpenVPNサーバーに接続するときに、証明書Aのクライアントが10.8.0.4に属していることを確認できますが、送信元IPアドレスが10.8.0.4のすべてのパケットが属していることは確かです。証明書Aでクライアントに?基本的には、IPアドレスに基づいてクライアントを識別したいと思います。これを確認するためのスクリプトはありますか?

ご清聴ありがとうございました。私は十分に明確になっていると思います。

1
poli mi

クライアントごとにIPを指定する場合:キーを特定のIP番号に関連付けるための特定の手順「clientconfigdir」があります。 openvpnconfigディレクトリのサブディレクトリ "ccd"を作成する場合は、キー/ IPマッピングファイルがそこにあることを指定できます。 openvpn.conf(またはWindowsの.ovpn)で:

client-config-dir ccd
ccd-exclusive

「someclient」という名前のキーを持つクライアントがある場合は、次の内容のファイルccd/someclientを作成できます。

ifconfig-Push 192.168.11.57 192.168.11.58

...これにより、クライアントは192.168.11.57と192.168.11.58の間のトンネルを使用するように強制されます(.57はクライアントのIPです)。有効な開始/終了ポイントマッピングを使用して、クライアントごとに新しいファイルを作成します(有効なIPペアについてはopenvpnドキュメントを参照してください)。

この設定では、クライアントが有効なキーを持っていても、CCDファイルがない限りクライアントは受け入れられません。また、各クライアントには明示的なIPが割り当てられます。クライアントをロックアウトするには、適切なCCDファイルを削除するだけです。

クライアントが送信者IPを何らかの形でスプーフィングできるかどうかはテストしていませんが、接続のトンネルの性質のために注意が必要だと思います(サーバー側のエンドポイントは一致しません)。ただし、これは単なる仮定です。

1
Joel Palmius