このページの内容
リモートアクセスの概要
お客様(ネットワーク管理者)は、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 セッション接続試行が許可されます。
Junos-FIPSソフトウェアを実行するデバイスに telnet ステートメントを含めることはできません。コモンクライテリア 環境ではTelnetを使用しないことをお勧めします。
ルーターまたはスイッチへのリモートアクセス用のFTPサービスの設定
アクセスサービスとしてFTPを承認するようデバイスを設定するには、[edit system services]階層レベルでftpステートメントを含めます。
[edit system services] ftp { connection-limit limit; rate-limit limit; }
デフォルトでは、ルーターまたはスイッチがサポートする 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を使用します。次に例を示します。
request system software add pasvftp://name.com/jinstall.tgz
Junos-FIPS ソフトウェアを実行するルーターまたはスイッチに ftp ステートメントを含めることはできません。コモンクライテリア環境ではFTPサービスを使用しないことをお勧めします。
ルーターへのリモートアクセス用のフィンガーサービスを設定する
アクセスサービスとしてfingerを受け入れるようにルーターを設定するには、[edit system services]階層レベルでfingerステートメントを含めます。
[edit system services] finger { connection-limit limit; rate-limit limit; }
デフォルトでは、ルーターは 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ステートメントを含めます。
[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—セッションキーを再ネゴシエーションするまでの時間制限(分)
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ステートメントを含めます。
[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)は、任意の信頼できるデータストリーム上でファイルアクセス、ファイル転送、ファイル管理を提供するネットワークプロトコルです。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接続を有効にするには:
SSHプロトコルのバージョンを構成する
デフォルトでは、SSHプロトコルのバージョン2のみが有効になっています。
SSHプロトコルのバージョン2を使用するようにルーターまたはスイッチを構成するには、protocol-versionステートメントを含め、[edit system services ssh]階層レベルでv2を指定します。
[edit system services ssh] protocol-version [ v2 ];
FIPSモードのシステムは、常にSSHプロトコルバージョン 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);
md5ハッシュアルゴリズムは、FIPSモードのシステムでは使用できません。
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ステートメントを使用します。
Junos OSリリース21.4R1以降、VMホストがインストールされたJunosプラットフォームでは、デフォルトでSSHが有効になります。
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> <bypass-routing> <inet> <interface interface-name> <no-resolve> <port port> <routing-instance routing-instance-name> <source address>
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 を入力します。
| オプション |
説明 |
|---|---|
|
|
8 ビット データ パスを使用します。 |
|
|
ルーティングテーブルをバイパスして、直接接続されたインターフェイス上のホストに対してのみTelnetセッションを開きます。ホストが直接接続されたインターフェイスではない場合、エラー メッセージが返されます。 |
|
|
指定されたホスト名または IP アドレスへの Telnet セッションを開きます。 |
|
|
IPv4 宛先への Telnet セッションを強制します。 |
|
|
指定されたインターフェイス上のホストへの Telnet セッションを開きます。このオプションが含まれていない場合、すべてのインターフェイスが使用されます。 |
|
|
記号名の表示を抑制します。 |
|
|
ホスト上のポート番号またはサービス名を指定します。 |
|
|
Telnet セッションに指定されたルーティング インスタンスを使用します。 |
|
|
Telnet セッションに指定された送信元アドレスを使用します。 |
sshコマンド
CLI ssh コマンドを使用して、セキュアシェル(SSH)プログラムを使用して、リモートデバイスへの接続を開くことができます。
user@host> ssh host <bypass-routing> <inet> <interface interface-name> <routing-instance routing-instance-name> <source address> <v1> <v2>
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 コマンドオプションを示します。
| オプション |
説明 |
|---|---|
|
|
ルーティングテーブルをバイパスして、SSH接続を直接接続されたインターフェイス上のホストのみに開きます。ホストが直接接続されたインターフェイスではない場合、エラー メッセージが返されます。 |
|
|
SSH 接続を、指定されたホスト名または IP アドレスに開きます。 |
|
|
IPv4 の宛先への SSH 接続を強制します。 |
|
|
SSH接続を、指定されたインターフェース上のホストに開きます。このオプションが含まれていない場合、すべてのインターフェイスが使用されます。 |
|
|
SSH接続に指定されたルーティングインスタンスを使用します。 |
|
|
SSH 接続に指定された送信元アドレスを使用します。 |
|
|
SSHを強制して、接続にバージョン1を使用します。 |
|
|
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 ステートメントでURLを指定する場合、URL全体を引用符(" ")で囲み、IPv6ホストアドレスを括弧([ ])で囲む必要があります。たとえば、「 scp://username<:password>@[host]<:port>/url-path」です。
SCP URLを指すように archive-sites ステートメントを設定すると、自動ホストキー取得がトリガーされます。この時点で、 Junos OS は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 を設定できます。
デバイス内でレガシー暗号化がサポートされていないと、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 コマンドに影響を与えます。
関連項目
アウトバウンド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 接続のキープアライブメッセージを設定する
- 新しいアウトバウンド 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 でサポートされているメカニズム(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では、ファイアウォールを設定せずに、指定された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アクセスのパスワード再試行の制限を設定するには:
例:Telnet および SSH アクセスをブロックするフィルターの設定
要件
共有ネットワーク リンクで Junos OS を実行するデバイスが 2 台必要です。この例を設定する前に、デバイスの基本的な初期化(管理インターフェイス、リモート アクセス、ユーザー ログイン アカウントなど)以外の特別な設定を行う必要はありません。厳格な要件ではありませんが、R2 デバイスへのコンソール アクセスを推奨します。
この例は、当社のコンテンツテストチームが検証し、更新しました。
概要とトポロジー
この例では、IPv4ステートレスファイアウォールフィルターを作成します。このフィルターは、発信元が192.168.1.0/30サブネットのパケットでない限り、ローカルルーティングエンジンに送信されたTelnetまたはSSHパケットをログに記録して拒否します。このフィルターはループバックインターフェイスに適用され、ローカルデバイスを宛先とするトラフィックのみが影響を受けるようにします。フィルターは入力方向に適用します。出力フィルターは使用しません。その結果、ローカルで生成されたすべてのトラフィックが許可されます。
-
特定のサブネットまたはIPプレフィックスから発信されたパケットを照合するには、入力方向に適用する
source-addressIPv4一致条件を使用します。 -
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プレフィックスから割り当てられたループバックアドレスを持っています。この簡単な例では内部ゲートウェイプロトコルが設定されていないため、静的ルートはループバックアドレス間の到達性を提供します。
例
設定
次の例では、設定階層のさまざまなレベルに移動する必要があります。CLIのナビゲーションについては、 設定モードでのCLIエディターの使用を参照してください。
設計上、サンプル フィルターは、R1 の共有サブネットから発信されたものでない限り、R2 への Telnet および SSH アクセスを制限します。SSH または Telnet を使用して R2 デバイスに直接アクセスすると、フィルターが適用されて接続が失われます。この例を設定する際は、コンソールアクセスの取得をお勧めします。必要に応じて、R1デバイスをジャンプホストとして使用し、フィルター適用後にR2へのSSHセッションを開始できます。または、サンプルフィルターを変更して、R2デバイスへのアクセスに使用するマシンに割り当てられたIPサブネットも許可することもできます。
この例を設定するには、以下のタスクを実行します。
CLIクイックコンフィグレーション
R1 デバイスの簡易設定
R1 デバイスを迅速に設定するには、必要に応じて以下のコマンドを編集し、 [edit] 階層レベルのCLIに貼り付けます。変更を有効にするには、必ず commitイン設定モードを発行してください。
set system host-name R1 set system services ssh root-login allow set interfaces ge-0/0/0 description "Link from R1 to R2" set interfaces ge-0/0/0 unit 0 family inet address 192.168.1.1/30 set interfaces lo0 unit 0 family inet address 192.168.255.1/32 set routing-options static route 192.168.255.2/32 next-hop 192.168.1.2
R2 デバイスの簡易設定
R2 デバイスを迅速に設定するには、必要に応じて以下のコマンドを編集し、 [edit] 階層レベルのCLIに貼り付けます。変更を有効にするには、必ずコンフィギュレーションモードで commit を発行してください。
デバイスへのリモートアクセスに影響を与える可能性のある変更を行う場合は、 commit-confirmed の使用を検討してください。 Junos OSの設定をアクティブ化しているが、確認が必要
set system host-name R2 set system services ssh root-login allow set system services telnet set interfaces ge-0/0/0 description "Link from R2 to R1" set interfaces ge-0/0/0 unit 0 family inet address 192.168.1.2/30 set interfaces lo0 unit 0 family inet filter input local_acl set interfaces lo0 unit 0 family inet address 192.168.255.2/32 set firewall family inet filter local_acl term terminal_access from source-address 192.168.1.0/30 set firewall family inet filter local_acl term terminal_access from protocol tcp set firewall family inet filter local_acl term terminal_access from port ssh set firewall family inet filter local_acl term terminal_access from port telnet set firewall family inet filter local_acl term terminal_access then accept set firewall family inet filter local_acl term terminal_access_denied from protocol tcp set firewall family inet filter local_acl term terminal_access_denied from port ssh set firewall family inet filter local_acl term terminal_access_denied from port telnet set firewall family inet filter local_acl term terminal_access_denied then log set firewall family inet filter local_acl term terminal_access_denied then reject set firewall family inet filter local_acl term tcp-estab from protocol tcp set firewall family inet filter local_acl term tcp-estab from tcp-established set firewall family inet filter local_acl term tcp-estab then accept set firewall family inet filter local_acl term default-term then accept set routing-options static route 192.168.255.1/32 next-hop 192.168.1.1
R1 デバイスの設定
ステップバイステップの手順
以下の手順に従って、R1 デバイスを設定します。
-
インターフェイスを設定します。
[edit] user@R1# set interfaces ge-0/0/0 description "Link from R1 to R2" user@R1# set interfaces ge-0/0/0 unit 0 family inet address 192.168.1.1/30 user@R1# set interfaces lo0 unit 0 family inet address 192.168.255.1/32
-
R2デバイスのループバックアドレスへのホスト名と静的ルートを設定します。Telnet および SSH アクセスも設定します。
[edit] user@R1# set system host-name R1 user@R1# set system services ssh root-login allow user@R1# set system services telnet user@R1# set routing-options static route 192.168.255.2/32 next-hop 192.168.1.2
R1 デバイスでの設定の確認とコミット
ステップバイステップの手順
以下の手順を実行して、R1 デバイスで候補の設定を確認し、コミットします。
-
show interfaces設定モードコマンドを使用してインターフェイスの設定を確認します。コマンド出力に意図した設定が表示されない場合は、この例の指示を繰り返して設定を修正します。[edit] user@R1# show interfaces ge-0/0/0 { description "Link from R1 to R2"; unit 0 { family inet { address 192.168.1.1/30; } } } lo0 { unit 0 { family inet { address 192.168.255.1/32; } } } -
R2デバイスのループバックアドレスに到達するのに使用する静的ルートと、SSHおよびTelnetアクセスが有効であることを確認します。
show routing-optionsおよびshow system services設定モードコマンドを使用します。コマンド出力に意図した設定が表示されない場合は、この例の指示を繰り返して設定を修正します。[edit] user@R1# show routing-options static { route 192.168.255.2/32 next-hop 192.168.1.2; } user@R1# show system services ssh { root-login allow; } telnet; -
R1 デバイスの設定に問題がなければ、受験者の設定をコミットします。
[edit] user@R1# commit
R2 デバイスの設定
ステップバイステップの手順
以下の手順を実行して、R2 デバイスを設定します。まず、Telnet および SSH アクセスを選択的にブロックするステートレス ファイアウォール フィルターを定義します。
-
edit firewall family inet filterlocal_acl階層に身を置きます。[edit] user@R2# edit firewall family inet filter local_acl
-
フィルター条件 terminal_accessを定義します。この条件は、指定されたソースプレフィックスからのTelnetとSSHを許可します。
[edit firewall family inet filter local_acl] user@R2# set term terminal_access from source-address 192.168.1.0/30 user@R2# set term terminal_access from protocol tcp user@R2# set term terminal_access from port ssh user@R2# set term terminal_access from port telnet user@R2# set term terminal_access then accept
-
フィルター条件 terminal_access_deniedを定義します。この条件は、 その他すべての 送信元アドレスからの SSH および Telnet を拒否します。この条件は、条件に一致するログを記録し、明示的なインターネット制御メッセージプロトコル(ICMP)宛先到達不能応答をパケットの送信元に返信するように構成されています。フィルターロギングオプションの詳細については、 ファイアウォールフィルターロギングアクション を参照してください。
ヒント:discardアクションを使用すると、送信元へのICMPエラーメッセージの生成を抑制できます。詳細については、ファイアウォールフィルター終了アクションを参照してください。[edit firewall family inet filter local_acl] user@R2# set term terminal_access_denied from protocol tcp user@R2# set term terminal_access_denied from port ssh user@R2# set term terminal_access_denied from port telnet user@R2# set term terminal_access_denied then log user@R2# set term terminal_access_denied then reject user@R2# set term default-term then accept
- オプション。
フィルター条件 tcp-estabを定義します。この条件は、インターネットへのアウトバウンドアクセスを許可し、ジュニパー Mistクラウドへの接続をサポートします(tcp-established はビットフィールド一致条件 tcp-flags "(ack | rst)"であり、これは確立されたTCPセッションを示しますが、TCP接続の最初のパケットではないことを示します)。
[edit firewall family inet filter local_acl] user@R2# set term tcp-estab from protocol tcp user@R2# set term tcp-estab from tcp-established user@R2# set term tcp-estab then accept
-
フィルター条件 default-termを定義します。この条件は、他のすべてのトラフィックを受け入れます。 Junos OS のステートレス フィルターの末尾には、暗黙的な deny 条件があることを思い出してください。 default-term は、明示的な accept アクションでフィルターを終了させることで、この動作を上書きします。フィルターが終了すると、他のすべてのトラフィックがファイラーによって受け入れられます。
注:この例では他のすべてのトラフィックを許可しますが、ご自身のネットワークでは、ルーティングエンジンを保護した方がよいでしょう。詳細については 、ルーティングエンジンの保護 を参照してください。
[edit firewall family inet filter local_acl] user@R2# set term default-term then accept
-
ループバックインターフェイスを設定し、入力方向にフィルターを適用します。
[edit] user@R2# set interfaces lo0 unit 0 family inet filter input local_acl user@R2# set interfaces lo0 unit 0 family inet address 192.168.255.2/32
-
ホスト名、ge-0/0/0インターフェイス、R1デバイスのループバックアドレスへの静的ルートを設定し、SSHおよびTelnet経由のリモートアクセスを有効にします。
[edit] user@R2# set system host-name R2 user@R2# set system services ssh root-login allow user@R2# set system services telnet user@R2# set interfaces ge-0/0/0 description "Link from R2 to R1" user@R2# set interfaces ge-0/0/0 unit 0 family inet address 192.168.1.2/30 user@R2# set routing-options static route 192.168.255.1/32 next-hop 192.168.1.1
デバイスR2での設定の確認とコミット
ステップバイステップの手順
以下の手順を実行して、R2 デバイスで候補の設定を確認し、コミットします。
-
show firewall設定モードコマンドを使用して、ステートレスファイアウォールフィルターの設定を確認します。コマンド出力に意図した設定が表示されない場合は、この例の指示を繰り返して設定を修正します。[edit] user@R2# show firewall family inet { filter local_acl { term terminal_access { from { source-address { 192.168.1.0/30; } protocol tcp; port [ssh telnet]; } then accept; } term terminal_access_denied { from { protocol tcp; port [ssh telnet]; } then { log; reject; } } term default-term { then accept; } } } -
show interfaces設定モードコマンドを使用して、インターフェイスの設定とフィルターアプリケーションを確認します。コマンド出力に意図した設定が表示されない場合は、この例の指示を繰り返して設定を修正します。[edit] user@R2# show interfaces ge-0/0/0 { description "Link from R2 to R1"; unit 0 { family inet { address 192.168.1.2/30; } } } lo0 { unit 0 { family inet { filter { input local_acl; } address 192.168.255.2/32; } } } -
R1 デバイスのループバック アドレスに到達するために使用する静的ルートを確認し、Telnet および SSH アクセスが有効になっていることを確認します。
show routing-optionsおよびshow system services設定モードコマンドを使用します。コマンド出力に意図した設定が表示されない場合は、この例の指示を繰り返して設定を修正します。[edit] user@R2# show routing-options static { route 192.168.255.1/32 next-hop 192.168.1.1; } user@R2# show system services ssh { root-login allow; } telnet; -
R2 デバイスの設定に問題がなければ、受験者の設定をコミットします。
ヒント:デバイスへのリモートアクセスに影響を与える可能性のある変更を行う場合は、
commit-confirmedの使用を検討してください。[edit] user@R2# commit
ステートレスファイアウォールフィルターの確認
TelnetおよびSSHアクセスを制限するファイアウォールフィルターが正常に動作していることを確認します。
受け入れられたパケットの確認
目的
トラフィックが 192.168.1.0/30 サブネットから送信されている場合、ファイアウォール フィルターが SSH と Telnet を正しく許可していることを確認します。
アクション
-
ルーターまたはスイッチのファイアウォールログを消去します。
user@R2> clear firewall log
-
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アドレスから送信されます。
user@R1>ssh 192.168.255.2 Password: Last login: Wed Aug 19 09:23:58 2020 from 192.168.1.1 --- JUNOS 20.2R1.10 Kernel 64-bit JNPR-11.0-20200608.0016468_buil user@R2>
-
R2デバイスのCLIからログアウトして、SSHセッションを閉じます。
user@R2> exit logout Connection to 192.168.255.2 closed. user@R1>
-
192.168.1.0/30サブネット 内の IPアドレスのホストから、
telnet 192.168.255.2コマンドを使用して、許可された送信元アドレスからTelnetを使用してルーターまたはスイッチにログインできることを確認します。このパケットは受理されるべきですが、このパケットのパケット ヘッダー情報は、パケット転送エンジンのファイアウォール フィルター ログ バッファーに記録されるべきではありません。user@host-A> telnet 192.168.255.2 Trying 192.168.255.2... Connected to 192.168.255.2. Escape character is '^]'. login: user Password: --- JUNOS 20.2R1.10 Kernel 64-bit JNPR-11.0-20200608.0016468_buil user@R2>
-
CLI からログアウトして、R2 デバイスへの Telnet セッションを閉じます。
user@R2:~ # exit Connection closed by foreign host. root@R1>
-
show firewall logコマンドを使用して、R2デバイスのパケット転送エンジン(PFE)のファイアウォールログバッファに、192.168.1.0/30サブネット内の送信元アドレスを持つエントリが含まれていないことを確認します。user@R2> show firewall log
ログされたパケットと拒否されたパケットの確認
目的
ファイアウォールフィルターが、発信元が 192.168.1.0/30 サブネット ではない SSH および Telnet トラフィックを正しく拒否していることを確認します。
アクション
-
ルーターまたはスイッチのファイアウォールログを消去します。
user@R2> clear firewall log
-
R1デバイスのループバックアドレスから送信されたSSHトラフィックを生成します。このトラフィックの送信元アドレスは、許可された 192.168.1.0/30 サブネット の外 にあります。
ssh 192.168.255.2 source 192.168.255.1コマンドを使用して、この送信元アドレスからSSHを使用してデバイスにログイン できない ことを確認します。このパケットは拒否され、パケット ヘッダー情報はファイアウォール フィルター ログ バッファーに記録されるはずです。user@R1 ssh 192.168.255.2 source 192.168.255.1 ssh: connect to host 192.168.255.2 port 22: Connection refused root@R1>
出力は、SSH接続が拒否されたことを示しています。この出力は、フィルターが ICMP エラー メッセージを生成していること、および許可されない送信元アドレスから送信された SSH トラフィックを正しくブロックしていることを確認します。
-
R1デバイスのループバックアドレスから送信されたTelnetトラフィックを生成します。このトラフィックの送信元アドレスは、許可された 192.168.1.0/30 サブネット の外 にあります。
telnet 192.168.255.2 source 192.168.255.1コマンドを使用して、この送信元アドレスからTelnetを使用してデバイスにログイン できない ことを確認します。このパケットは拒否され、このパケットのパケット ヘッダー情報は PFE のファイアウォール フィルター ログ バッファーに記録されるはずです。user@R1> telnet 192.168.255.2 source 192.168.255.1 Trying 192.168.255.2... telnet: connect to address 192.168.255.2: Connection refused telnet: Unable to connect to remote host
出力結果は、Telnet 接続が拒否されたことを示しています。この出力は、フィルターが ICMP エラー メッセージを生成していること、および許可されない送信元アドレスから送信された Telnet トラフィックを正しくブロックしていることを確認します。
-
show firewall logコマンドを使用して、R2 デバイスのファイアウォール ログ バッファーに、送信元アドレスが 192.168.255.1 のパケットが拒否されたことを示すエントリーが含まれていないか確認します。user@R2> show firewall log Log : Time Filter Action Interface Protocol Src Addr Dest Addr 15:17:11 pfe R ge-0/0/0.0 TCP 192.168.255.1 192.168.255.2 15:12:04 pfe R ge-0/0/0.0 TCP 192.168.255.1 192.168.255.2
この出力から、送信元アドレス192.168.255.1からのトラフィックがフィルターの terminal_access_denied 条件に一致したことがわかります。
Action列には、これらのパケットが拒否されたことを示すRが表示されます。インターフェイス、トランスポート プロトコル、送信元アドレスと宛先アドレスも一覧表示されます。これらの結果から、この例においてファイアウォールフィルターが正しく動作していることが確認できます。
変更履歴テーブル
サポートされる機能は、使用しているプラットフォームとリリースによって決まります。 機能エクスプローラー を使用して、機能がお使いのプラットフォームでサポートされているかどうかを確認します。
edit system services ssh]階層レベルの
no-password-authenticationおよび
no-challenge-responseオプションを使用して、SSHログインパスワードまたはチャレンジ-レスポンス認証のいずれかを無効にできるようになりました。
[edit system services ssh]階層レベルでステートメント
sftp-serverを設定することで、受信SFTP接続をグローバルに有効にできます
ssh-dss および
ssh-dsa ホストキーアルゴリズムは、すぐには削除されませんが、非推奨とされました。これは、後方互換性を確保し、新しい設定に適合させる機会を提供するためです。
[edit system services outbound-ssh]階層レベルに
routing-instanceステートメントを含めることで、アウトバウンドSSH接続を確立する必要があるルーティングインスタンスの名前を指定できます。