Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

Tcp

多くのアプリケーションとサービスは、TCP を使用して通信します。TCP オプションを設定して、リンクの品質とセキュリティを向上させます。

SYNおよびFINフラグセットを持つTCPヘッダーのセキュリティ

デフォルトでは、デバイスはSYNビットとFINビットの両方がTCPフラグに設定されているパケットを受け入れます。SYNビットとFINビットの両方が設定されたパケットをドロップするようにデバイスを設定して、セキュリティの脆弱性を軽減します。

SYNおよびFIN制御フラグは、通常、同じTCPセグメントヘッダーに設定されていません。SYNフラグは、シーケンス番号を同期してTCP接続を開始します。FIN フラグは、TCP 接続を終了するためのデータ転送の終了を示します。その目的は相互に排他的です。SYNおよびFINフラグが設定されたTCPヘッダーは、異常なTCP動作であり、OSに応じて受信者からさまざまな応答が発生します。 図 1 を参照してください。

図 1:SYN および FIN フラグセット TCP Header with SYN and FIN Flags Setを持つ TCP ヘッダー

攻撃者は、両方のフラグを設定したセグメントを送信して、返されるシステムの応答の種類を確認し、それにより受信側でどの種類の OS が使用されているかを判断できます。その後、攻撃者は既知のシステムの脆弱性を利用してさらなる攻撃を受けることができます。ステートメントを tcp-drop-synfin-set 有効にすると、Junos OSはSYNおよびFINフラグがTCPヘッダーで設定されているかをチェックします。このようなヘッダーを検出すると、パケットをドロップします。

TCP RFC 1323拡張を無効にする

RFC 1323 TCP拡張を無効にするには、 階層レベルで ステートメントを[edit system internet-options]含めますno-tcp-rfc1323

ラップされたシーケンスに対する保護(PAWS)番号拡張(RFC 1323、 ハイパフォーマンス向けTCP拡張機能で説明)を無効にするには、 階層レベルに ステートメントを[edit system internet-options]含めますno-tcp-rfc1323-paws

セッションネゴシエーション用にTCP MSSを設定する

セッション接続確立時に、2つのピアは、通信中に交換するパケットのIPセグメントサイズを決定するネゴシエーションに同意します。TCP SYNパケットのTCP MSS(最大セグメントサイズ)値は、TCPパケットのデータフィールド(セグメント)に含めることができる最大バイト数を指定します。MSS 値が高すぎると、送信が大きくなり、フラグメント化する必要がある IP データグラムが発生する可能性があります。フラグメント化により、追加のオーバーヘッド コストとパケット ロスが発生する可能性があります。

フラグメント化の可能性を低下させ、パケットロスを防ぐために、 ステートメントを tcp-mss 使用して、より低いTCP MSS値を指定できます。ステートメントは tcp-mss 、MSS値が指定した値よりも高いルーターのすべてのイングレスインターフェイスを通過するすべてのIPv4 TCP SYNパケットに適用されます。特定のポートは、その効果から免除することはできません。

以下のセクションでは、T Series、M Series、MXシリーズルーターでTCP MSSを設定する方法について説明します。

サービスカードを使用したTシリーズおよびMシリーズルーター、およびMXシリーズルーターでのTCP MSSの設定

T SeriesおよびM Seriesルーター、およびサービスカードを使用したMXシリーズルーターでTCP MSS値を指定するには、 階層レベルに ステートメントを[edit services service-set service-set-name]tcp-mss mss-valueめます。

パラメーターの tcp-mss mss-value 範囲は、536~65535 バイトです。

TCP-MSS値を調整するインターフェイスにサービスセットを追加します。

受信したSYNパケットとMSS値が変更されたSYNパケットの統計情報を表示するには、 運用モードコマンドを show services service-sets statistics tcp-mss 発行します。

T シリーズおよび M シリーズ ルーターでの TCP MSS の設定の詳細については、 ルーティング デバイス用 Junos OS サービス インターフェイス ライブラリを参照してください。

MPCラインカードを使用したMXシリーズルーターでのTCP MSSインラインの設定

MPCラインカードを使用するMXシリーズルーターでTCP MSS値を指定するには、 階層レベルに tcp-mss ステートメントを [edit interfaces interface-name unit logical-unit-number family family] 含めます。

パラメーターの mss-value 範囲は 64~65,535 バイトです。TCP MSS値は、インターフェイスのMTUよりも低くなければなりません。

このステートメントは、gr-(GRE)、ge-(ギガビット イーサネット)、xe-(10ギガビット イーサネット)、et-(40ギガビットおよび100ギガビット イーサネット)のインターフェイスでサポートされています。サポートされているファミリーは inet 、 および inet6です。

メモ:

MPCラインカードを使用してMXシリーズルーターでTCP MSSインラインを設定することは、インターフェイスに出入りするトラフィックに対してのみ機能し、インターフェイスに出入りするトラフィックには機能しません。

