Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

リモートアクセスの概要

お客様(ネットワーク管理者)は、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 ステートメントを含めます。

デフォルトでは、ルーターまたはスイッチがサポートする 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 セッション接続試行が許可されます。

Junos-FIPSソフトウェアを実行するデバイスに telnet ステートメントを含めることはできません。コモンクライテリア 環境ではTelnetを使用しないことをお勧めします。

ルーターまたはスイッチへのリモートアクセス用のFTPサービスの設定

アクセスサービスとしてFTPを承認するようデバイスを設定するには、[edit system services]階層レベルでftpステートメントを含めます。

デフォルトでは、ルーターまたはスイッチがサポートする 1 分あたりの同時 FTP セッションと接続試行の数は制限されています。次のステートメントのいずれかまたは両方を含めることで、デフォルトを変更できます。

  • connection-limit limit—プロトコルあたりの同時接続の最大数(IPV4 と IPv6)。範囲は1 から250までの値です。デフォルトは75です。接続制限を設定する場合、プロトコルごとのセッションの数に制限が適用されます(IPv4 と IPv6)。例えば、接続制限が 10 の場合、10 の IPv6 FTP セッションと 10 の IPv4 FTP セッションが許可されます。

  • rate-limit limit—1 分あたり に受け入れられる接続試行の最大数(1 から 250 までの値)。デフォルトは 150 です。レート制限を設定する場合、プロトコルごとの接続試行の数に制限が適用されます(IPv4 と IPv6)。例えば、レート制限が 10 の場合、10 回の IPv6 FTP セッション接続試行と 10 回の IPv4 FTP セッション接続試行が許可されます。

パッシブFTPを使用して、パッシブFTPサービスのみを受け入れるデバイスにアクセスできます。FTP を使用するすべてのコマンドとステートメントも、パッシブ FTP を受け入れます。[edit system services]階層レベルでftpステートメントを含め、アクティブFTPまたはパッシブFTPを使用します。

