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ソフトウェアのインストール
- デバイスで実行されているデバイスでのクライアント アプリケーションのユーザー アカウントのJunos OS
- ユーザー アカウントの公開/プライベート キー ペアまたはJunos OS設定
- クライアント アプリケーションを使用したキーまたはパスワードのアクセス
- SSH 上での NETCONF サービスの有効化
設定管理サーバーへの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 モードに切り替え、以下のコマンドを発行します。
[edit system login] user@host# show user account-name
該当するアカウントが存在しない場合は、次の手順に従ってアカウントを作成します。
詳細については、
ユーザー アカウントの公開/プライベート キー ペアまたはJunos OS設定
設定管理サーバーが NETCONF サーバーで認証するには、SSH パブリック/プライベート キー ペア、テキストベース パスワード、あるいはその両方が必要です。パブリック/プライベートキーのペアは、アカウントがSSHを介してNETCONFサーバーに接続するためにのみ使用される場合に十分です。アカウントが別の方法でデバイスへのアクセスにも使用される場合(コンソールでのログインなど)、テキストベースのパスワードが必要です。鍵ベース認証が設定されているが失敗した場合は、パスワードも使用されます(SSH サーバーからパスワードの入力が要求されます)。
TACACS+ 経由の認証を有効に設定している場合は、このRADIUSをスキップできます。
テキストベースのパスワードを作成するには、以下の手順に従います。
SSHパブリック/プライベートキーペアを作成するには、次の手順に従います。
クライアント アプリケーションが実行されている設定管理サーバー上で、標準的なコマンド シェル(Junos OS CLI)内
ssh-keygen
にコマンドを発行します。適切な引数を指定すると、パブリック キーを RSA(SSH バージョン 1 および 2 でサポート)またはデジタル署名アルゴリズム(DSA、SSH バージョン 2 でサポート)でエンコードします。詳細については、 コマンドの手動ページ を参照
ssh-keygen
してください。Junos OS SSHバージョン2を使用していますが、バージョン1もサポートしています。% ssh-keygen options
階層レベルにステートメントを含めてJunos OSアカウントに公開
load-key-file
キーを関連[edit system login user account-name authentication]
付てます。[edit system login user username authentication] user@host# set load-key-file URL
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
必要がないのでです。設定をコミットします。
[edit] user@host# commit
クライアント アプリケーションが 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手順を実行します。
-
以下のいずれかのステートメントを、表示された設定階層レベルに含てます。
-
RFC 4742 で指定されているデフォルトの NETCONF-over-SSH ポート(830)を使用して NETCONF SSH サブシステムにアクセスを有効にするには、階層レベルに ステートメントを含
netconf ssh
[edit system services]
める:[edit system services] user@host# set netconf ssh
-
指定されたポート番号を使用してNETCONF SSHサブシステムへのアクセスを有効にするには、 [ ] 階層レベルで必要なポート番号を使用してステートメント
port
edit system services netconf ssh
を設定します。[edit system services] user@host# set netconf ssh port port-number
port-number
1~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
は、前に示した設定ステートメントに加えて、設定に含めできます。[edit system services] user@host# set ssh
-
- (オプション)応答しない NETCONF クライアントを切断するデバイスを設定するには、タイムアウト間隔(秒)の両方を指定します。その後、クライアントからデータが受信されていない場合、sshd プロセスは、切断をトリガーするクライアントを生き抜く応答のしきい値と同様に応答を要求します。
[edit system services] user@host# set netconf ssh client-alive-interval 10 user@host# set netconf ssh client-alive-count-max 10
メモ:階層レベルで設定されたステートメントは、デフォルト ポート(830)または同じ階層レベルで設定されたユーザー定義のポートを介して接続する
[edit system services netconf ssh]
NETCONF セッションにのみ適用されます。 -
設定をコミットします。
[edit] user@host# commit
-
クライアント アプリケーションで NETCONF セッションが確立された場所で実行Junos OS上の手順を繰り返します。
NETCONF セッションのアウトバウンド SSH 接続確立の前提条件
設定管理サーバーが NETCONF サーバーへのアウトバウンド SSH 接続を確立するには、次のセクションで説明する要件を満たす必要があります。
- アウトバウンドSSH向けJunos OS実行デバイスの設定
- クライアントへのSSHソフトウェアのインストール
- クライアントでのアウトバウンドSSH開始シーケンスの受信と管理
- SSH 上での NETCONF サービスの有効化
アウトバウンドSSH向けJunos OS実行デバイスの設定
アウトバウンドSSH用に実行しているJunos OSを設定するには、次の手順に示します。
クライアントへのSSHソフトウェアのインストール
デバイスが設定管理サーバーへの SSH 接続を確立すると、設定管理サーバーが SSH セッションを制御します。そのため、SSH クライアント ソフトウェアは設定管理サーバーにローカルにインストールする必要があります。SSHソフトウェアの取得とインストールの詳細については、「 http://www.ssh.com/および http://www.openssh.com/ 」を参照してください。
クライアントでのアウトバウンドSSH開始シーケンスの受信と管理
アウトバウンド SSH 用に設定すると、設定管理サーバー Junos OS実行しているデバイスは、一定の接続を維持しようと試します。アウトバウンドSSHセッションが確立されていない場合、デバイスは、デバイスの設定管理サーバーリストに記載されている設定管理サーバーにアウトバウンドSSH開始シーケンスを送信します。デバイスとの接続を確立する前に、各設定管理サーバーはこの開始シーケンスを受信し、デバイスとの TCP 接続を確立して、デバイスのアイデンティティをデバイスに戻す必要があります。
開始シーケンスは、サーバーの公開鍵の鍵への取り扱い方法Junos OSして、2つの形式のいずれかを受け取ります。
公開鍵が設定管理サーバーに手動でインストールされている場合、開始シーケンスは次の形式になります。
MSG-ID: DEVICE-CONN-INFO\r\n MSG-VER: V1\r\n DEVICE-ID: <device-id>\r\n
初期化シーケンス中に、公開鍵がデバイスによって設定管理サーバーに転送される場合、シーケンスは次の形式になります。
MSG-ID: DEVICE-CONN-INFO\r\n MSG-VER: V1\r\n DEVICE-ID: : <device-id>\r\n HOST-KEY: <pub-host-key>\r\n HMAC: <HMAC(pub-SSH-host-key,<secret>)>\r\n
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手順を実行します。
-
以下のいずれかのステートメントを、表示された設定階層レベルに含てます。
-
RFC 4742 で指定されているデフォルトの NETCONF-over-SSH ポート(830)を使用して NETCONF SSH サブシステムにアクセスを有効にするには、階層レベルに ステートメントを含
netconf ssh
[edit system services]
める:[edit system services] user@host# set netconf ssh
-
指定されたポート番号を使用してNETCONF SSHサブシステムへのアクセスを有効にするには、 [ ] 階層レベルで必要なポート番号を使用してステートメント
port
edit system services netconf ssh
を設定します。[edit system services] user@host# set netconf ssh port port-number
port-number
1~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
は、前に示した設定ステートメントに加えて、設定に含めできます。[edit system services] user@host# set ssh
-
-
設定をコミットします。
[edit] user@host# commit
-
クライアント アプリケーションで NETCONF セッションが確立された場所で実行Junos OS上の手順を繰り返します。