- Создание FTP-пользователя без панели управления ISPmanager
- Установка FTP-сервера proftpd
- Добавление разрешающих правил для брандмауэра
- Ограничение FTP-пользователей пределами домашнего каталога
- Создание нового FTP-пользователя
- Дополнительная информация
- Настройка ftp-сервера IIS на Windows 7
- Настройка FTP-сервера с изоляцией пользователей на Windows Server 2016 / 2012 R2
- Установка роли FTP сервера в Windows Server 2016/ 2012 R2
- Настройка FTP сайта в Windows Server, предоставление прав пользователям
- Настройка изоляции FTP пользователей в Windows Server 2016/2012 R2
- Настройка правил брандмауэра Windows для доступа к FTP серверу
- Проверка подключения к FTP серверу с Windows клиента
Создание FTP-пользователя без панели управления ISPmanager
По умолчанию при установке ОС Linux из любых шаблонов на сервере доступен только суперпользователь root. Подключение с данными root по протоколу FTP невозможно в целях безопасности (используется незашифрованный пароль). При установке шаблонов ОС типа minimal сервер FTP также не будет включён в установочный пакет. Если у Вас возникла необходимость быстрой ручной настройки нового FTP-пользователя при отсутствии на сервере панели управления ISPmanager, нужно сделать следующее.
Для начала подключитесь к серверу по протоколу SSH с правами root.
Установка FTP-сервера proftpd
CentOS:
Установка EPEL репозитория
Debian/Ubuntu:
Добавляем FTP в автозапуск сервера и запускаем его
Добавление разрешающих правил для брандмауэра
В зависимости от используемой утилиты управления
Iptables:
firewalld:
Ограничение FTP-пользователей пределами домашнего каталога
Данная статья подразумевает работу c конфигурацией ProFTPd «по умолчанию», а в этом случае пользователь может выходить за пределы своего домашнего каталога, и хотя прав на работу с другими папками у него, скорее всего, нет, но при недостаточно строгой конфигурации сервера это может представлять угрозу безопасности. Решить эту проблему можно добавив одну строку в файл proftpd.conf :
Добавить её можно в конец файла. После сохранения перезапустите FTP-сервер:
Создание нового FTP-пользователя
Простым FTP-пользователям нет необходимости иметь доступ к командной оболочке. Перед тем, как приступите к созданию новых пользователей, выполните команду:
Создайте нового пользователя
Командами выше мы создали пользователя (имя_пользователя нужно заменить на незанятое имя) и соответствующую группу, назначили и создали (ключ -m можно опустить, если каталог уже существует) домашний каталог /home/имя_папки и выбрали /bin/false в качестве командной оболочки пользователя, тем самым отключив её в целях безопасности. Командой passwd мы задали пользователю необходимый пароль.
В большинстве случаев на данном этапе вы уже можете подключаться с созданным пользователем к FTP-серверу, который по умолчанию работает на 21 порту. Однако, есть еще несколько шагов, которые вы, возможно, захотите выполнить.
Дополнительная информация
Доступ к командной оболочке (shell)
Если вы всё-таки хотите предоставлять пользователю доступ к командной оболочке, то указывайте путь до любой действующей вместо /bin/false , например:
Пользователям обычного протокола FTP не нужен доступ к shell, поэтому безопаснее его не предоставлять.
Расположение proftpd.conf
Используйте этот файл для более детальной настройки своего FTP-сервера при необходимости.
Ограничение прав FTP-пользователя
При необходимости вы можете ограничить права пользователя на запись в домашнюю директорию, позволив ему работать только с какой-нибудь внутренней папкой, например upload. От имени суперпользователя измените права:
В данном случае второе имя_пользователя является именем группы, которое по умолчанию совпадает с созданным вами именем пользователя.
Настройка ftp-сервера IIS на Windows 7
Автор: Max Bond
Дата записи
Иногда проще и быстрее передать файл через собственный ftp-сервер, чем закачивать на файлообменник. Ниже рассмотрена процедура установки и настройки ftp-сервера IIS, входящего в состав Windows 7.
Установка FTP-сервера.
FTP-сервер входит в состав служб IIS. Для его установки открываем Панель управления -> Программы -> Включение или отключение компонентов Windows. Раскрываем раздел Службы IIS и ставим галочки напротив следующих компонентов: Служба FTP и Консоль управления IIS.
Установка службы FTP
Настройка FTP-сервера.
Открываем Панель управления -> Система и безопасность -> Администрирование -> Управление компьютером (можно быстрее: меню Пуск -> правый клик на Компьютер -> в меню выбрать пункт Управление). В открывшемся окне раскрываем группу Службы и приложения и открываем Диспетчер служб IIS. В окне Подключения выбираем папку Сайты, затем в правом окне Действия нажимаем на ссылку Добавить FTP-сайт.
Создание FTP-сайта
В мастере создания ftp-сайта указываем его название и расположение (по умолчанию c:\inetpub\ftproot).
Название и расположение сайта
Далее указываем параметры привязки и SSL. Раздел привязка оставляю без изменений. Опцию “Запускать ftp-сайт автоматически” отключаю (ftp мне нужен только время от времени). В разделе SSL выставляю опцию “Без SSL”.
Параметры привязки и SSL
В следующем окне оставляем все без изменений и нажимаем Готово.
Сведения о проверке подлинности и авторизация
Сайт создан. Теперь можно перейти к дополнительным параметрам для тонкой настройки (например ограничить максимальное количество одновременных подключений). Выделите только что созданный сайт, справа в панели Действия нажмите на Дополнительные параметры.
Дополнительные параметры
Следующий этап – настройка брандмауэра Windows. Откройте Панель управления -> Система и безопасность -> Брандмауэр Windows -> Дополнительные параметры. В разделе “Правила для входящих подключений” находим и активируем “FTP-сервер (входящий трафик)” и “FTP Server Passive (FTP Passive Traffic-In)”. Последнее правило позволяет подключаться ftp-клиенту в пассивном режиме.
Открываем порт 21 (входящий)
Открываем порты 1023-65535 (пассивный режим)
В разделе “Правила для исходящего подключения” находим и активируем “FTP Server (FTP Traffic-Out)”.
Открываем порт 20 (исходящий)
Если в системе установлен дополнительный брандмауэр (Comodo, Outpost и т.п.), то в нем также необходимо открыть порт 21 (TCP) для входящих подключений и порт 20 (TCP) для исходящих.
Если подключение к Интернет осуществляется с помощью маршрутизатора, и вы хотите сделать свой сервер доступным интернет-пользователям, тогда необходимо настроить проброс портов на маршрутизаторе. На моем Dlink DI-804HV это выполняется в разделе Virtual Server.
Настройка маршрутизатора
192.168.10.4 – ip-адрес ftp-сервера в локальной сети.
Настройка прав пользователей.
Если оставить все как есть, то подключиться к ftp-серверу сможет любой пользователь (включен анонимный доступ) с правами только на чтение (можно скачивать, но записывать и изменять файлы нельзя). Предположим, что нам нужно сделать доступ для доверенных пользователей, которые имели бы права записи и изменения файлов.
Открываем Панель управления -> Система и безопасность -> Администрирование -> Управление компьютером (Пуск -> правый клик на Компьютер -> в меню выбрать пункт Управление). Далее раскрываем группу Локальные пользователи и группы (данная настройка доступна только в редакциях Бизнес и Максимальная). Правый клик на папке Группы, в меню выбираем Создать группу.
Создание группы пользователей ftp (1)
Вводим название группы – Пользователи FTP, описание (можно не вводить) и нажимаем кнопку Создать.
Создание группы пользователей ftp (2)
Теперь необходимо создать пользователя. Делаем правый клик на папке Пользователи и в меню выбираем Новый пользователь.
Создание пользователя ftp (1)
Вводим имя пользователя (например ftp_user_1), пароль (не менее 6 символов), выставляем галочки напротив опций “Запретить смену пароля пользователем” и “Срок действия пароля не ограничен”.
Создание пользователя ftp (2)
Пользователь создан. Теперь необходимо присвоить ему ранее созданную группу Пользователи ftp. Для этого открываем свойства пользователя и переходим на закладку “Членство в группах”. По умолчанию новому пользователю присваивается группа Пользователи, удаляем ее. Нажимаем кнопку Добавить -> Дополнительно -> Поиск. Откроется список групп пользователей. Выбираем группу Пользователи FTP и нажимаем Ok. В итоге получаем:
Создание пользователя ftp (3)
Нажимаем Ok и переходим к следующему этапу.
На этапе создания ftp-сайта нам было необходимо выбрать рабочий каталог (c:\inetpub\ftproot). Теперь для группы “Пользователи FTP” необходимо настроить права доступа к этому каталогу. Открываем c:\inetpub в проводнике, открываем свойства папки ftproot, переходим на закладку Безопасность и нажимаем кнопку Изменить. В открывшемся окне нажимаем кнопку Добавить и выбираем группу “Пользователи FTP” (как при создании пользователя). Устанавливаем уровень прав – “Полный доступ” и нажимаем Ок.
Установка прав доступа к папке ftproot
Последний этап. Вновь открываем Диспетчер служб IIS и выделяем наш ftp-сервер (Test FTP). В панели управления ftp-сайтом выбираем “Правила авторизации FTP”. Добавляем разрешающее правило. В открывшемся окне выбираем опцию “Указанные роли или группы пользователей”. Внизу в текстовом поле руками прописываем название нашей группы (Пользователи FTP), далее ставим галочки в разделе Разрешения напротив Чтение и Запись и нажимаем Ок.
Добавляем правило авторизации FTP
На этом настройка завершена.
В начале мы не выбрали опцию автоматического запуска сервера, поэтому не забываем запустить его вручную (правый клик на названии сайта -> Управление FTP-сайтом -> Пуск).
Как подключиться?
Вариант с использованием проводника Windows.
Открываем Компьютер (Vista, Win 7) или Мой Компьютер (XP).
Для анонимного доступа просто вводим в адресную строку адрес сервера (ftp://192.168.10.4).
Чтобы войти с именем пользователя и паролем вводим адрес вида: ftp://[имя пользователя]:[пароль]@[адрес ftp-сервера]. Например ftp://ftp_user_1:qwerty@192.168.10.4 – для подключения из локальной сети. Для подключения из Интернет локальный адрес заменяем на внешний или на доменное имя.
Как сделать свой ftp-сервер доступным из Интернет?
Если компьютер подключен к Интернет на прямую, то никаких дополнительных действий предпринимать не нужно.
Если компьютер подключен к Интернет через роутер, тогда в панели управления роутера необходимо настроить форвардинг порта TCP 21 (часто это еще называют виртуальным сервером). Настройка форвардинга порта на примере D-link DI-804.
Настройка FTP-сервера с изоляцией пользователей на Windows Server 2016 / 2012 R2
Несмотря на то, что протоколу FTP, являющемуся одним из старейших протоколов, уже исполнилось больше 40 лет, он продолжает использоваться повсеместно там, где требуется простой протокол передачи файлов. Сервер FTP можно установить на всех операционных системах Microsoft. Последняя глубокая модернизация этой службы была произведена в Windows 7 / Server 2008 R2 (по сути код сервиса был переписан заново). Была существенно улучшена безопасность службы, и появился ряд новых возможностей. В частности, в FTP сервере на Windows появилась возможность настроить изоляцию FTP пользователей, позволяющая разграничить доступ множества пользователей к собственным папкам на одном FTP сервере.
Благодаря возможности изоляции пользователи могут работать только со своими ftp каталогами, и не могут подняться выше по дереву каталогов, т.к. каталог верхнего уровня пользователя отображается для него, как корень службы FTP. Таким образом можно предотвратить доступ пользователей к чужим файлам на FTP сервере. Изоляция FTP пользователей широко применяется хостинг-провайдерами, когда нужно предоставить индивидуальный доступ различным пользователям к одному файловому хранилищу.
Как и в предыдущих версиях Windows, служба FTP (не путайте с sFTP и TFTP) в Windows Server 2016/2012 R2 основана и глубоко интегрирована в сервис IIS, и имеет единый административный интерфейс управления. В этой статье мы покажем, как установить сервер FTP на базе IIS в Windows Server 2016 / 2012 R2 и настроить на нем изоляцию пользователей (инструкция также применима и к Windows 10 / 8.1).
Установка роли FTP сервера в Windows Server 2016/ 2012 R2
Установить сервис FTP можно через консоль Server Manager, отметив в разделе Web Server(IIS) -> FTP Server опции FTP Service и FTP Extensibility.
Также можно установить роль FTP сервера одной командой PowerShell:
Install-WindowsFeature Web-FTP-Server
Чтобы установить консоль управления FTP сервером выполните команду:
Install-WindowsFeature -Name «Web-Mgmt-Console»
Настройка FTP сайта в Windows Server, предоставление прав пользователям
Запустите Server Manager и откройте консоль управления IIS (Internet Information Service Manager).
Создайте новый FTP сайт (Sites ->Add FTP Site).
Имя FTP сайта: MyTestSite
Корневой каталог FTP сайта: C:\inetpub\ftproot
Для защиты передаваемых по сети ftp-данных возможно настроить SSL (в этом случае все передаваемые по сети данные и пароли/учетки ftp-пользователей будут зашифрованы), но в нашей демонстрации это не обязательно. Все остальные настройки оставляем стандартными.
Import-Module WebAdministration
#Задаем имя FTP сайта
$FTPSiteName = ‘New FTP Site’
#Каталог FTP сайта
$FTPRoot = ‘E:\www\FTPRoot’
#порт FTP сайта
$FTPPort = 21
New-WebFtpSite -Name $FTPSiteName -PhysicalPath $FTPRoot -Port $FTPPort
Выберите новый FTP сайт и в секции FTP Authentication (Аутентификация) отключите анонимную аутентификацию Anonymous Authentication. Basic Authentication должна быть включена.
FTP служба на Windows Server 2016 / 2012 R2 может использовать два типа учетных записей: доменные или локальные. В зависимости от типа учетной записи есть различия в структуре каталогов FTP и настройках изоляции пользователей. Мы будем использовать локальные учетные записи Windows.
Создайте FTP пользователей, допустим, это будут учетные записи ftp_user1, ftp_user2 и ftp_user3. Также создайте группу ftp_users, в которую включим этих пользователей. Создать пользователей можно в разделе Local Users and Groups консоли Computer Management.
Также можно создать пользователей и группы из командной строки (или с помощью PowerShell). Создайте локальную группу:
net localgroup ftp_users /add
Создайте нового локального пользователя:
net user ftp_user1 /add *
Добавьте пользователя в группу:
net localgroup ftp_users ftp_user1 /add
Точно так же создайте еще двух пользователей.
Предоставьте созданной группе ftp_users права (RW) на каталог C:\inetpub\ftproot.
Внутри каталога C:\inetpub\ftproot создадйте каталог с именем LocalUser (имя должно полностью соответствовать, это важно. ). Затем внутри C:\inetpub\ftproot\LocalUser создайте три каталога с именами созданных вами пользователей: ftp_user1, ftp_user2, ftp_user3.
Тип учетной записи | Синтаксис именования домашних каталогов |
Анонимные пользователи | %FtpRoot%\LocalUser\Public |
Локальная учетная запись Windows | %FtpRoot%\LocalUser\%UserName% |
Доменная учетная запись Windows | %FtpRoot%\%UserDomain%\%UserName% |
Специальные учетки IIS Manager или ASP.NET | %FtpRoot%\LocalUser\%UserName% |
Вернитесь в консоль IIS и в разделе сайта FTP Authorization Rules создайте новое правило (Add Allow Rule), в котором укажите, что группа ftp_users должна иметь права на чтение и запись (разрешения Read и Write).
Настройка изоляции FTP пользователей в Windows Server 2016/2012 R2
Перейдем к настройке изоляции пользователей FTP. Изоляция FTP пользователей настраивается на уровне сайта FTP, а не всего сервера и позволяет организовать собственный домашний каталог для каждого пользователя. В настройках FTP сайта откройте пункт FTP User Isolation.
В этом разделе имеются несколько настроек. Первые две не предполагают изоляции пользователей:
- FTProotdirectory (ftp‑сессия пользователя начинается с корневого каталога ftp-сайта);
- Usernamedirectory (пользователь начинает работу с физического/виртуального каталога с именем пользователя. Если каталог отсутствует, сессия начинается с корневого каталога ftp-сайта).
Следующие 3 опции представляют различные режимы работы изоляции пользователей:
- Usernamedirectory(disableglobalvirtualdirectories) – предполагает, что ftp-сессия пользователя изолирована физическим или виртуальным каталогом имя которого соответствует имени пользователя ftp. Пользователи видят только собственный каталог (для них он является корневым) и не могут выйти за его рамки (в вышестоящий каталог дерева FTP). Любые глобальные виртуальные каталоги игнорируются;
- Usernamephysicaldirectory(enableglobalvirtualdirectories) – предполагается, что FTP-сессия пользователя ограничена (изолирована) физическим каталогом с именем учетной записи пользователя FTP. Пользователь не может перейти выше своего каталога по структуре FTP. Однако пользователю доступны все созданные глобальные виртуальные каталоги;
- FTP home directory configured in Active Directory – FTP-пользователь изолируется в рамках своего домашнего каталога, заданного в настройках его учетной записи Active Directory (свойства FTPRoot и FTPDir).
Выберите нужный режим изоляции (я использую второй вариант изоляции ftp пользователей).
Настройка правил брандмауэра Windows для доступа к FTP серверу
При установке роли FTP сервера в настройках Windows Firewall автоматически активируются все необходимые правила, которые нужна для доступа пользователей к FTP.
Для корректной работы FTP севера в пассивном режиме FTP пользователям нужно подключаться к RPC диапазону портов (1025-65535). Чтобы не открывать все эти порты на внешнем файерволе, вы можете ограничить диапазон динамических TCP портов, используемых для передачи данных.
- Для этого в настройках FTP сайта в IIS откройте пункт FTPFirewallSupport и в поле DataChannelPortRange укажите диапазон портов, который вы хотите использоваться для FTP подключений. Например – 50000-50100;
- Сохраните изменения и перезапустите IIS (iisreset);
- Откройте панель управления и перейдите в Control Panel\System and Security\Windows Firewall\Allowed apps;
- Убедитесь, что в списке приложении, которым разрешен доступ через брандмауэр присутствуют разрешения для FTP Server.
Затем в настройках Windows Firewall with Advanced Security проверьте, что включены следующие правила:
- FTP Server (FTP Traffic-In) – протокол TCP, порт 21;
- FTP Server Passive (FTP Passive Traffic-In) – адрес локального порта 1024-65535 (либо 50000-50100 как в нашем примере);
- FTP Server Secure (FTP SSL Traffic-In) – (при использовании FTP с SSL) порт 990;
- FTP Server (FTP Traffic-Out) – порт 20;
- FTP Server Secure (FTP SSL Traffic-Out) – (при использовании FTP с SSL) порт 989.
Соответственно эти порты нужно открыть на шлюзе (межсетевом экране) для подключения внешних FTP пользователей.
Проверка подключения к FTP серверу с Windows клиента
Вы можете проверить доступность портов на FTP сервере с помощью командлета Test-NetConnection:
Test-NetConnection -ComputerName yourftpservername -Port 21
Или с помощью команды ftp:
Попробуйте подключиться к своему FTP сайту с помощью любого клиента FTP или непосредственно из Explorer (в адресной строке указав ftp://yourservername/ .
Укажите имя и пароль пользователя.
В результате у вас откроется содержимое домашнего каталога с файлами пользователя (являющимся для пользователя корнем FTP сайта). Как вы видите, сессия пользователя является изолированной и пользователь видит на ftp сервера только свои файлы.
Для просмотра информации о доступе пользователей к FTP серверу можно использовать журналы FTP, которые по умолчанию хранятся в каталоге c:\inetpub\logs\logfiles в файлах формата u_exYYMMDD.log.
Для просмотра текущих подключений пользователей к вашему серверу можно пользоваться значениями счетчиками пользователей IIS через PowerShell или функцией «Текущие сеансы FTP» в консоли IIS. В этой консоли можно посмотреть информацию об имени и IP адресе FTP пользователя и отключить сессию при необходимости.
Итак, мы рассмотрели, как настроить FTP сайт с изоляцией пользователей на базе Windows Server 2016 / 2012 R2. В режиме изоляции пользователи аутентифицируются на FTP под своими локальным или доменным учетными записями, после чего они получают доступ к своему корневому каталогу, соответствующему имени пользователя.