Windows 2025
Sponsored Link

FTP サーバー : FTP ユーザーの分離2024/12/19

 

FTP ユーザー分離の設定です。
FTP ユーザーの分離を有効にすると、各ユーザーはそれぞれ自身のユーザー名フォルダーのみにアクセス可能となります。 各ユーザー間でファイル共有の必要がなく、各ユーザー毎に FTP を利用させたい場合に有効な設定です。

[1] PowerShell を管理者権限で起動して設定します。
Windows PowerShell
Copyright (C) Microsoft Corporation. All rights reserved.

# FTP サイトを追加
# -Name [管理上の任意の名前]
# -IPAddress [リスンする IP アドレス] (下例は 0.0.0.0)
# -Port [リスンするポート]
PS C:\Users\Administrator> New-WebFtpSite -Name "FTPRoot" -IPAddress "*" -Port 21 

Name             ID   State      Physical Path                  Bindings
----             --   -----      -------------                  --------
FTPRoot          2    Started                                   ftp *:21:

# 追加した FTP サイトで使用する物理フォルダーを設定
# 下例は既定で用意されている [C:\inetpub\ftproot] を設定
PS C:\Users\Administrator> Set-ItemProperty "IIS:\Sites\FTPRoot" -Name physicalPath -Value 'C:\inetpub\ftproot' 

# SSL/TLS 無しでの接続を許可
PS C:\Users\Administrator> Set-ItemProperty "IIS:\Sites\FTPRoot" -Name ftpServer.security.ssl.controlChannelPolicy -Value "SslAllow" 
PS C:\Users\Administrator> Set-ItemProperty "IIS:\Sites\FTPRoot" -Name ftpServer.security.ssl.dataChannelPolicy -Value "SslAllow" 

# 基本認証を設定
PS C:\Users\Administrator> Set-ItemProperty "IIS:\Sites\FTPRoot" -Name ftpServer.security.authentication.basicAuthentication.enabled -Value $true 

# ローカルユーザーの読み取り/書き込み許可を設定
PS C:\Users\Administrator> Add-WebConfiguration "/system.ftpServer/security/authorization" -Location FTPRoot -PSPath IIS:\ -Value @{accessType="Allow";users="*";permissions="Read,Write"} 

# ユーザー分離の設定
PS C:\Users\Administrator> Set-ItemProperty "IIS:\Sites\FTPRoot" -Name ftpServer.userIsolation.mode -Value "IsolateRootDirectoryOnly" 

# 外部 IP アドレスを設定 (クライアントから接続可能な IP アドレス)
PS C:\Users\Administrator> Set-ItemProperty "IIS:\Sites\FTPRoot" -Name ftpServer.firewallSupport.externalIp4Address -Value "10.0.0.101" 

# FTP サイトの物理パスに設定したフォルダー直下に [LocalUser] フォルダー作成 (ユーザー分離設定で必要)
# ドメインユーザーの場合は [(FTP ルート)\(%UserDomain%)]
PS C:\Users\Administrator> mkdir C:\inetpub\ftproot\LocalUser 

    Directory: C:\inetpub\ftproot


Mode                 LastWriteTime         Length Name
----                 -------------         ------ ----
d-----        12/18/2024   4:58 PM                LocalUser

# FTP サイトを再起動
PS C:\Users\Administrator> Restart-WebItem -PSPath 'IIS:\Sites\FTPRoot' 

# ローカルユーザー用の FTP ホームフォルダーをそれぞれ用意
# [(FTP ルート)\LocalUser\(ユーザー名)] という規則で作成 (下例は [Serverworld] ユーザー用)
PS C:\Users\Administrator> mkdir C:\inetpub\ftproot\LocalUser\Serverworld 
PS C:\Users\Administrator> icacls "C:\inetpub\ftproot\LocalUser\Serverworld" /grant "Serverworld:(OI)(CI)(F)" 
processed file: C:\inetpub\ftproot\LocalUser\Serverworld
Successfully processed 1 files; Failed processing 0 files
FTP サーバー : FTP ユーザーの分離 (GUI)
 

GUI で設定する場合は以下のように実行します。

[2] FTP サイトを追加します。
[スタート] - [サーバーマネージャー] を起動し、[ツール] - [インターネット インフォメーション サービス マネージャー] を開きます。 次に、左ペインで [サイト] を選択し、右クリックのメニューから [FTP サイトの追加] を開きます。
[3] [FTP サイト名] には任意の管理上の名称を入力します。[物理パス] には FTP ルートフォルダーとしたい任意の物理フォルダーを指定します。 当例では既定で用意されている [C:\inetpub\ftproot] を設定します。
[4] バインドの設定です。IP アドレス/ポート は既定のままで OK です。
以下の設定の場合、FTP サービスは 0.0.0.0:21 でリスンします。
[SSL] は必要に応じて設定します。
[5] 認証とアクセス権の設定です。
認証には [基本認証] を設定し、[アクセスの許可] には [すべてのユーザー] を選択します。アクセス許可は [読み取り/書き込み] です。
[6] FTP サイトが追加されました。左ペインで追加された FTP サイトを選択し、中央ペインで [FTP ファイアウォールのサポート] をクリックします。
[7] [ファイアウォールの外部 IP アドレス] に、FTP クライアントから接続可能な IP アドレスを設定します。
[8] 再び左ペインで追加された FTP サイトを選択し、中央ペインで [FTP ユーザーの分離] をクリックします。
[9] [ユーザー名物理ディレクトリ] にチェックを入れて適用します。
[10]
FTP ユーザー分離を有効にした場合、ユーザーそれぞれに FTP ホームとなるフォルダーが必要です。
まずは、[5] で設定した FTP サイトの FTP ルート (当例では [C:\inetpub\ftproot]) 直下に [LocalUser] というフォルダーを作成します。
その [LocalUser] フォルダー直下に、ユーザー名と同名のフォルダーを作成して、アクセス権をそれぞれのユーザーが [読み取り/書き込み] 可能なように適用します。
(下例は [Serverworld] ユーザー用のフォルダー設定)
以上で FTP ユーザー分離を有効にした FTP サイトの設定は完了です。クライアントコンピューターから FTP 接続して動作を確認してください。
関連コンテンツ