多機能で人気高いQNAPを使用して、DMZ上に配置するFTPSサーバを構築する手順について説明します。
今回は、共有フォルダを一切使用せずに、アカウント毎にホームフォルダへアクセスするようにするのと、通常のFTPではなくFTPSとして接続する方法について説明します。
QNAPのサーバは、SFTPを利用することも可能ですがSSHを使用しなければならないのと、SFTPだと管理者のアカウントでFTP接続することになるので、今回はセキュリティのことを考えてFTPSのサーバとして設定します。
今回は、個人向けのNASでありながらSOHOや小規模の企業でも使えるハイスペックNAS、TS-251を使用して説明しますが、QNAPの製品であればどの製品も同じことがでできるはずです。
サーバの初期設定
FTPSサーバの有効にする前に、サーバの下準備を行います。
まずは、サーバの名前を設定しますので、QNAPの管理画面へログインしたら、「システム設定」にある「一般設定」をクリックし、「システム管理」タブの「サーバ名」に、任意のサーバー名を入力してください。
これは必須ではないのですが、サーバをインターネット上に公開するのであれば、「セキュア接続(HTTPS)を有効にする」、「セキュア接続(HTTPS)のみを使用する」にチェックを入れてください。
「セキュア接続(HTTPS)のみを使用する」にチェックを入れると、「システムポート」で設定したポート番号(ここでは8080)ではアクセスできなくなり、「セキュア接続(HTTPS)を有効にする」で設定したポート番号443でのみ管理画面へアクセス可能となります。
次に、「一般設定」の「コードページ」タブをクリックし、「ファイル名符号化」をドロップダウンリストから選択します。
ここでは「日本語」を選択しますが、使用される環境に合わせて設定を変更してください。
アクセス制限の設定
続いて、インターネット上にサーバを公開することを考えて、フォルダへのアクセス制限を行います。
こちらも作業も必須ではありませんが、公開する必要のない共有フォルダは徹底的にアクセスできないようにしましょう。
赤枠で囲んだ部分のアイコンをクリックし、共有フォルダのプロパティを設定します。
共有フォルダのプロパティにある「ネットワークドライブの非表示」にチェックを入れます。
「FTP接続で書き込み専用アクセスを有効にする」はチェックを入れなくても大丈夫です。
フォルダを非表示にする意味はありませんが、不要で削除できない共有フォルダは非表示にしましょう。
デフォルトの共有フォルダ全てを非表示にしたら、次はアクセス権の設定です。プロパティアイコンのとなりにある「アクセス許可」の設定アイコンをクリックしてください。
アクセス許可設定画面が表示されたら、各フォルダ毎に設定されているアクセス許可のユーザを一覧から削除してください。
全てのユーザーを削除するだけで大丈夫だと思いますが、念のため「everyone」を追加し、「アクセス拒否」にチェックを入れました。
全ての共有フォルダを同じ設定にしてください。
サービスの設定
次に、FTPサーバ以外のネットワークサービスを全て無効にします。
セキュリティのことを考えて、インターネット上に公開するサーバは、余計なサービスを起動しないようにしましょう。
まずは、Win/Mac/NFSの「Microsoftネットワーク向けのファイルサービスを有効にする」のチェックを外して、「適用」ボタンをクリックします。
次に、「Appleネットワーク」タブをクリックし、「AFP(Apple filling Protocol)を有効にする」のチェックを外して、「適用」ボタンをクリックします。
最後に、「NFSサービス」タブをクリックし、「NFSサービスを有効にする」のチェックを外して、「適用」ボタンをクリックします。
今回は、QNAPをFTPサーバとして使用するので、「FTPサービスを有効にする」にチェックを入れてください。
また、セキュリティのことを考えて通常のFTP接続ではなく、FTPSでの接続を行いますので、「FTP over SSL/TLS(Explicit)」にチェックを入れ、ポート番号を990番に設定します。
今回の例では、Unicodeサポートを選択しておりませんが、Unicodeに対応したFTPソフトをお使いになるなら、必要に応じて設定を変更してください。
今回は、SFTPでの接続は行わないので、Telnet/SSHを無効にします。
次に、SNMPをサービスのチェックを外して無効にしてください。
サービス検出サービスの「UPnpディスカバリサービス」タブにある、「UPnPサービスを有効にする」のチェックを外して「適用」をクリックします。
Bonjourのサービスも停止します。
サーバーの設定は以上となります。
FTPアクセス用アカウントの作成
続いて、FTPサーバへ接続するためのユーザーアカウントの作成を行います。
ユーザー名とパスワードを入力し、「共有されたフォルダ権限」と「アプリケーション特権の編集」それぞれの「編集」ボタンをクリックしてください。
共有されたフォルダ権限の全てのチェックはずすか、「Deny」にチェックを入れてください。
アプリケーション特権の編集は「FTP」のみチェックを入れてください。
以上で、FTPS接続でユーザー毎のホームフォルダにアクセスできます。
セキュリティ設定
最後に、セキュリティ設定をいくつか設定します。
まずは、デフォルトのアカウントである、「admin」アカウントを無効にしてください。
新規に「administrator」グループに含まれるアカウントを作り、作成したアカウントでログインしてください。
新規に作成したアカウントで「admin」アカウントのプロパティを開き、「このアカウントを無効にする」にチェックを入れれば完了です。
次に、サーバへの接続を許可するIPアドレスの制限を行います。セキュリティ設定の「セキュリティタブ」を開き、サーバへの接続を許可するIPを設定できます。
不特定多数の人にFTPサーバへの接続を許可するのであれば、「すべての接続を許可する」を選択し、接続するユーザー少数で決められたIP以外からの接続がなければ「リストからの接続だけを許可する」を選択してください。
不正アクセスが多い場合は、「リストからの接続を拒否する」に設定し、該当するIPアドレスを入力してください。
次に、ネットワークアクセス保護の設定をします。
SSH, Telnetなど使用しないサービスに対しても、不正アクセスを自動でブロックするようにします。
HTTP(S)のネットワークアクセス保護の設定を厳しくしすぎると、使い勝手が悪くなるだけでなくアクセスできなくなる場合があるので、良く考えてから設定してください。
QNAPはデジタル証明書を取得して「証明書とプライベートキーの設定」を行うこともできます。
セキュリティ上の理由から設定方法をお見せできませんが、SSL証明書の設定が完了するとステータスと、初期状態では表示されない「中間証明書のダウンロード」、「中間証明書の削除」ボタンが表示されるようになります。
今回は、グローバルサインで取得したSSL証明書を解凍して設定しましたが、グローバルサインはセキュリティ上の理由から、証明書の解凍ツールの提供を行わない方針のようです。
グローバルサインのSSL証明書はApacheをサポート対象外とし、WindowsのIISかTOMCATを推奨環境としているので、QNAPでのSSL証明書の使用が難しくなるかもしれません。
今後のバージョンアップでQNAPがどう対応するのか楽しみです。
※追記:open sslを使えば証明書の解凍が可能です。実際にグローバルサインの証明書をopen sslで解凍して証明書の更新ができました。
以上がQNAPでFTPSサーバを公開するための設定となります。
注意点としては、パッシブFTPに対応したルータでないと、ファイアウォールのポートを開けない限りFTP接続ができない場合があります。
サーバもそうですが、ファイアウォールのポートは必要最低限のみ解放するようにしてください。