SFTPサーバー機能

$Date: 2017/10/11 11:44:22 $


概要

SFTP(SSH File Transfer Protocol)は、SSHによって暗号化された通信経路を利用して安全にファイルを転送するプログラムです。ルーターのファイル転送プログラムとしてTFTPが実装されていますが、TFTPでは認証方式や暗号化方式が無いため、セキュリティ上のリスクがあります。一方、SFTPでは認証とファイル転送の両方が暗号化されるため、遠隔から安全にルーターへのファイルの書き込みやルーターからのファイルの読み出しを行うことができます。SFTPを用いることで以下の操作を行うことができます。 SFTPはSSHのサブシステムとして動作し、SSHの認証方式、暗号アルゴリズム、送信データ圧縮を使用します。SSHの認証方式、暗号アルゴリズム、送信データ圧縮については、SSHサーバー機能を参照してください。

注意事項


対応機種とファームウェアリビジョン

ヤマハルーターでは以下の機種およびファームウェアで、SFTPサーバー機能をサポートしています。

機種ファームウェア
YSL-V810 Rev.1.03.01以降
RTX830 Rev.15.02.01以降
NVR510 Rev.15.01.02以降
NVR700W Rev.15.00.02以降
RTX1210 Rev.14.01.05以降
RTX5000 Rev.14.00.08以降
RTX3500 Rev.14.00.08以降
FWX120 Rev.11.03.02以降
RTX810 Rev.11.01.04以降
NVR500 Rev.11.00.13以降
RTX1200 Rev.10.01.22以降
SRT100 Rev.10.00.60以降