パッシブFTPセッションを開始するには、標準のFTP形式(ftp://destination)で(ftpではなく)pasvftpを使用します。次に例を示します。

Junos-FIPS ソフトウェアを実行するルーターまたはスイッチに ftp ステートメントを含めることはできません。コモンクライテリア環境ではFTPサービスを使用しないことをお勧めします。

ルーターへのリモートアクセス用のフィンガーサービスを設定する

アクセスサービスとしてfingerを受け入れるようにルーターを設定するには、[edit system services]階層レベルでfingerステートメントを含めます。

デフォルトでは、ルーターは 1 分あたりの同時フィンガーセッションと接続試行の数制限をサポートします。オプションとして、以下のステートメントのいずれかまたは両方を含めることで、デフォルトを変更できます。

  • connection-limit limit—プロトコルあたりの同時接続の最大数(IPv4 と IPv6)。範囲は1 から250までの値です。デフォルトは75です。接続制限を設定する場合、プロトコルごとのセッションの数に制限が適用されます(IPv4 と IPv6)。例えば、接続制限が 10 の場合、10 回の IPv6 クリアテキストサービスセッションと 10 回の IPv4 クリアテキストサービスセッションが許可されます

  • rate-limit limit—1 分あたり に受け入れられる接続試行の最大数(1 から 250 までの値)。デフォルトは 150 です。レート制限を設定する場合、プロトコルごとの接続試行の数に制限が適用されます(IPv4 と IPv6)。例えば、レート制限が 10 の場合、1 分あたり 10 回の IPv6 セッション接続試行と 10 回の IPv4 セッション接続試行が許可されます。

Junos-FIPS ソフトウェアを実行するルーターに finger ステートメントを含めることはできません。コモンクライテリア環境ではフィンガーサービスを使用しないことをお勧めします。

ルーターまたはスイッチへのリモートアクセス用にSSHサービスを設定する

アクセスサービスとしてSSHを承認するようにルーターまたはスイッチを設定するには、[edit system services]階層レベルにsshステートメントを含めます。

デフォルトでは、ルーターまたはスイッチがサポートする 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—セッションキーを再ネゴシエーションするまでの時間制限(分)

Junos OSリリース 19.4R1 Junos OSリリース 17.4R3 以降、[edit system services ssh] 階層レベルの no-password-authentication オプションと no-challenge-response オプションを使用して、SSH ログインパスワードまたはチャレンジ-レスポンス 認証のいずれかを無効にできるようになりました。

デフォルトでは、ユーザーは SSH 経由で Junos OS を実行しているルーターへの CLI セッション経由で SSH トンネルを作成できます。このタイプのトンネルを使用すると、ファイアウォールフィルターやアクセス制御リストをバイパスして、TCPトラフィックを転送できます。このタイプのトンネルは、ファイアウォールフィルターやアクセス制御リストをバイパスすることで、ルーターを超えたリソースへのアクセスを可能にします。 no-tcp-forwarding オプションを使用して、ユーザーがSSH経由でルーターへのSSHトンネルを作成できないようにします。

その他の構成設定については、以下のトピックを参照してください。

SSH経由でルートログインを構成する

デフォルトでは、パスワードを必要としない場合、ユーザーは認証SSH経由でrootとしてルーターまたはスイッチにログインできます。SSHを介してユーザーアクセスを制御するには、[edit systems services ssh]階層レベルでroot-loginステートメントを含めます。

allow—ユーザーがSSH経由でrootとしてルーターまたはスイッチにログインできるようにします。

deny—ユーザーがSSH経由でrootとしてルーターまたはスイッチにログインできないようにします。

deny-password - 認証方法(例:RSA)がパスワードを必要としない場合、ユーザーがSSH経由でrootとしてルーターまたはスイッチにログインできるようにします。

デフォルトは deny-passwordです。

受信SFTP接続の設定

SSHファイル転送プロトコル(SFTP)は、任意の信頼できるデータストリーム上でファイルアクセス、ファイル転送、ファイル管理を提供するネットワークプロトコルです。Junos OSリリース19.1R1以降、受信SFTP接続はデフォルトでグローバルに無効化されるようになりました。必要に応じて、[edit system services ssh]階層レベルでステートメントsftp-serverを設定することで、受信SFTP接続をグローバルに有効にできます。Junos OSリリース19.1R1以前は、受信SFTP接続はデフォルトでグローバルに有効になっていました。

注:

デフォルトでは、受信SFTP接続のみが無効になっています。例えば、デバイスAとB(デバイスAでは19.1R1が動作)がある場合、デフォルトではBからAへSFTPで接続することはできません。ただし、デバイスAで sftp-server を構成すれば、デバイスBからデバイスAへSFTPで接続できます。

受信SFTP接続はデフォルトで無効になっています。受信SFTP接続を有効にするには:

  1. [edit system services ssh]階層レベルでsftp-serverステートメントを設定します。
  2. 設定をコミットします。

    sftp-serverステートメントは現在アクティブです。したがって、受信SFTP接続は有効になります。

SSHプロトコルのバージョンを構成する

デフォルトでは、SSHプロトコルのバージョン2のみが有効になっています。

SSHプロトコルのバージョン2を使用するようにルーターまたはスイッチを構成するには、protocol-versionステートメントを含め、[edit system services ssh]階層レベルでv2を指定します。

FIPSモードのシステムは、常にSSHプロトコルバージョン v2を使用します。

クライアントアライブメカニズムを設定する

クライアントアライブメカニズムは、クライアントまたはサーバーが、接続がいつ非アクティブになったかを知ることに依存している場合に有効です。これは、標準のキープアライブメカニズムとは異なり、クライアントアライブメッセージは暗号化されたチャネルを介して送信されます。クライアントアライブメカニズムは、デフォルトでは有効になっていません。有効にするには、 client-alive-count-max および client-alive-interval ステートメントを設定します。このオプションは、SSHプロトコルバージョン2にのみ適用されます。

次の例では、応答しないSSHクライアントは、約100秒(20 × 5)後に切断されます。

SSHフィンガープリントハッシュアルゴリズムを設定する

SSHサーバーがキーフィンガープリントを表示する際に使用するハッシュアルゴリズムを設定するには、fingerprint-hashステートメントを含め、[edit system services ssh]階層レベルでmd5またはsha2-256を指定します。

md5ハッシュアルゴリズムは、FIPSモードのシステムでは使用できません。

SSH証明書ベースの認証の概要

Junos OSおよびJunos OS Evolvedリリース22.4R1以降、ユーザーとホストに対してSSH証明書ベースの認証を設定できるようになりました。この機能により、キーのフィンガープリントを検証することなく、ユーザーやトラストホスト向けにパスワードレスのSSHアクセスを確立できます。

SSH証明書ベースの認証のメリット

  • SSH証明書ベースの認証により、ユーザーがパスワードを覚えて入力する必要がなくなり、ログインプロセスが合理化されます。

  • 従来のパスワードベースのアプローチと比較して、SSH証明書はより強力なセキュリティを提供します。推測したり解読したりするためのパスワードがないため、侵害は困難です。

  • SSH証明書は、認証キーの管理を簡素化します。管理者は、ユーザーやホストごとに個別の鍵を管理する代わりに、一元化された認証局から証明書を発行および取り消すことができます。

署名キーの生成

署名キーは、SSH証明書ベースの認証で使用される特殊な暗号化キーです。SSH証明書ベースの認証を設定するための最初のステップは、署名キーを生成することです。任意の Linux/FreeBSD システムで署名キーを生成できます。SSH証明書ベースの認証用の署名キーを生成するには、以下の手順に従います。

  1. コマンドを実行します: ssh-keygen -f <filename_ca>。これにより、 <filename_ca> という名前の秘密キーと、 <filename_ca.pub>という名前の対応する公開キーが作成されます。

  2. ジュニパーデバイスにログインし、次のコマンドを実行してSSH信頼ユーザー認証機関(CA)キーファイルを設定します: set system services ssh trusted-user-ca-key-file <path-to-public-key> してから、設定をコミットします。

  3. 各ユーザーは、次のCLIコマンドを使用して、独自のユーザーキーを生成できます。 ssh-keygen -t <rsa|ecdsa|ed25519>

  4. ユーザー証明書 <filename_ca><filename_ca.pub>を持つマシンに、ユーザーが作成した公開キーをコピーします。

  5. <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ステートメントを使用します。

Junos OSリリース21.4R1以降、VMホストがインストールされたJunosプラットフォームでは、デフォルトでSSHが有効になります。

SSHがデフォルトで有効になっている場合、通常のように [edit system services] 階層を介して無効にすることはできません。代わりに、ファイアウォールフィルターを設定して、SSHアクセスを拒否できます。

ステップバイステップの手順

SSHアクセスを拒否するようにファイアウォールフィルターを設定するには、以下の手順に従ってください。

  1. フィルター条件 1を定義します。この用語は、SSHからのTCPトラフィックを拒否します。

  2. フィルター条件 2を定義します。この条件は、フィルター条件 1によって拒否されないトラフィックを許可します。

ファイアウォールフィルターを使用してSSHを無効にする方法の詳細については、 例:TelnetおよびSSHアクセスをブロックするフィルターを設定するを参照してください。

telnet コマンド

CLI telnet コマンドを使用して、リモートデバイスへのTelnetセッションを開くことができます。

注:

SRX100、SRX210、SRX220、SRX240、SRX300、SRX320、SRX340、SRX345、SRX1500 デバイスでは、Telnet セッションの同時最大数は次の表に示されています。プラットフォームのサポートは、インストールされた Junos OS リリースによって異なります。

SRX100

SRX210SRX220

SRX240

SRX300SRX320SRX340

SRX345

SRX1500

3

3

5

3

5

5

Telnet セッションを終了して Telnet コマンド プロンプトに戻るには、Ctrl-] 押します。

