このページの内容
リモートアクセスの概要
お客様(ネットワーク管理者)は、DHCP、Finger、FTP、rlogin、SSH、Telnet サービスなどのサービスを使用して、ルーター、スイッチ、またはセキュリティ デバイスにリモートでアクセスできます。このトピックでは、Telnet、SSH、FTP、Fingerサービスを使用してリモートアクセスを設定する方法について説明します。
システムサービスの概要
セキュリティ上の理由から、ルーターへのリモート アクセスはデフォルトで無効になっています。リモートシステム上のユーザーがアクセスできるように、ルーター明示的に設定する必要があります。ユーザーは、DHCP、finger、FTP、rlogin、SSH、および Telnet サービスを介して、リモート システムからルーターにアクセスできます。また、Junos XML プロトコルのクライアント アプリケーションでは、SSL(Secure Sockets Layer)や Junos XML プロトコル固有のクリアテキスト サービスなどのサービスを利用できます。
システム リソースを保護するため、サービスが受け入れる同時接続数や、シングル ユーザーが所有するプロセスの数を制限できます。どちらかの制限を超えた場合、接続試行は失敗します。
ルーターまたはスイッチへのリモート アクセス用の Telnet サービスの設定
アクセス サービスとして Telnet を受け入れるように ルーター またはスイッチを設定するには、[edit system services] 階層レベルで telnet ステートメントを含めます。
[edit system services] telnet { connection-limit limit; rate-limit limit; }
デフォルトでは、ルーターまたはスイッチがサポートする 1 分あたりの同時 Telnet セッションと接続試行の数は制限されています。
オプションとして、以下のステートメントのいずれかまたは両方を含めることで、デフォルトを変更できます。
-
connection-limit limit—プロトコルあたりの同時接続の最大数(IPV4 と IPv6)。範囲は1から250です。デフォルトは75です。接続制限を設定する場合、プロトコルごとの telnet セッションの数に制限が適用されます(IPv4 と IPv6)。例えば、接続制限が 10 の場合、10 の IPv6 telnet セッションと 10 の IPv4 telnet セッションが許可されます。 -
rate-limit limit—1 分あたりに受け入れられる接続試行の最大数(1 から 250 まで)。デフォルトは 150 です。レート制限を設定する場合、プロトコルごとの接続試行の数に制限が適用されます(IPv4 と IPv6)。例えば、レート制限が 10 の場合、1 分あたり 10 回の IPv6 telnet セッション接続試行と 10 回の IPv4 telnet セッション接続試行が許可されます。
ルーターまたはスイッチへのリモートアクセス用のFTPサービスの設定
アクセスサービスとしてFTPを承認するようデバイスを設定するには、[edit system services]階層レベルでftpステートメントを含めます。
[edit system services] ftp;
パッシブFTPを使用して、パッシブFTPサービスのみを受け入れるデバイスにアクセスできます。FTP を使用するすべてのコマンドとステートメントも、パッシブ FTP を受け入れます。アクティブFTPまたはパッシブFTPを使用するには、[edit system services]階層レベルにftpステートメントを含めます。
パッシブFTPセッションを開始するには、標準のFTP形式(ftp://destination)で(ftpではなく)pasvftpを使用します。例えば:
request system software add pasvftp://name.com/jinstall.tgz
ルーターへのリモートアクセス用のフィンガーサービスを設定する
アクセスサービスとしてfingerを受け入れるようにルーターを設定するには、[edit system services]階層レベルでfingerステートメントを含めます。
[edit system services] finger;
ルーターまたはスイッチへのリモートアクセス用にSSHサービスを設定する
アクセスサービスとしてSSHを承認するようにルーターまたはスイッチを設定するには、[edit system services]階層レベルにsshステートメントを含めます。
[edit system services] ssh { authentication-order [method 1 method2...]; authorized-keys-command authorized-keys-command; authorized-keys-command-user authorized-keys-command-user; authorized-principals-file filename authorized-principals-command program-path ciphers [ cipher-1 cipher-2 cipher-3 ...]; client-alive-count-max number; client-alive-interval seconds; connection-limit limit; fingerprint-hash (md5 | sha2-256); host-certificate-file filename hostkey-algorithm (algorithm | no-algorithm); key-exchange [algorithm1 algorithm2...]; log-key-changes log-key-changes; macs [algorithm1 algorithm2...]; max-pre-authentication-packets number; max-sessions-per-connection number; no-challenge-response; no-password-authentication; no-passwords; no-public-keys; no-tcp-forwarding; port port-number; protocol-version [v2]; rate-limit number; rekey { data-limit bytes; time-limit minutes; } root-login (allow | deny | deny-password); sftp-server; tcp-forwarding; trusted-user-ca-key-file filename }
デフォルトでは、ルーターまたはスイッチがサポートする 1 分あたりの同時 SSH セッションと接続試行の数は制限されています。デフォルトを変更するには、以下のステートメントを使用します。
-
connection-limit limit—プロトコルあたりの同時接続の最大数(IPv4 と IPv6)。範囲は1から250までの値です。デフォルトは75です。接続制限を設定する場合、プロトコルごとのSSHセッションの数に制限が適用されます(IPv4とIPv6)。例えば、接続制限が10の場合、10のIPv6 SSHセッションと10のIPv4 SSHセッションが許可されます。 -
max-sessions-per-connection number- このステートメントを含めて、1つのSSH接続で許可されるSSHセッションの最大数を指定します。これにより、1つのSSH接続内でトンネルされるクローンセッションの数を制限できます。デフォルト値は10です。 -
rate-limit limit—1 分あたりに受け入れられる接続試行の最大数(1 から 250 までの値)。デフォルトは 150 です。レート制限を設定する場合、プロトコルごとの接続試行の数に制限が適用されます(IPv4 と IPv6)。例えば、レート制限が 10 の場合、1 分あたり 10 回の IPv6 SSH セッション接続試行と 10 回の IPv4 SSH セッション接続試行が許可されます。 -
data-limit- セッションキーを再ネゴシエーションするまでのデータ制限(バイト) -
time-limit—セッションキーを再ネゴシエーションするまでの時間制限(分)
デフォルトでは、ユーザーはCLIセッションを介してSSH経由でJunos OSを実行しているルーターへのSSHトンネルを作成できます。このタイプのトンネルを使用すると、ファイアウォールフィルターやアクセス制御リストをバイパスして、TCPトラフィックを転送できます。このタイプのトンネルは、ファイアウォールフィルターやアクセス制御リストをバイパスすることで、ルーターを超えたリソースへのアクセスを可能にします。 no-tcp-forwarding オプションを使用して、ユーザーがSSH経由でルーターへのSSHトンネルを作成できないようにします。
ジュニパーネットワークスは、既存の公開鍵暗号の有限領域暗号(FFC)パラメーターを強化し、SSHプロトコルに量子バッファーを使用する暗号関連量子コンピューター(CRQC)のリスクを軽減します。この量子バッファー・アプローチは、FFCパラメーターを強化することで、時間枠を延長し、暗号解読攻撃に抵抗します。量 子バッファを参照してください。
その他の構成設定については、以下のトピックを参照してください。
SSH経由でルートログインを構成する
デフォルトでは、パスワードを必要としない場合、ユーザーは認証SSH経由でrootとしてルーターまたはスイッチにログインできます。SSHを介してユーザーアクセスを制御するには、[edit systems services ssh]階層レベルでroot-loginステートメントを含めます。
[edit system services ssh] root-login (allow | deny | deny-password);
allow—ユーザーがSSH経由でrootとしてルーターまたはスイッチにログインできるようにします。
deny—ユーザーがSSH経由でrootとしてルーターまたはスイッチにログインできないようにします。
deny-password - 認証方法(例:RSA)がパスワードを必要としない場合、ユーザーがSSH経由でrootとしてルーターまたはスイッチにログインできるようにします。
デフォルトは deny-passwordです。
受信SFTP接続の設定
SSHファイル転送プロトコル(SFTP)は、任意の信頼できるデータストリーム上でファイルアクセス、ファイル転送、ファイル管理を提供するネットワークプロトコルです。受信SFTP接続はデフォルトで無効になっています。必要に応じて、[edit system services ssh]階層レベルでステートメントsftp-serverを設定することで、受信SFTP接続をグローバルに有効にできます。
デフォルトでは、受信SFTP接続のみが無効になっています。例えば、デバイスAとBがある場合、デフォルトではBからAへSFTPで接続することはできません。ただし、デバイスAで sftp-server を構成すれば、デバイスBからデバイスAへSFTPで接続できます。
受信SFTP接続はデフォルトで無効になっています。受信SFTP接続を有効にするには:
SSHプロトコルのバージョンを構成する
デフォルトでは、SSHプロトコルのバージョン2のみが有効になっています。
SSHプロトコルのバージョン2を使用するようにルーターまたはスイッチを構成するには、protocol-versionステートメントを含め、[edit system services ssh]階層レベルでv2を指定します。
[edit system services ssh] protocol-version [ v2 ];
クライアントアライブメカニズムを設定する
クライアントアライブメカニズムは、クライアントまたはサーバーが、接続がいつ非アクティブになったかを知ることに依存している場合に有効です。これは、標準のキープアライブメカニズムとは異なり、クライアントアライブメッセージは暗号化されたチャネルを介して送信されます。クライアントアライブメカニズムは、デフォルトでは有効になっていません。有効にするには、 client-alive-count-max および client-alive-interval ステートメントを設定します。このオプションは、SSHプロトコルバージョン2にのみ適用されます。
次の例では、応答しないSSHクライアントは、約100秒(20 × 5)後に切断されます。
[edit system ssh] client-alive-count-max 5; client-alive-interval 20;
SSHフィンガープリントハッシュアルゴリズムを設定する
SSHサーバーがキーフィンガープリントを表示する際に使用するハッシュアルゴリズムを設定するには、fingerprint-hashステートメントを含め、[edit system services ssh]階層レベルでmd5またはsha2-256を指定します。
[edit system services ssh] fingerprint-hash (md5 | sha2-256);
SSH証明書ベースの認証の概要
Junos OSおよびJunos OS Evolvedリリース22.4R1以降、ユーザーとホストに対してSSH証明書ベースの認証を設定できるようになりました。この機能により、キーのフィンガープリントを検証することなく、ユーザーやトラストホスト向けにパスワードレスのSSHアクセスを確立できます。
SSH証明書ベースの認証のメリット
-
SSH証明書ベースの認証により、ユーザーがパスワードを覚えて入力する必要がなくなり、ログインプロセスが合理化されます。
-
従来のパスワードベースのアプローチと比較して、SSH証明書はより強力なセキュリティを提供します。推測したり解読したりするためのパスワードがないため、侵害は困難です。
-
SSH証明書は、認証キーの管理を簡素化します。管理者は、ユーザーやホストごとに個別の鍵を管理する代わりに、一元化された認証局から証明書を発行および取り消すことができます。
署名キーの生成
署名キーは、SSH証明書ベースの認証で使用される特殊な暗号化キーです。SSH証明書ベースの認証を設定するための最初のステップは、署名キーを生成することです。任意の Linux/FreeBSD システムで署名キーを生成できます。SSH証明書ベースの認証用の署名キーを生成するには、以下の手順に従います。
コマンドを実行します:
ssh-keygen -f <filename_ca>。これにより、<filename_ca>という名前の秘密キーと、<filename_ca.pub>という名前の対応する公開キーが作成されます。ジュニパーデバイスにログインし、次のコマンドを実行してSSH信頼ユーザー認証機関(CA)キーファイルを設定します:
set system services ssh trusted-user-ca-key-file <path-to-public-key>してから、設定をコミットします。各ユーザーは、次のCLIコマンドを使用して、独自のユーザーキーを生成できます。
ssh-keygen -t <rsa|ecdsa|ed25519>。ユーザー証明書
<filename_ca>と<filename_ca.pub>を持つマシンに、ユーザーが作成した公開キーをコピーします。<filename_ca.pub>ファイル内のユーザー公開キーに署名します。
設定
SSH証明書ベースの認証を設定するには、以下のCLI設定ステートメントを使用します。
-
[system services ssh trusted-user-ca-key-file filename]—SSH証明書の公開キーを含むTrustedUserCAKeyファイルを設定します。 -
[system services ssh host-certificate-file filename]—署名されたホスト証明書を含むHostCertificateファイルを設定します。 -
[system services ssh authorized-principals-file filename]—名前のリストを含むAuthorizedPrincipalsファイルを設定します。認証で承認されるには、そのうちの1つが証明書に記載されている必要があります。 -
[system services ssh authorized-principals-command program-path]—AuthorizedPrincipalsファイルで見つかった、許可される証明書プリンシパルのリストの生成に使用するプログラムを指定します。
SSHの無効化
SSHを有効にし、無効にしたい場合は、[edit system services]階層レベルからsshステートメントを削除するだけです。
外部SSHのみを無効にする場合は、[edit system services ssh]階層レベルでaccess-disable-externalステートメントを使用します。
SSHがデフォルトで有効になっている場合、通常のように [edit system services] 階層を介して無効にすることはできません。代わりに、ファイアウォールフィルターを設定して、SSHアクセスを拒否できます。
set firewall family inet filter SSH-FILTER term 1 from protocol tcp set firewall family inet filter SSH-FILTER term 1 from port ssh set firewall family inet filter SSH-FILTER term 1 from interface fxp0 set firewall family inet filter SSH-FILTER term 1 then discard set firewall family inet filter SSH-FILTER term 2 then accept
ステップバイステップの手順
SSHアクセスを拒否するようにファイアウォールフィルターを設定するには、以下の手順に従ってください。
-
フィルター条件 1を定義します。この用語は、SSHからのTCPトラフィックを拒否します。
[edit] user@R1# set firewall family inet filter SSH-FILTER term 1 from protocol tcp user@R1# set firewall family inet filter SSH-FILTER term 1 from port ssh user@R1# set firewall family inet filter SSH-FILTER term 1 from interface fxp0 user@R1# set firewall family inet filter SSH-FILTER term 1 then discard
-
フィルター条件 2を定義します。この条件は、フィルター条件 1によって拒否されないトラフィックを許可します。
[edit] user@R1# set firewall family inet filter SSH-FILTER term 2 then accept
ファイアウォールフィルターを使用してSSHを無効にする方法の詳細については、 例:TelnetおよびSSHアクセスをブロックするフィルターを設定するを参照してください。
telnet コマンド
CLI telnet コマンドを使用して、リモートデバイスへのTelnetセッションを開くことができます。
user@host> telnet host <8bit> <inet> <inet6> <port port> <routing-instance routing-instance-name>
Telnet セッションを終了して Telnet コマンド プロンプトに戻るには、Ctrl-] 押します。
Telnet セッションを出て CLI コマンド プロンプトに戻るには、 quit を入力します。
| オプション |
説明 |
|---|---|
|
|
8 ビット データ パスを使用します。 |
|
|
指定されたホスト名または IP アドレスへの Telnet セッションを開きます。 |
|
|
IPv4 宛先への Telnet セッションを強制します。 |
|
|
IPv6 宛先への Telnet セッションを強制します。 |
|
|
ホスト上のポート番号またはサービス名を指定します。 |
|
|
Telnet セッションに指定されたルーティング インスタンスを使用します。 |
sshコマンド
CLI ssh コマンドを使用して、セキュアシェル(SSH)プログラムを使用して、リモートデバイスへの接続を開くことができます。
user@host> ssh host <bypass-routing> <inet> <inet6> <interface interface-name> <logical-system> <routing-instance routing-instance-name> <source address> <v2>
表2に 、 ssh コマンドオプションを示します。
| オプション |
説明 |
|---|---|
|
|
ルーティングテーブルをバイパスして、SSH接続を直接接続されたインターフェイス上のホストのみに開きます。ホストが直接接続されたインターフェイスではない場合、エラー メッセージが返されます。 |
|
|
SSH 接続を、指定されたホスト名または IP アドレスに開きます。 |
|
|
IPv4 の宛先への SSH 接続を強制します。 |
|
|
IPv6 の宛先への SSH 接続を強制します。 |
|
|
SSH接続を、指定されたインターフェース上のホストに開きます。このオプションが含まれていない場合、すべてのインターフェイスが使用されます。 |
|
|
SSH接続に指定されたルーティングインスタンスを使用します。 |
|
|
SSH 接続に指定された論理システムを使用します。 |
|
|
SSH 接続に指定された送信元アドレスを使用します。 |
|
|
SSHを強制して、接続にバージョン2を使用します。 |
データを安全にコピーするためのSSH既知のホストキーを設定する
セキュアシェル(SSH)は、暗号化アルゴリズムを使用して、安全なデータ転送を保証するホスト、サーバー、セッションキーシステムを生成します。設定アーカイブやイベントログなどのデータのバックグラウンド転送用のFTPの代替として、SSHホストキーを設定し、安全なコピー(SCP)をサポートできます。SCPのSSHサポートを設定するには、以下のタスクを完了する必要があります。
-
ルーティングエンジンの設定階層にホスト名とホストキー情報を含めて、SSHの既知のホストを指定します。
-
SCP URLを設定して、データを受信するホストを指定します。この属性を設定すると、SCPサーバーからSSHホストキー情報を自動的に取得します。
-
ホストキーが本物であることを確認します。
-
安全な接続を受け入れます。この接続を受け入れることで、ローカルホストキーデータベースにホストキー情報が自動的に保存されます。設定階層にホストキー情報を保存することで、セキュアなハンドシェイクが自動化され、SCPを使用したバックグラウンドデータ転送が可能になります。
データの安全なコピーのためのSSHホストキーを設定するタスクは、以下の通りです。
SSH既知のホストを設定する
SSHの既知のホストを設定するには、 host ステートメントを含め、 [edit security ssh-known-hosts] 階層レベルで信頼できるサーバーのホスト名とホストキーオプションを指定します。
[edit security ssh-known-hosts]
host corporate-archive-server {
dsa-key key;
}
host archive-server-url {
rsa-key key;
}
host server-with-ssh-version-1 {
rsa1-key key;
}
ホストキーは次のいずれかです。
-
dsa-key key—SSHバージョン2用のBase64エンコード済みデジタル署名アルゴリズム(DSA)キー。 -
ecdsa-sha2-nistp256-keykey—Base64エンコード済みECDSA-SHA2-NIST256キー。 -
ecdsa-sha2-nistp384-keykey—Base64エンコード済みECDSA-SHA2-NIST384キー。 -
ecdsa-sha2-nistp521-keykey—Base64エンコード済みECDSA-SHA2-NIST521キー。 -
ed25519-keykey—Base64エンコードされたED25519キー。 -
rsa-key key—SSHバージョン1およびSSHバージョン2の暗号化とデジタル署名をサポートするBase64エンコード済み公開キーアルゴリズム。 -
rsa1-key key—SSHバージョン1の暗号化とデジタル署名をサポートするBase64エンコード済みRSA公開キーアルゴリズム。
SCPファイル転送のサポートを設定する
バックグラウンドSCPファイル転送をサポートする既知のホストを設定するには、[edit system archival configuration]階層レベルでarchive-sitesステートメントを含めます。
[edit system archival configuration]
archive-sites {
scp://username<:password>@host<:port>/url-path;
}
IPv6ホストアドレスを使用して Junos OS Evolved ステートメントでURLを指定する場合、URL全体を引用符("")で囲み、IPv6ホストアドレスを括弧([ ])で囲む必要があります。たとえば、「 scp://username<:password>@[host]<:port>/url-path」です。
SCP URLを指すように archive-sites ステートメントを設定すると、自動ホストキー取得がトリガーされます。この時点で、 Junos OS Evolved はSCPホストに接続してSSHパブリックキーを取得し、ホストキーメッセージダイジェストまたはフィンガープリントをコンソールへの出力として表示して、サーバーへの接続を終了します。
user@host# set system archival configuration archive-sites “<scp-url-path>” The authenticity of host <my-archive-server (<server-ip-address>)> can’t be established. RSA key fingerprint is <ascii-text key>. Are you sure you want to continue connecting (yes/no)?
ホストキーが本物であることを確認するには、このフィンガープリントを、信頼できる送信元を使って同じホストから取得したフィンガープリントと比較します。フィンガープリントが同一である場合は、プロンプトで yes を入力してホストキーを受け入れます。次に、ホストキー情報がルーティングエンジンの設定に保存され、SCPを使用したバックグラウンドデータ転送をサポートします。
SSHホストキー情報を更新する
通常、[edit system]階層レベルでarchival configuration archive-sitesステートメントを使用してSCPのURL属性を設定すると、SSHホストキー情報が自動的に取得されます。ただし、ホストキーデータベースを手動で更新する必要がある場合は、以下の方法のいずれかを使用します。
ホストキー情報を手動で取得する
SSHパブリックホストキー情報を手動で取得するには、[edit security ssh-known-hosts]階層レベルでfetch-from-serverオプションを設定します。SSHパブリックキーを取得するホストを指定する必要があります。
user@host# set security ssh-known-hosts fetch-from-server <hostname>
ファイルからホストキー情報をインポートする
known_hostsファイルからSSHホストキー情報を手動でインポートするには、[edit security ssh-known-hosts]階層レベルでload-key-fileオプションを含めます。ホストキー情報をインポートするファイルへのパスを指定する必要があります。
user@host# set security ssh-known-hosts load-key-file /var/tmp/known-hosts
レガシー暗号化をサポートするようにSSHサービスを設定する
Junos OS Evolvedを設定して、従来の暗号化暗号と鍵交換方法をサポートできます。
Junos OS Evolved は、デフォルトで以下の暗号のセットをサポートしています。
-
chacha20-poly1305@openssh.com -
aes128-ctr -
aes192-ctr -
aes256-ctr -
aes128-gcm@openssh.com -
aes256-gcm@openssh.com
Junos OS Evolvedでは、以下の暗号方式はデフォルトではサポートされていませんが、デバイスがサポートするように設定できます。これらは、セキュリティが最も強いものから最も弱いものまで多岐にわたります。
-
aes256-cbc -
aes192-cbc -
aes128-cbc
Junos OS Evolved は、デフォルトで以下の鍵交換方法のセットをサポートしています。
-
curve25519-sha256 -
ecdh-sha2-nistp256 -
ecdh-sha2-nistp384 -
ecdh-sha2-nistp521 -
group-exchange-sha2 -
dh-group14-sha1
Junos OS Evolvedでは、以下の鍵交換方法はデフォルトではサポートされていませんが、デバイスがサポートするように設定できます。
-
group-exchange-sha1 -
dh-group1-sha1
SSHサービスがレガシー暗号化をサポートするように設定するには:
暗号方式、鍵交換方法、またはMAC(メッセージ認証コード)の順序付きセットを設定することで、新しく定義されたセットがサーバーコマンドとクライアントコマンドの両方に適用されます。デフォルトの変更は、SCP(セキュアコピープロトコル)を使用している場合、 file copy コマンドに影響を与えます。
関連項目
アウトバウンドSSHサービスを設定する
Junos OS Evolvedを実行しているデバイスを設定して、クライアント管理アプリケーションとのTCP/IP接続を開始できます。デバイスがファイアウォールなどの理由で、管理アプリケーションがジュニパーネットワークスデバイスに到達しない場合。この場合、ジュニパーネットワークスデバイス上でoutbound-sshを設定できます。outbound-ssh設定は、サーバーからクライアント、管理アプリケーションへのリバースSSH接続を開始します。このアウトバウンドSSH接続は、デバイスから設定が削除された後にのみ切断されます。
アウトバウンドSSHに開始コマンドはありません。アウトバウンドSSHを設定してコミットすると、デバイスはコミットされた設定に基づいてアウトバウンドSSH接続を開始します。デバイスは、成功するまでこの接続の作成を繰り返し試みます。デバイスとクライアント管理アプリケーション間の接続が切断された場合、デバイスは成功するまで新しいアウトバウンドSSH接続の作成を再試行します。この接続は、アウトバウンド SSH スタンザが設定から削除されるまで維持されます。
アウトバウンド SSH 接続用にデバイスを構成するには、[edit system services] 階層レベルで outbound-ssh ステートメントを含めます。
[edit system services outbound-ssh]
次のトピックでは、アウトバウンドSSHサービスを設定する作業について説明します。
- アウトバウンド SSH クライアントに公開 SSH ホストキーを送信する
- アウトバウンド SSH 接続のキープアライブメッセージを設定する
- 新しいアウトバウンド SSH 接続を設定する
- アウトバウンド SSH クライアントを設定して、利用可能なサービスとして NETCONF を承認する
- アウトバウンドSSHクライアントを設定する
- アウトバウンド SSH クライアントにルーティングインスタンスを設定する
アウトバウンド SSH クライアントに公開 SSH ホストキーを送信する
ルーターまたはスイッチがアウトバウンド SSH 接続を確立するたびに、まず管理クライアントに開始シーケンスを送信します。このシーケンスでは、管理クライアントに対するルーターまたはスイッチを識別します。この送信内には、 device-idの値があります。
ルーターまたはスイッチのデバイス識別子を設定するには、[edit system services outbound-ssh client client-id]階層レベルでdevice-idステートメントを含めます。
[edit system services outbound-ssh client client-id] device-id device-id;
secretが設定されていない場合の開始シーケンス:
MSG-ID: DEVICE-CONN-INFO\r\n MSG-VER: V1\r\n DEVICE-ID: <device-id>\r\n
SSH接続の起動中に、クライアントはデバイスの公開SSHホストキーを使用してデバイスのIDを認証します。そのため、クライアントが SSH シーケンスを開始する前に、クライアントにはデバイスの公開 SSH キーが必要になります。 secret ステートメントを設定すると、デバイスはアウトバウンドSSH接続開始シーケンスの一部として公開SSHキーに渡します。
secretステートメントが設定され、デバイスがアウトバウンドSSH接続を確立すると、デバイスはデバイスID、公開SSHキー、およびsecretステートメントの一部から派生したSHA1ハッシュを伝達します。secretステートメントの値は、デバイスと管理クライアント間で共有されます。クライアントは、共有シークレットを使用して受信している公開SSHホストキーを認証し、公開キーがdevice-idステートメントによって識別されるデバイスからのものかどうかを判断します。
secretステートメントを使用した公開SSHホストキーの送信はオプションです。公開キーは、手動でクライアントシステムに送信およびインストールできます。
secret ステートメントを含めると、デバイスはクライアントとの接続を確立するたびに、公開 SSH ホストキーを送信します。その後、クライアントがそのデバイスの SSH キーがすでにある場合、SSH ホストキーで何をするかを決定するのはクライアント次第です。SSHホストキーのクライアントのコピーを新しいキーと置き換えることをお勧めします。ホストキーはさまざまな理由で変更される可能性があります。接続が確立するたびにキーを置換することで、クライアントのキーが最新のものであることを確認できます。
デバイスがクライアントに接続したときに、ルーターまたはスイッチの公開SSHホストキーを送信するには、[edit system services outbound-ssh client client-id]階層レベルでsecretステートメントを含めます。
[edit system services outbound-ssh client client-id] secret password;
secret属性が設定されると、デバイスから次のメッセージが送信されます。
MSG-ID: DEVICE-CONN-INFO\r\n MSG-VER: V1\r\n DEVICE-ID: <device-id>\r\n HOST-KEY: <public-host-key>\r\n HMAC:<HMAC(pub-SSH-host-key, <secret>>)>\r\n
アウトバウンド SSH 接続のキープアライブメッセージを設定する
クライアントアプリケーションにルーターまたはスイッチの公開 SSH ホストキーが設定されたら、TCP/IP 接続を作成したときと同様に SSH シーケンスを開始できます。クライアントは、そのシーケンスの一部として、ルーターまたはスイッチの公開ホスト SSH キーのコピーを使用してデバイスを認証できます。デバイスは、 Junos OS Evolved でサポートされているメカニズム(RSA/DSA公開文字列またはパスワード認証)を介してクライアントユーザーを認証します。
デバイスがSSHプロトコルキープアライブメッセージをクライアントアプリケーションに送信できるようにするには、[edit system services outbound-ssh client client-id]階層レベルでkeep-aliveステートメントを設定します。
[edit system services outbound-ssh client client-id]
keep-alive {
retry number;
timeout seconds;
}
新しいアウトバウンド SSH 接続を設定する
切断されると、デバイスは新しいアウトバウンド SSH 接続を開始し始めます。接続が切断された後でデバイスがサーバーに再接続する方法を指定するには、[edit system services outbound-ssh client client-id]階層レベルでreconnect-strategyステートメントを含めます。
[edit system services outbound-ssh client-id] reconnect-strategy (sticky | in-order);
また、再試行回数を指定して、再接続が停止するまでの時間を設定することもできます。 アウトバウンド SSH 接続のキープアライブメッセージの設定を参照してください。
アウトバウンド SSH クライアントを設定して、利用可能なサービスとして NETCONF を承認する
利用可能なサービスとしてNETCONFを受け入れるようにアプリケーションを設定するには、[edit system services outbound-ssh client client-id]階層レベルでservices netconfステートメントを含めます。
[edit system services outbound-ssh client client-id]
services {
netconf;
}
アウトバウンドSSHクライアントを設定する
このアウトバウンド SSH 接続で利用可能なクライアントを設定するには、 [edit system services outbound-ssh client client-id] 階層レベルで個別のアドレスステートメントとともに各クライアントをリストします。
[edit system services outbound-ssh client client-id]
address address {
retry number;
timeout seconds;
port port-number;
}
アウトバウンドSSH接続は、IPv4およびIPv6アドレスフォーマットをサポートしています。
アウトバウンド SSH クライアントにルーティングインスタンスを設定する
管理ルーティングインスタンスを使用するには、まずset system management-instanceコマンドを使用してmgmt_junosルーティングインスタンスを有効にします。
他のルーティングインスタンスを使用するには、まず [edit routing-instances] 階層でルーティングインスタンスを設定します。
ルーティングインスタンスを指定しない場合、デバイスはデフォルトのルーティングテーブルを使用してアウトバウンドSSH接続を確立します。
指定されたTCPポートでのNETCONF-over-SSH接続の設定
Junos OS Evolvedでは、ファイアウォールを設定せずに、指定されたTCPポートに受信NETCONF接続を制限することができます。NETCONF-over-SSH接続に使用するTCPポートを設定するには、[edit system services netconf ssh]階層レベルでportステートメントを含めます。設定されたポートは、NETCONF-over-SSHセッションのみを受け入れます。このポートに対する通常のSSHセッション要求は拒否されます。
RFC 4742の「 NETCONF Configuration Protocol over Secure Shell(SSH)」で規定されているように、SSHを介したNETCONF接続にデフォルトポート830を設定するか、1から65535までの任意のポートを設定することができます。
-
デフォルトのSSHポート(22)は、設定されたNETCONFサーバーポートでもNETCONFセッションを受け入れ続けます。SSHポートがNETCONFセッションの受け入れを無効にするには、ログインイベントスクリプトでこれを指定します。
-
NETCONF-over-SSH接続の設定については、FTP(21)およびTelnet(23)サービスのデフォルトポートを設定することは推奨しません。