Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

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

SSHを介したNETCONFセッションについて

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

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

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

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

手記:

Junos OS には、デバイス管理用にカスタマイズされた OpenSSH の実装が含まれています。セキュリティ修正は、OpenSSH のバージョン番号とは無関係に、必要に応じてバックポートされます。CLI出力に表示されるバージョン(例: show version)は、適用されたすべてのパッチを反映していない場合があります。脆弱性の影響評価については、必ずジュニパーセキュリティアドバイザリ(JSA)を参照してください。

SSHまたはアウトバウンドSSHを介したNETCONFセッションの一般的な前提条件

SSHまたはアウトバウンドSSHを使用するNETCONFセッションの場合、設定管理サーバーにSSHソフトウェアをインストールし、JunosデバイスでNETCONFサービスを有効にする必要があります。詳細な手順については、以下のセクションを参照してください。

構成管理サーバーへのSSHソフトウェアのインストール

SSH接続の場合、構成管理サーバー(CMS)がJunosデバイスとのSSH接続を処理します。アウトバウンドSSH接続の場合、Junosデバイスは構成管理サーバーへのSSH接続を確立し、構成管理サーバーがSSHセッションを制御します。

デバイスとの SSH 接続またはアウトバウンド SSH 接続を確立するには、構成管理サーバーに SSH ソフトウェアがローカルにインストールされている必要があります。SSH ソフトウェアの入手とインストールについては、以下を参照してください。

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

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

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

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

デバイスがNETCONFトラフィックをより効果的に識別およびフィルタリングできるようにするため、デフォルトのNETCONFポートを使用することを推奨します。または、デフォルトのNETCONFポートではなく、選択したポート番号でNETCONFセッションを受け入れるようにデバイスを設定することもできます。定義されたポートは、NETCONF-over-SSHセッションのみを受け入れ、通常のSSHセッション要求を拒否します。

NETCONF を有効にし、デバイス上で SSH サービスも有効にすると、デバイスはデフォルトの SSH ポートと設定された NETCONF ポート(デフォルトまたはユーザー定義ポート)の両方で NETCONF セッションを受け入れます。セキュリティを強化するため、 UI_LOGIN_EVENT 情報を利用するイベントポリシーを設定して、SSHポートがNETCONFセッションを受け入れるのを効果的に無効にしたり、ポートでのNETCONFサーバーのアクセスをさらに制限したりできます。

JunosデバイスでSSH経由のNETCONFサービスを有効にするには:

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

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

    • 特定のポートを使用するには、[edit system services netconf ssh]階層レベルでポート番号を使用してportステートメントを設定します。

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

      手記:

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

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

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

    手記:

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

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

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

    手記:

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

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

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

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

構成管理サーバーが Junos デバイスとの SSH 接続を確立するには、で説明されている一般的な要件を満たす必要があります。

また、次のセクションで説明する要件も満たしている必要があります。

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

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

ローカル・ユーザー・アカウントを作成するには、以下の手順に従います。

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

Junos OS ユーザー アカウントの公開キーと秘密キーのペアまたはパスワードを設定します。

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

手記:

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

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

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

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

    以前に作成し、MD5 または SHA-1 を使用してハッシュしたパスワードを入力するには、次のコマンドを発行します。

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

SSH 公開鍵と秘密鍵のペアを作成するには、以下の手順を実行します。

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

    例えば:

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

  2. 公開鍵を 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. クライアントアプリケーションがNETCONFセッションを確立する各Junosデバイスで、ステップ 2 とステップ 3 を繰り返します。

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

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

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

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

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

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

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

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

また、次のセクションで説明する要件も満たしている必要があります。

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

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

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

    各オプションの詳細については、 outbound-sshを参照してください。

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

クライアントでのアウトバウンドSSH開始シーケンスの受信と管理

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

開始シーケンスは、Junos OSサーバーの公開キーの処理方法に応じて、2つの形式のいずれかを取ります。

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

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

変更履歴

サポートされる機能は、使用しているプラットフォームとリリースによって決まります。特定の機能がお使いのプラットフォームでサポートされているかどうかを確認するには、 Feature Explorer を使用します。

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