詳細

  1. SFTPのアクセス制限

    SFTPによるヤマハルーターへのアクセスには、以下の制限があります。


  2. SFTPで接続するユーザの管理

    user attribute コマンドを用いることで、login user コマンドで設定した各ユーザごとにSFTP接続の許可および禁止やSFTP接続できるパスワードを制限することができます。また、disconnect user コマンドを用いることでSFTPサーバーに接続中のユーザを強制的に切断させることができます。以下に user attribute コマンドのSFTPサーバーに関する仕様拡張について説明します。user attribute コマンドの詳細については、user attributeコマンドを参照してください。SFTP接続中のユーザの強制切断については、disconnect userコマンドを参照してください。

    入力形式:
    user attribute [user] attribute=value [attribute=value...]
    no user attribute [user]

    attribute value 説明
    administrator on administratorコマンドにより管理ユーザに昇格することができる。 またGUIの管理者ページへ接続することができる。

    ●login userコマンドで設定したパスワードでSFTP接続した場合
    一般ユーザの権限でログインします。ファイルリストの閲覧が可能です。ファイルの読み出しや書き込み、リビジョンアップはできません。使用できるSFTPの対話コマンドは、別表を参照してください。

    ●管理者パスワードでSFTP接続した場合
    管理者の権限でログインします。SFTPの対話コマンド全てを実行することが可能です。使用できるSFTPの対話コマンドは、別表を参照してください。
    off administratorコマンドにより管理ユーザに昇格することができない。 またGUIの管理者ページへ接続することができない。

    ●login userコマンドで設定したパスワードでSFTP接続した場合
    一般ユーザの権限でログインします。ファイルリストの閲覧が可能です。ファイルの読み出しや書き込み、リビジョンアップはできません。使用できるSFTPの対話コマンドは、別表を参照してください。

    ●管理者パスワードでSFTP接続した場合
    ログインすることができません。
    connection off すべての接続を禁止する。
    all すべての接続を許可する。
    serial シリアルコンソールからの接続を許可する。
    telnet TELNETによる接続を許可する。
    ssh SSHによる接続を許可する。
    sftp SFTPによる接続を許可する。
    remote リモートセットアップによる接続を許可する。
    http GUI設定画面への接続を許可する。
    host IPアドレス 指定したホストからの接続を許可します。
    any すべてのホストからの接続を許可します。
    multi-session on 同一ユーザ名によるTELNETまたは、SSHでの複数接続を許可する。
    ※SFTPは同時に複数のユーザがログインすることはできません。
    off 同一ユーザ名によるTELNETまたは、SSHでの複数接続を禁止する。
    login-timer 120..21474836, clear ログインタイマを設定する。login timerコマンドで設定されたタイマ値よりもこのコマンドで設定したタイマ値が優先されます。SFTPでは、SSH同様に login-timer = clear と設定されていてもタイマ値は300秒として扱います。

    [初期値]


  3. SFTPサーバーを利用するために必要な設定

    SFTPサーバーを利用するために、あらかじめ以下の設定を行う必要があります。

    login user ユーザ名 パスワード ... (1)
    user attribute ユーザ名 ... (2)
    sshd host IPアドレス ... (3)
    sshd host key generate ... (4)
    sshd service on ... (5)
    sftpd host IPアドレス ... (6)
    (1) ログインユーザの登録

    ログインユーザ名とパスワードを設定します。

    (2) ユーザの属性を設定

    ログインユーザにSFTPによる接続を許可します。
    user attribute コマンドは初期状態でSFTP接続を行うことができます。

    (3) SSHで接続を許可するホストを設定

    SSHで接続するホストのIPアドレスを設定します。
    IPアドレスには、IPv4アドレスまたはIPv6アドレスが設定できます。

    (4) SSHサーバーのホスト鍵の生成

    DSAまたはRSAの公開鍵および、秘密鍵のペアを生成します。
    鍵の生成には、数十秒ほど時間がかかります。

    (5) SSHサーバー機能を有効にする

    SFTPサーバー機能は、SSHの認証および暗号化を使用しますので、SSHサーバー機能を有効にする必要があります。

    (6) SFTPで接続を許可するホストを設定

    SFTPで接続を許可するホストのIPアドレスを設定します。
    sshd host コマンドでSSHサーバーへのアクセスが許可されたホストの中で、SFTPで接続するホストを制限することができます。
    IPアドレスには、IPv4アドレスまたはIPv6アドレスが設定できます。


  4. ディレクトリ構造

    SFTPサーバーでは以下のようなディレクトリ構造が構築されます。

    	SFTPサーバーのルートディレクトリ
    	  |
    	  +--system/	ルーターの設定ファイルとファームウェアファイルとtechinfoの格納ディレクトリ
    	  |
    	  +--sd1/	microSDカードのルートディレクトリ(microSDカード挿入時のみ表示)
    	  |
    	  +--usb1/	USBメモリのルートディレクトリ(USBメモリ挿入時のみ表示)
    	  |
    	  +--RTFS領域のルートディレクトリにあるファイルやディレクトリ
    

    絶対パスと相対パス

    WindowsのコマンドプロンプトやUNIX系OSのシェルでは、一般的にファイルやディレクトリの指定方法としてルートディレクトリ '/' から記述する絶対パスと、カレントディレクトリを基点として目的のファイル、ディレクトリがどこにあるのかを示す相対パスの2種類があります。SFTPサーバー機能では、絶対パスと相対パスの両方を用いることが可能です。UNIX系のSFTPの仕様に従い、ホームディレクトリを示す ~ (チルダ)を用いることはできません。

  5. SFTPサーバー 動作確認済のSFTPクライアント

    【WinSCP使用時の推奨設定項目と注意点】

    ※WinSCPバージョン4.2.5での設定変更方法を記載します。バージョンによって設定変更方法が異なる場合があります。

  6. SFTP の使用例

    SFTPによる設定ファイルの読み書きと、ファームウェアのリビジョンアップの手順を紹介します。

    以下の手順において、いずれの場合も、ヤマハルーターのIPアドレスを 192.168.0.1、ユーザ名を"yamaha"、管理者パスワードでログインするとします。

    【OpenSSH 5.3での手順】

    1. 設定ファイルの読み出し

      設定ファイル"config"を"OLDconfig.txt"に読み出すものとします。

      > sftp yamaha@192.168.0.1
      Connecting to 192.168.0.1...
      Password:
      sftp> get system/config OLDconfig.txt
      Fetching /system/config to OLDconfig.txt
      /config						100% 570     0.6KB/s   00:00
      sftp>
      
    2. 設定ファイルの書き込み

      ホストにあるファイル"NEWconfig.txt"を設定ファイル"config1"に書き込むものとします。

      > sftp yamaha@192.168.0.1
      Connecting to 192.168.0.1...
      Password:
      sftp> put NEWconfig.txt system/config1
      Uploading NEWconfig.txt to /system/config1
      NEWconfig.txt					100% 4260    4.2KB/s   00:00
      sftp>
      
    3. ファームウェアのリビジョンアップ

      ホストにあるファイル"rtx1200.bin"をファームウェア"exec0"に書き込むものとします。
      リビジョンアップが正常に終了すると、自動的にルーターが再起動します。

      > sftp yamaha@192.168.0.1
      Connecting to 192.168.0.1...
      Password:
      sftp> put rtx1200.bin system/exec0
      Uploading rtx1200.bin to /system/exec0
      rtx1200.bin					100% 3488KB  768.4KB/s   00:05
      sftp> Received disconnect from 192.168.0.1: 2: Disconnect for router restart
      

      ファームウェアの転送が終了し、ファームウェアの書き込みが正常に終了するとセッションが自動切断されます。
      ファームウェアの転送からセッションの自動切断まで数十秒間はプロンプト(sftp>)が戻りません。

    4. USBメモリへのファイルの書き込み

      ファイル"config.txt"をUSBメモリのルートディレクトリに"memory.txt"という名前で書き込むものとします。

      > sftp yamaha@192.168.0.1
      Connecting to 192.168.0.1...
      Password:
      sftp> put config.txt usb1/memory.txt
      Uploading config.txt to /usb1/momory.txt
      config.txt					100% 570     0.6KB/s   00:00
      sftp>
      
  7. SFTPサーバー機能で利用できるSFTPの対話コマンド

    SFTPでは、login user コマンドで設定したパスワード、もしくは管理者パスワードでログインすることが できます。
    SFTP接続する際に使用したパスワードによってユーザが使用できるSFTPの対話コマンドが異なります。

    ※1:
    ルーターには、UNIXのようなファイルの属性がないため、ls -l コマンドや ls -al コマンドで表示されるファイルの属性のうち、パーミッションやユーザID、グループIDの値は意味を持ちません。 SFTPクライアントによっては、ファイル名が"."で始まるような隠しファイルが ls コマンドで表示されないことがあります。ls -alコマンドを使うことで表示させることができます。

コマンド


SYSLOGメッセージ一覧

本機能において出力されるSYSLOGメッセージを以下に示します。

レベル 出力メッセージ 意味
INFO Login succeed: IPアドレス ユーザ名 as administrator 管理者パスワードによってSFTP接続のログインに成功
Login succeed: IPアドレス ユーザ名 as login user ログインパスワードによってSFTP接続のログインに成功
Permission denied : IPアドレス sftpd hostコマンドの設定によりアクセスが制限された
Logout: ユーザ名 SFTP接続からログアウト
Get ファイル名 succeed by ユーザ名 設定ファイルの読み出しに成功
Put ファイル名 succeed by ユーザ名 設定ファイルまたはファームウェアの書き込みに成功
Get ファイル名 failed by ユーザ名 設定ファイルの読み出しに失敗
Put ファイル名 failed by ユーザ名 設定ファイルまたはファームウェアの書き込みに失敗

関連文書