$Date: 2023/07/06 20:30:28 $
SFTP(SSH File Transfer Protocol)は、SSHによって暗号化された通信経路を利用して安全にファイルを転送するプログラムです。 ルーターのファイル転送プログラムとしてTFTPが実装されていますが、TFTPでは認証方式や暗号化方式が無いため、セキュリティ上のリスクがあります。 一方、SFTPでは認証とファイル転送の両方が暗号化されるため、遠隔から安全にルーターへのファイルの書き込みやルーターからのファイルの読み出しを行うことができます。 SFTPを用いることで以下の操作を行うことができます。
SFTPはSSHのサブシステムとして動作し、SSHの認証方式、暗号アルゴリズム、送信データ圧縮を使用します。 SSHの認証方式、暗号アルゴリズム、送信データ圧縮については、SSHサーバー機能を参照してください。
ヤマハルーターでは以下の機種およびファームウェアで、SFTPサーバー機能をサポートしています。
機種 | ファームウェア | SFTPサーバー機能(パスワード認証) | SFTPサーバー機能(公開鍵認証) |
---|---|---|---|
YSL-V810 | すべてのリビジョン | ○ | × |
vRX VMware ESXi版 | ○ | ○ | |
vRX Amazon EC2版 | ○ | ○ | |
RTX3510 | ○ | ○ | |
RTX1300 | ○ | ○ | |
RTX1220 | ○ | ○ | |
RTX830 | Rev.15.02.01以降 | ○ | × |
Rev.15.02.14以降 | ○ | ○ | |
NVR510 | Rev.15.01.02以降 | ○ | × |
Rev.15.01.16以降 | ○ | ○ | |
NVR700W | Rev.15.00.02以降 | ○ | × |
Rev.15.00.17以降 | ○ | ○ | |
RTX1210 | Rev.14.01.05以降 | ○ | × |
Rev.14.01.35以降 | ○ | ○ | |
RTX5000 | Rev.14.00.29以前 | ○ | × |
Rev.14.00.32以降 | ○ | ○ | |
RTX3500 | Rev.14.00.29以前 | ○ | × |
Rev.14.00.32以降 | ○ | ○ | |
FWX120 | すべてのリビジョン | ○ | × |
RTX810 | ○ | × | |
NVR500 | Rev.11.00.13以降 | ○ | × |
RTX1200 | Rev.10.01.22以降 | ○ | × |
SRT100 | Rev.10.00.60以降 | ○ | × |
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 (RTX3510、RTX1300) |
2 |
administratorコマンドのパスワード入力無しで管理ユーザーに昇格することができる。またGUIの管理者ページへ接続することができる。 SFTPサーバーにおける本属性の役割は以下の通りです。 ●パスワード認証を使用する場合 ・login userコマンドで設定したパスワードでSFTP接続した場合 一般ユーザーの権限でログインします。ファイルリストの閲覧が可能です。ファイルの読み出しや書き込み、リビジョンアップはできません。 使用できるSFTPの対話コマンドは、別表を参照してください。 ・管理者パスワードでSFTP接続した場合 管理者の権限でログインします。SFTPの対話コマンド全てを実行することが可能です。 使用できるSFTPの対話コマンドは、別表を参照してください。 ●公開鍵認証を使用する場合 ・管理者の権限でログインします。SFTPの対話コマンド全てを実行することが可能です。使用できるSFTPの対話コマンドは、別表を参照してください。 |
1 |
administratorコマンドにより管理ユーザーに昇格することができる。またGUIの管理者ページへ接続することができない。 SFTPサーバーにおける本属性の役割は、上記 administrator = 2 と同じ。 |
|
off |
administratorコマンドにより管理ユーザーに昇格することができない。またGUIの管理者ページへ接続することができない。 SFTPサーバーにおける本属性の役割は以下の通りです。 ●パスワード認証を使用する場合 ・login userコマンドで設定したパスワードでSFTP接続した場合 一般ユーザーの権限でログインします。ファイルリストの閲覧が可能です。ファイルの読み出しや書き込み、リビジョンアップはできません。 使用できるSFTPの対話コマンドは、別表を参照してください。 ・管理者パスワードでSFTP接続した場合 ログインすることができません。 ●公開鍵認証を使用する場合 ・一般ユーザーの権限でログインします。ファイルリストの閲覧が可能です。ファイルの読み出しや書き込み、リビジョンアップはできません。 使用できるSFTPの対話コマンドは、別表を参照してください。 |
|
administrator (上記以外) |
on |
administratorコマンドにより管理ユーザーに昇格することができる。またGUIの管理者ページへ接続することができる。 SFTPサーバーにおける本属性の役割は、上記 administrator = 2 と同じ。 |
off |
administratorコマンドにより管理ユーザーに昇格することができない。またGUIの管理者ページへ接続することができない。 SFTPサーバーにおける本属性の役割は、上記 administrator = off と同じ。 |
|
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秒として扱います。 |
[初期値]
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による接続を許可します。
必要に応じて、管理ユーザーに昇格する権限の設定を変更します。 |
(3) | SSHで接続を許可するホストを設定
SSHで接続するホストのIPアドレスを設定します。 |
(4) | SSHサーバーのホスト鍵の生成
DSAまたはRSAの公開鍵および、秘密鍵のペアを生成します。 |
(5) | SSHサーバー機能を有効にする
SFTPサーバー機能は、SSHの認証および暗号化を使用しますので、SSHサーバー機能を有効にする必要があります。 |
(6) | SFTPで接続を許可するホストを設定
SFTPで接続を許可するホストのIPアドレスを設定します。 |
※公開鍵認証を使用するためには、上記の設定に追加してauthorized_keysファイルにユーザーの公開鍵を登録する設定が必要です。
詳細は、こちらをご確認ください。
SFTPサーバーでは以下のようなディレクトリ構造が構築されます。
SFTPサーバーのルートディレクトリ | +--system/ ルーターの設定ファイルとファームウェアファイルとtechinfoの格納ディレクトリ | +--sd1/ microSDカードのルートディレクトリ(microSDカード挿入時のみ表示) | +--usb1/ USBメモリのルートディレクトリ(USBメモリ挿入時のみ表示) | +--RTFS領域のルートディレクトリにあるファイルやディレクトリ
機種 | 扱えないファイル名またはディレクトリ名(※1) |
---|---|
SRT100 | system, usb1 |
RTX3510, RTX1300, RTX1220, RTX1210, RTX1200, RTX830, RTX810, FWX120, NVR700W, NVR510 |
system, usb1, sd1 |
NVR500 | system, usb1, usb2, sd1 |
vRX VMware ESXi版, vRX Amazon EC2版(※2) | system, mount |
※1 : これらのファイル名やディレクトリ名はRTFSのルートディレクトリ以外では使用することができます。 ※2 : vRXシリーズのファイルシステムについてはこちらを参照してください。
設定ファイル | 読み出し | config(※1)、configN (N : 0〜4.2) |
---|---|---|
書き込み | config(※1)、configN (N : 0,1,2,3,4) | |
ファームウェア(※2)(※3) | 書き込み | exec(※1)、exec0、exec1 |
techinfo(※4) | 読み出し | techinfo |
※1 : ファイル番号を省略した場合は、起動中のファイルを対象とします。 ※2 : ファームウェアの表示においてリビジョン番号が表示されます。[表示例: exec(Rev.10.00.60)] ただし、RTX1200 Rev.10.01.29以前のファームウェアでは、リビジョン番号が表示されません。 実際にファームウェアを書き込む場合は、"exec"や"execN"と指定することで書き込むことができます。 ※3 : vRXシリーズでは使用できません。 ※4 : show techinfoコマンドの出力内容を"techinfo"として取得します。 ただし、RTX1200 Rev.10.01.29以前のファームウェアでは、"techinfo"を取得することはできません。
WindowsのコマンドプロンプトやUNIX系OSのシェルでは、一般的にファイルやディレクトリの指定方法としてルートディレクトリ '/' から記述する絶対パスと、 カレントディレクトリを基点として目的のファイル、ディレクトリがどこにあるのかを示す相対パスの2種類があります。 SFTPサーバー機能では、絶対パスと相対パスの両方を用いることが可能です。UNIX系のSFTPの仕様に従い、ホームディレクトリを示す ~ (チルダ)を用いることはできません。
2019年7月時点の動作確認結果です。動作を保証するものではありません。使い方は、SFTPクライアントの説明書などをご確認ください。
【WinSCP使用時の推奨設定項目と注意点】
※WinSCPバージョン4.2.5での設定変更方法を記載します。バージョンによって設定変更方法が異なる場合があります。
SFTPによる設定ファイルの読み書きと、ファームウェアのリビジョンアップの手順を紹介します。
以下の手順において、いずれの場合も、ヤマハルーターのIPアドレスを 192.168.0.1、ユーザー名を"yamaha"、管理者パスワードでログインするとします。パスワード認証を使用した例です。
【OpenSSH 5.3での手順】
設定ファイル"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>
ホストにあるファイル"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>
ホストにあるファイル"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>)が戻りません。
ファイル"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>
SFTPでパスワード認証を使用する場合は、login user コマンドで設定したパスワード、もしくは管理者パスワードでログインすることができます。
SFTP接続する際に使用したパスワードによってユーザーが使用できるSFTPの対話コマンドが異なります。
SFTPで公開鍵認証を使用する場合は、authorized_keysファイルにユーザーの公開鍵を登録することによりログインすることができます。
user attribute コマンドの administrator 属性によって使用できるSFTPの対話コマンドが異なります。
コマンド名 | 説明 |
---|---|
ls [-l] [-al] ※1 | ファイルとディレクトリの一覧を表示する |
cd | ディレクトリを移動する ※移動先のディレクトリを省略することはできません |
pwd | カレントディレクトリを絶対パスで表示する |
quit, bye, exit | sftpを終了する |
コマンド名 | 説明 |
---|---|
put | 指定したファイルに書き込む |
get | 指定したファイルを読み出す |
ls [-l] [-al] ※1 | ファイルとディレクトリの一覧を表示する |
cd |
ディレクトリを移動する ※移動先のディレクトリを省略することはできません |
pwd | カレントディレクトリを絶対パスで表示する |
rm | 指定したファイルを削除する |
rename |
指定したファイルのファイル名を変更する ※ファイルを移動することはできません |
mkdir | 指定したディレクトリを作成する |
rmdir |
指定したディレクトリを削除する ※空のディレクトリ以外は削除できません |
quit, bye, exit | sftpを終了する |
ユーザーの属性を設定する。属性には、以下のものがある。
attribute | value | 説明 |
---|---|---|
administrator (RTX3510、RTX1300) |
2 |
administratorコマンドのパスワード入力無しで管理ユーザーに昇格することができる。 またGUIの管理者ページへ接続することができる。 SFTPサーバーにおける本属性の役割は以下の通りです。 ・パスワード認証を使用する場合 管理者パスワードでSFTP接続した場合、管理者の権限でログインします。 ・公開鍵認証を使用する場合 管理者の権限でログインします。 |
1 |
administratorコマンドにより管理ユーザーに昇格することができる。 またGUIの管理者ページへ接続することができない。 SFTPサーバーにおける本属性の役割は、上記 administrator = 2 と同じ。 |
|
off |
administratorコマンドにより管理ユーザーに昇格することができない。 またGUIの管理者ページへ接続することができない。 SFTPサーバーにおける本属性の役割は以下の通りです。 ・パスワード認証を使用する場合 管理者パスワードを用いてSFTP接続を行うことができない。 ・公開鍵認証を使用する場合 一般ユーザーの権限でログインします。 |
|
administrator (上記以外) |
on |
administratorコマンドにより管理ユーザーに昇格することができる。 またGUIの管理者ページへ接続することができる。 SFTPサーバーにおける本属性の役割は、上記 administrator = 2 と同じ。 |
off |
administratorコマンドにより管理ユーザーに昇格することができない。 またGUIの管理者ページへ接続することができない。 SFTPサーバーにおける本属性の役割は、上記 administrator = off と同じ。 |
|
connection | off | すべての接続を禁止する。 |
all | すべての接続を許可する。 | |
serial | シリアルコンソールからの接続を許可する。 | |
telnet | TELNETによる接続を許可する。 | |
ssh | SSHによる接続を許可する。 | |
sftp | SFTPによる接続を許可する。 | |
remote | リモートセットアップによる接続を許可する。 | |
http | GUI設定画面への接続を許可する。 | |
host | IPアドレス | 指定したホストからの接続を許可します。 |
any | すべてのホストからの接続を許可します。 | |
multi-session | on | 同一ユーザー名によるTELNETまたは、SSHでの複数接続を許可する。 |
off | 同一ユーザー名によるTELNETまたは、SSHでの複数接続を禁止する。 | |
login-timer | 120..21474836, clear | ログインタイマーを設定する。 |
USER を省略した場合は、無名ユーザーの属性を設定する。
RTX3510、RTX1300では無名ユーザーは登録できないため、USERは省略することはできない。
USER をアスタリスク(*) に設定した場合は、すべてのユーザーに対して設定を有効にする。 ただし、ユーザー名を指定した設定がされている場合は、その設定が優先される。
RTX3510、RTX1300は、administrator属性が 2 のユーザーを 1 つ以上設定する必要がある。
すでに管理ユーザーに昇格しているユーザーに対して、このコマンドでadministrator 属性を off に変更しても、そのユーザーは exit コマンドにより一般ユーザーに降格するか、 あるいはログアウトするまでは管理ユーザーで居続けることができる。またGUI の管理者ページへの接続が制限されるのはRev.10 以降のファームウェアである。
GUIの管理者ページへ接続するとき、RTX1300はユーザーパスワードを用い、他の機種は管理者パスワードを用いて接続する。
connection 属性では、 off、 all 以外の値はコンマ(,) でつないで複数指定することができる。またhttp を指定してGUI 設定画面への接続を設定できるのはRev.10 以降のファームウェアである。
すでに接続しているユーザーに対して、このコマンドでconnection 属性またはhost 属性により接続を禁止しても、そのユーザーは切断するまでは接続を維持し続けることができる。
host 属性では、TELNET、SSH 、SFTP 及びHTTP で接続できるホストを設定する。 指定できるIP アドレスは、1個のIP アドレスまたは間にハイフン(-) をはさんだIP アドレス( 範囲指定)、およびこれらをコンマ(,)でつないだものである。
multi-session 属性では、TELNET またはSSH での複数接続の可否を設定する。 この属性を off に変更しても、シリアルとTELNET やリモートセットアップとSSH など、接続方法が異なる場合は同じユーザー名で接続することができる。
すでに複数の接続があるユーザーに対して、このコマンドでmulti-session 属性を off に変更しても、そのユーザーは切断するまでは接続を維持し続けることができる。
無名ユーザーに対してはSSH(パスワード認証), SFTP(パスワード認証) による接続を許可することができない。 SSH(公開鍵認証), SFTP(公開鍵認証)では無名ユーザーでも接続できる。
無名ユーザーに対してはTELNET での複数接続はできない。
TELNET、SSH、SFTP またはHTTP で接続した場合、login-timer 属性の値がclear に設定されていても、タイマー値は300 秒として扱う。
login timer コマンドの設定値よりも、本コマンドのlogin-timer 属性の設定値が優先される。
Rev.10.00.31 でlogin-timer 属性の下限値を30 から120 に変更した。
本コマンドにより、すべてのユーザーの接続を禁止する、またはすべてのユーザーが管理ユーザーに昇格できないといった設定を行った場合、ルーターの設定変更や状態確認などができなくなるので注意する必要がある。
administrator = 1(RTX3510、RTX1300)
administrator = on(上記以外)
connection = serial, telnet, ssh, sftp, remote, http
host = any
multi-session = on
login-timer = 300
SFTPでアクセスできるホストのIPv4またはIPv6アドレスを設定する。 sshd host コマンドで接続が許可されたホストを対象として SFTPでアクセスできるホストのIPアドレスを設定します。
ニーモニックをリストにすることはできない。
設定後の新しいSFTP接続から適用される。
lanキーワードは RTX5000 / RTX3500 Rev.14.00.32 以降、RTX1210 Rev.14.01.16 以降、NVR700W Rev.15.00.03 以降、 NVR510 Rev.15.01.03 以降のファームウェア、および、RTX830、RTX1220、RTX1300、RTX3510、vRX Amazon EC2版、vRX VMware ESXi版で指定可能。
他ユーザーの接続を切断する。
show status user コマンドで表示された接続状況からパラメーターを指定する。
無名ユーザーを切断する場合は、第二書式でUSERを省略した形で指定する。
パラメーターを省略した場合は、指定したパラメーターと一致するすべての接続を切断する。
自分自身のセッションを切断することはできない。 httpを指定できるのは Rev.10 以降のファームウェアである。
本機能において出力される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 ユーザー名 | 設定ファイルまたはファームウェアの書き込みに失敗 |