この記事で出来るようになること
- IISでFTPサーバーを立てる
- ユーザー毎にアクセス可能なディレクトリを制限する
- 見せたくないフォルダだけ非表示にする
FTPサーバーの設定
FTPサイト名 と 物理パス を入力します。
今回はFTPのルートをC:\inetpub\ftproot\
とします。
認証は基本を選択し、アクセス許可を「すべてのユーザー」、読み書きあり で設定します。
FTPユーザーの作成
管理者権限でPowershellを開き、以下のコマンドを実行します。
# net user [ユーザー] [パスワード] /add
net user ftp-user ftp-user /add
FTPルート配下にユーザーフォルダを作成し、権限を付与します。
※ユーザーフォルダの親フォルダであるLocalUser
の名称は固定です。
# FTPサーバーのルートディレクトリへ移動
cd C:\inetpub\ftproot\
# ユーザーフォルダの作成
mkdir -p LocalUser\ftp-user
# ユーザーフォルダに変更権限を付与
icacls LocalUser\ftp-user /grant ftp-user:`(OI`)`(CI`)M
FTPコマンドで接続の確認を行います。
# FTPで接続の確認
ftp
ftp> open 127.0.0.1
# 127.0.0.1 に接続しました。
# 220 Microsoft FTP Service
# 200 OPTS UTF8 command successful - UTF8 encoding now ON.
ユーザー (127.0.0.1:(none)): ftp-user
# 331 Password required
パスワード: ftp-user
# 230 User logged in.
ユーザーの分離設定
概要
ユーザーの分離設定は、ユーザー毎に見える範囲を制限することができ、他人のフォルダを参照出来ないようにします。
また、ユーザーフォルダをルートディレクトリとすることにより、上位の階層へのアクセスを遮断します。
設定方法
「ユーザー名ディレクトリ(グローバルな仮想ディレクトリを無効にします)」を選択し、適用します。
適当なフォルダを作成し、ユーザーフォルダより上位のフォルダが参照できないことを確認します。
# 230 User logged in.
ftp> ls
# 200 PORT command successful.
# 125 Data connection already open; Transfer starting.
# folder
# 226 Transfer complete.
# ftp: 11 バイトが受信されました 0.00秒 11000.00KB/秒。
ftp> pwd
# 257 "/" is current directory.
ftp> cd ..
# 250 CWD command successful.
ftp> pwd
# 257 "/" is current directory.
以上でユーザーの分離設定の説明は終わりです。
非表示セグメントの設定
概要
非表示セグメントは、特定の見せたくないフォルダなどを非表示にすることが出来ます。
設定方法
まず適当に非表示にしたいフォルダを作成し、先ほど作成したフォルダが見れることを確認します。
ftp> ls
# 200 PORT command successful.
# 125 Data connection already open; Transfer starting.
# folder
# 見せられないよ
# 226 Transfer complete.
# ftp: 34 バイトが受信されました 0.00秒 34.00KB/秒。
コンテキストメニューから「非表示セグメントの追加」を選択します。
再度FTPでアクセスし、非表示セグメントに設定したフォルダが表示されなくなったことを確認します。
ftp> ls
# 200 PORT command successful.
# 125 Data connection already open; Transfer starting.
# folder
# 226 Transfer complete.
# ftp: 11 バイトが受信されました 0.00秒 11000.00KB/秒。
以上で非表示セグメントの説明は終わりです。