Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

NETCONFセッションのSSH接続を確立する

NETCONFセッションのSSH接続を確立する

SSH プロトコルを使用して、 構成管理サーバーと Junos デバイス間の接続を確立できます。Junos デバイスをリモートで設定するには、構成管理サーバーを使用します。

次のオプションを使用して、構成管理サーバーと Junos デバイス間の SSH 接続を確立できます。

  • SSH—構成管理サーバーは、JunosデバイスとのSSHセッションを開始します。

  • 送信 SSH - このオプションは、ネットワークの制限 (ファイアウォールなど) のために構成管理サーバーが SSH 接続を開始できない場合に使用します。この状況では、Junosデバイスを設定して、定義済みの構成管理サーバーのセットとのSSH接続を開始、確立、維持します。

NETCONF セッションの SSH 接続を確立するための前提条件

構成管理サーバーが Junos デバイスとの SSH 接続を確立する前に、次のセクションで説明されている要件を満たす必要があります。

構成管理サーバーに SSH ソフトウェアをインストールする

構成管理サーバーは、Junos デバイスとの SSH 接続を処理します。したがって、SSH ソフトウェアは構成管理サーバーにローカルにインストールする必要があります。SSH ソフトウェアの取得とインストールについては、「 http://www.ssh.comhttp://www.openssh.com」を参照してください。

SSH経由のNETCONFサービスを有効にする

JunosデバイスでNETCONFセッションを確立するには、NETCONFサービスを有効にする必要があります。以下のポートでNETCONFセッションを受け入れるようにNETCONFサーバーを設定できます。

  • デフォルトのNETCONFポート(830)またはユーザー定義ポート

  • デフォルトのSSHポート(22)

デバイスがNETCONFトラフィックを簡単に識別してフィルタリングできるため、デフォルトのNETCONFポートの使用をお勧めします。または、デフォルトのNETCONFポートではなく、特定のポートでNETCONFセッションを受け入れるようにデバイスを設定することもできます。定義されたポートは、NETCONF-over-SSHセッションのみを受け入れ、通常のSSHセッションリクエストを拒否します。サーバで SSH サービスも有効にした場合、デバイスはデフォルトの SSH ポートと設定された NETCONF ポート(デフォルトまたはユーザ定義ポート)の両方で NETCONF セッションを受け入れます。セキュリティを強化するために、情報を利用する UI_LOGIN_EVENT イベントポリシーを設定し、デフォルトポートを効果的に無効にしたり、ポートでのNETCONFサーバアクセスをさらに制限したりできます。

JunosデバイスでSSH経由のNETCONFサービスを有効にするには、次の手順に従います。

  1. デフォルトのNETCONFポート(830)またはユーザー定義のポートでNETCONFサービスを有効にします。

    • デフォルトのNETCONFポート(830)を使用するには、 階層レベルで ステートメントを含め netconf ssh ます [edit system services]

    • 特定のポートを使用するには、[] 階層レベルで目的のポート番号を持つ ステートメントを構成しますportedit system services netconf ssh

      の範囲は port-number 1 から 65535 です。設定されたポートは、NETCONF-over-SSHセッションのみを受け入れ、通常のSSHセッション要求を拒否します。

      メモ:

      NETCONF-over-SSHセッションは1〜65535の任意のポートで設定できますが、通常は別のサービスに割り当てられているポートでアクセスを設定することは避けてください。これにより、潜在的なリソースの競合が回避されます。FTP などの別のサービスに割り当てられたポートを設定し、そのサービスが有効になっている場合、 は commit check リソースの競合を明らかにしたり、その旨の警告メッセージを出したりしません。

  2. (オプション)また、デフォルトのSSHポート(22)を使用してNETCONF SSHサブシステムにアクセスできるようにするには、 階層レベルに ステートメントを含め ssh ます [edit system services]

    この設定により、すべてのユーザーとアプリケーションがデバイスへのSSHアクセスを可能にします。

    メモ:

    デフォルトの動作でルートユーザによるSSHサービスの使用を制限するリリースでは、階層レベルで ステートメント[edit system services ssh]を設定してroot-login allow、ルートユーザがSSH経由でNETCONFセッションを開くことができるようにする必要があります。

  3. (オプション)応答しないNETCONFクライアントを切断するようにデバイスを設定します。

    クライアントからデータが受信されなかった場合、sshd プロセスが応答を要求するまでのタイムアウト間隔 (秒単位) を指定します。さらに、切断をトリガーする、見逃されたクライアントアライブ応答のしきい値を指定します。

    メモ:

    階層レベルで設定されたステートメントは、デフォルトポート(830)または同じ階層レベルで設定された [edit system services netconf ssh] ユーザー定義ポートを介して接続するNETCONFセッションにのみ適用されます。

  4. 設定をコミットします。

  5. クライアント アプリケーションが NETCONF セッションを確立する Junos OS を実行している各デバイスで、上記の手順を繰り返します。

