В этой пошаговой инструкции мы рассмотрим, как установить и настроить FTP-сервер для обмена файлами на Windows Server и Windows 10/11. В этих системах доступна встроенная роль сервера FTP, реализованная на базе веб-сервера IIS.
Приобрести оригинальные ключи активации Windows всегда можно у нас в каталоге от 1099 ₽
Установка FTP-сервера в Windows и создание FTP-сайта
Чтобы установить роль FTP-сервера в Windows Server, откройте консоль Server Manager и запустите мастер «Add Roles and Features«.
Разверните роль Web Server (IIS) -> FTP Server и отметьте опции FTP Service и FTP Extensibility.
В Windows 10 и 11 установите компоненты FTP-сервера через консоль «Turn Windows features on or off» (команда optionalfeatures). Разверните компонент Internet Information Services и выберите для установки службы FTP.
После установки роли можно создать FTP-сайт через консоль управления IIS (inetmgr). Для этого выберите Sites -> Add FTP Site и укажите:
— Имя FTP-сайта: MyTestSite
— Корневой каталог FTP-сайта: C:\inetpub\ftproot
На этапе выбора сертификата для шифрования трафика можно оставить опцию «No SSL«, если шифрование не требуется.
На этапе Authentication and Authorization оставьте настройки по умолчанию (мы настроим права доступа позже).
Настройка прав доступа на FTP-сервере в Windows
FTP-сервер в Windows поддерживает два типа аутентификации пользователей:
— Anonymous Authentication — к FTP-серверу может подключиться любой пользователь (имя «anonymous» или «guest», пароль — произвольный email-адрес).
— Basic Authentication — для подключения необходимо использовать учётную запись (доменную или локальную).
Включите только Basic Authentication для повышения безопасности (в настройках сайта разверните секцию FTP Authentication и включите этот режим).
Создайте локальную группу ftp_users и добавьте пользователей:
net user ftp_user1 /add *
net localgroup ftp_users ftp_user1 /add
Затем в эту же группу добавим доменного пользователя:
net localgroup ftp_users winitpro\kbuldogov /add
Добавьте права RW на каталог C:\inetpub\ftproot для группы ftp_users.
В консоли управления FTP выберите FTP Authorization Rules -> Add allow Rule и создайте правило для группы ftp_users с разрешениями Read и Write.
Теперь пользовали могут подключиться к FTP серверу. Для подключения можно использовать любой сторонний FTP клиент, или открыть FTP прямо из проводника Windows.
Укажите в адресной строке проводника Windows адрес FTP сервера в формате ftp://192.168.13.221/ , укажите учетную запись пользователя и пароль.
Пользователь должен увидеть список файлов и папок на FTP сервере.
В данном случае все пользователи подключаются к корню FTP сайта и видят все файлы. FTP сервер в Windows поддерживает режим изоляции, при котором для каждого пользователя создается персональный каталог.
Настройка изоляции FTP-пользователей в Windows
Если необходимо ограничить доступ пользователей только к своим папкам, включите режим изоляции (в настройках FTP User Isolation). Возможные режимы:
— User name directory (disable global virtual directories) — пользователи видят только свои каталоги.
— FTP home directory configured in Active Directory — пользователи изолируются в рамках своего домашнего каталога, указанного в настройках Active Directory.
Следующие 3 опции представляют различные режимы работы изоляции пользователей:
User name directory (disable global virtualdirectories) – ftp-сессия пользователя изолирована каталогом имя которого соответствует имени пользователя ftp. Пользователи видят только собственный каталог (для них он является корневым) и не могут выйти за его рамки (в вышестоящий каталог дерева FTP). Любые глобальные виртуальные каталоги игнорируются;
User name physical directory (enable global virtual directories) – FTP-сессия пользователя ограничена (изолирована) физическим каталогом с именем учетной записи пользователя FTP. Пользователь не может перейти выше своего каталога по структуре FTP. Однако пользователю доступны все созданные глобальные виртуальные каталоги;
FTP home directory configured in Active Directory – FTP-пользователь изолируется в рамках своего домашнего каталога, заданного в настройках его учетной записи Active Directory (свойства FTPRoot и FTPDir).
Создайте персональные каталоги для пользователей в зависимости от их учетных записей:
Тип учетной записи | Синтаксис именования домашних каталогов |
---|---|
Анонимные пользователи | %FtpRoot%\LocalUser\Public |
Локальная учетная запись Windows | %FtpRoot%\LocalUser\%UserName% |
Доменная учетная запись Windows | %FtpRoot%\%UserDomain%\%UserName% |
Специальные учетки IIS Manager или ASP.NET | %FtpRoot%\LocalUser\%UserName% |
В данном примере у нас есть два пользователя, для которых я создам следующие каталог:
— Локальный пользователь ftp_user1: C:\inetpub\ftproot\LocalUser\ftpuser1
— Доменный пользователь resource\kbuldogov: C:\inetpub\ftproot\resource\kbuldogov
Теперь пользователи смогут видеть только свои персональные каталоги при подключении к FTP.
Быстрая установка и настройка FTP-сервера в Windows с помощью PowerShell
Для быстрого развертывания FTP-сервера используйте PowerShell:
1. Установка роли FTP-сервера в Windows Server:
Install-WindowsFeature Web-FTP-Server -IncludeAllSubFeature -IncludeManagementTools
2. Установка компонентов FTP в Windows 10 и 11:
Enable-WindowsOptionalFeature -Online -FeatureName IIS-FTPServer
Enable-WindowsOptionalFeature -Online -FeatureName IIS-FTPSvc
Enable-WindowsOptionalFeature -Online -FeatureName IIS-FTPExtensibility
3. Создание пользователя и группы для FTP:
$pass = ConvertTo-SecureString "P@ssw0rd!" -AsPlainText -Force
New-LocalUser -Name ftp_user1 -Password $pass
New-LocalGroup -Name ftp_users
Add-LocalGroupMember -Group ftp_users -Member ftp_user1
4. Создание каталога и предоставление прав доступа:
$ftproot='C:\inetpub\ftproot\MyFTP'
mkdir $ftproot
New-WebFtpSite -Name MyFTP -IPAddress "*" -PhysicalPath $ftproot -Port 21
icacls $ftproot /grant "ftp_users:(OI)(CI)(F)"
5. Разрешить подключение без SSL:
$FtpSite="IIS:\Sites\MyFTP"
Set-ItemProperty $FtpSite -Name ftpServer.security.ssl.controlChannelPolicy -Value "SslAllow"
Set-ItemProperty $FtpSite -Name ftpServer.security.ssl.dataChannelPolicy -Value "SslAllow"
6. Включить basic-аутентификацию:
Set-ItemProperty $FtpSite -Name ftpServer.security.authentication.basicAuthentication.enabled -Value $true
7. Разрешить доступ к сайту для группы:
Add-WebConfiguration "/system.ftpServer/security/authorization" -Location MyFTP -PSPath IIS:\ -Value @{accessType="Allow";roles="ftp_users";permissions="Read,Write"}
8. Создание правила в Windows Defender Firewall:
New-NetFirewallRule -Name "FTP 21" -DisplayName "FTP 21" -Profile All -Direction Inbound -Action Allow -Protocol TCP -LocalPort 21 -Program "%windir%\system32\svchost.exe"
9. Перезапуск FTP-сайта:
Restart-WebItem -PSPath $FtpSite
10. Проверка доступности FTP-сервера:
Test-NetConnection -ComputerName yourftpservername -Port 21
Следуя данной инструкции, вы сможете установить и настроить FTP-сервер на Windows Server или Windows 10/11 для удобного обмена файлами между устройствами