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 OS。その名の通り、設定管理サーバーは、リモートで動作するデバイスをJunos OSします。

設定管理サーバーと、SSH とアウトバウンド SSH を実行しているデバイスとの間に接続を確立する場合、Junos OS つのオプションがあります。SSHを使用すると、設定管理サーバーはJunos OSを実行しているデバイスとのSSHセッションを開始します。ネットワーク制限(ファイアウォールなど)により、設定管理サーバーがSSH接続を開始できない場合、アウトバウンドSSHが使用されます。この場合、設定を実行するデバイスJunos OS事前定義された設定管理サーバーとのSSH接続を開始、確立、維持するように設定します。アウトバウンドSSHの詳細については、「 アウトバウンドSSH サービスの設定 」を参照してください

NETCONF セッションの SSH 接続確立の前提条件

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

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

設定管理サーバーは、設定管理サーバーと設定管理サーバーを実行しているデバイスとの間の SSH 接続Junos OS。そのため、SSH ソフトウェアは設定管理サーバーにローカルにインストールする必要があります。SSHソフトウェアの取得とインストールについて、詳しくは 次の情報 http://www.ssh.com/およびhttp://www.openssh.com/。

デバイスで実行されているデバイスでのクライアント アプリケーションのユーザー アカウントのJunos OS

NETCONF セッションを確立する際、設定管理サーバーは、NETCONF で実行中のデバイスにログインするJunos OS。したがって、各設定管理サーバーには、NETCONF セッションが確立される各デバイス上にユーザー アカウントが必要になります。次の手順では、Junos OS を実行しているデバイスでログイン アカウントを作成する方法を説明します。別の方法として、このセクションをスキップして、RADIUS または TACACS+ を使用して認証を有効にすることもできます。

デバイスで実行されているデバイスにログイン アカウントが存在するかどうかを確認Junos OS、デバイスで CLI モードに切り替え、以下のコマンドを発行します。

該当するアカウントが存在しない場合は、次の手順に従ってアカウントを作成します。

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

ユーザー アカウントの公開/プライベート キー ペアまたはJunos OS設定

設定管理サーバーが NETCONF サーバーで認証するには、SSH パブリック/プライベート キー ペア、テキストベース パスワード、あるいはその両方が必要です。パブリック/プライベートキーのペアは、アカウントがSSHを介してNETCONFサーバーに接続するためにのみ使用される場合に十分です。アカウントが別の方法でデバイスへのアクセスにも使用される場合(コンソールでのログインなど)、テキストベースのパスワードが必要です。鍵ベース認証が設定されているが失敗した場合は、パスワードも使用されます(SSH サーバーからパスワードの入力が要求されます)。

メモ:

TACACS+ 経由の認証を有効に設定している場合は、このRADIUSをスキップできます。

テキストベースのパスワードを作成するには、以下の手順に従います。

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

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

    Message Digest 5(MD5)またはセキュア ハッシュ アルゴリズム 1(SHA-1)を使用して作成し、ハッシュしたパスワードを保存するには、次のコマンドを発行します。

  2. 設定をコミットします。
  3. クライアント アプリケーションで NETCONF セッションが確立された場所で実行Junos OS上の手順を繰り返します。

SSHパブリック/プライベートキーペアを作成するには、次の手順に従います。

  1. クライアント アプリケーションが実行されている設定管理サーバー上で、標準的なコマンド シェル(Junos OS CLI)内 ssh-keygen にコマンドを発行します。

    適切な引数を指定すると、パブリック キーを RSA(SSH バージョン 1 および 2 でサポート)またはデジタル署名アルゴリズム(DSA、SSH バージョン 2 でサポート)でエンコードします。詳細については、 コマンドの手動ページ を参照 ssh-keygen してください。Junos OS SSHバージョン2を使用していますが、バージョン1もサポートしています。

  2. 階層レベルにステートメントを含めてJunos OSアカウントに公開 load-key-file キーを関連 [edit system login user account-name authentication] 付てます。

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

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

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

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

