FTP-Сервер обеспечивает возможность передачи файлов между клиентом и сервером с помощью протокола FTP. Здесь будет рассказано как запустить FTP-сервер в Windows Server 2008 R2.
0. Оглавление
- Добавление службы FTP-сервер
- Добавление FTP-сайта
- Детальная настройка уровня доступа для FTP-сайта
1. Добавление службы FTP-сервер
FTP-Сервер является службой роли «Веб-сервер (IIS)» , поэтому для начала нужно установить данную роль. Для этого заходим в диспетчер сервера («Пуск» — «Администрирование» — «Диспетчер сервера»). Раскрываем вкладку «Роли» и нажимаем «Добавить роли» . Если веб-сервер уже был установлен раннее, то необходимо кликнуть правой кнопкой мыши на названии роли в диспетчере сервера и выбрать «Добавить службы ролей» .
В запустившемся мастере нажимаем «Далее» , выбираем роль «Веб-сервер (IIS)» и 2 раза жмем «Далее» .
Теперь надо выбрать службы для данной роли. По умолчанию уже отмечены службы, необходимые для работы web-сервера. Листаем вниз и отмечаем службу «FTP-Сервер» . Затем жмем «Далее» , «Установить» и дожидаемся сообщения об успешной установке роли.
2. Добавление FTP-сайта
Теперь в диспетчере сервера, раскрыв вкладку «Роли» мы видим добавленную только что роль «Веб-сервер (IIS)» . Кликаем по ней 2 раза и заходим в «Диспетчер служб IIS» (доступен также через «Пуск» — «Администрирование» — «Диспетчер служб IIS» ).
В диспетчере служб IIS мы видим, что у нас уже добавлен сайт по умолчанию «Default Web Site» (Чтобы его просмотреть можно набрать в строке браузера http://localhost/ ) , нам же надо добавить новый ftp-сайт. Для этого кликаем правой кнопкой мыши в окне «Подключения» и выбираем «Добавить FTP-сайт» .
Запустится мастер добавления FTP-сайта. Придумываем имя FTP-сайта (только для нас), указываем расположения каталогов для сайта и жмем «Далее» .
На следующей странице, в меню «Привязки» оставляем «Все свободные» и можно поменять порт по умолчанию, если вам это надо. Далее, если у вас есть доменное имя, и вы хотите чтобы по нему был доступен FTP-сайт, записываем его в поле «Виртуальный узел» (О доменном имени и привязке его к IP адресу можно прочитать здесь). У меня это ftp.tavalik.ru, в противном случае НЕ включаем опцию «Разрешить имена виртуальных узлов» . Оставляем галочку «Запускать FTP-сайт автоматически» (чтобы сайт запускался автоматически при запуске компьютера), выбираем пункт «Без SSL» (в этой статье я не буду рассматривать данный протокол) и жмем «Далее» .
Теперь настраиваем уровень доступа к FTP-сайту. Устанавливаем проверку подлинности «Анонимный» , только если хотим оставить анонимный доступ к сайту и выбираем «Обычная» для обычной проверки доступа. Далее необходимо выбрать для каких пользователей будет доступен наш FTP-сайт. Можно выбрать группы пользователей или перечислить имена пользователей через запятую. Я же выбираю «Все пользователи» , устанавливаем флаги «Чтение» и «Запись» и жмем «Готово» .
Все, на этом наш FTP-сайт готов. Для проверки можно набрать в браузере ftp://<%вашдомен%>, если Вы делали привязку к доменному имени, или ftp://localhost в противном случае.
Если вы настраивали все так же, как описано у меня, то FTP-сайт доступен для всех пользователей, имеющихся в системе (о том как добавить пользователя я писал здесь). Кроме того, все параметры вводимые при добавлении FTP-сайта можно изменить в любое время в меню управления сайтом, а также в меню «Действия» , выделив его в диспетчере служб IIS.
3. Детальная настройка уровня доступа для FTP-сайта
Наш FTP-сайт настроен и работает, теперь надо настроить уровень доступа пользователей на FTP. Сделать это можно, например, выбрав пункт «Правила авторизации FTP» в меню управления сайтом. На скриншоте ниже, настройки установлены таким образом, что группе «Администраторы» позволены запись и чтение на сайте, а группе «Пользователи» только чтение:
Более детально, уровень доступа можно настроить управляя параметрами безопасности для каталогов и файлов в директории, где находится FTP-сервер. В моем случае это C:\my_ftp\ . Заходим в свойства папки, выбираем вкладу «Безопасность» затем нажимаем «Изменить» и выбираем уровень доступа для пользователей и групп пользователей. Аналогично настраивается безопасность для вложенных папок и отдельных файлов.
В Windows Server 2008 R2 появилась поддержка протокола FTP, думаю самая мощная на сегодняшний момент. И хоть FTP достаточно древний стандарт – он продолжает жить и развиваться. Обзор вы можете найти в моем блоге. Цель данной статьи – по шагам показать настройку и установку FTP-сайта.
В отличие от предыдущей статьи, где давался обзор возможностей FTP-сервиса, здесь общее направление будет именно создание работоспособного FTP-сайта. Предположим что роль «Веб-сервер» уже на сервере установлена.
Заходим в оснастку «Диспетчер служб IIS» в панели «Подключения» на элементе сервера по правой клавише мыши выбираем «Добавить FTP-сайт» (рисунок 1). Запускается мастер установки FTP-сайта.
Рисунок 1 Добавление FTP-сайта.
На странице «Сведения о сайте» вводим имя сайта и физический путь корневого каталога вновь создаваемого сайта (рисунок 2). Нажимаем кнопку «Далее».
Рисунок 2 Сведения о сайте FTP.
На следующем шаге мастера установки нужно выбрать привязку к IP-адресу сервера, по умолчанию осуществляется привязка ко всем свободным адресам, порт – значение по умолчанию 21. Если FTP-сайты уже установлены на сервере, с помощью определения виртуального узла сделать сайт уникальным. Для этого нужно установить опцию «Разрешить имена виртуальных узлов» м заполнить поле «Виртуальный узел». В данном случае FTP-сайт первый поэтому данным механизмом пользоваться нет необходимости. Следующая опция «Запускать FTP-сайт автоматически», определяет поведение сайта при перезагрузке сервера. По умолчанию опция установлена. В блоке «SSL» можно определить следующий выбор:
1. Без SSL – протокол защиты данных не используется.
2. Разрешить – использовать SSL в случае, если FTP-клиент настроен на данный режим работы. Если клиент не настроен/не умеет использовать SSL – разрешить соединение.
3. Требовать – использовать SSL в любом случае. Если клиент не настроен/не умеет использовать SSL – отклонить соединение.
Выбираем Ip-адрес — «Все свободные», порт -21, «Запускать FTP-сайт автоматически» — включено, SSL – без SSL(рисунок 3). Нажимаем кнопку «Далее».
Рисунок 3. Параметры привязки и SSL
В окне «Сведения о проверке подлинности и авторизации» на третьем шаге мастера установки отключаем анонимную проверку подлинности. Авторизация FTP-сайта пока не настраиваем – порядок предоставления пользователя к сайту будет рассмотрен чуть позже (рисунок 4). Нажимаем кнопку «Готово».
Рисунок 4. Проверка подлинности и авторизации
Новый FTP-сайт успешно создан. Но, как вы наверное уже догадались, этот сайт не работоспособен. Для того чтобы предоставить доступ пользователям нужно проделать следующие шаги:
1. Настроить Windows Firewall.
2. Определить протокол аутентификации.
3. Определить роли пользователей.
4. Настроить разрешения NTFS на каталогах FTP-сайта.
Итак, начнем. Настройку брандмауэра поставил данное действие на первое место, потому что обычная практика настройки новой технологии – это исключить возможность ошибки временным отключением элементов защиты. Поэтому думаю надо сразу настроить брандмауэр и затем продолжить настройку. Сначала немного теории.
По протоколу FTP возможно соединение в двух режимах – активном и пассивном. Для работы в пассивном режиме необходимо открыть порт – по умолчанию 21 и этого будет достаточно. В пассивном режиме по 21 порту происходит входящее соединение, затем клиент и сервер используют механизм трехстороннего рукопожатия, договариваются, по какому порту будет происходить обслуживание и переключаются на него. Стандартно это случайный порт в диапазоне 1025-5000. Понятное дело держать такой диапазон открытым нет большого резона. До выхода Windows 2008 R2 была инструкция, как настроить RPC для формирования нестандартного диапазона портов для работы в пассивном режиме. После выхода все значительно упростилось. Нужно настроить входящее правило. Открываем оснастку «Брандмауэр Windows в режиме повышенной безопасности». На элементе «Правила для входящих подключений» в меню по правой кнопке мыши выбираем «Создать правило» (рисунок 5)
Рисунок 5. Создание нового правила брандмауэра
На первом шаге мастера создания правила для нового входящего подключения выбираем из выпадающего списка «Предопределенные» тип нового правила с названием «FTP-сервер» (рисунок 6). Нажимаем кнопку «Далее».
Рисунок 6. Выбор типа правила
На следующем шаге мастера, нужно выбрать предопределенные правила. Доступны следующие значения:
1. FTP Server Passive (FTP Passive Traffic-In) – правило используется для поддержки входящих соединений в пассивном режиме.
2. FTP Server Secure (FTP SSL Traffic-In) – правило используется для поддержки входящих соединений по протоколу SSL.
3. FTP-сервер (входящий траффик) — правило используется для поддержки входящих соединений по протоколу FTP.
Первое и третье правило должно быть отмечено обязательно. Второе правило можно отметить, если будет использоваться защита траффика по протоколу SSL (рисунок 7). Нажимаем кнопку «Далее».
Рисунок 7. Выбор предопределенных правил FTP
Правила сформированы – на последнем шаге мастера создания правила нужно выбрать действие правила. Доступны следующие значения:
1. Разрешить подключение – включая подключения, защищенные IPSec, так и подключения без защиты.
2. Разрешить безопасное подключение – включая только подключения с проверкой подлинности с помощью IPSec. Подключения возможны с клиентских операционных систем, начиная с Windows Vista.
3. Блокировать подключения.
Выбираем «Разрешить подключения» (рисунок 8). Нажимаем кнопку «Готово».
Рисунок 8. Выбор действия создаваемых правил
Правила созданы. Необходимо отметить, что эти правила применяться только при перезагрузке сервера – попытки перезапустить сервисы брандмауэра и IIS ни к чему не привели.
НА втором шаге настройки FTP-сайта необходимо выбрать протокол аутентификации. Начиная с IIS 7.5 FTP-сайт поддерживает следующие протоколы аутентификации:
1. Анонимная – проверка имени пользователя не требуется.
2. Стандартная – имя пользователя и пароль запрашивается – передаются на сервер в открытом виде. Учетная запись может быть как локальная на сервере – так и поддерживаются доменные учетные записи.
3. ASP.Net – проверка с помощью поставщика ASP.NET. Учетные записи могут храниться, к примеру, на уровне базы данных.
4. Диспетчер IIS – учетные записи задаются в диспетчере веб-серврера.
Выберем вариант проверки подлинности с помощью стандартного протокола аутентификации Windows.
Предположим, что анонимный доступ не подходит, нужно пускать на FTP-сайт только определенных пользователей. Поэтому на третьем шаге настройки, с помощью оснастки «Диспетчер сервера» (Конфигурация – Локальные пользователи и группы — Пользователи) создадим 2-ух локальных пользователей ftpuser(права только на чтение) и ftpadmin(права на чтение и запись). Задача пользователя ftpuser знакомится с документацией, лежащей на сайте. Задача пользователя ftpadmin – управлять контентом ftp-сайта.
После создания пользователей прописываем правила авторизации. Открываем оснастку «Диспетчер служб IIS», переходим на FTP-сайт и открываем функцию «Правила авторизации FTP». На правой панели «Действия» выбираем «Добавить разрешающие правило». В окне «Добавить разрешающие правило авторизации делаем выбор «Указанные пользователи» и вводим значение – ftpadmin. В секции разрешения выбираем чтение и запись (рисунок 9). Нажимаем кнопку «Ок».
Рисунок 9. Добавление правила авторизации.
Для пользователя ftpuser создаем отдельное правило, по аналогии с пользователем ftpadmin, за исключением разрешения записи. Правила авторизации ftp-сайта успешно созданы.
Остался последний четвертый шаг – установка разрешений файловой системы NTFS. Установки по умолчанию ф файловой системе NTFS следующие в папке c:\inetpub\ftproot группе «Пользователи», в которую входит пользователь ftpuser, предоставлены права на чтение файлов. Остается добавить пользователю ftpadmin разрешения на запись. Для этого в проводнике откроем свойства папки ftproot и установим разрешения для записи для пользователя ftpadmin (рисунок 10, рисунок 11). Нажимаем кнопку «Ок».
Рисунок 10. Выбор локального пользователя ftpadmin
Рисунок 11. Установка разрешения NTFS на запись для пользователя ftpadmin
Настройка FTP-сайта успешно завершена. Для проверки можно зайти клиентом FTP на созданный сайт и убедится, что пользователь ftpadmin может управлять контентом сайта – копировать, записывать, удалять, изменять файлы, а пользователь ftpuser – только копировать или читать.
При разрешении технических проблем, возникающих в ходе настройки, одним из источников информации являются журналы ftp-сайта. Местоположение журналов можно узнать в оснастке «Диспетчер служб IIS». Для этого переходим на FTP-сайт и открываем функцию «Ведение журнала FTP» (рисунок 12).
Рисунок 12. Настройки ведения журналов FTP
Из рисунка 12 видно, что журналы хранятся в каталоге c:\inetpub\logs\logfiles. По умолчанию ведение журналов включено. Журналы создаются каждый новый день. Формат журналов создается по маске u_exYYMMDD.log. К примеру, если открыть лог при успешно подключении пользователя ftpadmin выглядеть записи будут следующим образом:
#Software: Microsoft Internet Information Services 7.0
#Version: 1.0
#Date: 2011-01-08 05:15:20
#Fields: date time c-ip cs-username s-ip s-port cs-method cs-uri-stem sc-status sc-win32-status sc-substatus x-session x-fullpath
2011-01-08 14:15:49 192.168.0.152 — 192.168.0.100 21 ControlChannelOpened — — 0 0 8568dd29-2655-4b87-a176-f85cc149650b —
2011-01-08 14:15:49 192.168.0.152 — 192.168.0.100 21 USER ftpadmin 331 0 0 8568dd29-2655-4b87-a176-f85cc149650b —
2011-01-08 14:15:49 192.168.0.152 KA4OK\ftpadmin 192.168.0.100 21 PASS *** 230 0 0 8568dd29-2655-4b87-a176-f85cc149650b /
2011-01-08 14:16:05 192.168.0.152 KA4OK\ftpadmin 192.168.0.100 21 ControlChannelClosed — — 0 0 8568dd29-2655-4b87-a176-f85cc149650b —
B заключение статьи, стоит отметить еще об одной новой функции «Текущие сеансы FTP». В оснастке «Диспетчер служб IIS» переходим на FTP-сайт и открываем функцию «Текущие сеансы FTP» (рисунок 13).
Рисунок 13. Просмотр текущих сеансов FTP
С помощью этой функции можно посмотреть текущие соединения и отключить при необходимости пользователей. Надеюсь, что информация в данной статье поможет для успешной инсталляции и настройке ваших ftp-сайтов!
Используемая литература:
1. FTP 7 for IIS 7
2. Configuring FTP Firewall Support
3. Installing and Configuring FTP on IIS 7
Прочитано: 9 394
Итак задача:
- Поднять FTP сервер на Server 2008 R2 SP1 (Enterprise)
- Авторизация на FTP ресурсе посредством IIS учетных записей, а не Windows.
- Посредством FSRM настроить наблюдение и квоту
- Настроить проброс порта для доступа из вне на эту систему.
Ниже я приведу все шаги посредством которых поставленная задача была выполнена и если ее нужно будет повторить, то это уже не составит ни какого труда.
Нужно установить роль File Services (компонент File Server Resource Manager) и Web Server (IIS) (компоненты FTP Server):
Start – Control Panel – Administrative Tools – Server Manager – Add Roles
или же через консоль командной строки:
C:\Users\Administrator>dism /online /enable-feature /featurename:CoreFileServer
C:\Users\Administrator>dism /online /enable-feature /featurename:FSRM-Management
C:\Users\Administrator>start /wait dism /online /enable-feature /featurename:IIS
-WebServerRole
C:\Users\Administrator>start /wait dism /online /enable-feature /featurename:IIS
-FTPServer /featurename:IIS-FTPSvc /featurename:IIS-FTPExtensibility
Важно замечание: установленный IIS имеет версию (Version 7.5.7600.16385)
Затем на логическом диске, пусть это будет тот на котором стоит система создаем каталог, отключаем наследование прав и оставляем доступ к нему только для Администраторов текущей системы: c:\ftpfolder
После запускаем оснастку управления IIS Web сервером:
Start – Control Panels – Administrative Tools – Internet Information Services (IIS) Manager и создаем новый FTP Site:
Start Page – SRV-HOST1 (SRV-HOST1\Administrator) – Sites и через правый клик вызываем мастер Add FTP Site…
FTP site name: srv-host1
Physical path: указываем путь до c:\ftpfolder
и нажимаем кнопку Next, теперь нужно указать на каком сетевом интерфейсе ожидать подключения, порт взаимодействия, запускать ли FTP сайт автоматические и поддерживает ли наш ftp сайт SSL сертификат:
- IP Address: 192.168.1.162 (Я выбираю текущий IP адрес)
- Port: 21 (дефолтный)
- Start FTP site automatically: отмечаю галочкой
- SSL: No SSL
и нажимаю кнопку Next, далее момент когда нужно определить каким образом будет происходить авторизация на FTP сервисе:
Authentication: Basic
Authorization – Allow access to – Specified users (выбираю что только указанным учетным записям будет разрешен вход)
Ниже указываю их: ftpuser1,ftpuser2
Permissions: Write
и нажимаю кнопку Finish.
Вот и появился мой добавленный в IIS ресурс для обслуживания через FTP сервис:
Слева в оснастке Internet Information Services (IIS) Manager представлены имеющиеся сайты, выделив который справа отобразятся апплеты настройки и управления возможностями.
Хоть я и посредством мастера создал пользователя и тип доступ, его можно посредством апплетов и видоизменить.
Важным было бы это определить как производить логирование взаимодействия с FTP сервисом: FTP Logging – Select W3C Fields… – отмечаем все пункты которые представляют из себя колонки заполняемой информации в формируемом лог файле при взаимодействии с FTP сервисом, уже потом поработав какое-то время можно будет исключить не представляющую из себя логируемую информацию и нажимаем кнопку OK окна Information To Log. Каталог по умолчанию для логов:
- Directory:
c:\inetpub\logs\LogFiles
- Select a method that FTP uses to create a new log file: Schedule: Daily
- Use local time for file naming and rollover: Отмечаю галочкой
Чтобы внесенные изменения сохранились в правом углу нужно будет нажать кнопку Apply, когда изменения сохранены в правом углу появится надпись: The changes have been successfully saved.
Теперь нужно создать и назначить пароли для пользователей FTP–ресурса, для этого в оснастке IIS должны быть специальные апплеты, что я имею в виде, если перейти:
Start – Control Panels – Administrative Tools – Internet Information Services (IIS) Manager – Start Page – SRV-HOST1 (SRV-HOST1\Administrator) – и в правой части в подменю Management должна быть оснастка: IIS Manager Users если ее нет, как у меня к примеру:
То чтобы она появилась действия следующие:
Start – Control panel – Administrative Tools – Server Manager – Server Manager – Roles – Web Server (IIS) – Add Role Services
и отмечаем галочками:
- IIS Managemenet Console
- IIS Management Scripts and Tools
- Managemenet Service
- IIS 6 Managemenet Compatibility
- IIS 6 Metabase Compatibility
- IIS 6 Scripting Tools
- IIS 6 Management Console
и нажимаю кнопку Next – Install – Close
После нужно закрыть консоль управления IIS и заново открыть и необходимый апплет появится. Заходим в апплет → IIS Manager Users и создаю необходимых пользователей: Add User
- User name: ftpuser1
- Password: Aa1234567
- Confirm password: Aa1234567
и нажимаю OK, по аналогии создаю другого пользователя ftpuser2
Далее нужно определить что доступ к FTP ресурсу будет осуществлен с использованием созданных учетных записей IIS, а не учетных записей системы:
Start – Control Panels – Administrative Tools – Internet Information Services (IIS) Manager – Start Page – SRV-HOST1(SRV-HOST1\Administrator) – Sites – srv-host1 – FTP Authentication – через правый клик мышью вызываю мастер: Custom Providers… и регистрирую провайдера IisManagerAuth.
У Вас должно быть точно также как у меня на представленном скриншоте ниже:
- Anonymous Authentication: Disabled
- Basic Authentication: Disables
- IisManagerAuth: Enable
После меняем тип аутентификации на всем сервисе, по умолчанию стоит Windows credentials only, а я изменяю на:
Start – Control Panels – Administrative Tools – Internet Information Services (IIS) Manager – Start Page – SRV-HOST1 (SRV-HOST1\Administrator) – Management Service: Windows credentials or IIS Manager credentials и не забываем нажать Apply.
C:\Users\Administrator>CACLS "%SystemDrive%\Windows\System32\inetsrv\config" /G "Network Service":R /E
C:\Users\Administrator>CACLS "%SystemDrive%\Windows\System32\inetsrv\config\administration.config" /G "Network Service":R /E
C:\Users\Administrator>CACLS "%SystemDrive%\Windows\System32\inetsrv\config\redirection.config" /G "Network Service":R /E
C:\Users\Administrator>cacls "c:\ftpfolder" /G "Network Service":C /T /E
C:\Users\Administrator>iisreset /stop
Attempting stop…
Internet services successfully stopped
C:\Users\Administrator>iisreset /start
Attempting start…
Internet services successfully started
C:\Users\Administrator>iisreset /status
Status for IIS Admin Service ( IISADMIN ) : Running
Status for Windows Process Activation Service ( WAS ) : Running
Status for World Wide Web Publishing Service ( W3SVC ) : Running
или же находясь в то же окне где изменяли поведение авторизации справа нажать Start.
Затем добавляю к своему FTP–ресурсу в разрешения IIS учетные записи на основе которых и будет происходить авторизация, а не Windows создаваемые учетные записи:
Start – Control Panels – Administrative Tools – Internet Information Services (IIS) Manager – Start Page – SRV-HOST1(SRV-HOST1\Administrator) – Sites – srv-host1 – IIS Manager Permissions – Allow User… –
теперь параметр IIS Manager доступен для выбора (ранее он был затемнен, т.е. деактивирован) и через Select… указываю созданный ранее двух пользователей: ftpuser1, ftpuser2 и нажимаю OK.
После нужно дать данным пользователям полный доступ к FTP ресурсу, а не права только чтения, но и запись иначе да они смогут создавать каталоги,файлы,переименовывать, но получить список файлов не смогут:
Start – Control Panels – Administrative Tools – Internet Information Services (IIS) Manager – Start Page – SRV-HOST1(SRV-HOST1\Administrator) – Sites – srv-host1 –
FTP Authorization Rules –
- Specified users: ftpuser1,ftpuser2
- Permissions: Read и Write отмечаем галочками как на представленном ниже скриншоте.
Теперь когда все настройки по организации FTP сервиса настроены нужно по заметке если нужно настроить квоту на FTP-каталог и определить какие файлы разрешено на нем размещаться, останавливаться как это сделать не буду лишь укажу ссылки на FSRM с помощью которого все это делается.
Ладно это все вспомогательная часть которую можно и опустить, но я этого не рекомендую.
Теперь нужно на встроенный брандмауэер системы добавить правила на доступ:
C:\Users\Administrator>netsh advfirewall firewall add rule name=FTP action=allow protocol=tcp localport=21 dir=in profile=any
C:\Users\Administrator>netsh advfirewall set global statefulftp enable
После проверяю, что могу с другой системы в локальной сети подключиться, к примеру это будет моя рабочая система Ubuntu 12.04.5 Desktop amd64 (Gnome Classic):
ekzorchik@navy:~$ nmap -v 192.168.1.162 -p 21 | grep ftp
21/tcp open ftp
Теперь пробую подключиться с организованному FTP ресурсу:
ekzorchik@navy:~$ ftp 192.168.1.162
Connected to 192.168.1.162.
220 Microsoft FTP Service
Name (192.168.1.162:ekzorchik): ftpuser1
331 Password required for ftpuser1.
Password:Aa1234567
230 User logged in.
Remote system type is Windows_NT.
ftp> pwd
257 “/” is current directory.
ftp> mkdir 1
257 “1” directory created.
ftp> rename 1 2
350 Requested file action pending further information.
250 RNTO command successful.
ftp> quit
421 Service not available, remote server has closed connection
Справку по командам FTP ресурсам смотреть: ftp> help
Итого я получил решение своей задумки по организации FTP ресурса на Windows Server 2008 R2 без создания аутентификационных данных в Windows, только IIS аутентификация. Теперь же я смогу выполнить поставленную задачу от руководитель отдела запасных частей:
Есть необходимость в FTP.
Суть вопроса в следующем:
Поставщик шин готов предоставить нам выгрузку остатков шин (обновления будут происходить каждые 5 минут). Возможные варианты, которые реализованы с их стороны – выгрузка на FTP.
С нашей стороны необходимо предоставить / Хост[:Порт / Логин: / Пароль:
В дальнейшем данные файлы будут использоваться для загрузки на наш интернет-магазин, так же в автоматическом режиме.
Прошу предоставить ответ сегодня о возможности использования данного алгоритма.
Но это я сделал если FTP ресурс будет в пределах локальной сети, а тут как я погляжу из задания требуется доступ снаружи для поставщика, что ж и это можно.
У меня вся сетевая инфраструктура организована посредством оборудования Mikrotik (вот к примеру действия на моем: v6.37 on RB2011UiAS-2HnD), а значит я могу просто сделать проброс порта из вне:
winbox – IP&DNS – user&pass – IP – Firewall – NAT – Add –
вкладка: General
- Chain: dstnat
- Dst. Address: <уникальный_идентификатор>.sn.mynetname.net&IP-Addresss (Если статический)
- Protocol: 6 (tcp)
- Dst. Port: 33644 (выбирается произвольно главное чтобы был не занят)
вкладка: Action
- Action: dst-nat
- To Addresses: 192.168.1.162
- To Ports: 21
После не забываем сохранить изменения: Apply – Ok. Вот и все, проверяю со своего хостинга:
ekzorchik@ekzorchik:~$ ftp <уникальный_идентификатор>.sn.mynetname.net 33644
Connected to <уникальный_идентификатор>.sn.mynetname.net.
220 Microsoft FTP Service
Name (<уникальный_идентификатор>.sn.mynetname.net:ekzorchik): ftpuser1
331 Password required for ftpuser1.
Password:Aa1234567
230 User logged in.
Remote system type is Windows_NT.
ftp> quit
221 Goodbye.
Ну конечно же работает как могло быть иначе, ведь после того как сделал и перепроверил все работает как и было задумано. Вот теперь я могу отписать руководителю поставленной задачи – что задача выполнена и прислать ему необходимые данные для поставщика и организации задачи. На этом я прощаюсь и до новых встреч на моем блоге практических задач с которыми мне как системному администратору приходится сталкиваться, с уважением автор блога – Олло Александр.
Если у вас установлена операционная система Windows Server 2008 R2, то вы с легкостью можете создать FTP сервер. Он понадобится для работы с удаленным хостом сайта, либо для удаленной передачи каких-либо данных.
FTP считается одним из самых старых протоколов и вы наверняка сталкивались с ним, когда управляли своим сайтом на хостинге.
А в данной статье будет рассмотрена настройка такого FTP сервера в Windows Server 2008 R2 с детальным описанием действий.
Как проходит настройка сервера протокола FTP в Windows Server 2008 R2
Для начала вам необходимо активировать соответственные службы для того, чтобы вы могли добавить сервер FTP. Чтобы осуществить это в Windows Server 2008 R2, вам необходимо зайти в «Диспетчер сервера» и нажать пункт «Роли». Далее выберите «Добавить роли» и в списке найдите пункт «Веб-сервер (IIS)», после чего дважды кликните «Далее». Следующим шагом вам необходимо добавить FTP службы уже через «Мастер добавления ролей» для веб-сервера IIS. Найдите в списке пункт «FTP сервер» и отметьте два его подпункта: «Служба FTP» и «Расширяемость FTP». Потом нажмите «Далее» и перейдите к добавлению FTP-сайта.
Чтобы добавить новый сервер в Windows Server 2008 R2, откройте «Пуск» и вкладку «Администрирование». Поскольку вы добавили новую роль, то появится пункт «Диспетчер служб IIS». Откройте его и вы увидите, что в нем уже имеется один FTP-сайт по умолчанию. Вам же необходима настройка другого сайта FTP, у которого будут подходящие для ваших целей конфигурации. Жмете правой кнопкой на список и выбираете пункт «Добавить FTP-сайт».
Далее вам необходимо ввести все настройки для нового FTP-сайта в открывшемся окне. Для начала укажите название для нового сайта, которое будет отражаться в списке, а также путь к файлам сайта. Следующий пункт настроек добавленного сайта вам понадобится для укрепления безопасности сервера. Вы сможете указать IP-адрес, по которому клиенты будут подключаться к вашему хосту, а также порт, по которому будет проходить соединение. Рекомендуется заменить стандартный порт, чтобы подборщики не смогли взломать пароль одного из пользователей сервера.
Также вы сможете активировать автоматический запуск FTP-сайта после запуска системы, то есть чтобы после включения компьютера сервер активировался по умолчанию, что весьма удобно. Что касается SSL-соединения, лучше их отключите, так как зачастую ими не пользуются. На следующем этапе пройдет настройка авторизации пользователей. Отключите или активируйте анонимную авторизацию, а также настройте уровень разрешения для пользователей. Указанных действий достаточно, чтобы FTP-сайт был создан, то есть сервер готов к использованию!
Но есть еще одна проблема — к вашему серверу никто не сможет подключиться, так как вы еще не добавили новых пользователей для FTP-сайта с определенным уровнем разрешения. Для этого снова зайдите в «Диспетчер служб IIS», выберите в списке название вашего сайта и измените разрешающие правила для него. При помощи этого меню настроек вы сможете добавить новые группы пользователей и изменить для них права доступа. Но помимо этого пункта, вам также понадобится настройка безопасности в корневом каталоге сайта. Кликните правой кнопкой мышки на этот каталог и выберите пункт «Свойства». Потом перейдите в «Безопасность» и нажмите «Изменить». Далее появится окно, в котором вам нужно выбрать кнопку «Добавить», после чего вы сможете внести новых пользователей и их группы в список доверенных.
Ну, а чтобы подключиться к вашему серверу, клиенту нужно выдать данные, которые ввели при создании нового пользователя. Клиент подключиться к вашему серверу по FTP протоколу при помощи специальной программы, наподобие FileZilla, Total Commander, WinSCP (работает по защищенному SFTP протоколу) и т. д. Теперь вы сможете управлять удаленным сервером сайта с любого компьютера, обмениваясь данными по протоколу FTP!
FTP (File Transfer Protocol) allow clients to transfer/download/upload their files using File Transfer Protocol. FTP is very useful for Shared Hosting Service providers, Internet Service providers etc. to allow their clients to upload/download/transfer files through FTP. In Windows Server 2008 R2 Microsoft FTP 7.5 is available as Role Service for Web Server (IIS 7.5). FTP 7.5 is tightly integrated with Web Server (IIS 7.5). Before installing FTP make sure Web Server (IIS) is installed, refer Install IIS on Windows Server 2008. In this article we are going to see how to setup a shared FTP Server for allowing clients of a Shared Web Server to transfer contents of their websites.
Install FTP for IIS 7.5 on Windows Server 2008 R2
Click Start >> Administrative Tools >> Server Manager. In the Server Manager hierarchy pane expand Roles and then click on Web Server (IIS).
Click on Add Role Services which will launch Select Role Services window as shown below. Select FTP Service and FTP Extensibility services from the list. Click Next.
On Confirm Installation Selections page click Install.
On Installation Results page click Close to exit the Add Role Services wizard.
Check Firewall Rules to Allow inbound FTP Traffic
After installation of FTP Server make sure that there are Inbound firewall rules in place to allow inbound FTP traffic. To check this follow below steps:
Click Start >> Administrative Tools >> Windows Firewall with Advanced Security and then click on Inbound Rules and check if three inbound firewall rules exists as highlighted in below snapshot.
- FTP Server (FTP Traffic-In): This rule allows inbound traffic on TCP port 21 for FTP Service.
- FTP Server Passive (FTP Passive Traffic-In): This rule allows inbound traffic on TCP ports greater than 1023 for FTP Service. This is required for FTP Service to work in passive mode.
- FTP Server Secure (FTP SSL Traffic-In): This rule allows inbound traffic on TCP port 990 for FTP Service over SSL.
If these rules doesn’t exists then create them.
Create a FTP Site using the FTP Site Wizard
We installed FTP for IIS 7.5 and also checked/created firewall rules to allow inbound traffic necessary for serving FTP services. However without creating a FTP Site, the FTP Server doesn’t listen on port 21 and you can not connect to the FTP Server. Now we will create a Default FTP Site.
Click Start >> Administrative Tools >> Internet Information Services (IIS) Manager.
Expand the Server from server hierarchy pane and then expand sites.
Right click on Sites and then click on Add FTP Site…
Add FTP Site: FTP Site Information
- FTP site name: Enter the name of this FTP Site.
- Physical path: Select the physical folder from where contents to FTP Users will be served. This is called root of the FTP Server. I choose %systemdrive%\inetpub\ftproot.
- Click Next.
Add FTP Site: FTP Binding and SSL Settings
- IP Address: Select IP address from the drop down list on which FTP Server will work. Select All Unassigned to allow it to work on all IP addresses.
- Port: Enter TCP port number on which this FTP Server will listen on. Default FTP port is 21.
- Enable Virtual Host Names: To bind a host name with this FTP site enable this option and then specify host name e.g. ftp.gopalthorve.com.
- Start FTP site automatically: Select this option to start this FTP site automatically.
- SSL: Select No SSL option. We will implement SSL feature some time later.
- Click Next.
Add FTP Site: Authentication and Authorization Information
- Authentication: Select Basic because we want to use Windows built-in authentication method that requires users to provide valid Windows username and password to gain access to contents. Later we will configure FTP User isolation to restrict users to their respected folders.
- Allow access to: Select Specified roles or user groups from the drop down list and then enter the name of group which holds all FTP Users (as we discussed in Local Users, local group and local security policies on Windows Server 2008). In my case the group is FTPUsers.
- Permissions: Select both Read and Write.
- Click Finish to add the FTP Site.
Planning directory structure for FTP Server
The FTP Server we setup above allows all clients to logon to the FTP Server and all FTPUsers are granted access of the ftproot folder (i.e. %systemdrive%\inetpub\ftproot). As we are going to configure a shared FTP Server to allow customers of a Shared Web server to manage contents of their websites and accounts, the directory structure must be planned accordingly. Directories must be organized in such a way so that we can easily manage and allow clients to access their respective directories only. I have designed a directory structure as given below for my shared FTP Server.
Parent Directory (%systemdrive%\HostingSpaces)
The parent directory which will contain sub-folders for each customer. I created %systemdrive%\HostingSpaces directory which will hold a sub-directories in it for each of client.
NTFS Permissions for this directory:
- Remove inheritable permissions from parent on %systemdrive%\HostingSpaces directory.
- Grant permissions to SYSTEM, Administrators on this object.
Client’s Home Directory (client1, client2 etc.)
Each shared hosting customer will have it’s own directory created under the parent directory and each directory must be named after Windows Local User account name created for that particular customer. Initially I have two customers respectively client1 and client2 and hence I created two directories client1 and client2 in parent directory (%systemdrive%\HostingSpaces), also create two Windows Local User account client1 and client2 and add them to FTPUsers group as discussed in Local Users, local group and local security policies on Windows Server 2008. Each client’s home directory must be given read/write permissions to that specific customer user account e.g. client1’s home folder is client1 and it must be given read/write permissions to user client1.
NTFS Permissions for these directories:
- It must inherit permissions from it’s parent i.e. %systemdrive%\HostingSpaces
- Each client must be granted access to its directory i.e. client1 user account must have Modify, Read & Execute, List folder contents, Read, Write permissions on its home directory client1.
Content Directories
Client can upload anything to this directory. By default it contains client’s hosted domains here i.e. client1domain1.com, client1domain2.com etc., which will further hold website contents in wwwroot directory, data in data directory and logs in logs directory.
FTP User Isolation
The FTP Site we recently created (Default FTP Site) allows each client session to start in the root directory of FTP Site i.e. %systemdrive%\inetpub\ftproot, because there is not FTP User Isolation configured on this FTP Site so far. By default FTP Site is configured to “Do not isolate users. Start users in: FTP root directory” which allows every ftp session to start in ftp root directory of the FTP Site.
We want to configure FTP Site such that each customer account must have access to it’s own folder only and each customer’s FTP session must start in it’s own home (root) folder named after it’s username. Microsoft FTP support one such FTP User Isolation mode called “Isolate users. Restrict users to the following directory: User name directory (disable global virtual directories)“. This mode requires us to create a folder named LocalUser under root of the FTP Site (%systemdrive%\inetpub\ftproot\LocalUser) which will further contain customer’s home folder (i.e. client1, client2 etc.). However I don’t want to put customers folder in %systemdrive%\inetpub\ftproot\LocalUser folder instead I want to put all those folders in %systemdrive%\HostingSpaces folder. To accomplish this we will need to create a Virtual Directory called LocalUser under recently created FTP Site which will point to physical folder %systemdrive%\HostingSpaces folder. To create Virtual Directory follow below steps:
Create Virtual Directory
- Start Internet Information Services (IIS) Manager. (Start >> Administrative Tools >> Internet Information Services (IIS) Manager)
- Expand Sites
- Right click on Default FTP Site we created recently and then click Add Virtual Directory…
- Alias: Enter LocalUser in this text box, remember to type with exact case it must be LocalUser with capital L and U.
- Physical path: Select physical path where this virtual directory will point to i.e. (%systemdrive%\HostingSpaces).
- Click OK to create Virtual Directory.
Finally configuring FTP User Isolation
- Start Internet Information Services (IIS) Manager. (Start >> Administrative Tools >> Internet Information Services (IIS) Manager)
- Expand Sites
- Click on Default FTP Site we recently created.
- Double click FTP User Isolation in feature view window in the middle.
- In “Isolate users. Restrict users to the following directory:” section select “User name directory (disable global directories)” option.
- Click Apply button to save changes.
Testing FTP Server
We have successfully setup FTP Server and now it’s time to check if everything is working fine. We can check FTP Server connectivity either using ftp command or using any FTP Client like FileZilla Client.
Testing FTP Server using ftp command:
- Open Command Prompt
- Type ftp at command prompt.
- Type “o 192.168.0.98” on the ftp prompt. Use IP address on which your FTP Server is configured to listen on. If “All Unassigned” is used you can use any IP address of your system as well as you can also use localhost.
- Type FTP User name e.g. client1.
- Type Password for the FTP User e.g. password for user client1.
- If everything works fine then you will get the response “230 User logged in.”
- Type “dir” command and you will get directory listing of client1 home folder.
- Type “cd client1domain1.com” command and current working directory (CWD) changes to client1domain1.com
- Type “pwd” command to know the current working directory.
- Type “put” command to upload local file to FTP Server. When prompted for local file name enter entire file name along with path. When prompted for remote file simply press enter to upload file with same name or enter new name for file on FTP Server.
- Type “recv” command to download file from FTP Server. When prompted for remote file name enter name of the file to download and when prompted for Local file enter path where you want to download the file.
- Type “dele file_name” command to delete file from FTP Server, replace file_name with name of the file to be deleted.
- I have pasted a sample command session with my recently configured FTP Server.
C:\>ftp ftp> o 192.168.0.98 Connected to 192.168.0.98. 220 Microsoft FTP Service User (192.168.0.98:(none)): client1 331 Password required for client1. Password: 230 User logged in. ftp> dir 200 PORT command successful. 125 Data connection already open; Transfer starting. 06-06-12 07:37PM <DIR> client1domain1.com 06-06-12 07:37PM <DIR> client1domain2.com 226 Transfer complete. ftp: 118 bytes received in 0.00Seconds 118000.00Kbytes/sec. ftp> cd client1domain1.com 250 CWD command successful. ftp> put Local file c:\help.txt Remote file 200 PORT command successful. 125 Data connection already open; Transfer starting. 226 Transfer complete. ftp: 5866 bytes sent in 0.02Seconds 244.42Kbytes/sec. ftp> recv Remote file help.txt Local file d:\help.txt 200 PORT command successful. 125 Data connection already open; Transfer starting. 226 Transfer complete. ftp: 5866 bytes received in 0.00Seconds 5866000.00Kbytes/sec. ftp> dele help.txt 250 DELE command successful.
Checking FTP Server using FileZilla FTP Client
We can also check FTP Server by using GUI based FTP client like FileZilla Client. Simply download the FileZilla Client and then install, after installation launch FileZilla.
- Host: Enter IP address on which your FTP Server is listening on.
- Username: Enter FTP Username e.g. client1
- Password: Enter password for FTP User
- Port: Enter FTP Port default is 21.
- Click Quickconnect button.
- Once connected you can download/upload/delete contents simply drag and drop functionalities.
So that’s it for FTP Server for now. As far as more FTP Server settings are concerned I will be putting it under comments area of this article. Later we will see how to create website in IIS 7.5.