Telnet セッションを終了し、CLI コマンド プロンプトに戻るには、 quit を入力します。

表1:CLI telnetコマンドオプション

オプション

説明

8bit

8 ビット データ パスを使用します。

bypass-routing

ルーティングテーブルをバイパスして、直接接続されたインターフェイス上のホストに対してのみTelnetセッションを開きます。ホストが直接接続されたインターフェイスではない場合、エラー メッセージが返されます。

host

指定されたホスト名または IP アドレスへの Telnet セッションを開きます。

inet

IPv4 宛先への Telnet セッションを強制します。

interface source-interface

指定されたインターフェイス上のホストへの Telnet セッションを開きます。このオプションが含まれていない場合、すべてのインターフェイスが使用されます。

no-resolve

記号名の表示を抑制します。

port port

ホスト上のポート番号またはサービス名を指定します。

routing-instance routing-instance-name

Telnet セッションに指定されたルーティング インスタンスを使用します。

source address

Telnet セッションに指定された送信元アドレスを使用します。

sshコマンド

CLI ssh コマンドを使用して、セキュアシェル(SSH)プログラムを使用して、リモートデバイスへの接続を開くことができます。

注:

SRX100、SRX210、SRX220、SRX240、SRX300、SRX320、SRX340、SRX345、SRX1500 デバイスでは、同時 SSH セッションの最大数を次の表に示します。プラットフォームのサポートは、インストールされた Junos OS リリースによって異なります。

SRX100

SRX210SRX220

SRX240

SRX300SRX320SRX340

SRX345

SRX1500

3

3

5

3

5

5

表2にssh コマンドオプションを示します。

表2:CLI sshコマンドオプション

オプション

説明

bypass-routing

ルーティングテーブルをバイパスして、SSH接続を直接接続されたインターフェイス上のホストのみに開きます。ホストが直接接続されたインターフェイスではない場合、エラー メッセージが返されます。

host

SSH 接続を、指定されたホスト名または IP アドレスに開きます。

inet

IPv4 の宛先への SSH 接続を強制します。

interface source-interface

SSH接続を、指定されたインターフェース上のホストに開きます。このオプションが含まれていない場合、すべてのインターフェイスが使用されます。

routing-instance routing-instance-name

SSH接続に指定されたルーティングインスタンスを使用します。

source address

SSH 接続に指定された送信元アドレスを使用します。

v1

SSHを強制して、接続にバージョン1を使用します。

v2

SSHを強制して、接続にバージョン2を使用します。

データを安全にコピーするためのSSH既知のホストキーを設定する