クライアント アプリケーションを使用したキーまたはパスワードのアクセス

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

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

  • パブリック/プライベートキーを使用すると、ssh-agentプログラムはクライアントアプリケーションが実行されるコンピューターで実行され、プライベートキーを処理します。

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

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

SSH 上での NETCONF サービスの有効化

RFC 4742, Using the NETCONF Configuration Protocol over Secure SHell(SSH)では、デフォルトで、専用の IANA 割り当て TCP ポートを使用して SSH セッションが確立された場合、NETCONF サーバーから NETCONF SSH サブシステムへのアクセスをクライアント デバイスに提供する必要があります。専用ポートを使用すると、NETCONF トラフィックを簡単に特定してフィルタリングできます。NETCONF-over-SSHセッションのIANA割り当てられたポートは830です。

デフォルトの SSH ポート(22)を使用して、NETCONF SSH サブシステムへのアクセスを許可するサーバーや、明示的に設定されたポート番号を使用するようにサーバーを設定することもできます。ポートを明示的に設定すると、NETCONF-over-SSH セッションのみ受け入れ、通常の SSH セッション要求を拒否します。サーバーでSSHサービスが有効になっている場合、代替のNETCONF-over-SSHポートが設定されている場合でも、デフォルトのSSHポート(22)はNETCONFセッションを引き続き受け入れる。セキュリティを強化するために、情報を利用するイベント ポリシーを設定して、デフォルト ポートを効果的に無効にするか、ポート上での NETCONF サーバーのアクセスをさらに UI_LOGIN_EVENT 制限できます。

リモート で実行されているデバイスで SSH 上で NETCONF サービスを有効にするには、Junos OS手順を実行します。

  1. 以下のいずれかのステートメントを、表示された設定階層レベルに含てます。

    • RFC 4742 で指定されているデフォルトの NETCONF-over-SSH ポート(830)を使用して NETCONF SSH サブシステムにアクセスを有効にするには、階層レベルに ステートメントを含 netconf ssh [edit system services] める:

    • 指定されたポート番号を使用してNETCONF SSHサブシステムへのアクセスを有効にするには、 [ ] 階層レベルで必要なポート番号を使用してステートメント port edit system services netconf ssh を設定します。

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

      メモ:

      NETCONF-over-SSH は、1~65535 の任意のポートで設定することができますが、別のサービスに通常割り当てられたポートでのアクセスを設定する必要があります。この方法では、リソースの競合が発生する可能性を回避できます。FTP など別のサービスに割り当てられたポートで NETCONF-over-SSH を設定した場合、そのサービスが有効になっている場合は、リソースの競合が表示されないか、警告メッセージを発行しません。 commit check

    • デフォルトの SSH ポート(22)を使用して NETCONF SSH サブシステムへのアクセスを有効にするには、階層レベルに ステートメント ssh [edit system services] を含てます。この設定では、すべてのユーザーとアプリケーションについてデバイスへのSSHアクセスが可能です。ステートメント ssh は、前に示した設定ステートメントに加えて、設定に含めできます。

  2. (オプション)応答しない NETCONF クライアントを切断するデバイスを設定するには、タイムアウト間隔(秒)の両方を指定します。その後、クライアントからデータが受信されていない場合、sshd プロセスは、切断をトリガーするクライアントを生き抜く応答のしきい値と同様に応答を要求します。
    メモ:

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

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

  4. クライアント アプリケーションで NETCONF セッションが確立された場所で実行Junos OS上の手順を繰り返します。

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

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

アウトバウンドSSH向けJunos OS実行デバイスの設定

