QNAPのFTPを暗号化してInternetから接続する

QNAPのFTPサーバは、有名なProFTPdだ。
これをWebインタフェースから設定可能にしている。
素晴らしい。

だからというか、設定ファイルが/etc直下に存在しない。
まあ、設定ファイルをviでいじるのはやめた方がいい。
Webインタフェースで再設定すると追記分が消えてしまうからだ。
こういったソリューションは用意された範囲で使うのが定石である。

Webインタフェースでは、以下の二種類が個別にON/OFFできる。
・通常のFTP
・暗号化されたFTP(FTP over SSL/TLS)

今回は外部公開するので、暗号化されたFTPのみONにした。
通常のFTPは、ID/パスワード、データ全てが
暗号化されずにネットワークに流れるため覗き見ることができる。
恐ろしい。

このFTP over SSL/TLSは、【FTPS】と略される。
SSH FTPの【SFTP】と名前がよく似ているので混同せぬよう。

また、FTPSはExplicitとImplicitの2モードがある。
QNAP標準でサポートしているのはExplicitモードだ。
Implicitモードでは、暗黙の了解の下、初めからSSL/TLS通信が開始する。
Explicitモードでは、通信開始後、認証前にAUTHコマンドが明示的に投げられ
その後SSL/TLS通信を開始する。
公開するのに互換性が高いのはExplicitモードなのでこれでよい。

ところで、その名の通り、FTPSはSSLを使う。
デフォルト状態で、証明書はQNAPが提供してくれている。
Webインタフェースには、自分で取得した証明書を登録する画面もある。
Webサーバを立ち上げていればHTTPSと共有できる。

FTPSの良いところは、SSLという最適化の進んだ暗号プロトコルにあると思う。
転送負荷が低く、高速なのが大変よろしい。
また、SFTPと違いディレクトリ単位のコピーなど
機能的なFTPコマンドがそのまま使えるのも大変よろしい。

また、共有フォルダは、ユーザやグループごとにアクセス権を指定できるが
アクセス許可のないユーザでFTP接続すると、フォルダそのものが見えなくなる。

最後にルータのポート開放だが
QNAPはおりこうさんなので、自分が実行しているサービスで必要なポートを
UPnPで必要なだけ自動で開放することができる。

「MyCloudNASサービス」>「自動ルータ構成」
必要なサービスにチェックすればよい。