ルーティング プロトコルの認証
BGP、IS-IS、OSPF、RIP、RSVP を含む多くのルーティング プロトコルのルーティング プロトコル メッセージの認証方法とパスワードを設定できます。認証されていないパケットや鍛造されたパケットの交換を防止するために、ルーターは信頼できるピアへのルーティングプロトコル関係(ピアリングまたは隣接関係)を形成していることを確認する必要があります。これを行う方法の1つは、ルーティングプロトコルメッセージを認証することです。隣接ルーターは、パスワードを使用して、ルーターまたはルーターインターフェイスからプロトコルによって送信されたパケットの信頼性を検証します。
このトピックでは、大まかな概要と、ルーティング プロトコルの認証の基本的な例を示します。特定のルーティングプロトコルの認証設定の詳細については、そのプロトコルのユーザーガイドを参照してください。
ルーティング プロトコルの認証方法
一部のルーティング プロトコル(BGP、IS-IS、OSPF、RIP、RSVP)では、認証方法とパスワードを設定できます。隣接ルーターは、パスワードを使用して、プロトコルがルーターまたはルーターインターフェイスから送信するパケットの信頼性を検証します。以下の認証方法がサポートされています。
-
シンプル認証(IS-IS、OSPF、RIP)—シンプルなテキスト パスワードを使用します。受信ルーターは、認証キー(パスワード)を使用してパケットを検証します。送信パケットにパスワードが含まれているため、この認証方法は比較的安全ではありません。この認証方法は 使用しないように することをお勧めします。
-
MD5 および HMAC-MD5(BGP、IS-IS、OSPF、RIP、RSVP)—MD5 は、送信パケットに含まれるエンコード済みチェックサムを作成します。HMAC認証とMD5を組み合わせたHMAC-MD5は、繰り返し暗号化ハッシュ関数を使用します。両方のタイプの認証では、受信ルーターは認証キー(パスワード)を使用してパケットを検証します。HMAC-MD5認証は、RFC 2104、 HMAC: メッセージ認証のキー付きハッシュで定義されています。
一般に、認証パスワードは、いくつかの最大数の文字と数字で構成されるテキスト文字列です。パスワードには任意のASCII文字を使用できます。パスワードにスペースを含める場合は、すべての文字を引用符(" ")で囲みます。
例:BGPおよびIS-ISルーティングプロトコルの認証キーを設定する
ルーターの主なタスクは、ルーティングテーブルと転送テーブルを使用して、ユーザートラフィックを意図した宛先に転送することです。攻撃者は、ルーティングテーブルやその他のデータベースのコンテンツを変更または破損させる意図で、鍛造されたルーティングプロトコルパケットをルーターに送信できます。その結果、ルーターとネットワークの機能が低下する可能性があります。このような攻撃を防ぐには、ルーターが信頼できるピアとのルーティング プロトコル関係(ピアリングまたは隣接関係)を形成していることを確認する必要があります。これを行う方法の1つは、ルーティングプロトコルメッセージを認証することです。ルーティングプロトコルを設定する際には、認証を使用することを強くお勧めします。
Junos OS Evolved は、BGP、IS-IS、OSPF、RIP、RSVP の HMAC-MD5 認証をサポートしています。HMAC-MD5 は、送信されるデータと組み合わせた秘密鍵を使用して、ハッシュを計算します。計算されたハッシュは、データと共に送信されます。受信側は、一致するキーを使用してメッセージハッシュを再計算および検証します。攻撃者がメッセージを鍛造または変更した場合、ハッシュは一致せず、データは破棄されます。
以下の例では、外部ゲートウェイプロトコル(EGP)としてBGPを設定し、IGP(内部ゲートウェイプロトコル)としてIS-ISを設定しています。OSPF を使用する場合は、示されている IS-IS 設定と同様に設定します。
BGP を設定する
以下の例では、異なる BGP ピア グループに対する単一の認証キーの設定を示しています。また、ネイバーレベルまたはルーティングインスタンスレベル、またはすべてのBGPセッションでBGP認証を設定することもできます。セキュリティ設定と同様に、粒度(ある程度はセキュリティの程度)とシステムの維持に必要な管理量の間にはトレードオフがあります。
この例では、ルーティングプロトコルのイベントやエラーに対する数多くのトレースオプションも設定します。これは、ルーティングプロトコルに対する攻撃の良い指標となる可能性があります。これらのイベントには、攻撃者を指し示すプロトコル認証エラーが含まれます。攻撃者は、特定の動作を引き出そうと、スプーフィングまたはその他の不正なルーティングパケットをルーターに送信している可能性があります。
[edit] protocols { bgp { group ibgp { type internal; traceoptions { file bgp-trace size 1m files 10; flag state; flag general; } local-address 10.10.5.1; log-updown; neighbor 10.2.1.1; authentication-key "$9$aH1j8gqQ1gjyjgjhgjgiiiii"; } group ebgp { type external; traceoptions { file ebgp-trace size 10m files 10; flag state; flag general; } local-address 10.10.5.1; log-updown; peer-as 2; neighbor 10.2.1.2; authentication-key "$9$aH1j8gqQ1gjyjgjhgjgiiiii"; } } }
IS-ISを設定する
Junos OS Evolvedはすべての IGP の認証をサポートしていますが、一部の IGP は本質的に他の IGP よりもセキュアです。ほとんどのサービスプロバイダは、OSPFまたはIS-ISを使用して、内部の迅速なコンバージェンスと拡張性を可能にし、MPLSでトラフィック制御機能を使用しています。IS-ISはネットワーク層で動作しないため、OSPFよりもなりすましが困難です。OSPF は IP でカプセル化されるため、リモート スプーフィングやサービス拒否(DoS)攻撃の対象となります。
次の例では、IS-ISの認証を設定します。また、ルーティングプロトコルのイベントやエラーに対するトレースオプションも多数設定されます。これは、ルーティングプロトコルに対する攻撃の良い指標となる可能性があります。これらのイベントには、攻撃者を指し示すプロトコル認証エラーが含まれます。攻撃者は、特定の動作を引き出そうと、スプーフィングまたはその他の不正なルーティングパケットをルーターに送信している可能性があります。
[edit] protocols { isis { level 1 { authentication-key "$9$aH1j8gqQ1gjyjgjhgjgiiiii"; # SECRET-DATA authentication-type md5; } interface at-0/0/0.131 { lsp-interval 50; level 2 disable; level 1 { metric 3; hello-interval 5; hold-time 60; } } interface lo0.0 { passive; } traceoptions { file isis-trace size 10m files 10; flag normal; flag error; } } }
ルーティング プロトコルの認証キー更新メカニズムの設定
BGP、LDP、IS-ISルーティングプロトコルに認証キー更新メカニズムを設定できます。このメカニズムにより、OSPF や RSVP などの関連するルーティングおよびシグナリング プロトコルを中断することなく、認証キーを更新できます。
この機能を設定するには、 階層レベルで authentication-key-chains
ステートメントを [edit security]
含めます。キー チェーンを適用するには、プロトコルの適切な階層レベルで鍵チェーン識別子と鍵チェーン アルゴリズムを設定する必要があります。
以下のセクションでは、ルーティングプロトコルの認証キー更新の設定に関する詳細な情報を提供します。特定のルーティングプロトコルの認証キー更新の設定の詳細については、そのプロトコルのユーザーガイドを参照してください。
認証キーの更新を設定する
認証キー更新メカニズムを設定するには、 階層レベルで ステートメントをkey-chain
[edit security authentication-key-chains]
含め、複数の認証キーで構成されるキーチェーンを作成する オプションを指定key
します。
[edit security authentication-key-chains] key-chain key-chain-name { key key { algorithm (hmac-sha-1 | md5) options (basic | isis-enhanced) secret secret-data; start-time yyyy-mm-dd.hh:mm:ss; } }
key-chain
キーチェーン メカニズムに名前を割り当てます。以下のオプションを使用して指定された通り、プロトコルの適切な階層レベルでこの名前を参照して、一意の認証 key-chain
属性を関連付けます。
-
algorithm
-IS-IS の認証アルゴリズム。 -
key
キーチェーン内の各キーを一意に識別する整数値。範囲は0~63です。 -
options
—(IS-IS のみ)ルーティング プロトコル パケットでメッセージ認証コードをエンコードするためのプロトコル送信エンコード形式。 -
secret
暗号化されたテキストまたはプレーンテキスト形式のパスワード。秘密データをプレーンテキスト形式で入力した場合でも、その秘密は常に暗号化された形式で表示されます。 -
start-time
—認証キー送信の開始時間( UTC で指定)。開始時間はキーチェーン内で一意である必要があります。
認証キーの更新用にBGPとLDPを設定する
BGPおよびLDPルーティングプロトコルの認証キー更新メカニズムを設定するには、 階層レベルに ステートメントを[edit protocols (bgp | ldp)]
含めますauthentication-key-chain
。ステートメントをauthentication-key-chain
含めると、各ルーティングプロトコルが認証キーに[edit security authentication-key-chains]
関連付けられます。また、 ステートメントをauthentication-algorithm
設定し、アルゴリズムを指定する必要があります。例えば:
[edit protocols] bgp { group group-name { neighbor address { authentication-algorithm algorithm; authentication-key-chain key-chain-name; } } } ldp { session session-addr { authentication-algorithm algorithm; authentication-key-chain key-chain-name; } }
BGP の認証キー更新メカニズムを設定する場合、認証キーまたはキーチェーンで ステートメントを 0.0.0.0/allow
コミットすることはできません。このアクションを実行すると、CLIが警告を発行し、コミットは失敗します。