С помощью встроенного пакета OpenSSH для Windows вы можете легко настроить безопасную передачу файлов между клиентом и серверов Windows по защищенному протоколу передачи файлов SFTP (Secure FTP). В этой статье мы покажем, как установить и настроить установить SFTP сервер в Windows 10/11 или Windows Server 2022/2019/2016/2012R2 с помощью встроенных средств (Win32-OpenSSH).
Содержание:
- Установка OpenSSH в Windows
- Настройка SFTP сервера на базе OpenSSH в Windows
- Подключение к SFTP серверу с помощью PowerShell и WinSCP
- Настройка SFTP аутентификации по ключам
Протокол SFTP (Secure File Transfer Protocol , Secure FTP или SSH FTP) это расширение протокола SSH, являющимся стандартом мира UNIX/Linux систем. Хотя с точки зрения пользователей он похож на FTP, но на самом деле это абсолютно другой протокол, не имеющий с FTP ничего общего. Данные между клиентом и сервером передаются по порту 22 через SSH туннель.
Основные преимущества протокола SFTP:
- Передача файлов и команд происходит внутри защищенной SSH-сессии;
- Для передачи файлов и команд используется одно соединение;
- Поддерживаются символические ссылки, доступны функций прерывания, возобновления передачи, удаления файла и другие;
- Обычно на каналах, где FTP работает медленно или с перебоями, SFTP-соединение работает более надежно и быстро;
- Возможность аутентификации с помощью SSH ключей.
Не нужно путать протоколы SFTP и FTPS. FTPS – это по сути обычный FTP с SSL сертификатом, а SFTP – это передача FTP данных и команд внутри SSH сессии.
В современные версии Windows по-умолчанию встроен порт OpenSSH для win32 (Win32-OpenSSH). Вы можете использовать его для организации защищенного SFTP сервера вместо таких сторониих продуктов как Core FTP, FileZilla, CYGWIN, OpenSSH, FTP Shell, IPSwitch и пр.
Установка OpenSSH в Windows
Пакет OpenSSH уже включен в операционную систему в современных билдах Windows 10 (начиная с 1803), Windows 11, Windows Server 2022/2019 в виде Feature on Demand (как и RSAT).
В этих версиях Windows вы можете установить сервер OpenSSH с помощью PowerShell:
Add-WindowsCapability -Online -Name OpenSSH.Server*
Или с помощью DISM:
dism /Online /Add-Capability /CapabilityName:OpenSSH.Server~~~~0.0.1.0
Также можно установить OpenSSH из графического интерфейса Windows 10 (Settings -> Apps -> Optional Features -> Add a feature -> Open SSH Server -> Install).
Чтобы проверить, установлен ли пакет:
Get-WindowsCapability -Online | ? Name -like 'OpenSSH*'
Исполняемые файлы OpenSSH находятся в каталоге:
C:\windows\system32\OpenSSH\
Конфигурационный файл sshd_config находится в каталоге C:\ProgramData\ssh (каталог создается после первого запуска службы).
Лог — c:\windows\system32\OpenSSH\logs\sshd.log
Файл authorized_keys и ключи хранятся в каталоге %USERPROFILE%\.ssh\.
В предыдущих версиях Windows 10, в Windows 8.1 или в Windows Server 2016/2012 R2 вам придется скачать Win32-OpenSSH для Windows с GitHub и установить вручную (https://github.com/PowerShell/Win32-OpenSSH/releases). Нам нужна версия для 64 битной версии Windows: OpenSSH-Win64.zip (4,15 Мб).
- Распакуйте содержимое архива в целевой каталог, к примеру:
C:\OpenSSH-Win
- Запустите командную строку PowerShell с правами администратора и перейдите в каталог OpenSSH:
cd C:\OpenSSH-Win
- Добавьте путь к каталогу OpenSSH в переменную окружения Path;
- Установите сервер OpenSSH:
.\install-sshd.ps1
должно появиться зеленое сообщение “sshd and ssh-agent services successfully installed”).
Настройка SFTP сервера на базе OpenSSH в Windows
Теперь вам нужно настроить OpenSSH для режима SFTP.
Включите автозапуск для службы SSHD и запустите ее с помощью следующих PowerShell команд управления службами:
Set-Service -Name sshd -StartupType ‘Automatic’
Start-Service sshd
С помошью PowerShell отройте в брандмауэре Windows порт TCP 22 для входящего трафика на SSH сервер:
New-NetFirewallRule -Protocol TCP -LocalPort 22 -Direction Inbound -Action Allow -DisplayName SSH
Откройте в любом текстовом редакторе конфигурационный файл «C:\ProgramData\SSH\sshd_config», найдите и проверьте значение директивы Subsystem sftp. Здесь должен быть указан файл sftp-server.exe.
Рассмотрим полезные директивы в конфигурационном файле sshd_config:
# разрешить подключение к OpenSSH только для пользователей из этой группы
AllowGroups corp\admingroup
# включить аутентификацию по паролю (нельзя использовать ключи SSH)
AuthenticationMethods password ForceCommand internal-sftp
#каталог для SFTP пользователей (по умолчанию пользователь подключается в каталог со своим профилем в папке C:\users\username)
ChrootDirectory C:\SFTPRoot
#Для каждого пользователя можно индивидуальную chrootdirectory:
Match User user1 ChrootDirectory c:\SFTPRoot\user1 ForceCommand internal-sftp X11Forwarding no AllowTcpForwarding no
Match User user2 ChrootDirectory c:\SFTPRoot\user2 ForceCommand internal-sftp X11Forwarding no AllowTcpForwarding no
Подключение к SFTP серверу с помощью PowerShell и WinSCP
Теперь вы может подключиться к вашему SSH серверу на Windows по протоколу SFTP. Ниже мы покажем, как подключиться к SFTP серверу с помощью бесплатного клиента клиент WinSCP, консоли PowerShell и встроенной утилиты sftp.exe.
В окне настройки подключения выберите протокол передачи файлов SFTP, укажите имя сервера и данные учетной записи Windows (в формате
user@domain
для доменных пользователей), под которой осуществляется подключение (возможно также настроить авторизацию по ключам). При первом подключении появится окно с предупреждением о том, что ключ хоста отсутствует в локальном кеше.
При первом подключении появится окно с предупреждением о том, что ключ хоста отсутствует в локальном кеше.
Если все настроено правильно, клиент должен подключиться к SFTP серверу и отобразить список файлов в домашнем каталоге пользователя (по умолчанию каталог с профилем пользователя).
С помощью привычного интерфейса файлового менеджера можно безопасно копировать файлы между сервером и клиентом по защищённому протоколу SFTP.
Для подключения к SFTP серверу из PowerShell можно использовать модуль Posh-SSH. Вы можете скачать установить модуль из PowerShell Gallery или офлайн:
Install-Module -Name Posh-SSH
Для подключения к SFTP серверу с помощью пароля, нужно получить имя пользователя и пароль через Get-Credential:
$usrCreds= Get-Credential
Теперь можно подключиться к вашем SFTPS серверу:
$SFTPSession = New-SFTPSession -ComputerName 192.168.13.200 -Credential $usrCreds
Теперь вы можете вывести список файлов в удаленном каталоге на SFTP сервере. В этом примере я получу список файлов на рабочем столе пользователя (профиль пользователя в этом случае будет являться корнем)
Get-SFTPChildItem -SFTPSession $SFTPSession -Path "desktop" –Recurse
Чтобы скачать файл с удаленного SFTP сервера:
Get-SFTPItem -SessionId $SFTPSession.SessionId -Path "desktop/OpenVPNScript.log" -Destination c:\temp
Чтобы закачать файл с вашего компьютера на удаленный SFTP хост:
Set-SFTPItem -SessionId $SFTPSession.SessionId -Path C:\Temp\mytestfile.log -Destination “desktop”
Завершить SFTP сессию:
Remove-SFTPSession -SFTPSession $SFTPSession
В Windows вы можете использоваться встроенную утилиту sftp.exe (устанавливается вместе с клиентом OpenSSH) для подключения к SFTP серверу.
Подключиться к sftp серверу:
sftp [email protected]
Подключиться с помощью ssh ключа:
sftp -i .ssh/id_rsa [email protected]
Вывести список файлов в удаленном каталоге:
pwd
Скачать файл с SFTP в локальный каталог на ваш компьютер:
get file-test1.txt
Загрузить файл с вашего компьютера на SFTP сервер:
put file-test2.txt
Закрыть сессию:
exit
Настройка SFTP аутентификации по ключам
Вы можете настроить SFTP аутентификацию по ключам. В этом случае при подключении к SFTP серверу вам не нужно будет указывать пароль пользователя.
Подробно настройка SSH аутентификации по ключам описана в этой статье.
Для этого нужно:
- Создать на вашем компьютере (SFTP клиент) ключи для пользователя, под которым вы будете подключаться к серверу:
ssh-keygen -t ed25519
- Утилита сгенерирует два файла
id_ed25519
(закрытый ключ для клиента) и
id_ed25519.pub
(открытый ключ для сервера); - Теперь нужно добавить ваш SSH ключ на сервер. Скопируйте файл id_ed25519.pub(или id_rsa.pub в зависимости от типа ключа) в каталог .ssh профиля пользователя, под которым вы будете подключаться к SFTP серверу. Переименуйте файл в authorized_keys (например для пользователя alex путь будет выглядеть так:
C:\Users\alex\.ssh\authorized_keys
)
Теперь вы можете использоваться файл id_ed25519 для аутентификации на SFTP сервере в настройках WinSCP (настройки подключения Advanced -> to SSH > Authentication page -> Private key file).
Если вы хотите задать SSH ключ при подключении к SFTP из PowerShell, используйте такую команду:
New-SFTPSession -ComputerName 192.168.13.200 -Credential user1 -KeyFile C:\Users\alex\.ssh\id_ed25519" -Verbose
You can use the built-in OpenSSH package in Windows to easily enable secure file transfers between the client and Windows server using the SFTP (Secure FTP) protocol. In this article, we will show how to install and configure an SFTP server on Windows 10 or Windows Server 2022/2019/2016/2012R2.
Contents:
- How to Install OpenSSH on Windows?
- How to Configure SFTP Server on Windows Using OpenSSH?
- Connecting to SFTP Server Using WinSCP or PowerShell
- Configuring SFTP Public Key Authentication
SFTP (Secure File Transfer Protocol, Secure FTP, or SSH FTP) is the extension of SSH protocol, which is the standard in the world of UNIX/Linux systems. From the user’s point of view, it is similar to FTP, but in fact, it is a completely different protocol, having nothing in common with FTP. Data between the client and the server is transmitted on port 22 through an SSH tunnel (TCP port 22).
The main advantages of SFTP:
- Files and commands are transferred within a secure SSH session;
- One connection is used to send both files and commands;
- Symbolic links, interrupt/resume the transfer, file delete functions, etc. are supported;
- SFTP connection is much faster and more reliable on WAN links where FTP is slow or intermittent;
- Possibility to authenticate using SSH keys.
Do not confuse SFTP and FTPS protocols. FTPS is essentially just a simple FTP with an SSL certificate, and SFTP is the protocol to transfer the FTP data and commands inside the SSH session.
The win32 port of OpenSSH (Win32-OpenSSH) is built into all modern versions of Windows by default. You can use it to configure a secure SFTP server instead of using third-party products like Core FTP, FileZilla, CYGWIN, FTP Shell, IPSwitch, etc.
How to Install OpenSSH on Windows?
The OpenSSH package is a part of the operating system in modern builds of Windows 10 (starting from 1803), Windows 11, and Windows Server 2022/2019 as a Feature on Demand (like RSAT).
On these versions of Windows, you can install the OpenSSH server using PowerShell:
Add-WindowsCapability -Online -Name OpenSSH.Server*
Or using DISM:
dism /Online /Add-Capability /CapabilityName:OpenSSH.Server~~~~0.0.1.0
Also, you can install OpenSSH server from Windows 10 GUI (Settings -> Apps -> Optional Features -> Add a feature -> Open SSH Server -> Install).
To check if a package is installed:
Get-WindowsCapability -Online | ? Name -like 'OpenSSH*'
- OpenSSH executables are located in the directory:
c:\windows\system32\OpenSSH\
; - The sshd_config configuration file is located in
C:\ProgramData\ssh
(this directory is created after the first start of the sshd service); - Log file:
c:\windows\system32\OpenSSH\logs\sshd.log
; - The authorized_keys file and keys are stored in a directory:
%USERPROFILE%\.ssh\
.
On the previous earlier builds of Windows 10, Windows 8.1, and on Windows Server 2016/2012 R2, you will have to download Win32-OpenSSH for Windows from GitHub and install it manually (https://github.com/PowerShell/Win32-OpenSSH/releases). We need a version for Windows x64: OpenSSH-Win64.zip (4,15 MB).
- Extract the archive to the target folder: C:\OpenSSH-Win;
- Open an elevated PowerShell prompt and switch to the OpenSSH folder:
Cd C:\OpenSSH-Win
- Add the path to the OpenSSH directory to the Path environment variable (System Properties -> Advanced tab -> Environment Variables -> Select and edit the Path system variable -> Add the path to the OpenSSH folder);
- Install the OpenSSH server:
.\install-sshd.ps1
(a green message should appear “sshd and ssh-agent services successfully installed”);If running PowerShell scripts on your computer is blocked by your PowerShell Execution Policy, you can run the script with this command:
powershell.exe -ExecutionPolicy Bypass -File install-sshd.ps1
How to Configure SFTP Server on Windows Using OpenSSH?
Now you need to configure OpenSSH on Windows for SFTP mode.
Enable autostart for the SSHD service and start it using the following PowerShell commands:
Set-Service -Name sshd -StartupType 'Automatic'
Start-Service sshd
Use the PowerShell to open TCP port 22 in the Windows Firewall for incoming SSH traffic:
New-NetFirewallRule -Protocol TCP -LocalPort 22 -Direction Inbound -Action Allow -DisplayName SSH
Note. The previous command won’t work in old desktop Windows versions. In this case, another command is used: netsh advfirewall firewall add rule name='SSH Port' dir=in action=allow protocol=TCP localport=22
Open the SSHD configuration file (C:\ProgramData\SSH\sshd_config
) in any text editor. Find and check the value of the Subsystem sftp directive. The sftp-server.exe file should be specified here.
You can additionally configure the following parameters in the sshd_config configuration file:
# only allow users in this domain group to connect to OpenSSH AllowGroups corp\sftp_users # enable password authentication (SSH keys cannot be used) AuthenticationMethods password #default (chrooot) directory for SFTP users (by default, the user connects to the directory with his profile in the C:\users\username folder) ChrootDirectory C:\SFTP ForceCommand internal-sftp #You can set an individual chrootdirectory for each user: Match User abrown ChrootDirectory c:\SFTP\abrown ForceCommand internal-sftp X11Forwarding no AllowTcpForwarding no Match User jsmith ChrootDirectory c:\SFTP\jsmith ForceCommand internal-sftp X11Forwarding no AllowTcpForwarding no
Connecting to SFTP Server Using WinSCP or PowerShell
Now you can connect to your Windows SSH server using the SFTP protocol. Next, we’ll show you how to connect to an SFTP server using the free WinSCP client, the PowerShell console, and the built-in sftp.exe tool.
In the connection configuration window, select the SFTP as the file transfer protocol, specify the server name and the credentials of the Windows account (use the user@domain
format for domain users), which is used for connection (it is also possible to configure public key authentication).
When you try to connect for the first time, the following notification of the host key not found in the local cache appears.
If everything is configured correctly, a client should connect to the SFTP server and display the list of files in the user’s home chroot directory (by default, it is the user’s profile directory).
Using the familiar file manager interface (like Total Commander), you can copy files between the server and the client using the secure SFTP protocol.
You can use the Posh-SSH module to connect to an SFTP server from PowerShell. You can download and install the module from the PowerShell Gallery or offline:
Install-Module -Name Posh-SSH
To connect to the SFTP server using a password, you need to get the username and password via Get-Credential:
$usrCreds= Get-Credential
You can use the PowerShell module SecretManagement
to securely retrieve a saved password from a Windows Credential Manager or external vault (KeePass, HashiCorp Vault, Azure Key Vault, Bitwarden, etc.).
Now you can connect to your SFTP server:
$SFTPSession = New-SFTPSession -ComputerName 192.168.3.20 -Credential $usrCreds
Now you can list the files in the remote directory on the SFTP server. In this example, I will get a list of files on the user’s Desktop (the user’s profile will be the root user folder/chroot in this case)
Get-SFTPChildItem -SFTPSession $SFTPSession -Path "desktop" –Recurse
Download a file from a remote SFTP server:
Get-SFTPItem -SessionId $SFTPSession.SessionId -Path "desktop/OpenVPNScript.log" -Destination c:\PS
To upload a file from your computer to a remote SFTP host:
Set-SFTPItem -SessionId $SFTPSession.SessionId -Path C:\PS\mytestfile.log -Destination "desktop"
Close the SFTP session:
Remove-SFTPSession -SFTPSession $SFTPSession
On Windows, you can use the built-in sftp.exe console command (installed with the OpenSSH client) to connect to an SFTP server.
Connect to sftp server:
sftp [email protected]
Connect using ssh private key:
sftp -i .ssh/id_rsa [email protected]
List files in a remote directory:
pwd
Download the file from SFTP to a local directory on your computer:
get download_this_file_from_sftp.txt
Upload a file from your computer to an SFTP server:
put file_to_uplodad.txt
Close session:
exit
Configuring SFTP Public Key Authentication
You can enable SFTP key-based authentication in Windows. In this case, you can authenticate to the SFTP server without entering a password.
- Create SSH keys on your computer (SFTP client) for the user under which you will connect to the server:
ssh-keygen -t ed25519
- The ssh-keygen tool will generate two files id_ed25519 (private key for the client computer) and id_ed25519.pub (public key for the SFTP server);
- Now you need to add your SSH key to the Windows server (SFTP host). Copy the file id_ed25519.pub (or id_rsa.pub depending on the key type) to the .ssh directory of the user profile under which you will connect to the SFTP. Rename the file to authorized_keys (for example, the following key file is used for the user
max1
:C:\Users\max1\.ssh\authorized_keys
)
Now you can use the id_ed25519
file to authenticate on the SFTP server. You can set your key in the WinSCP settings (Advanced -> to SSH connection settings > Authentication page -> Private key file).
If you want to use an SSH key when connecting to SFTP from PowerShell, use the following command:
New-SFTPSession -ComputerName 192.168.3.20 -Credential remoteuser1 -KeyFile C:\Users\max1\.ssh\id_ed25519" -Verbose
Posted in
: NetScaler
Av Rasmus Kindberg
Översätt med Google ⟶
5 years ago
For a recent customer engagement we needed to provide internal and external users with the ability to upload/download files through SFTP to a specific backend-server. For security reasons we decided to tunnel the SFTP traffic through the customer’s Netscaler, and so for this setup you need to do some Netscaler configuration and then the actual SFTP server configuration on the backend server.
The native FTP software available as an addon in IIS does not support SFTP, and we do not wish to use regular FTP since username/passwords will be sent in clear text over the network. FTPS was not an option for us since the FTP client the users will be using does not support it.
Another important factor or requirement is to have AD authentication available, so admins don’t have to manage specific SFTP accounts and also so users don’t have to remember an additional username/password for SFTP. So I looked at a few freeware options for SFTP server (Turbo SFTP for example), but none of them really worked that great. Finally I ended up using the OpenSSH version for Windows (https://github.com/PowerShell/Win32-OpenSSH/releases) since this satisfied all the requirements.
Below are the steps to installing and configuring OpenSSH for Windows.
- Download ”OpenSSH-Win64.zip” from https://github.com/PowerShell/Win32-OpenSSH/releases
- Extract downloaded zip file
- Create folder ”C:\Program Files (x86)\OpenSSH-Win64\” and copy the extracted files there
- Run below in cmd (run cmd as admin):
powershell.exe -file ”C:\Program Files (x86)\OpenSSH-Win64\install-sshd.ps1” - Run services.msc and change Startup Type from Manual to Automatic for the two new services ”OpenSSH Authentication Agent” and ”OpenSSH SSH Server”
- Edit file ”C:\ProgramData\ssh\sshd_config” in notepad and add below text at top of file. Note that any group names and folder paths specified in the config must be specified using lowercase letters (but whether the real group/folder names are lowercase or not doesn’t matter). See https://github.com/PowerShell/Win32-OpenSSH/wiki/sshd_config for more info
-
#CUSTOM #Restricts logon through SFTP to only these users AllowGroups mydomain\somerandomadgroup #We specify that we only allow logons for connections originating from IP 192.168.1.101. #In this case this IP is the Netscaler Subnet IP, the IP the Netscaler will use to communicate with the backend server. #We don't want to allow any device/person, except our Netscaler, to be able to connect to our SFTP server. AllowUsers *@192.168.1.101 #Specifies that we're using passwords and not SSH keys to authenticate AuthenticationMethods password #Forcing SFTP functionality, needed for ChrootDirectory parameter below ForceCommand internal-sftp #Specify the default folder the user sees after SFTP authentication. Without this, users will see C:\users\myuser\ as default folder, which is not usually preferable. ChrootDirectory C:\inetpub\wwwroot\ftpfolder #Below three parameters are recommended as best practice to prevent certain security bypassing AllowTcpForwarding no PermitTunnel no GatewayPorts no
- Restart service ”OpenSSH SSH Server” (any changes to config file above won’t take effect until service is restarted)
- Optional: Open port 22 in the Windows Firewall on the backend server so Netscaler can communicate with it.
- Now you can use SFTP to connect to this server using AD credentials (just entering sAMAccountName is sufficient). Only users in AD grup ’mydomain\SomeRandomADGroup’ are allowed to logon. Access to any subfolders in C:\inetpub\wwwroot\ftp\ through SFTP will be dictated by NTFS rights. I suggest using AD groups + NTFS rights to control which subfolders the users should be able to read/write to.
The Netscaler configuration is quite trivial. After below you probably want to create an internal and external dns, such as ’myapp.mydomain.com’, pointing to 192.168.1.15 internally and the external IP (which gets NATed to 172.16.1.155 in firewall) so that users can specify ’myapp.mydomain.com’ in their SFTP client (instead of IP addresses).
add ns acl A-ANY-CS-INTERNAL_15_SFTP-TCP_22 ALLOW -destIP = 192.168.1.15 -destPort = 22 -protocol TCP -priority 70 add ns acl A-ANY-CS-DMZ_155_SFTP-TCP_22 ALLOW -destIP = 172.16.1.155 -destPort = 22 -protocol TCP -priority 80 add server myserver.mydomain.local 192.168.2.25 -comment "SFTP server" add service SVC-APPNAME-SFTP myserver.mydomain.local TCP 22 -healthMonitor YES -gslb NONE -maxClient 0 -maxReq 0 -usip NO -useproxyport YES -cltTimeout 180 -svrTimeout 360 -CKA NO -TCPB NO -CMP NO -appflowLog DISABLED -CIP ENABLED X-MS-Forwarded-Client-IP -netProfile NP_INTERNAL_SNIP add lb monitor MON-APPNAME-SFTP TCP -LRTM ENABLED -destPort 22 -interval 20 -resptimeout 15 -netProfile NP_INTERNAL_SNIP-MON bind service SVC-APPNAME_SFTP -monitorName MON-APPNAME-SFTP add lb vserver LB-EXT_APPNAME_SFTP TCP 192.168.1.15 22 -persistenceType SOURCEIP -timeout 30 add lb vserver LB-INT_APPNAME_SFTP TCP 172.16.1.155 22 -persistenceType SOURCEIP -timeout 30 bind lb vserver LB-INT_APPNAME_SFTP SVC-APPNAME_SFTP bind lb vserver LB-EXT_APPNAME_SFTP SVC-APPNAME_SFTP
Tags
: ftp, openssh, sftp
В данной инструкции я опишу, как можно настроить простой SFTP-сервер за 2 минуты используя программу Rebex Tiny SFTP Server, без танцев с веб-сервером IIS и прочих тайных обрядов по вызыванию компонентов Windows, которые так любят разработчики компании Microsoft.
Данный SFTP-сервер не требует никаких дополнительных действий или установки дополнительного ПО, а всего лишь настройку и запуск программы, все необходимые минимальные действия для работы SFTP-сервера программа выполняет самостоятельно.
SFTP (Secure File Transfer Protocol) — это протокол, предназначен для копирования и выполнения других операций с файлами поверх надёжного и безопасного соединения.
Для начала скачайте программу с сайта https://www.rebex.net/tiny-sftp-server/, программа бесплатная, по крайней мере на данный момент (2023).
Распакуйте архив её в любую папку и перейдите в неё,
внутри Вы должны увидеть несколько файлов, нас интересуют только 2 файла:
RebexTinySftpServer.exe.config — файл конфигурации
RebexTinySftpServer.exe — исполняющий файл программы
Для начала пропишем пользователя, пароль и корневой каталог в файл конфигурации:
Нужно заменить строчки:
<add key="userName" value="tester" />
<add key="userPassword" value="password" />
<add key="userRootDir" value="data" />
на следующие:
<add key="userName" value="ftpuser" />
<add key="userPassword" value="FqiJ2l8fZ6cR9oAv" />
<add key="userRootDir" value="C:\" />
Где я указал в качестве имени пользоваля «ftpuser», его пароль: «FqiJ2l8fZ6cR9oAv» и корневую папку «C:\» для подключения.
Обязательно измените эти данные на любые другие в целях безопасности.
Сохраните файл.
Далее откроем порт в файрволле сервера, откройте программу Powershell и введите следующие 2 команды:
netsh advfirewall firewall add rule name="sftp-temporary" action=allow dir=in protocol=TCP localport=22
netsh advfirewall firewall add rule name="sftp-temporary" action=allow dir=in protocol=UDP localport=22
Можно запускать программу RebexTinySftpServer.exe, в окне программы Вы увидите кнопку Start, нажмите её, чтобы запустить SFTP-сервер.
Надпись сменится на надпись Stop, что означает, что SFTP-сервер теперь работает.
Теперь можно подключаться к серверу по SFTP, для примера я буду использовать программу Filezilla, ввожу свои данные (у Вас IP адрес будет отличаться)
Как видно я смог успешно подключиться к серверу.
По завершении копирования файлов и когда Вам подклчюение больше не нужно, просто нажимаем кнопку Stop в проргамме и закрываем её.
В целях безопасности лучше не оставлять данную программу работающей на постоянной основе, а запускать её только когда она необходима.
Также рекомендую после остановки программы закрывать порт, который мы открыли ранее, для этого введите в Powershell следующую команду:
netsh advfirewall firewall delete rule name="sftp-temporary" dir=in
Несмотря на то, что протоколу FTP, являющемуся одним из старейших протоколов, уже исполнилось больше 40 лет, он продолжает использоваться повсеместно там, где требуется простой протокол передачи файлов. Сервер FTP можно установить на всех операционных системах Microsoft. Последняя глубокая модернизация этой службы была произведена в Windows 7 / Server 2008 R2 (по сути код сервиса был переписан заново). Была существенно улучшена безопасность службы, и появился ряд новых возможностей. В частности, в FTP сервере на Windows появилась возможность настроить изоляцию FTP пользователей, позволяющая разграничить доступ множества пользователей к собственным папкам на одном FTP сервере.
Благодаря возможности изоляции пользователи могут работать только со своими ftp каталогами, и не могут подняться выше по дереву каталогов, т.к. каталог верхнего уровня пользователя отображается для него, как корень службы FTP. Таким образом можно предотвратить доступ пользователей к чужим файлам на FTP сервере. Изоляция FTP пользователей широко применяется хостинг-провайдерами, когда нужно предоставить индивидуальный доступ различным пользователям к одному файловому хранилищу.
Как и в предыдущих версиях Windows, служба FTP (не путайте с sFTP и TFTP) в Windows Server 2016/2012 R2 основана и глубоко интегрирована в сервис IIS, и имеет единый административный интерфейс управления. В этой статье мы покажем, как установить сервер FTP на базе IIS в Windows Server 2016 / 2012 R2 и настроить на нем изоляцию пользователей (инструкция также применима и к Windows 10 / 8.1).
Содержание
- Установка роли FTP сервера в Windows Server 2016/ 2012 R2
- Настройка FTP сайта в Windows Server, предоставление прав пользователям
- Настройка изоляции FTP пользователей в Windows Server 2016/2012 R2
- Настройка правил брандмауэра Windows для доступа к FTP серверу
- Проверка подключения к FTP серверу с Windows клиента
- Установка
- Настройка
- Изоляция пользователей
- Что такое FTP, FTP сервер и для чего это нужно?
- Установка FTP сервера на Windows Server 2016
- Установка FTP сервера с помощью мастера
- Шаг 1
- Шаг 2
- Шаг 3
- Шаг 4
- Шаг 5
- Шаг 6
- Шаг 7
- Шаг 8
- Шаг 9
- Шаг 10
- Установка FTP сервера с помощью Windows PowerShell
- Настройка FTP сервера на Windows Server 2016 с изоляцией пользователей
- Настройка пользователей для FTP сервера
- Настройка структуры каталогов FTP сервера
- Создание и настройка FTP сайта
- Настройка параметров изоляции пользователей FTP сервера
- Удаление FTP сервера в Windows Server 2016
- Рекомендуем к прочтению
Установить сервис FTP можно через консоль Server Manager, отметив в разделе Web Server(IIS) -> FTP Server опции FTP Service и FTP Extensibility.
Также можно установить роль FTP сервера одной командой PowerShell:
Install-WindowsFeature Web-FTP-Server
Чтобы установить консоль управления FTP сервером выполните команду:
Install-WindowsFeature -Name «Web-Mgmt-Console»
Настройка FTP сайта в Windows Server, предоставление прав пользователям
Запустите Server Manager и откройте консоль управления IIS (Internet Information Service Manager).
Создайте новый FTP сайт (Sites ->Add FTP Site).
Имя FTP сайта: MyTestSite
Корневой каталог FTP сайта: C:inetpubftproot
Для защиты передаваемых по сети ftp-данных возможно настроить SSL (в этом случае все передаваемые по сети данные и пароли/учетки ftp-пользователей будут зашифрованы), но в нашей демонстрации это не обязательно. Все остальные настройки оставляем стандартными.
Import-Module WebAdministration
#Задаем имя FTP сайта
$FTPSiteName = ‘New FTP Site’
#Каталог FTP сайта
$FTPRoot = ‘E:wwwFTPRoot’
#порт FTP сайта
$FTPPort = 21
New-WebFtpSite -Name $FTPSiteName -PhysicalPath $FTPRoot -Port $FTPPort
Выберите новый FTP сайт и в секции FTP Authentication (Аутентификация) отключите анонимную аутентификацию Anonymous Authentication. Basic Authentication должна быть включена.
FTP служба на Windows Server 2016 / 2012 R2 может использовать два типа учетных записей: доменные или локальные. В зависимости от типа учетной записи есть различия в структуре каталогов FTP и настройках изоляции пользователей. Мы будем использовать локальные учетные записи Windows.
Создайте FTP пользователей, допустим, это будут учетные записи ftp_user1, ftp_user2 и ftp_user3. Также создайте группу ftp_users, в которую включим этих пользователей. Создать пользователей можно в разделе Local Users and Groups консоли Computer Management.
Также можно создать пользователей и группы из командной строки (или с помощью PowerShell). Создайте локальную группу:
net localgroup ftp_users /add
Создайте нового локального пользователя:
net user ftp_user1 /add *
Добавьте пользователя в группу:
net localgroup ftp_users ftp_user1 /add
Точно так же создайте еще двух пользователей.
Предоставьте созданной группе ftp_users права (RW) на каталог C:inetpubftproot.
Внутри каталога C:inetpubftproot создадйте каталог с именем LocalUser (имя должно полностью соответствовать, это важно. ). Затем внутри C:inetpubftprootLocalUser создайте три каталога с именами созданных вами пользователей: ftp_user1, ftp_user2, ftp_user3.
Тип учетной записи | Синтаксис именования домашних каталогов |
Анонимные пользователи | %FtpRoot%LocalUserPublic |
Локальная учетная запись Windows | %FtpRoot%LocalUser\%UserName% |
Доменная учетная запись Windows | %FtpRoot%\%UserDomain%\%UserName% |
Специальные учетки IIS Manager или ASP.NET | %FtpRoot%LocalUser\%UserName% |
Вернитесь в консоль IIS и в разделе сайта FTP Authorization Rules создайте новое правило (Add Allow Rule), в котором укажите, что группа ftp_users должна иметь права на чтение и запись (разрешения Read и Write).
Настройка изоляции FTP пользователей в Windows Server 2016/2012 R2
Перейдем к настройке изоляции пользователей FTP. Изоляция FTP пользователей настраивается на уровне сайта FTP, а не всего сервера и позволяет организовать собственный домашний каталог для каждого пользователя. В настройках FTP сайта откройте пункт FTP User Isolation.
В этом разделе имеются несколько настроек. Первые две не предполагают изоляции пользователей:
- FTProotdirectory (ftp‑сессия пользователя начинается с корневого каталога ftp-сайта);
- Usernamedirectory (пользователь начинает работу с физического/виртуального каталога с именем пользователя. Если каталог отсутствует, сессия начинается с корневого каталога ftp-сайта).
Следующие 3 опции представляют различные режимы работы изоляции пользователей:
- Usernamedirectory(disableglobalvirtualdirectories) – предполагает, что ftp-сессия пользователя изолирована физическим или виртуальным каталогом имя которого соответствует имени пользователя ftp. Пользователи видят только собственный каталог (для них он является корневым) и не могут выйти за его рамки (в вышестоящий каталог дерева FTP). Любые глобальные виртуальные каталоги игнорируются;
- Usernamephysicaldirectory(enableglobalvirtualdirectories) – предполагается, что FTP-сессия пользователя ограничена (изолирована) физическим каталогом с именем учетной записи пользователя FTP. Пользователь не может перейти выше своего каталога по структуре FTP. Однако пользователю доступны все созданные глобальные виртуальные каталоги;
- FTP home directory configured in Active Directory – FTP-пользователь изолируется в рамках своего домашнего каталога, заданного в настройках его учетной записи Active Directory (свойства FTPRoot и FTPDir).
Выберите нужный режим изоляции (я использую второй вариант изоляции ftp пользователей).
Настройка правил брандмауэра Windows для доступа к FTP серверу
При установке роли FTP сервера в настройках Windows Firewall автоматически активируются все необходимые правила, которые нужна для доступа пользователей к FTP.
Для корректной работы FTP севера в пассивном режиме FTP пользователям нужно подключаться к RPC диапазону портов (1025-65535). Чтобы не открывать все эти порты на внешнем файерволе, вы можете ограничить диапазон динамических TCP портов, используемых для передачи данных.
- Для этого в настройках FTP сайта в IIS откройте пункт FTPFirewallSupport и в поле DataChannelPortRange укажите диапазон портов, который вы хотите использоваться для FTP подключений. Например – 50000-50100;
- Сохраните изменения и перезапустите IIS (iisreset);
- Откройте панель управления и перейдите в Control PanelSystem and SecurityWindows FirewallAllowed apps;
- Убедитесь, что в списке приложении, которым разрешен доступ через брандмауэр присутствуют разрешения для FTP Server.
Затем в настройках Windows Firewall with Advanced Security проверьте, что включены следующие правила:
- FTP Server (FTP Traffic-In) – протокол TCP, порт 21;
- FTP Server Passive (FTP Passive Traffic-In) – адрес локального порта 1024-65535 (либо 50000-50100 как в нашем примере);
- FTP Server Secure (FTP SSL Traffic-In) – (при использовании FTP с SSL) порт 990;
- FTP Server (FTP Traffic-Out) – порт 20;
- FTP Server Secure (FTP SSL Traffic-Out) – (при использовании FTP с SSL) порт 989.
Соответственно эти порты нужно открыть на шлюзе (межсетевом экране) для подключения внешних FTP пользователей.
Проверка подключения к FTP серверу с Windows клиента
Вы можете проверить доступность портов на FTP сервере с помощью командлета Test-NetConnection:
Test-NetConnection -ComputerName yourftpservername -Port 21
Или с помощью команды ftp:
Попробуйте подключиться к своему FTP сайту с помощью любого клиента FTP или непосредственно из Explorer (в адресной строке указав ftp://yourservername/ .
Укажите имя и пароль пользователя.
В результате у вас откроется содержимое домашнего каталога с файлами пользователя (являющимся для пользователя корнем FTP сайта). Как вы видите, сессия пользователя является изолированной и пользователь видит на ftp сервера только свои файлы.
Для просмотра информации о доступе пользователей к FTP серверу можно использовать журналы FTP, которые по умолчанию хранятся в каталоге c:inetpublogslogfiles в файлах формата u_exYYMMDD.log.
Для просмотра текущих подключений пользователей к вашему серверу можно пользоваться значениями счетчиками пользователей IIS через PowerShell или функцией «Текущие сеансы FTP» в консоли IIS. В этой консоли можно посмотреть информацию об имени и IP адресе FTP пользователя и отключить сессию при необходимости.
Итак, мы рассмотрели, как настроить FTP сайт с изоляцией пользователей на базе Windows Server 2016 / 2012 R2. В режиме изоляции пользователи аутентифицируются на FTP под своими локальным или доменным учетными записями, после чего они получают доступ к своему корневому каталогу, соответствующему имени пользователя.
Протокол FTP (File Transfer Protocol) используется для передачи файлов. Установив соответствующее программное обеспечение, можно превратить в практически любой компьютер. В этой статье показана настройка в Windows Server 2016.
Установка
В данной статье рассмотрен классический вариант установки в Windows Server 2016 — как роли . Но вы можете установить только , установив стороннее программное обеспечение, например, Home Ftp Server, FileZilla Server и др.
Откройте Диспетчер серверов (рис. 1) и выберите команду Добавить роли и компоненты.
Рис. 1. Диспетчер серверов
В появившемся окне дважды нажмите кнопку Далее. Выберите сервер из пула серверов, на который будет произведена установка (рис. 2).
Рис. 2. Выбор сервера
Выберите роль (IIS) и нажмите кнопку Добавить компоненты (рис. 3).
Рис. 3. Нажмите кнопку Добавить компоненты
В следующем окне, Компоненты, ничего выбирать не нужно. Просто нажмите кнопку Далее дважды. В окне Выбор служб ролей добавьте службу ролей (рис. 4).
Рис. 4. Выбор служб ролей
Нажмите кнопку Далее, а затем кнопку Установить для установки выбранных компонентов (рис. 5).
Рис. 5. Нажмите кнопку Установить
Настройка
После установки программного обеспечения необходимо добавить . Откройте диспетчер служб IIS (его можно выбрать из меню Средства Диспетчера серверов).
Рис. 6. Добавление
Введите название и путь к каталогу сайта (рис. 7).
Рис. 7. Задаем путь к корневому каталогу
Далее выберите из списка , который будет использован , выберите порт (можно выбрать нестандартный), включите параметр Запускать сайт FTP автоматически и выберите опцию Без SSL дабы упростить настройку.
Рис. 8. Параметры
Далее нужно установить способы проверки подлинности. Если выбрать Анонимный, то пользователи могут входить, используя в качестве имени пользователя anonymous или guest, а в качестве пароля — . Режим по понятным причинам использовать не рекомендуется без крайней на то необходимости. При выборе обычной авторизации можно указать, кто сможет войти:
- Все пользователи — все зарегистрированные пользователи.
- Анонимные пользователи — только анонимные пользователи.
- Указанные роли или группы пользователей — только указанные роли/группы пользователей.
- Указанные пользователи — можно будет указать, каким именно пользователям разрешен вход на .
Рис. 9. Параметры проверки подлинности
Также нужно выбрать поддерживаемые операции — чтение и запись. Поскольку я разрешаю доступ анонимным пользователям, то выбираю только чтение. Такой режим полезен для организации архива общедоступных документов. Любой желающий может подключиться к архиву и скачать необходимые ему документы.
Нажмите кнопку Готово. Собственно, на этом сервер будет создан и настроен. Попробуем подключиться к нему. Откройте любой и попробуйте подключиться к серверу, используя выбранный ранее . В качестве имени юзера и пароля используйте либо anonymous/email, либо данные реальной учетной записи. На рис. 10 показано успешное подключение. После подключения была введена команда dir для вывода содержимого корневого каталога сервера.
Рис. 10. Подключение к прошло успешно
Собственно, если ставится задача создания анонимного FTP, то она уже решена. Но на практике часто нужно разграничить юзеров — чтобы каждый из них мог работать со своими файлами.
Изоляция пользователей
Чтобы после подключения к серверному компьютеру каждый юзер попадал в свой каталог и не имел доступа к другим каталогам, настраивается изоляция пользователей (рис. 11).
Рис. 11. Начальная страница диспетчера служб IIS
Откройте изоляцию пользователей FTP, выберите Каталог имени пользователя и нажмите Применить (рис. 12).
Рис. 12. Настройка изоляции пользователей
Далее щелкните правой кнопкой мыши на вашем и выберите команду Добавить виртуальный каталог (рис. 13). В появившемся (рис. 14) окне в поле Псевдоним введите имя пользователя, далее укажите путь до каталога. Можно создать в каталоге каталог с именем юзера. Нажмите кнопку OK.
Рис. 13. Выберите команду Добавить виртуальный каталог
Рис. 14. Параметры виртуального каталога
Далее разверните иерархию вашего серверного компьютера и щелкните по только что созданной виртуальной папке правой кнопкой мыши. Выберите команду Редактировать разрешения. На вкладке Безопасность (рис. 15) нажмите кнопку Дополнительно.
Рис. 15. Безопасность
Далее нажмите кнопку Отключение наследования (рис. 16). Выберите вариант Преобразовать унаследованные разрешения в явные разрешения этого объекта (рис. 17).
Рис. 16. Нажмите кнопку Отключение наследования
Рис. 17. Выберите первый вариант
Вернитесь на вкладку Безопасность и нажмите кнопку Изменить. В появившемся окне выберите группу Пользователи и нажмите кнопку Удалить. Это необходимо для того, чтобы только владелец директории имел к ней доступ (рис. 18).
Рис. 18. Настройка разрешений
Теперь нажмите кнопку Добавить (рис. 18), чтобы добавить юзера, который будет обладать правами доступа к этому виртуальному каталогу. Введите имя пользователя виртуальной папки и нажмите кнопку Проверить имена (рис. 19). Нажмите OK.
Рис. 19. Выбираем пользователя
Теперь нужно задать разрешения. Выберите пользователя, разрешите ему все — как показано на рис. 20.
Рис. 20. Настройка разрешений для пользователя
Нажмите кнопку OK. Собственно, на этом все. Возможно, вам нужно будет настроить брандмауэр, разрешив входящие подключения к . Брандмауэр Windows Server 2016 уже содержит предопределенные правила для файловых серверных компьютеров. При создании правила для входящих соединений просто выберите Предопределенные, а затем — (рис. 21). Далее отметьте все переключатели (рис. 22) и выберите действие — Разрешить подключение (рис. 23).
Рис. 21. Выбор предопределенного правила брандмауэра
Рис. 22. Отметьте все
Рис. 23. Разрешить подключение
Надеемся, данная статья облегчила настройку вашего . Напоминаем, что кроме традиционного способа, можно установить и стороннее программное обеспечение — специально для тех, кто не хочет устанавливать ради FTP.
Сегодня материал будет посвящен рассмотрению процесса установки и настройки FTP сервера в операционной системе Windows Server 2016, а также мы поговорим о том, что вообще такое FTP и FTP сервер.
Что такое FTP, FTP сервер и для чего это нужно?
FTP (File Transfer Protocol) – это протокол передачи данных. Разработан он достаточно давно и на текущий момент широко используется в сети Интернет для передачи файлов. Данный протокол достаточно часто используют администраторы сайтов, для того чтобы скачивать или закачивать файлы на свой хостинг в Интернете.
Протокол FTP реализован по схеме «клиент-сервер», т.е. существует FTP-клиенты и соответственно FTP-сервер.
FTP сервер – это сервер, на котором развернуто программное обеспечение, позволяющее принимать файлы с удаленных компьютеров по протоколу FTP и отдавать их. FTP сервер предоставляет пользователю информацию в виде файловой структуры.
FTP клиент – это программное обеспечение, предназначенное для получения доступа к FTP серверу. С помощью FTP клиента пользователи могут скачивать и закачивать файлы на FTP сервер.
Программ позволяющих реализовать FTP сервер на самом деле много (FTP клиентов еще больше), сегодня, как Вы уже поняли, мы поговорим о реализации FTP сервера в операционной системе Windows Server 2016 с помощью стандартных служб ролей.
Установка FTP сервера на Windows Server 2016
Сейчас мы с Вами рассмотрим процесс минимальной установки для FTP сервера, т.е. мы установим только то, что необходимо для FTP сервера, а именно это «Служба FTP» и «Консоль управления службами IIS». Другими словами давайте представим, что у Вас на сервере нет ничего, и у Вас встала задача развернуть FTP сервер, например, для того чтобы какие-нибудь удаленные пользователи, которые не являются сотрудниками Вашей компании, могли скачивать и закачивать файлы.
Примечание! Если у Вас уже установлены какие-нибудь службы роли «Веб-сервер IIS» и в частности «Консоль управления службами IIS», то Вам, конечно же, не нужно их устанавливать, Вам достаточно проверить установлена ли «Служба FTP» и если установлена, то переходить к настройке FTP сервера.
В данном материале я покажу два варианта установки FTP сервера: первый с помощью мастера и второй с помощью Windows PowerShell.
Установка FTP сервера с помощью мастера
Шаг 1
Открываем «Диспетчер серверов», например из меню пуск.
Далее запускаем «Мастер добавления ролей и компонентов», меню «Управление ->Добавить роли и компоненты».
Шаг 2
На этом шаге мастера можем сразу нажать «Далее».
Шаг 3
Затем выбираем тип установки «Установка ролей или компонентов», жмем «Далее».
Шаг 4
На следующем шаге выбираем целевой сервер, у меня он один, поэтому я сразу жму «Далее».
Шаг 5
На этапе выбора ролей отмечаем роль «Веб-сервер (IIS)».
Нам сразу предложат установить и «Консоль управления службами IIS», жмем «Добавить компоненты», так как нам эти средства управления нужны, для того чтобы администрировать FTP сервер, жмем «Далее».
Шаг 6
На этапе выбора компонентов ничего не выбираем, так как никакие компоненты нам больше не нужны. Жмем «Далее».
Шаг 7
На следующем шаге также жмем «Далее».
Шаг 8
И вот мы дошли до выбора служб роли «Веб-сервер (IIS)», где нам нужно снять все ненужные галочки (в случае если нам нужен только FTP сервер), и отметить лишь «Служба FTP» и «Консоль управления службами IIS», жмем «Далее».
Шаг 9
Проверяем параметры установки и жмем «Установить».
Шаг 10
После того как установка будет завершена, об этом нам просигнализирует мастер, жмем «Закрыть» и перезагружаем сервер.
Установка FTP сервера с помощью Windows PowerShell
Для установки ролей и компонентов в Windows PowerShell есть специальный командлет Install-WindowsFeature. Чтобы установить FTP сервер с помощью PowerShell выполните следующие команды.
Для установки службы «Служба FTP»
Для установки средства «Консоль управления службами IIS»
После установки лучше перезагрузить сервер.
Настройка FTP сервера на Windows Server 2016 с изоляцией пользователей
После установки службы FTP и консоли управления службами IIS, перезагрузки сервера можно переходить к настройке FTP сервера.
Настройка пользователей для FTP сервера
Первое что нам необходимо сделать, это создать пользователей или группу и добавлять в нее пользователей, которым мы хотим дать право подключаться к FTP серверу.
Для примера я создам пользователя UserFTP. Это можно сделать в оснастке «Управление компьютером». Для того чтобы запустить данную оснастку зайдите в «Диспетчер серверов- > Средства -> Управление компьютером».
Затем открываем пункт «Локальные пользователи и группы», щелкаем правой кнопкой мыши по пункту пользователи и выбираем «Новый пользователь». Заполняем необходимые поля и жмем «Создать». В итоге у нас появится новый пользователь.
Настройка структуры каталогов FTP сервера
Потом нам необходимо настроить каталоги. На диске C по умолчанию создался каталог «C:inetpubftproot» — это корневой каталог FTP сервера. В данном каталоге мы создадим отдельный каталог для нашего FTP сайта, например я его назвал TestFTP. В нем создадим каталог LocalUser (регистр важен) — это для того чтобы работала изоляция пользователей, а уже в данном каталоге создаем папки с названием, которое будет соответствовать имени пользователя в моем случае — это UserFTP. В итоге полный путь к каталогу пользователя будет выглядеть следующим образом — «C:inetpubftprootTestFTPLocalUserUserFTP», и для того чтобы в дальнейшем проверить работу FTP сервера, давайте создадим в этом каталоге тестовый файл, например Test.txt.
Создание и настройка FTP сайта
Открываем «Диспетчер служб IIS».
Затем в окне «Подключения» щелкаем правой кнопки мыши по пункту «Сайты» и выбираем «Добавить FTP-сайт».
Потом вводим название нашего FTP-сайта, я назвал его «TestFTPSite» и указываем каталог, который будет являться корнем нашего FTP-сайта (мы его чуть ранее создали). Жмем «Далее».
На данном шаге указываем привязку к IP адресу, я указал «Все свободные», Вы можете выбрать конкретный IP из выпадающего списка. Также здесь указываем настройки SSL, я указал «Без SSL», но лучше использовать SSL сертификат для шифрования.
Осталось только настроить проверку подлинности и пользователей, которые могут подключаться к нашему FTP серверу. Я выбираю «Обычную» проверку подлинности, т.е. анонимные подключения мне не нужны, и указываю конкретного пользователя UserFTP, я его создал чуть ранее. Он у меня будет иметь права и на чтение и на запись. В «боевой» среде как я уже говорил лучше создать группу и в нее добавлять пользователей FTP, и в данном случае здесь мы бы выбрали пункт «Указанные роли или группы пользователей» и указали созданную нами группу. Жмем «Готово».
Настройка параметров изоляции пользователей FTP сервера
Для того чтобы настроить изоляцию пользователей, т.е. чтобы у каждого пользователя был свой каталог и другие он не мог видеть, выбираем на начальной странице FTP сайта пункт «Изоляция пользователей».
Отмечаем пункт «Каталог имени пользователя (отключить глобальные виртуальные каталоги)» и жмем «Применить».
На этом настройка закончено, проверяем работу FTP сервера, т.е. пробуем подключиться любым FTP клиентом, желательно с другого компьютера. У меня подключился.
Удаление FTP сервера в Windows Server 2016
Для удаления FTP сервера, т.е. тех ролей, которые мы установили выше, можно использовать мастер, т.е. «Мастер удаления ролей и компонентов» или все тот же Windows PowerShell. Для того чтобы запустить мастер, мы также открываем диспетчер серверов и в меню «Управление» выбираем «Удалить роли и компоненты». После того как мастер запустится, мы делаем то же самое что и при установке, только мы не ставим галочки, а наоборот убираем их.
Для того чтобы удалить FTP сервер с помощью Windows PowerShell, можно использовать командлет Uninstall-WindowsFeature. Команды удаления будут выглядеть следующим образом (после удаления необходимо перезагрузить сервер).
Для удаления компонента «Консоль управления службами IIS»
Для удаления службы «Служба FTP»
На этом у меня все, надеюсь, материал был Вам полезен, пока!