セキュアシェル(SSH)は、暗号化アルゴリズムを使用して、安全なデータ転送を保証するホスト、サーバー、セッションキーシステムを生成します。設定アーカイブやイベントログなどのデータのバックグラウンド転送用のFTPの代替として、SSHホストキーを設定し、安全なコピー(SCP)をサポートできます。SCPのSSHサポートを設定するには、以下のタスクを完了する必要があります。

  • ルーティングエンジンの設定階層にホスト名とホストキー情報を含めて、SSHの既知のホストを指定します。

  • SCP URLを設定して、データを受信するホストを指定します。この属性を設定すると、SCPサーバーからSSHホストキー情報を自動的に取得します。

  • ホストキーが本物であることを確認します。

  • 安全な接続を受け入れます。この接続を受け入れることで、ローカルホストキーデータベースにホストキー情報が自動的に保存されます。設定階層にホストキー情報を保存することで、セキュアなハンドシェイクが自動化され、SCPを使用したバックグラウンドデータ転送が可能になります。

データの安全なコピーのためのSSHホストキーを設定するタスクは、以下の通りです。

SSH既知のホストを設定する

SSHの既知のホストを設定するには、 host ステートメントを含め、 [edit security ssh-known-hosts] 階層レベルで信頼できるサーバーのホスト名とホストキーオプションを指定します。

ホストキーは次のいずれかです。

  • 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ステートメントを含めます。

注:

IPv6ホストアドレスを使用して Junos OS ステートメントでURLを指定する場合、URL全体を引用符(" ")で囲み、IPv6ホストアドレスを括弧([ ])で囲む必要があります。たとえば、「 scp://username<:password>@[host]<:port>/url-path」です。

SCP URLを指すように archive-sites ステートメントを設定すると、自動ホストキー取得がトリガーされます。この時点で、 Junos OS はSCPホストに接続してSSHパブリックキーを取得し、ホストキーメッセージダイジェストまたはフィンガープリントをコンソールへの出力として表示して、サーバーへの接続を終了します。

ホストキーが本物であることを確認するには、このフィンガープリントを、信頼できる送信元を使って同じホストから取得したフィンガープリントと比較します。フィンガープリントが同一である場合は、プロンプトで yes を入力してホストキーを受け入れます。次に、ホストキー情報がルーティングエンジンの設定に保存され、SCPを使用したバックグラウンドデータ転送をサポートします。

SSHホストキー情報を更新する

通常、[edit system]階層レベルでarchival configuration archive-sitesステートメントを使用してSCPのURL属性を設定すると、SSHホストキー情報が自動的に取得されます。ただし、ホストキーデータベースを手動で更新する必要がある場合は、以下の方法のいずれかを使用します。

ホストキー情報を手動で取得する

SSHパブリックホストキー情報を手動で取得するには、[edit security ssh-known-hosts]階層レベルでfetch-from-serverオプションを設定します。SSHパブリックキーを取得するホストを指定する必要があります。

ファイルからホストキー情報をインポートする

known_hostsファイルからSSHホストキー情報を手動でインポートするには、[edit security ssh-known-hosts]階層レベルでload-key-fileオプションを含めます。ホストキー情報をインポートするファイルへのパスを指定する必要があります。

レガシー暗号化をサポートするようにSSHサービスを設定する

従来の暗号化暗号と鍵交換方法をサポートするように Junos OS を設定できます。

注:

デバイス内でレガシー暗号化がサポートされていないと、Junos Spaceデバイスの検出に失敗します。この問題を回避するには、デバイスが 3des-cbc または blowfish-cbc 暗号、あるいはその両方、および dh-group1-sha1 鍵交換方法をサポートするように設定します。この問題は、FreeBSDがアップグレードされたJunos OSを実行するデバイスには影響しません。

Junos OS は、デフォルトで以下の暗号方式のセットをサポートしています。

  • chacha20-poly1305@openssh.com

  • aes128-ctr

  • aes192-ctr

  • aes256-ctr

  • aes128-gcm@openssh.com

  • aes256-gcm@openssh.com

Junos OSでは、以下の暗号方式はデフォルトではサポートされていませんが、デバイスがサポートするように設定できます。これらは、セキュリティが最も強いものから最も弱いものまで多岐にわたります。

  • aes256-cbc

  • aes192-cbc

  • aes128-cbc

  • 3des-cbc

Junos OS は、デフォルトで以下の鍵交換方法のセットをサポートしています。

  • curve25519-sha256

  • ecdh-sha2-nistp256

  • ecdh-sha2-nistp384

  • ecdh-sha2-nistp521

  • group-exchange-sha2

  • dh-group14-sha1

Junos OSでは、以下の鍵交換方法はデフォルトではサポートされていませんが、デバイスがサポートするように設定できます。

  • group-exchange-sha1

  • dh-group1-sha1

SSHサービスがレガシー暗号化をサポートするように設定するには:

注:

暗号方式、鍵交換方法、またはMAC(メッセージ認証コード)の順序付きセットを設定することで、新しく定義されたセットがサーバーコマンドとクライアントコマンドの両方に適用されます。デフォルトの変更は、SCP(セキュアコピープロトコル)を使用している場合の file copy コマンドに影響を与えます。

  1. set system services ssh ciphers [ cipher 1 cipher 2 ... ]コマンドを使用して、暗号のサポートを追加します。使用された最後のオプションに含まれるように、設定リストの最後に暗号方式を追加することをお勧めします。次の例では、arcfour暗号とblowfish-cbc暗号がデフォルトセットに追加されます。
  2. set system services ssh key-exchange [ method 1 method 2 ... ]コマンドを使用して、鍵交換方法のサポートを追加します。使用された最後のオプションに含まれるように、設定リストの最後に鍵交換方法を追加することをお勧めします。次の例では、dh-group1-sha1鍵交換方法がデフォルトセットに追加されます。
  3. 設定をコミットします。

アウトバウンドSSHサービスを設定する

Junos OSを実行しているデバイスを設定して、クライアント管理アプリケーションとの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 接続を確立するたびに、まず管理クライアントに開始シーケンスを送信します。このシーケンスでは、管理クライアントに対するルーターまたはスイッチを識別します。この送信内には、 device-idの値があります。

ルーターまたはスイッチのデバイス識別子を設定するには、[edit system services outbound-ssh client client-id]階層レベルでdevice-idステートメントを含めます。

secretが設定されていない場合の開始シーケンス:

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ステートメントを含めます。

secret属性が設定されると、デバイスから次のメッセージが送信されます。

アウトバウンド SSH 接続のキープアライブメッセージを設定する

クライアントアプリケーションにルーターまたはスイッチの公開 SSH ホストキーが設定されたら、TCP/IP 接続を作成したときと同様に SSH シーケンスを開始できます。クライアントは、そのシーケンスの一部として、ルーターまたはスイッチの公開ホスト SSH キーのコピーを使用してデバイスを認証できます。デバイスは、 Junos OS でサポートされているメカニズム(RSA/DSAパブリック文字列またはパスワード認証)を介してクライアントユーザーを認証します。

デバイスがSSHプロトコルキープアライブメッセージをクライアントアプリケーションに送信できるようにするには、[edit system services outbound-ssh client client-id]階層レベルでkeep-aliveステートメントを設定します。

新しいアウトバウンド SSH 接続を設定する

切断されると、デバイスは新しいアウトバウンド SSH 接続を開始し始めます。接続が切断された後でデバイスがサーバーに再接続する方法を指定するには、[edit system services outbound-ssh client client-id]階層レベルでreconnect-strategyステートメントを含めます。

また、再試行回数を指定して、再接続が停止するまでの時間を設定することもできます。 アウトバウンド SSH 接続のキープアライブメッセージの設定を参照してください。

アウトバウンド SSH クライアントを設定して、利用可能なサービスとして NETCONF を承認する

利用可能なサービスとしてNETCONFを受け入れるようにアプリケーションを設定するには、[edit system services outbound-ssh client client-id]階層レベルでservices netconfステートメントを含めます。

アウトバウンドSSHクライアントを設定する

このアウトバウンド SSH 接続で利用可能なクライアントを設定するには、 [edit system services outbound-ssh client client-id] 階層レベルで個別のアドレスステートメントとともに各クライアントをリストします。

注:

アウトバウンドSSH接続は、IPv4およびIPv6アドレスフォーマットをサポートしています。

アウトバウンド SSH クライアントにルーティングインスタンスを設定する

管理ルーティングインスタンスを使用するには、まずset system management-instanceコマンドを使用してmgmt_junosルーティングインスタンスを有効にします。

他のルーティングインスタンスを使用するには、まず [edit routing-instances] 階層でルーティングインスタンスを設定します。

ルーティングインスタンスを指定しない場合、デバイスはデフォルトのルーティングテーブルを使用してアウトバウンドSSH接続を確立します。

指定されたTCPポートでのNETCONF-over-SSH接続の設定

Junos OSでは、ファイアウォールを設定せずに、指定された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)サービスのデフォルトポートを設定することは推奨しません。

TelnetおよびSSHアクセスのパスワード再試行制限を設定する

ブルートフォース攻撃や辞書攻撃を防ぐために、デバイスはデフォルトでTelnetまたはSSHセッションに対して次のアクションを実行します。

  • 最大10回連続でパスワードを再試行した後にセッションを切断します。

  • 2回目のパスワード再試行後、5秒の倍数で待ち時間を再試行の間に入れます。

    たとえば、デバイスは、3回目と4回目のパスワード再試行の間に5秒の待ち時間を、4回目と5回目の待ち時間の間に10秒の待ち時間を設けた、という具合です。

  • 最小セッション時間を20秒に強制し、その間はセッションを切断することができません。最小セッション時間を設定することで、パスワード再試行の待ち時間が適用される前に悪意のあるユーザーがセッションを切断することを防ぎます。また、最小セッション時間を設定することで、複数ログインによるブルートフォース攻撃や辞書攻撃を防ぎます。