Junosデバイス上のクライアントアプリケーションのユーザーアカウントを設定する

設定管理サーバーは、NETCONF セッションを確立するために Junos デバイスにログインする必要があります。そのため、設定管理サーバーは、NETCONF セッションを確立する各デバイスにユーザー アカウントを必要とします。次の手順では、Junosデバイスでローカルユーザーアカウントを作成する方法について説明します。または、このセクションをスキップして、RADIUSまたはTACACS+による認証を有効にすることもできます。

ローカルユーザーアカウントを作成するには:

  1. user階層レベルで ステートメント[edit system login]を設定し、ユーザー名を指定します。classステートメントを含め、アプリケーションが実行するすべてのアクションに必要なパーミッションを持つログインクラスを指定します。
  2. 必要に応じて、 および ステートメントを [edit system login user username] 階層レベルで記述full-nameuidします。
  3. デバイスでユーザー アカウントを有効にするための設定をコミットします。
  4. クライアント アプリケーションが NETCONF セッションを確立する Junos OS を実行している各デバイスで、上記の手順を繰り返します。

Junos OS ユーザー アカウントの公開キーと秘密キーのペアまたはパスワードを構成する

設定管理サーバーは、NETCONFサーバーで認証する前に、SSH公開鍵と秘密鍵のペア、テキストベースのパスワード、またはその両方を必要とします。アカウントがSSH経由でNETCONFサーバに接続するためだけに使用される場合は、公開鍵と秘密鍵のペアで十分です。アカウントが他の方法(コンソールへのログインなど)でデバイスにアクセスするためにも使用される場合、テキストベースのパスワードが必要です。このパスワードは、キーベースの認証が設定されているが失敗した場合にも使用されます(SSHサーバーからパスワードの入力を求められます)。

メモ:

RADIUSまたはTACACS+による認証を有効にすることを選択した場合は、このセクションをスキップできます。

テキストベースのパスワードを作成するには:

  1. 階層レベルで または plain-text-password encrypted-password ステートメントのいずれかを含めます [edit system login user username authentication]

    パスワードをテキストとして入力するには、次のコマンドを発行します。パスワードの入力を求められます。パスワードは暗号化されてから保存されます。

    以前に作成し、Message Digest 5(MD5)またはSecure Hash Algorithm 1(SHA-1)を使用してハッシュしたパスワードを保存するには、次のコマンドを発行します。

  2. 設定をコミットします。
  3. クライアント アプリケーションが NETCONF セッションを確立する各デバイスで、上記の手順を繰り返します。

SSH公開/秘密キーのペアを作成するには、次の手順を実行します。

  1. クライアント・アプリケーションを実行する構成管理サーバーで、標準コマンド・シェルでコマンド ssh-keygen を発行し、適切な引数を指定します。

    オプションの詳細については ssh-keygen 、コマンド ssh-keygen のマニュアルページを参照してください。

  2. 公開キーをJunos OSログインアカウントに関連付けます。

    Junos OSは、指定されたファイルの内容をJunos OSを実行しているデバイスにコピーします。 URL は、1 つ以上の公開キーを含むファイルへのパスです。デフォルトでは、 ssh-keygen コマンドは各公開鍵をユーザーのホームディレクトリの .ssh サブディレクトリにあるファイルに保存します。ファイル名はエンコーディングとSSHのバージョンによって異なります。URL の指定については、 CLIユーザーガイドを参照してください。

    メモ:

    または、 階層レベルで ステートメント[edit system login user account-name authentication]を含めるssh-rsaこともできます。ただし、コマンド ラインで公開キーを入力したり、カット アンド ペーストしたりする必要がなくなるため、 ステートメントを使用することをお勧めしますload-key-file

  3. 設定をコミットします。

  4. ステップ 2 とステップ 3 を、クライアント アプリケーションが NETCONF セッションを確立する各 Junos デバイスで繰り返します。

クライアントアプリケーションでのキーまたはパスワードへのアクセス

クライアントアプリケーションは、設定された公開/秘密鍵またはパスワードにアクセスでき、NETCONFサーバが要求したときに提供できる必要があります。

アプリケーションがキーまたはパスワードにアクセスできるようにするには、いくつかの方法があります。

  • 公開鍵/秘密鍵が使用されている場合、ssh-agentプログラムはクライアントアプリケーションが動作するデバイス上で実行され、秘密鍵を処理します。

  • ユーザーがアプリケーションを起動すると、アプリケーションはユーザーにパスワードの入力を求め、安全な方法で一時的に保存します。

  • パスワードは、暗号化された形式で安全なローカル ディスクの場所またはセキュリティで保護されたデータベースに格納されます。

