Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Элемент <requestLimits> задает ограничения на FTP-запросы, обрабатываемые FTP-сервером. Эти ограничения включают максимальный размер запроса и максимальную длину последовательности команд.
Примечание
Если фильтрация запросов блокирует FTP-запрос, так как FTP-запрос превышает ограничения, FTP 7 вернет клиенту ошибку FTP и зановит в журнал одно из следующих подсостояние FTP, определяющее причину отклонения запроса:
| Подсостояние FTP | Описание |
|---|---|
12 |
Путь слишком длинный в соответствии с правилами фильтрации запросов. |
51 |
Правила фильтрации команд запрещают доступ. |
Эти подсостояние позволяют администраторам FTP анализировать журналы IIS и выявлять потенциальные угрозы.
Совместимость
| Версия | Примечания |
|---|---|
| IIS 10.0 | Элемент <requestLimits> не был изменен в IIS 10.0. |
| IIS 8,5 | Элемент <requestLimits> не был изменен в IIS 8.5. |
| IIS 8,0 | Элемент <requestLimits> не был изменен в IIS 8.0. |
| IIS 7,5 | Элемент <requestLimits> входит в <requestFiltering> состав iis 7.5. |
| IIS 7.0 | Элемент <requestLimits> элемента появился <requestFiltering> в FTP 7.0, который был отдельной загрузкой для IIS 7.0. |
| IIS 6,0 | Служба FTP в IIS 6.0 не поддерживает фильтрацию запросов. |
Примечание
Службы FTP 7.0 и FTP 7.5 поставляются по аппаратному каналу для IIS 7.0, что требует загрузки и установки модулей по следующему URL-адресу:
В Windows 7 и Windows Server 2008 R2 служба FTP 7.5 поставляется в качестве функции для IIS 7.5, поэтому скачивание службы FTP больше не требуется.
Настройка
Для поддержки публикации ftp для веб-сервера необходимо установить службу FTP. Для этого выполните следующие действия.
Windows Server 2012 или Windows Server 2012 R2
На панели задач щелкните Диспетчер сервера.
В диспетчер сервера откройте меню Управление и выберите пункт Добавить роли и компоненты.
В мастере добавления ролей и компонентов нажмите кнопку Далее. Выберите тип установки и нажмите кнопку Далее. Выберите целевой сервер и нажмите кнопку Далее.
На странице Роли сервера разверните узел Веб-сервер (IIS) и выберите FTP-сервер.
Нажмите кнопку Далее, а затем на странице Выбор компонентов нажмите кнопку Далее еще раз.
На странице Подтверждение выбранных элементов для установки нажмите кнопку Установить.
На странице Результаты нажмите кнопку Закрыть.
Windows 8 или Windows 8.1
На начальном экране переместите указатель в левый нижний угол, щелкните правой кнопкой мыши кнопку Пуск и выберите пункт панель управления.
В панель управления щелкните Программы и компоненты, а затем — Включить или выключить компоненты Windows.
Разверните узел Службы IIS, а затем выберите FTP-сервер.
Нажмите кнопку ОК.
Щелкните Закрыть.
Windows Server 2008 R2
На панели задач нажмите кнопку Пуск, наведите указатель мыши на пункт Администрирование, а затем щелкните диспетчер сервера.
В области иерархии диспетчер сервера разверните узел Роли, а затем щелкните Веб-сервер (IIS) .
В области Веб-сервер (IIS) прокрутите страницу до раздела Службы ролей и щелкните Добавить службы ролей.
На странице Выбор служб ролеймастера добавления служб ролей разверните узел FTP-сервер.
Выберите Служба FTP.
Щелкните Далее.
На странице Подтверждение выбранных элементов для установки нажмите кнопку Установить.
На странице Результаты нажмите кнопку Закрыть.
Windows 7
На панели задач нажмите кнопку Пуск, а затем выберите пункт панель управления.
В панель управления щелкните Программы и компоненты, а затем — Включить или отключить компоненты Windows.
Разверните узел Службы IIS, а затем — FTP-сервер.
Выберите Служба FTP.
Нажмите кнопку ОК.
Windows Server 2008 или Windows Vista
Скачайте пакет установки по следующему URL-адресу:
Следуйте инструкциям в следующем пошаговом руководстве, чтобы установить службу FTP:
Инструкции
Примечание
Фильтр ftp-запросов не имеет пользовательского интерфейса в выпуске FTP 7.0; Пользовательский интерфейс фильтрации ftp-запросов был добавлен в выпуске FTP 7.5.
Изменение параметров функции фильтрации запросов и ограничений запросов
Откройте диспетчер служб IIS.
Если вы используете Windows Server 2012 или Windows Server 2012 R2:
- На панели задач щелкните диспетчер сервера, инструменты, а затем диспетчер служб IIS.
Если вы используете Windows 8 или Windows 8.1:
- Удерживая нажатой клавишу Windows, нажмите букву X и щелкните панель управления.
- Щелкните Администрирование, а затем дважды щелкните диспетчер служб IIS.
Если вы используете Windows Server 2008 или Windows Server 2008 R2:
- На панели задач нажмите кнопку Пуск, наведите указатель на пункт Администрирование, а затем щелкните Диспетчер служб IIS.
Если вы используете Windows Vista или Windows 7:
- На панели задач нажмите кнопку Пуск, а затем выберите пункт панель управления.
- Дважды щелкните элемент Администрирование, а затем дважды щелкните диспетчер служб IIS.
В области Подключения перейдите к сайту или каталогу, для которого требуется изменить параметры фильтрации запросов.
В области Главная дважды щелкните Фильтр ftp-запросов.
Щелкните Изменить параметры компонентов в области Действия .
Укажите параметры. Например, можно внести следующие изменения:
- Измените максимальную длину URL-адреса на 2 КБ, указав 2048.
- Измените максимальную длину команды на 1 КБ, указав значение 1024.
Нажмите кнопку ОК.
Конфигурация
Элемент <requestLimits><requestFiltering> элемента настраивается на глобальном уровне, уровне сайта или URL-адреса.
Атрибуты
| Атрибут | Описание |
|---|---|
maxAllowedContentLength |
Необязательный атрибут int64. Указывает максимальную длину содержимого в запросе в байтах. Значение по умолчанию — 0 (unlimited). |
maxUrl |
Необязательный атрибут uint. Указывает максимальную длину запроса в байтах. Примечание: Это значение должно находиться в диапазоне от 32 до 32768. Значение по умолчанию — 4096. |
Дочерние элементы
Отсутствует.
Образец конфигурации
В следующем примере показано несколько параметров конфигурации, связанных с безопасностью, в элементе <system.ftpServer> для ftp-сайта. В частности, <location> параметры в этом примере демонстрируют, как:
- Укажите правило авторизации FTP для доступа на чтение и запись для группы администраторов.
- Укажите параметры фильтрации ftp-запросов, которые запрещают файлы *.exe, *.bat и *.cmd.
- Укажите ограничения ftp-запросов для максимальной длины содержимого в 100 0000 байт и максимальной длины URL-адреса 1024 байта.
- Блокировать ftp-доступ к виртуальному каталогу _vti_bin, который используется с серверными расширениями FrontPage.
- Укажите параметры фильтрации IP-адресов FTP, которые разрешают доступ с 127.0.0.1 и запрещают доступ из диапазона IP-адресов 169.254.0.0/255.255.0.0.
<location path="ftp.example.com">
<system.ftpServer>
<security>
<authorization>
<add accessType="Allow" roles="administrators" permissions="Read, Write" />
</authorization>
<requestFiltering>
<fileExtensions allowUnlisted="true">
<add fileExtension=".exe" allowed="false" />
<add fileExtension=".bat" allowed="false" />
<add fileExtension=".cmd" allowed="false" />
</fileExtensions>
<requestLimits maxAllowedContentLength="1000000" maxUrl="1024" />
<hiddenSegments>
<add segment="_vti_bin" />
</hiddenSegments>
</requestFiltering>
<ipSecurity enableReverseDns="false" allowUnlisted="true">
<add ipAddress="127.0.0.1" allowed="true" />
<add ipAddress="169.254.0.0" subnetMask="255.255.0.0" allowed="false" />
</ipSecurity>
</security>
</system.ftpServer>
</location>
Пример кода
В следующих примерах указаны ограничения ftp-запросов для максимальной длины содержимого 1000000 байт и максимальной длины URL-адреса 1024 байт.
AppCmd.exe
appcmd.exe set config "Default Web Site" -section:system.ftpServer/security/requestFiltering /requestLimits.maxAllowedContentLength:"1000000" /requestLimits.maxUrl:"1024" /commit:apphost
Примечание
При использовании AppCmd.exe для настройки этих параметров для параметра apphostфиксации необходимо задать значение . Это зафиксирует параметры конфигурации в соответствующем разделе расположения в файле ApplicationHost.config.
C#
using System;
using System.Text;
using Microsoft.Web.Administration;
internal static class Sample
{
private static void Main()
{
using (ServerManager serverManager = new ServerManager())
{
Configuration config = serverManager.GetApplicationHostConfiguration();
ConfigurationSection requestFilteringSection = config.GetSection("system.ftpServer/security/requestFiltering", "Default Web Site");
ConfigurationElement requestLimitsElement = requestFilteringSection.GetChildElement("requestLimits");
requestLimitsElement["maxAllowedContentLength"] = 1000000;
requestLimitsElement["maxUrl"] = 1024;
serverManager.CommitChanges();
}
}
}
VB.NET
Imports System
Imports System.Text
Imports Microsoft.Web.Administration
Module Sample
Sub Main()
Dim serverManager As ServerManager = New ServerManager
Dim config As Configuration = serverManager.GetApplicationHostConfiguration
Dim requestFilteringSection As ConfigurationSection = config.GetSection("system.ftpServer/security/requestFiltering", "Default Web Site")
Dim requestLimitsElement As ConfigurationElement = requestFilteringSection.GetChildElement("requestLimits")
requestLimitsElement("maxAllowedContentLength") = 1000000
requestLimitsElement("maxUrl") = 1024
serverManager.CommitChanges()
End Sub
End Module
JavaScript
var adminManager = new ActiveXObject('Microsoft.ApplicationHost.WritableAdminManager');
adminManager.CommitPath = "MACHINE/WEBROOT/APPHOST";
var requestFilteringSection = adminManager.GetAdminSection("system.ftpServer/security/requestFiltering", "MACHINE/WEBROOT/APPHOST/Default Web Site");
var requestLimitsElement = requestFilteringSection.ChildElements.Item("requestLimits");
requestLimitsElement.Properties.Item("maxAllowedContentLength").Value = 1000000;
requestLimitsElement.Properties.Item("maxUrl").Value = 1024;
adminManager.CommitChanges();
VBScript
Set adminManager = createObject("Microsoft.ApplicationHost.WritableAdminManager")
adminManager.CommitPath = "MACHINE/WEBROOT/APPHOST"
Set requestFilteringSection = adminManager.GetAdminSection("system.ftpServer/security/requestFiltering", "MACHINE/WEBROOT/APPHOST/Default Web Site")
Set requestLimitsElement = requestFilteringSection.ChildElements.Item("requestLimits")
requestLimitsElement.Properties.Item("maxAllowedContentLength").Value = 1000000
requestLimitsElement.Properties.Item("maxUrl").Value = 1024
adminManager.CommitChanges()