TelnetおよびSSHアクセスに対するパスワード再試行の制限を設定できます。この例では、デバイスがTelnetおよびSSHセッションに対して次のアクションを実行するように設定します。

  • セッションを切断する前に、最大4回のパスワードの連続再試行を許可します。

  • 2回目のパスワード再試行から、パスワードの再試行の間に5秒の倍数の遅延を設けます。

  • 最小セッション時間を40秒に強制し、その間はセッションを切断することができません。

TelnetおよびSSHアクセスのパスワード再試行の制限を設定するには:

  1. Telnet、SSH、またはTelnetセッションを切断する前に、連続してパスワードを再試行する最大回数を設定します。デフォルトの番号は 10ですが、 1 から 10までの番号を設定できます。
  2. 連続して2回パスワードを再試行した後に、待ち時間が発生する再試行回数の閾値を設定します。デフォルトの数値は2ですが、1から3までの値を指定できます。
  3. パスワード再試行回数の閾値より後の連続したパスワード再試行の待ち時間(秒)を設定します。デフォルトの遅延は 5 秒の倍数ですが、 5 秒から 10 秒までの値を指定できます。
  4. TelnetまたはSSHセッションを切断できない最小時間(秒)を設定します。デフォルトは 20 秒ですが、 20 秒から 60 秒までの間隔を指定できます。
  5. デバイスの設定が完了したら、設定モードで commit を入力します。

例:Telnet および SSH アクセスをブロックするフィルターの設定

要件

共有ネットワーク リンクで Junos OS を実行するデバイスが 2 台必要です。この例を設定する前に、デバイスの基本的な初期化(管理インターフェイス、リモート アクセス、ユーザー ログイン アカウントなど)以外の特別な設定を行う必要はありません。厳格な要件ではありませんが、R2 デバイスへのコンソール アクセスを推奨します。

注:

この例は、当社のコンテンツテストチームが検証し、更新しました。

概要とトポロジー

この例では、IPv4ステートレスファイアウォールフィルターを作成します。このフィルターは、発信元が192.168.1.0/30サブネットのパケットでない限り、ローカルルーティングエンジンに送信されたTelnetまたはSSHパケットをログに記録して拒否します。このフィルターはループバックインターフェイスに適用され、ローカルデバイスを宛先とするトラフィックのみが影響を受けるようにします。フィルターは入力方向に適用します。出力フィルターは使用しません。その結果、ローカルで生成されたすべてのトラフィックが許可されます。

  • 特定のサブネットまたはIPプレフィックスから発信されたパケットを照合するには、入力方向に適用する source-address IPv4一致条件を使用します。

  • Telnet ポートと SSH ポート宛のパケットを照合するには、入力方向に適用された port telnet および port ssh の IPv4 一致条件と組み合わせたprotocol tcp一致条件を使用します。

トポロジーの例

図1 は、この例のテストトポロジーを示しています。ファイアウォールフィルターがR2デバイスに適用され、DUT(被試験デバイス)になります。R1 デバイスと R2 デバイスは、192.168.1.0/30 のサブネットが割り当てられたリンクを共有します。両デバイスとも、/32サブネットマスクを使用して192.168.255.0/30プレフィックスから割り当てられたループバックアドレスを持っています。この簡単な例では内部ゲートウェイプロトコルが設定されていないため、静的ルートはループバックアドレス間の到達性を提供します。

図1:トポロジーExample Topology

設定

次の例では、設定階層のさまざまなレベルに移動する必要があります。CLIのナビゲーションについては、 設定モードでのCLIエディターの使用を参照してください。

注意:

設計上、サンプル フィルターは、R1 の共有サブネットから発信されたものでない限り、R2 への Telnet および SSH アクセスを制限します。SSH または Telnet を使用して R2 デバイスに直接アクセスすると、フィルターが適用されて接続が失われます。この例を設定する際は、コンソールアクセスの取得をお勧めします。必要に応じて、R1デバイスをジャンプホストとして使用し、フィルター適用後にR2へのSSHセッションを開始できます。または、サンプルフィルターを変更して、R2デバイスへのアクセスに使用するマシンに割り当てられたIPサブネットも許可することもできます。

この例を設定するには、以下のタスクを実行します。

CLIクイックコンフィグレーション

R1 デバイスの簡易設定

R1 デバイスを迅速に設定するには、必要に応じて以下のコマンドを編集し、 [edit] 階層レベルのCLIに貼り付けます。変更を有効にするには、必ず commitイン設定モードを発行してください。

R2 デバイスの簡易設定

R2 デバイスを迅速に設定するには、必要に応じて以下のコマンドを編集し、 [edit] 階層レベルのCLIに貼り付けます。変更を有効にするには、必ずコンフィギュレーションモードで commit を発行してください。

ヒント:

デバイスへのリモートアクセスに影響を与える可能性のある変更を行う場合は、 commit-confirmed の使用を検討してください。 Junos OSの設定をアクティブ化しているが、確認が必要

R1 デバイスの設定

ステップバイステップの手順

