$Date: 2020/01/15 04:38:02 $
ヤマハルーターでは以下の機種およびファームウェアで、SFTPサーバー機能をサポートしています。
機種 | ファームウェア | SFTPサーバー機能(パスワード認証) | SFTPサーバー機能(公開鍵認証) |
---|---|---|---|
YSL-V810 | Rev.1.03.01以降 | ○ | × |
vRX | Rev.19.00.01以降 | ○ | ○ |
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.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以降 | ○ | × |
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の管理者ページへ接続することができる。
SFTPサーバーにおける本属性の役割は以下の通りです。 ●パスワード認証を使用する場合 ・login userコマンドで設定したパスワードでSFTP接続した場合 一般ユーザの権限でログインします。ファイルリストの閲覧が可能です。ファイルの読み出しや書き込み、リビジョンアップはできません。使用できるSFTPの対話コマンドは、別表を参照してください。 ・管理者パスワードでSFTP接続した場合 管理者の権限でログインします。SFTPの対話コマンド全てを実行することが可能です。使用できるSFTPの対話コマンドは、別表を参照してください。 ●公開鍵認証を使用する場合 ・管理者の権限でログインします。SFTPの対話コマンド全てを実行することが可能です。使用できるSFTPの対話コマンドは、別表を参照してください。 |
off |
administratorコマンドにより管理ユーザに昇格することができない。
またGUIの管理者ページへ接続することができない。
SFTPサーバーにおける本属性の役割は以下の通りです。 ●パスワード認証を使用する場合 ・login userコマンドで設定したパスワードでSFTP接続した場合 一般ユーザの権限でログインします。ファイルリストの閲覧が可能です。ファイルの読み出しや書き込み、リビジョンアップはできません。使用できる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秒として扱います。 |
[初期値]
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 |
RTX1210, RTX1200, RTX830, RTX810, FWX120, NVR700W, NVR510 |
system, usb1, sd1 |
NVR500 | system, usb1, usb2, sd1 |
vRX(※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 | on |
administratorコマンドにより管理ユーザに昇格することができる。 またGUIの管理者ページへ接続することができる。 SFTPサーバーにおける本属性の役割は以下の通りです。 ・パスワード認証を使用する場合 管理者パスワードでSFTP接続した場合、管理者の権限でログインします。 ・公開鍵認証を使用する場合 管理者の権限でログインします。 |
off |
administratorコマンドにより管理ユーザに昇格することができない。 またGUIの管理者ページへ接続することができない。 SFTPサーバーにおける本属性の役割は以下の通りです。 ・パスワード認証を使用する場合 管理者パスワードを用いてSFTP接続を行うことができない。 ・公開鍵認証を使用する場合 一般ユーザの権限でログインします。 |
|
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 を省略した場合は、無名ユーザの属性を設定する。
USER をアスタリスク(*) に設定した場合は、すべてのユーザに対して設定を有効にする。 ただし、ユーザ名を指定した設定がされている場合は、その設定が優先される。
すでに管理ユーザに昇格しているユーザに対して、このコマンドでadministrator 属性を off に変更しても、そのユーザは exit コマンドにより一般ユーザに降格するか、あるいはログアウトするまでは管理ユーザで居続けることができる。またGUI の管理者ページへの接続が制限されるのはRev.10 以降のファームウェアである。
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 = on
connection = serial, telnet, ssh, sftp, remote, http
host = any
multi-session = on
login-timer = 300
他ユーザの接続を切断する。
show status user コマンドで表示された接続状況からパラメータを指定する。
無名ユーザを切断する場合は、第二書式でUSERを省略した形で指定する。
パラメータを省略した場合は、指定したパラメータと一致するすべての接続を切断する。
本機能において出力される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 ユーザ名 | 設定ファイルまたはファームウェアの書き込みに失敗 |