ローカルで生成された TCP/IP パケットの固定ソース アドレスを選択します。

ローカルで生成された IP パケットは、ルーティング エンジンで実行されているアプリケーションによって生成されるパケットです。Junos OS は、アプリケーション ピアが応答できるように、これらのパケットの送信元アドレスを選択します。また、アプリケーションごとに送信元アドレスを指定することもできます。この目的を果たすには、Telnet CLI コマンドに 引数が source-address 含まれています。

このセクションでは、 ステートメントを default-address-selection 紹介します。

Telnet の場合のように、送信元アドレスを特別に選択した場合、 default-address-selection 送信元アドレスの選択には影響しません。送信元アドレスは、引数で source-address 指定されたものになります(アドレスがルーターのインターフェイスで指定された有効なアドレスである場合)。送信元アドレスが指定されていない場合、または指定されたアドレスが無効な場合は、 default-address-selection デフォルトの送信元アドレス選択に影響を与えます。

Telnet の場合のように送信元アドレスが明示的に指定されていない場合、デフォルトで(指定されていない場合 default-address-selection )、ローカルで生成された IP パケットに対して選択された送信元アドレスが発信インターフェイスの IP アドレスになります。これは、選択した発信インターフェイスに応じて、特定のアプリケーションの呼び出しごとに送信元アドレスが異なる可能性があることを示しています。

インターフェイスが番号なし(インターフェイスでIPアドレスが指定されていない)場合、Junos OSは予測可能なアルゴリズムを使用してデフォルトの送信元アドレスを決定します。指定された場合 default-address-selection 、Junos OSは、発信インターフェイスに番号が付いているかどうかに関係なく、送信元アドレスを選択するアルゴリズムを使用します。これは、 で default-address-selection、発信インターフェイスに関係なく、ローカルで生成されたIPパケットに同じ送信元アドレスを提供するようにJunos OSに影響を与えることができることを示しています。

Junos OS による送信元アドレス選択の動作は、次の表に示すように合計できます。

表 1:送信元アドレスの選択

発信インターフェイス

指定された場合default-address-selection

指定されていない場合default-address-selection

無数

使用 default-address-selection

使用 default-address-selection

番号

使用 default-address-selection

発信インターフェイスの IP アドレスを使用する

デフォルトアドレス送信元選択アルゴリズムの詳細については、 デフォルト、プライマリ、および優先アドレスとインターフェイスの設定 を参照してください。

メモ:

IPルーティングプロトコル(OSPF、RIP、RSVP、マルチキャストプロトコルを含むがIS-ISを含まない)によって送信されたIPパケットの場合、ローカルアドレス選択はプロトコル指定によって制限されることが多く、プロトコルが正しく動作するようにします。この制約がルーティングプロトコルに存在する場合、パケットの送信元アドレスは、設定内の ステートメントの default-address-selection 存在によって影響を受けません。ローカルアドレスがIBGPやマルチホップEBGPなどのプロトコル仕様によって制約されないプロトコルの場合、プロトコルを設定する際に特定のローカルアドレスを設定しない場合、ローカルアドレスは他のローカルで生成されたIPパケットと同じ方法で選択されます。

TCP 認証

TCP認証方法を有効にすると、セキュリティが強化され、BGPおよびLDPセッション中に交換されたTCPセグメントの信頼性が保証されます。Junos デバイスは、TCP MD5、TCP 認証オプション(TCP-AO)、TCP キーチェーンベース認証の 3 つの主なタイプの TCP 認証をサポートしています。TCP-AO の詳細については、 TCP 認証オプション(TCP-AO)を参照してください。

メモ:

JunosデバイスはTCP-AOとTCP MD5の両方の認証方法をサポートしていますが、特定の接続に同時に両方を使用することはできません。

IP サブネットのサポート

リリース 22.4R1 Junos OS Evolved以前は、Junos デバイスでは特定のアドレスでの TCP 認証のみを使用できます。これは、既知のIPアドレスを持つリモートピアへのTCP接続のみを認証できることを意味します。

Junos OS Evolved リリース 22.4R1 以降、TCP-AO および TCP MD5 認証は LDP および BGP セッションの IP サブネットをサポートしています。ネットワークアドレスとプレフィックス長でTCP認証を設定すると、選択したTCP認証方法は、そのサブネットの下にあるアドレスの範囲全体へのTCP接続を認証します。つまり、宛先デバイスの正確なIPアドレスを知る必要なくTCP接続を認証できます。

IP サブネットが重複する場合、認証方法は最長プレフィックス一致(LPM)を使用して、特定の TCP セッションの正確な認証キーを決定します。

Bgp

