В этой пошаговой инструкции мы рассмотрим, как установить и настроить FTP сервер для простого обмена файлов на Windows Server. Во всех версий Windows Server (а также десктопных редакциях Windows 10/11) доступна встроенная роль сервера FTP, которая реализована на базе веб сервера IIS.
Установка 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 сайт. Для управления FTP сервером в Windows используется консоль управления IIS (inetmgr).
Создайте новый FTP сайт ( Sites -> Add FTP Site ).
- Имя FTP сайта: MyTestSite
- Корневой каталог FTP сайта: C:inetpubftproot
На следующем этапе можно выбрать сертификат для шифрования и защиты FTP трафика, которые рекомендуется использовать при передаче FTP данных через открытые сети. (подробнее о настройке FTP over SSL (FTPS) в Windows ). В данном случае мы не используем шифрование (опция No SSL ).
На этапе Authentication and Authorization оставьте настройки по умолчанию (мы настроим права доступа позже).
Настройка прав доступа на FTP сервере в Windows
FTP сервер на Windows поддерживает два типа аутентификации пользователей:
- Anonymous Authentication – к FTP серверу может подключиться кто угодно (в качестве имени указывается anonymous или guest, а в качестве пароля — произвольный email-адрес);
- Basic Authentication – для подключения к FTP серверу пользователь должен аутентифицироваться с помощью своей учетной записи (доменной или локальной).
В нашем случае мы разрешим только Basic Authentication
(разверните секцию FTP Authentication в настройках сайта и включите только этот режим).
Для удобства предоставления доступа к FTP сайту, создайте локальную группу ftp_users.
Создадим локального пользователя ftp_user1 и добавим его в группу:
net user ftp_user1 /add *
net localgroup ftp_users ftp_user1 /add
Затем в эту же группу добавим доменного пользователя:
net localgroup ftp_users remontkakbuldogov /add
Предоставьте созданной группе ftp_users права RW на каталог C:inetpubftproot.
Затем нужно разрешить доступ к сайту в консоли управления FTP. Выберите раздел FTP Authorization Rules -> Add allow Rule. Создайте правило:
- Specified roles or user groups: ftp_users (разрешить доступ к сайту для указанной группы)
- Permissions: Read + Write (разрешить и чтение и запись в FTP каталог)
Теперь пользовали могут подключиться к FTP серверу. Для подключения можно использовать любой сторонний FTP клиент, или открыть FTP прямо из проводника Windows.
Укажите в адресной строке проводника Windows адрес FTP сервера в формате ftp://192.168.13.221/
, укажите учетную запись пользователя и пароль.
Пользователь должен увидеть список файлов и папок на FTP сервере.
В данном случае все пользователи подключаются к корню FTP сайта и видят все файлы. FTP сервер в Windows поддерживает режим изоляции, при котором для каждого пользователя создается персональный каталог.
Настройка изоляции FTP пользователей в Windows
Если вам нужно ограничить доступ FTP пользователей только к своим папкам (домашним каталогам), нужно включить режим изоляции. Откройте пункт FTP User Isolation в настройка сервера.
Первые две не предполагают изоляции пользователей:
- FTP root directory – пользователь подключается в корневой каталога ftp-сайта;
- User name directory – пользователь подключается в каталог с именем пользователя. Если каталог отсутствует, сессия начинается с корневого каталога ftp-сайта.
Следующие 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).
Выберите нужный режим изоляции (в этом примере я использую второй вариант изоляции ftp пользователей).
Теперь внутри каталога C:inetpubftproot нужно создать персональные директории для пользователей. В зависимости от типа учетной записи, путь к домашнему каталогу будет отличаться.
Тип учетной записи | Синтаксис именования домашних каталогов |
Анонимные пользователи | %FtpRoot%LocalUserPublic |
Локальная учетная запись Windows | %FtpRoot%LocalUser%UserName% |
Доменная учетная запись Windows | %FtpRoot%%UserDomain%%UserName% |
Специальные учетки IIS Manager или ASP.NET | %FtpRoot%LocalUser%UserName% |
В данном примере у меня есть два пользователя, для которых я создам следующие каталог
- Локальный пользователь ftp_user1 (
C:inetpubftprootLocalUserftpuser1
) - Доменный пользователь resourcekbuldogov (
C:inetpubftprootresourcekbuldogov
)
Теперь при подключении FTP пользователи будут видеть файлы только в своих персональных каталогах.
Быстрая установка и настройка FTP-сервера в Windows с помощью PowerShell
Для быстрого развертывания FTP сервера на Windows можно использовать PowerShell скрипт.
Установить роль FTP сервера в Windows Server:
Install-WindowsFeature Web-FTP-Server -IncludeAllSubFeature -IncludeManagementTools
Enable-WindowsOptionalFeature -Online -FeatureName IIS-FTPServer
Enable-WindowsOptionalFeature -Online -FeatureName IIS-FTPSvc
Enable-WindowsOptionalFeature -Online -FeatureName IIS-FTPExtensibility