Создание FTP-сайта

Опубликовано: 24 Марта, 2023


Получите свою копию Windows Server Hacks!

FTP — один из старейших интернет-протоколов и до сих пор один из самых полезных. В старые времена предприятия передавали информацию курьерами верхом на лошадях с кожаными сумками, наполненными документами. В настоящее время большинство деловых документов являются электронными и вместо этого отправляются через Интернет, и хотя электронная почта часто является хорошим способом сделать это, некоторые электронные документы не подходят для электронной почты, например, документы слишком большие, чтобы служить вложениями, или документы, которые должны быть отправлены анонимно, такие как как опросы. В результате многие предприятия по-прежнему нуждаются в FTP-серверах для загрузки и скачивания больших файлов.

Один интересный сценарий — это когда вы хотите, чтобы клиенты, клиенты или деловые партнеры могли анонимно загружать файлы на ваш сервер, но не могли видеть или загружать файлы, которые могли быть загружены другими. Такой сценарий часто называют «ящиком для выпадения», потому что он работает как обычные ящики с прорезями наверху, которые покупатели могут использовать для заполнения опросов об удовлетворенности и бросать их, когда они покидают ваш магазин. Довольно просто настроить такую среду с помощью компонента службы FTP служб IIS (Internet Information Services), и именно об этом эта статья.

Кончик:
Инструкции по началу работы со службой FTP в IIS см. в моей предыдущей статье «Создание и настройка FTP-сайтов в Windows Server 2003» на сайте WindowsNetworking.com.

Подготовка почтового ящика

Мой сценарий будет использовать IIS 6 на автономном Windows Server 2003 в качестве FTP-сервера и автономный Windows XP в качестве клиента для целей тестирования. Тестирование такой среды — отличное применение для Virtual PC, потрясающего продукта, который я обсуждал в предыдущих статьях на WindowsNetworking.com, и именно его я буду использовать здесь для демонстрационных целей.

Начнем с настройки FTP-сервера. После установки IIS вместе с дополнительным компонентом службы FTP я создал новую корневую папку FTP с именем FTProot на диске E:, втором диске NTFS на сервере. Причиной перемещения содержимого FTP из расположения по умолчанию C:InetpubFtproot в E:Ftproot является безопасность — данные обычно должны быть изолированы на другом диске, а не на том, где находится ваша операционная система. Эта мера также упрощает восстановление после сбоя, когда вам нужно переустановить операционную систему, так как ваши данные не будут перезаписаны в процессе восстановления, если вам придется переформатировать загрузочный том.

Затем в папке E:Ftproot я создаю папку с именем drop, которую буду использовать в качестве почтового ящика FTP. Разрешения по умолчанию для моей новой папки Ftproot в Windows Server 2003 показаны на рисунке 1.

Изображение 20907
Рисунок 1: Разрешения по умолчанию

Давайте изменим права доступа к папке Ftproot, чтобы сделать их более подходящими для нашей цели. Нажмите кнопку «Дополнительно», чтобы открыть диалоговое окно «Дополнительные параметры безопасности». Затем снимите флажок «Разрешить наследуемые разрешения от родителя для распространения на этот объект…» и когда появится новое диалоговое окно с вопросом, хотите ли вы скопировать или удалить существующие унаследованные разрешения для папки, выберите «Копировать». В результате существующие разрешения для папки Ftproot такие же, как на рис. 1, но теперь они являются явными разрешениями, а не унаследованными.

Теперь нажмите «ОК», чтобы закрыть окно «Дополнительные параметры безопасности» и вернуться к свойствам папки Ftproot. Удалите ACE для следующих трех групп: CREATOR OWNER, SYSTEM и Users. На данный момент единственным ACE в папке Ftproot является «Администраторы имеют полный доступ».

Теперь нажмите «Добавить» и добавьте ACE для учетной записи анонимного пользователя IIS, которая по умолчанию называется IUSR_имя_сервера, где имя_сервера — это имя вашего компьютера с Windows Server 2003. Затем настройте ACE для IUSR_servername, чтобы у учетной записи было разрешено только разрешение List Folder Contents, как показано на рис. 2.

Изображение 20908
Рисунок 2: Настройка ACE для IUSR_servername

На данный момент у нас есть папка Ftproot, которая предоставляет администраторам полный доступ, а анонимным пользователям — только возможность просматривать содержимое папки. Эти разрешения по умолчанию также наследуются вложенной папкой под Ftproot, и эти разрешения также нуждаются в некоторых изменениях, поэтому теперь откройте лист свойств для папки для перетаскивания, нажмите «Дополнительно», снимите флажок «Разрешить наследуемые разрешения…», нажмите «Копировать» и нажмите Хорошо, поэтому мы можем вручную изменить разрешения для папки перетаскивания.