アウトバウンドSSH用に実行しているJunos OSを設定するには、次の手順に示します。

  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—実行されているデバイスがアウトバウンド SSH 接続を確立Junos OS確立するための時間(秒)。デフォルトは1試行当たり15秒です。

      メモ:

      Junos OS リリース 15.1 から、Junos OS 6 アドレスを持つデバイスとのアウトバウンド SSH 接続をサポートします。

    client client-id

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

    device-id device-id

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

    keep-alive

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

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

    • timeout seconds—サーバーがキープアリスト信号を送信するまでのデータ待機時間(秒)を示します。デフォルトは15秒です。

    reconnect-strategy (sticky | in-order)

    (オプション)接続が切断されたアウトバウンドSSH接続をJunos OSするデバイスの実行方法を指定します。2 つの方法があります。

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

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

    secret password

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

    services netconf

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

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

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

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

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

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

開始シーケンスは、サーバーの公開鍵の鍵への取り扱い方法Junos OSして、2つの形式のいずれかを受け取ります。

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

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

SSH 上での NETCONF サービスの有効化

RFC 4742, Using the NETCONF Configuration Protocol over Secure SHell(SSH)では、デフォルトで、専用の IANA 割り当て TCP ポートを使用して SSH セッションが確立された場合、NETCONF サーバーから NETCONF SSH サブシステムへのアクセスをクライアント デバイスに提供する必要があります。専用ポートを使用すると、NETCONF トラフィックを簡単に特定してフィルタリングできます。NETCONF-over-SSHセッションのIANA割り当てられたポートは830です。

デフォルトの SSH ポート(22)を使用して、NETCONF SSH サブシステムへのアクセスを許可するサーバーや、明示的に設定されたポート番号を使用するようにサーバーを設定することもできます。ポートを明示的に設定すると、NETCONF-over-SSH セッションのみ受け入れ、通常の SSH セッション要求を拒否します。サーバーでSSHサービスが有効になっている場合、代替のNETCONF-over-SSHポートが設定されている場合でも、デフォルトのSSHポート(22)はNETCONFセッションを引き続き受け入れる。セキュリティを強化するために、情報を利用するイベント ポリシーを設定して、デフォルト ポートを効果的に無効にするか、ポート上での NETCONF サーバーのアクセスをさらに UI_LOGIN_EVENT 制限できます。

リモート で実行されているデバイスで SSH 上で NETCONF service over SSH を有効にするには、Junos OS手順を実行します。

  1. 以下のいずれかのステートメントを、表示された設定階層レベルに含てます。

    • RFC 4742 で指定されているデフォルトの NETCONF-over-SSH ポート(830)を使用して NETCONF SSH サブシステムにアクセスを有効にするには、階層レベルに ステートメントを含 netconf ssh [edit system services] める:

    • 指定されたポート番号を使用してNETCONF SSHサブシステムへのアクセスを有効にするには、 [ ] 階層レベルで必要なポート番号を使用してステートメント port edit system services netconf ssh を設定します。

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

      メモ:

      NETCONF-over-SSH は、1~65535 の任意のポートで設定することができますが、別のサービスに通常割り当てられたポートでのアクセスを設定する必要があります。この方法では、リソースの競合が発生する可能性を回避できます。FTP など別のサービスに割り当てられたポートで NETCONF-over-SSH を設定した場合、そのサービスが有効になっている場合は、リソースの競合が表示されないか、警告メッセージを発行しません。 commit check

    • デフォルトの SSH ポート(22)を使用して NETCONF SSH サブシステムへのアクセスを有効にするには、階層レベルに ステートメント ssh [edit system services] を含てます。この設定では、すべてのユーザーとアプリケーションについてデバイスへのSSHアクセスが可能です。ステートメント ssh は、前に示した設定ステートメントに加えて、設定に含めできます。

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

  3. クライアント アプリケーションで NETCONF セッションが確立された場所で実行Junos OS上の手順を繰り返します。

リリース履歴テーブル
リリース
説明
15.1
Junos OS リリース 15.1 から、Junos OS 6 アドレスを持つデバイスとのアウトバウンド SSH 接続をサポートします。