以下の手順に従って、R1 デバイスを設定します。

  1. インターフェイスを設定します。

  2. R2デバイスのループバックアドレスへのホスト名と静的ルートを設定します。Telnet および SSH アクセスも設定します。

R1 デバイスでの設定の確認とコミット

ステップバイステップの手順

以下の手順を実行して、R1 デバイスで候補の設定を確認し、コミットします。

  1. show interfaces設定モードコマンドを使用してインターフェイスの設定を確認します。コマンド出力に意図した設定が表示されない場合は、この例の指示を繰り返して設定を修正します。

  2. R2デバイスのループバックアドレスに到達するのに使用する静的ルートと、SSHおよびTelnetアクセスが有効であることを確認します。 show routing-options および show system services 設定モードコマンドを使用します。コマンド出力に意図した設定が表示されない場合は、この例の指示を繰り返して設定を修正します。

  3. R1 デバイスの設定に問題がなければ、受験者の設定をコミットします。

R2 デバイスの設定

ステップバイステップの手順

以下の手順を実行して、R2 デバイスを設定します。まず、Telnet および SSH アクセスを選択的にブロックするステートレス ファイアウォール フィルターを定義します。

  1. edit firewall family inet filter local_acl階層に身を置きます。

  2. フィルター条件 terminal_accessを定義します。この条件は、指定されたソースプレフィックスからのTelnetとSSHを許可します。

  3. フィルター条件 terminal_access_deniedを定義します。この条件は、 その他すべての 送信元アドレスからの SSH および Telnet を拒否します。この条件は、条件に一致するログを記録し、明示的なインターネット制御メッセージプロトコル(ICMP)宛先到達不能応答をパケットの送信元に返信するように構成されています。フィルターロギングオプションの詳細については、 ファイアウォールフィルターロギングアクション を参照してください。

    ヒント:

    discardアクションを使用すると、送信元へのICMPエラーメッセージの生成を抑制できます。詳細については、ファイアウォールフィルター終了アクションを参照してください。

  4. オプション。

    フィルター条件 tcp-estabを定義します。この条件は、インターネットへのアウトバウンドアクセスを許可し、ジュニパー Mistクラウドへの接続をサポートします(tcp-established はビットフィールド一致条件 tcp-flags "(ack | rst)"であり、これは確立されたTCPセッションを示しますが、TCP接続の最初のパケットではないことを示します)。

  5. フィルター条件 default-termを定義します。この条件は、他のすべてのトラフィックを受け入れます。 Junos OS のステートレス フィルターの末尾には、暗黙的な deny 条件があることを思い出してください。 default-term は、明示的な accept アクションでフィルターを終了させることで、この動作を上書きします。フィルターが終了すると、他のすべてのトラフィックがファイラーによって受け入れられます。

    注:

    この例では他のすべてのトラフィックを許可しますが、ご自身のネットワークでは、ルーティングエンジンを保護した方がよいでしょう。詳細については 、ルーティングエンジンの保護 を参照してください。

  6. ループバックインターフェイスを設定し、入力方向にフィルターを適用します。

  7. ホスト名、ge-0/0/0インターフェイス、R1デバイスのループバックアドレスへの静的ルートを設定し、SSHおよびTelnet経由のリモートアクセスを有効にします。

デバイスR2での設定の確認とコミット

ステップバイステップの手順

以下の手順を実行して、R2 デバイスで候補の設定を確認し、コミットします。

  1. show firewall設定モードコマンドを使用して、ステートレスファイアウォールフィルターの設定を確認します。コマンド出力に意図した設定が表示されない場合は、この例の指示を繰り返して設定を修正します。

  2. show interfaces設定モードコマンドを使用して、インターフェイスの設定とフィルターアプリケーションを確認します。コマンド出力に意図した設定が表示されない場合は、この例の指示を繰り返して設定を修正します。

  3. R1 デバイスのループバック アドレスに到達するために使用する静的ルートを確認し、Telnet および SSH アクセスが有効になっていることを確認します。 show routing-options および show system services 設定モードコマンドを使用します。コマンド出力に意図した設定が表示されない場合は、この例の指示を繰り返して設定を修正します。

  4. R2 デバイスの設定に問題がなければ、受験者の設定をコミットします。

    ヒント:

    デバイスへのリモートアクセスに影響を与える可能性のある変更を行う場合は、 commit-confirmed の使用を検討してください。

ステートレスファイアウォールフィルターの確認

TelnetおよびSSHアクセスを制限するファイアウォールフィルターが正常に動作していることを確認します。

受け入れられたパケットの確認

目的

トラフィックが 192.168.1.0/30 サブネットから送信されている場合、ファイアウォール フィルターが SSH と Telnet を正しく許可していることを確認します。