NETCONFセッション用のアウトバウンドSSH接続を確立するための前提条件

設定管理サーバーが NETCONF サーバーへのアウトバウンド SSH 接続を確立できるようにするには、次のセクションで説明されている要件を満たす必要があります。

クライアントへのSSHソフトウェアのインストール

デバイスが構成管理サーバーへの SSH 接続を確立すると、構成管理サーバーが SSH セッションを制御します。したがって、SSH クライアント ソフトウェアは、構成管理サーバーにローカルにインストールする必要があります。SSH ソフトウェアの取得とインストールについては、「 http://www.ssh.com/http://www.openssh.com/ 」を参照してください。

SSH経由のNETCONFサービスを有効にする

JunosデバイスでNETCONFセッションを確立するには、NETCONFサービスを有効にする必要があります。以下のポートでNETCONFセッションを受け入れるようにNETCONFサーバーを設定できます。

  • デフォルトのNETCONFポート(830)またはユーザー定義ポート

  • デフォルトのSSHポート(22)

デバイスがNETCONFトラフィックを簡単に識別してフィルタリングできるため、デフォルトのNETCONFポートの使用をお勧めします。または、デフォルトのNETCONFポートではなく、特定のポートでNETCONFセッションを受け入れるようにデバイスを設定することもできます。定義されたポートは、NETCONF-over-SSHセッションのみを受け入れ、通常のSSHセッションリクエストを拒否します。サーバで SSH サービスも有効にした場合、デバイスはデフォルトの SSH ポートと設定された NETCONF ポート(デフォルトまたはユーザ定義ポート)の両方で NETCONF セッションを受け入れます。セキュリティを強化するために、情報を利用する UI_LOGIN_EVENT イベントポリシーを設定し、デフォルトポートを効果的に無効にしたり、ポートでのNETCONFサーバアクセスをさらに制限したりできます。

JunosデバイスでSSH経由のNETCONFサービスを有効にするには、次の手順に従います。

  1. デフォルトのNETCONFポート(830)またはユーザー定義のポートでNETCONFサービスを有効にします。

    • デフォルトのNETCONFポート(830)を使用するには、 階層レベルで ステートメントを含め netconf ssh ます [edit system services]

    • 特定のポートを使用するには、[] 階層レベルで目的のポート番号を持つ ステートメントを構成しますportedit system services netconf ssh

      の範囲は port-number 1 から 65535 です。設定されたポートは、NETCONF-over-SSHセッションのみを受け入れ、通常のSSHセッション要求を拒否します。

      メモ:

      NETCONF-over-SSHセッションは1〜65535の任意のポートで設定できますが、通常は別のサービスに割り当てられているポートでアクセスを設定することは避けてください。これにより、潜在的なリソースの競合が回避されます。FTP などの別のサービスに割り当てられたポートを設定し、そのサービスが有効になっている場合、 は commit check リソースの競合を明らかにしたり、その旨の警告メッセージを出したりしません。

  2. (オプション)また、デフォルトのSSHポート(22)を使用してNETCONF SSHサブシステムにアクセスできるようにするには、 階層レベルに ステートメントを含め ssh ます [edit system services]

    この設定により、すべてのユーザーとアプリケーションがデバイスへのSSHアクセスを可能にします。

    メモ:

    デフォルトの動作でルートユーザによるSSHサービスの使用を制限するリリースでは、階層レベルで ステートメント[edit system services ssh]を設定してroot-login allow、ルートユーザがSSH経由でNETCONFセッションを開くことができるようにする必要があります。

  3. (オプション)応答しないNETCONFクライアントを切断するようにデバイスを設定します。

    クライアントからデータが受信されなかった場合、sshd プロセスが応答を要求するまでのタイムアウト間隔 (秒単位) を指定します。さらに、切断をトリガーする、見逃されたクライアントアライブ応答のしきい値を指定します。

    メモ:

    階層レベルで設定されたステートメントは、デフォルトポート(830)または同じ階層レベルで設定された [edit system services netconf ssh] ユーザー定義ポートを介して接続するNETCONFセッションにのみ適用されます。

  4. 設定をコミットします。

  5. クライアント アプリケーションが NETCONF セッションを確立する Junos OS を実行している各デバイスで、上記の手順を繰り返します。

アウトバウンド SSH 用の Junos デバイスの設定