BGPセッションにプレフィックスベース認証を設定するには、以下のいずれかの階層に ステートメントを含 allow (all | prefix-list) めます。

  • [edit protocols bgp group group-name]

  • [edit protocols bgp group group-name dynamic-neighbor dyn-name]

サブネットには、IPV4 または IPV6 アドレスを使用できます。

この例では、TCP MD5 は、すべての BGP セッションに対して 10.0.3.0/24 サブネット内のデバイスへの TCP 接続を認証します。

自民党

LDPのプレフィックスベース認証を設定するには、 階層の下でTCP認証を session-group ip-prefix 設定します。IPv4 アドレスを使用する必要があります。

この例では、LDPはTCP-AOを使用して、10.0.0.0/24サブネット内のアドレスを持つデバイスとのTCP接続を認証します。

TCP-AO キーチェーンを設定する方法については、 TCP 認証オプション(TCP-AO)を参照してください。

VRFのサポート

リリース 22.4R1 Junos OS Evolved以前のリリースでは、TCP MD5 および TCP-AO は仮想ルーティングおよび転送(VRF)インスタンスを無視します。デバイスは、デフォルト以外のルーティング インスタンスの TCP MD5 および TCP-AO 設定を無視します。デフォルトのVRFインスタンスでTCP MD5またはTCP-AOを設定すると、デバイスはその認証方法を、そのVRFインスタンスのIPアドレス範囲内にあるすべてのTCPセッションに適用します。TCPセッションがデフォルト以外のVRFインスタンスに属し、デフォルトVRFインスタンスと同じ宛先IPアドレスを持つ場合、TCP MD5とTCP-AOは、同じ宛先IPアドレスを持つ2つのTCP接続に同じ認証キーを適用します。

Junos OS Evolved リリース 22.4R1 以降、TCP-AO および TCP MD5 認証は BGP および LDP セッションで VRF を認識します。TCP-AOおよびTCP MD5は、デフォルト以外のルーティングインスタンスで設定できます。ルーティングインスタンスで設定するTCP認証方法は、そのVRFインスタンス内のTCPセッションにのみ適用されます。異なるVRFインスタンスのTCP接続に同じ宛先IPアドレスがある場合、VRFインスタンスにピアにTCP認証が設定されていない場合、TCP認証方法はそのTCP接続に適用されません。

通常と同じ階層レベルで VRF ベースの TCP 認証を routing-instances 設定します。TCP MD5認証を使用するには、 ステートメントを authentication-key authentication-key 含めます。TCP-AOを使用するには、以下のステートメントを含めます。

TCP-AO キーチェーンを設定する方法については、 TCP 認証オプション(TCP-AO)を参照してください。

VRF対応の設定をIPサブネットと組み合わせることができます。これにより、VRFインスタンス内のアドレス範囲への接続を認証できます。

Bgp

以下のいずれかの階層レベルで、BGPセッションのVRFベースのTCP認証を設定します。

  • [edit routing-instances vrf-instance protocols bgp]

  • [edit routing-instances vrf-instance protocols bgp group group-name]

  • [edit routing-instances vrf-instance protocols bgp group group-name neighbor neighbor-ip]

  • [edit routing-instances vrf-instance protocols bgp group group-name dynamic-neighbor dyn-name]

レベルでVRFベース認証を設定する dynamic-neighbor 場合は、選択した認証方法の設定と共に allow ステートメントを含めます。例えば、動的ネイバーと TCP-AO を使用するには、以下を行います。

次の例では、 と呼ばれる vrf-oneVRFインスタンスでTCP接続のセキュリティを確保するためにTCP認証を使用します。グループ1では、BGPはTCP MD5を使用して、IPアドレス10.0.1.1を持つネイバーへの接続を認証します。TCP-AOを使用して、IPアドレス10.0.1.2を持つネイバーへの接続を認証します。

グループ2では、BGPはTCP-AOを使用して、10.0.0.0/24サブネット内の任意のデバイスへの接続を認証します。

自民党

以下のいずれかの階層レベルで、LDPセッションのVRFベース認証を設定します。

  • [edit routing-instances vrf-instance protocols ldp]

  • [edit routing-instances vrf-instance protocols ldp session session-ip]

  • [edit routing-instances vrf-instance protocols ldp session-group ip-prefix]

この例では、TCP-AOは と呼ばれる vrf-twoVRFインスタンスでTCP接続を認証します。アドレス 10.0.1.1 および 10.0.0.0/24 サブネット内の任意のアドレスへの TCP 接続を認証します。

リリース履歴テーブル
リリース
説明
22.4R1
リリース 22.4R1 Junos OS Evolved以降、IP サブネットを使用して TCP-AO または TCP MD5 認証を設定し、そのサブネットのアドレス範囲全体を含めることができます。
22.4R1
リリース 22.4R1 Junos OS Evolved以降、TCP 認証は VRF を認識しています。