アクション
  1. ルーターまたはスイッチのファイアウォールログを消去します。

  2. 192.168.1.0/30サブネット 内の IPアドレスのホストから、 ssh 192.168.255.2 コマンドを使用して、許可された送信元アドレスからSSHを使用してデバイスにログインできることを確認します。このパケットは受理されるべきですが、このパケットのパケット ヘッダー情報は、パケット転送エンジンのファイアウォール フィルター ログ バッファーに記録されるべきではありません。これらのデバイス間の user が最初のSSHログインである場合は、SSHホストキーを保存するように求められます。

    注:

    デフォルトでは、R1デバイスは、宛先に到達するために使用するエグレスインターフェイスからSSHトラフィックを送信します。その結果、このトラフィックは、R1デバイスのge-0/0/0インターフェイスに割り当てられた192.168.1.1アドレスから送信されます。

  3. R2デバイスのCLIからログアウトして、SSHセッションを閉じます。

  4. 192.168.1.0/30サブネット 内の IPアドレスのホストから、 telnet 192.168.255.2 コマンドを使用して、許可された送信元アドレスからTelnetを使用してルーターまたはスイッチにログインできることを確認します。このパケットは受理されるべきですが、このパケットのパケット ヘッダー情報は、パケット転送エンジンのファイアウォール フィルター ログ バッファーに記録されるべきではありません。

  5. CLI からログアウトして、R2 デバイスへの Telnet セッションを閉じます。

  6. show firewall logコマンドを使用して、R2デバイスのパケット転送エンジン(PFE)のファイアウォールログバッファに、192.168.1.0/30サブネット内の送信元アドレスを持つエントリが含まれていないことを確認します。

ログされたパケットと拒否されたパケットの確認

目的

ファイアウォールフィルターが、発信元が 192.168.1.0/30 サブネット ではない SSH および Telnet トラフィックを正しく拒否していることを確認します。

アクション

  1. ルーターまたはスイッチのファイアウォールログを消去します。

  2. R1デバイスのループバックアドレスから送信されたSSHトラフィックを生成します。このトラフィックの送信元アドレスは、許可された 192.168.1.0/30 サブネット の外  にあります。 ssh 192.168.255.2 source 192.168.255.1 コマンドを使用して、この送信元アドレスからSSHを使用してデバイスにログイン できない ことを確認します。このパケットは拒否され、パケット ヘッダー情報はファイアウォール フィルター ログ バッファーに記録されるはずです。

    出力は、SSH接続が拒否されたことを示しています。この出力は、フィルターが ICMP エラー メッセージを生成していること、および許可されない送信元アドレスから送信された SSH トラフィックを正しくブロックしていることを確認します。

  3. R1デバイスのループバックアドレスから送信されたTelnetトラフィックを生成します。このトラフィックの送信元アドレスは、許可された 192.168.1.0/30 サブネット の外  にあります。 telnet 192.168.255.2 source 192.168.255.1 コマンドを使用して、この送信元アドレスからTelnetを使用してデバイスにログイン できない ことを確認します。このパケットは拒否され、このパケットのパケット ヘッダー情報は PFE のファイアウォール フィルター ログ バッファーに記録されるはずです。

    出力結果は、Telnet 接続が拒否されたことを示しています。この出力は、フィルターが ICMP エラー メッセージを生成していること、および許可されない送信元アドレスから送信された Telnet トラフィックを正しくブロックしていることを確認します。

  4. show firewall log コマンドを使用して、R2 デバイスのファイアウォール ログ バッファーに、送信元アドレスが 192.168.255.1 のパケットが拒否されたことを示すエントリーが含まれていないか確認します。

    この出力から、送信元アドレス192.168.255.1からのトラフィックがフィルターの terminal_access_denied 条件に一致したことがわかります。 Action 列には、これらのパケットが拒否されたことを示す R が表示されます。インターフェイス、トランスポート プロトコル、送信元アドレスと宛先アドレスも一覧表示されます。これらの結果から、この例においてファイアウォールフィルターが正しく動作していることが確認できます。

変更履歴テーブル

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

リリース
説明
19.4R1
Junos OSリリース19.4R1およびリリース17.4R3以降Junos OS、[ edit system services ssh]階層レベルの no-password-authenticationおよび no-challenge-responseオプションを使用して、SSHログインパスワードまたはチャレンジ-レスポンス認証のいずれかを無効にできるようになりました。
19.1R1
Junos OSリリース19.1R1以降、受信SFTP接続はデフォルトでグローバルに無効化されるようになりました。必要に応じて、 [edit system services ssh]階層レベルでステートメント sftp-serverを設定することで、受信SFTP接続をグローバルに有効にできます
18.3R1
リリース18.3R1 Junos OS、 ssh-dss および ssh-dsa ホストキーアルゴリズムは、すぐには削除されませんが、非推奨とされました。これは、後方互換性を確保し、新しい設定に適合させる機会を提供するためです。
18.3R1
(SRXシリーズとMXシリーズのみ)Junos OSリリース19.3R1以降、 [edit system services outbound-ssh]階層レベルに routing-instanceステートメントを含めることで、アウトバウンドSSH接続を確立する必要があるルーティングインスタンスの名前を指定できます。