アウトバウンド SSH 用に Junos デバイスを設定するには、次の手順に従います。

  1. [edit system services ssh]階層レベルで、SSH protocol-version を v2 に設定します。
  2. Junos OS を実行しているデバイスの公開キーと秘密鍵のペアを生成または取得します。このキーペアは、SSH接続を介して転送されるデータの暗号化に使用されます。
  3. 構成管理サーバーに公開キーを手動でインストールする場合は、公開キーを構成管理サーバーに転送します。
  4. [edit system services]階層レベルで、設定階層と必要なステートメントを含めoutbound-sshます。

    オプションは次のとおりです。

    address

    (必須)管理サーバーのホスト名または IPv4 または IPv6 アドレス。各クライアントの IP アドレスまたはホスト名に次の接続パラメータを追加することで、複数のクライアントを一覧表示できます。

    • port port-number- クライアントのアウトバウンド SSH ポート。デフォルトはポート 22 です。

    • retry number– デバイスがアウトバウンド SSH 接続の確立を試行する回数。デフォルトは 3 回の試行です。

    • timeout seconds- Junos OSを実行しているデバイスがアウトバウンドSSH接続の確立を試行する時間(秒)。デフォルトは、試行ごとに 15 秒です。

      メモ:

      Junos OSリリース15.1以降、Junos OSはIPv6アドレスを持つデバイスとのアウトバウンドSSH接続をサポートしています。

    client client-id

    (必須)デバイスの設定スタンザを識別します outbound-ssh 。各 outbound-ssh スタンザは、単一のアウトバウンド SSH 接続を表します。この属性はクライアントに送信されません。

    device-id device-id

    (必須)開始シーケンス中に、Junos OSを実行しているデバイスをクライアントに対して識別します。

    keep-alive

    (オプション)デバイスがキープアライブメッセージを管理サーバーに送信することを指定します。キープアライブ メッセージを設定するには、 属性と retry 属性の両方timeoutを設定する必要があります。キープアライブ メッセージを設定するには、 および retry ステートメントの両方timeoutを設定する必要があります。

    • retry number- 現在の SSH 接続が終了する前に、デバイスが管理サーバーから応答を受信せずに送信するキープアライブ メッセージの数。デフォルトは 3 回の試行です。

    • timeout seconds- サーバーがキープアライブ信号を送信する前にデータを待機する時間(秒単位)。デフォルトは 15 秒です。

    reconnect-strategy (sticky | in-order)

    (オプション)Junos OSを実行しているデバイスが、切断されたアウトバウンドSSH接続を再確立するために使用する方法を指定します。次の 2 つの方法を使用できます。

    • in-order- ルーターまたはスイッチが最初に、管理サーバーのアドレスリストに基づいてアウトバウンド SSH セッションの確立を試みることを指定します。ルーターまたはスイッチは、リストの最初のサーバーとのセッションの確立を試みます。この接続が利用できない場合、ルーターまたはスイッチは次のサーバーとのセッションの確立を試み、接続が確立されるまでリストの下まで続きます。

    • sticky- ルーターまたはスイッチが、最後に接続した管理サーバーに最初に再接続を試みることを指定します。接続が利用できない場合は、接続が確立されるまで、リスト上の次のクライアントとの接続を確立しようとします。

    secret password

    (オプション)デバイスの公開SSHホストキー。ステートメントに追加する outbound-ssh と、アウトバウンド SSH サービスの初期化中に、ルーターまたはスイッチがその公開キーを管理サーバーに渡します。これは、デバイスの公開キーの現在のコピーを維持するために推奨される方法です。

    services netconf

    (必須)セッションで使用できるサービスを指定します。現在、利用可能なサービスはNETCONFのみです。

  5. 設定をコミットします。

クライアントでアウトバウンド SSH 開始シーケンスを受信して管理する

アウトバウンド SSH 用に構成されている場合、Junos デバイスは構成管理サーバーとの常時接続を維持しようとします。アウトバウンド SSH セッションが確立されない場合、デバイスは、デバイスの構成管理サーバーリストにリストされている構成管理サーバーにアウトバウンド SSH 開始シーケンスを送信します。デバイスとの接続を確立する前に、各構成管理サーバーは、この開始シーケンスを受信し、デバイスとの TCP 接続を確立し、デバイス ID をデバイスに送信するように設定する必要があります。

開始シーケンスは、選択したJunos OSサーバーの公開鍵の処理方法に応じて、2つの形式のいずれかになります。

公開キーが構成管理サーバーに手動でインストールされる場合、開始シーケンスは次の形式になります。

初期化シーケンス中に公開キーがデバイスによって構成管理サーバーに転送される場合、シーケンスは次の形式になります。

変更履歴テーブル

機能のサポートは、使用しているプラットフォームとリリースによって決まります。 機能エクスプローラー を使用して、機能がプラットフォームでサポートされているかどうかを判断します。

リリース
説明
15.1
Junos OSリリース15.1以降、Junos OSはIPv6アドレスを持つデバイスとのアウトバウンドSSH接続をサポートしています。