Нажмите кнопку «Дополнительно» еще раз, чтобы открыть дополнительные параметры безопасности для папки перетаскивания, которая теперь должна выглядеть так, как показано на рис. 3:

Изображение 20909
Рисунок 3: Расширенные настройки безопасности для папки перетаскивания

Обратите внимание, что хотя стандартными разрешениями (ACE на странице «Свойства») для IUSR_servername были «Список содержимого папки», здесь они отображаются как «Чтение и выполнение». Нам нужно еще больше ужесточить разрешения для IUSR_servername, поэтому выберите это удостоверение, как показано на рис. 3, и нажмите кнопку «Изменить», чтобы отобразить специальные разрешения NTFS для IUSR_servernname. Когда появится диалоговое окно «Ввод разрешений», снимите флажки рядом со всем, кроме списка папок/чтения данных и разрешений на чтение, и измените раскрывающийся список «Применить на» на «Только файлы», как показано на рис. 4:

Изображение 20910
Рисунок 4. Изменение раскрывающегося списка «Применить к» на «Только файлы»

Нажмите OK, чтобы закрыть окно ввода разрешений и изменить специальные разрешения для IUSR_servername. Теперь нам нужно создать еще одну запись ACE для IUSR_servername, но на этот раз она будет применяться к самой папке перетаскивания, а не к файлам в этой папке, как это делала ранее запись ACE на рис. 4. Чтобы создать эту новую ACE, нажмите кнопку «Добавить», укажите IUSR_servername в качестве учетной записи, к которой вы хотите применить разрешения, и настройте разрешения, как показано на рисунке 5:

Изображение 20911
Рисунок 5: Создание нового ACE

Нажмите OK несколько раз, чтобы закрыть диалоговые окна разрешений, и все готово.

Проверка почтового ящика

Чтобы протестировать наш почтовый ящик, мы сначала сделаем E:Ftproot корневой папкой для FTP-сайта по умолчанию в IIS. Откройте Диспетчер IIS, выберите узел FTP-сайты и под ним щелкните правой кнопкой мыши FTP-сайт по умолчанию и выберите Свойства. Выберите вкладку Домашний каталог на этом листе свойств и измените домашнюю папку сайта с C:InetpubFtproot на E:Ftproot, как показано на рисунке 6. Не забудьте также установить флажок Запись, чтобы разрешить загрузку в FTP-сайт.

Изображение 20912
Рисунок 6: Изменение домашней папки сайта

Теперь давайте протестируем эту установку. Используя виртуальную машину Windows XP, работающую на Virtual PC, я открываю папку «Мои изображения», в которой есть несколько файлов, которые я хочу загрузить в папку FTP. Затем я открываю Internet Explorer и ввожу URL-адрес своего почтового ящика в виде ftp://servername/drop, как показано на рис. 7:

Изображение 20913
Рисунок 7: Загрузка файлов в папку FTP

Теперь я перетаскиваю некоторые файлы изображений из моей локальной папки «Мои рисунки» в папку для перетаскивания на удаленном FTP-сервере. Файлы должны быть переданы и будут отображаться в окне Internet Explorer как находящиеся в папке перетаскивания на удаленном компьютере. Если я сейчас обновлю представление в Internet Explorer, нажав F5, отображаемые файлы исчезнут. Другими словами, после того как файлы загружены, они больше не видны никому, кто получает доступ к папке с помощью FTP-клиента. Чтобы перепроверить это, я могу подключиться к своей папке для сброса с помощью клиента ftp.exe из командной строки Windows и попытаться просмотреть содержимое папки для сброса после загрузки в нее некоторых файлов (см. рис. 8). В результате мне отказывают в доступе, когда я пытаюсь перечислить содержимое папки перетаскивания.

Изображение 20914
Рисунок 8. Отказ в доступе при попытке получить список содержимого папки перетаскивания

Однако с помощью проводника Windows на моем FTP-сервере я могу легко убедиться, что файлы действительно были успешно загружены с клиентской машины XP.

Вывод

Папки для перетаскивания, подобные описанной здесь, могут быть полезны для предприятий, которым необходимо разрешить анонимным пользователям загружать большие файлы в вашу компанию через FTP. Установив соответствующие разрешения NTFS для папки перетаскивания на вашем FTP-сервере, вы можете разрешить пользователям загружать файлы, не имея возможности просматривать или даже знать о файлах, загруженных другими пользователями.