FutureNet

NXR,VXRシリーズ

運用管理編

19. リバースSSHトンネリングの利用

19-3. リバースSSHトンネル設定

リバースSSHトンネル設定を行い、外部のSSHサーバを経由してNXRにSSHアクセスする設定例です。例えばNXRがキャリアグレードNAT環境下にあってもVPS(仮想専用サーバ)などの中継用SSHサーバに接続することにより、外部からこの中継用SSHサーバを経由してNXRにアクセスすることができます。

 

【 リバースSSHトンネル機能対応機種 】

NXR-650,NXR-610Xシリーズ,NXR-530,NXR-G120シリーズ(2023/11現在)
最新の対応状況は、各製品の更新履歴やユーザーズガイドをご確認ください。

 

コンテンツ
設定例 補足

 

【 設定例 】

NXRから中継用SSHサーバにリバースSSHトンネルで接続する場合、以下の認証方式が利用可能です。

この例では、中継用SSHサーバのTCPポート番号5000宛の通信を、NXRのTCPポート番号22に転送します。

 

〔 パスワード認証設定 〕

<リバースSSHトンネル設定>
(config)#reverse-ssh
(config-reverse-ssh)#tunnel 1
(config-reverse-ssh-tunnel)#server [中継用SSHサーバのIPアドレス]

接続する中継用SSHサーバのIPアドレスを設定します。

(config-reverse-ssh-tunnel)#account username [中継用SSHサーバのユーザID] password [中継用SSHサーバのパスワード]

中継用SSHサーバ接続用ユーザID,パスワードを設定します。

(config-reverse-ssh-tunnel)#local port 22 remote port 5000

転送先ポート,転送元ポートを設定します。

 

〔 証明書認証設定 〕

<SSHクライアント設定>

証明書と秘密鍵を設定しますが、登録名は共通にする必要があります。

(config)#ssh-client cert certificate [登録名] disk0:[SSHクライアント用公開鍵証明書ファイル名]

証明書の登録名、および外部ストレージ(disk0)上のSSHクライアント用公開鍵証明書ファイルをインポートします。

(config)#ssh-client cert private-key [登録名] disk0:[SSHクライアント用秘密鍵ファイル名]

秘密鍵の登録名、および外部ストレージ(disk0)上のSSHクライアント用秘密鍵ファイルをインポートします。

(config)#ssh-client cert private-key [登録名] password [SSHクライアント用秘密鍵パスフレーズ]

秘密鍵の登録名、およびSSHクライアント用秘密鍵のパスフレーズを設定します。

 

<リバースSSHトンネル設定>
(config)#reverse-ssh
(config-reverse-ssh)#tunnel 1
(config-reverse-ssh-tunnel)#server [中継用SSHサーバのIPアドレス]

接続する中継用SSHサーバのIPアドレスを設定します。

(config-reverse-ssh-tunnel)#account username [中継用SSHサーバのユーザID] cert [登録名]

中継用SSHサーバ接続用ユーザID,証明書および秘密鍵の登録名を設定します。

(config-reverse-ssh-tunnel)#local port 22 remote port 5000

転送先ポート,転送元ポートを設定します。

 

【 補足 】

 

〔 リバースSSHトンネルの接続,切断 〕

<リバースSSHトンネルの接続>
#connect reverse-ssh tunnel [トンネル番号]

指定したトンネル番号のリバースSSHトンネルを接続します。

 

<リバースSSHトンネルの切断>
#clear reverse-ssh tunnel [トンネル番号]

指定したトンネル番号のリバースSSHトンネルを切断します。

 

〔 リバースSSHトンネルの状態表示 〕

<リバースSSHトンネルの状態表示>
#show reverse-ssh tunnel [トンネル番号]
tunnel [トンネル番号] is connected.

リバースSSHトンネルの状態を表示します。

 

〔 OpensSSH(SSHサーバ)ポート転送設定 〕

中継用SSHサーバはVPSなど活用して構築することができます。ここでは一例としてLinuxのOpenSSHの設定を紹介します。

なお、設定によっては転送用のポートに外部から直接アクセスできるようになるため、構築する場合は適切なセキュリティ対策を講じるようにしてください。
※本設定の結果により発生した情報の消失などのあらゆる損失について、弊社では責任を負いかねます。

 

<OpensSSH(SSHサーバ)ポート転送設定>

OpenSSHのデフォルト設定では、SSHサーバはポート転送を要求された時にlocalhost(127.0.0.1):指定したポート番号でListenしますが、/etc/ssh/sshd_config内のGatewayPorts設定によってポート転送時にポート番号だけでなく、ListenするIPアドレスを指定することも可能です。

(☞) ListenするアドレスはIPv4の場合、NXRの「local X.X.X.X port X remote Y.Y.Y.Y port Y」コマンドのY.Y.Y.Yで指定することが可能です。

GatewayPortsでは、以下の三種類の設定があります。

  • GatewayPorts no
    NXR側の指定は採用せず、 常にlocalhostとする
  • GatewayPorts yes
    NXR側の指定は採用せず、 常に全てのアドレス(0.0.0.0)とする
  • GatewayPorts clientspecified
    NXR側の指定を採用する