Простой FTP-сервер на базе Ubuntu (vsftpd)

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

Как говорилось в предыдущей статье, файл конфигурации vsftpd в различных системах по умолчанию располагается в различных местах:

  • в FreeBSD — /usr/local/etc/vsftpd.conf
  • в Fedora — /etc/vsftpd/vsftpd.conf
  • в Debian — /etc/vsftpd.conf

После внесения изменений в конфигурационный файл вашего vsftpd не забывайте перезапускать его. В FreeBSD:

# /usr/local/etc/rc.d/vsftpd restart

В Debian/Fedora:

# service vsftpd restart

Управление доступом

Обратите внимание на то, что в процессе установки vsftp в вашу систему добавляется пользователь с именем учётной записи ftp . Предназначение этой учётной записи — организация доступа к каталогу анонимного FTP. По умолчанию vsftpd разрешает доступ на чтение анонимным пользователям к домашнему каталогу учётной записи ftp . Не забудьте отключить его, если это вам не нужно, изменив значение соответствующего параметра:

Anonymous_enable=NO

Если же доступ анонимных пользователей к вашему FTP-серверу разрешён, дополнительно вы можете отключить запрос пароля при анонимном логине:

No_anon_password=YES

Доступ локальных пользователей системы по умолчанию обычно отключён. Включить его при необходимости можно следующим образом:

Local_enable=YES

Чтобы ваши локальные пользователи не «бродили» выше их домашних каталогов, можно включить следующее ограничение:

Chroot_local_user=YES

Также можно использовать другой способ chroot пользователей, при котором ограничиваться будут не все пользователи, а лишь явно определённые. Для этого необходимо установить значение параметра chroot_local_user равным NO , создать файл с перечнем пользователей для которых chroot должен действовать (например, в /etc/vsftpd.chroot_list ) и определить следующие два параметра:

Chroot_list_enable=YES chroot_list_file=/etc/vsftpd.chroot_list

Обратите внимание на то, что если при определённых выше двух параметрах значение параметра chroot_local_user является равным YES , то учётные записи, перечисленные в файле chroot_list_file НЕ будут попадать под ограничения chroot .

Если вы хотите ограничить количество одновременных соединений к vsftpd, есть два способа сделать это: при помощи возможностей суперсервера или, если ваш демон работает в автономном режиме, при помощи параметра (естественно 10 заменив на нужное вам количество допустимых одновременных подключений):

Max_clients=10

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

Write_enable=YES

После того, как в конфигурации вашего сервера параметр write_enable установлен равным YES и anonymous_enable определён как YES вы можете управлять доступом относительно операций создания новых файлов/каталогов анонимными пользователями. Разрешить создавать новые каталоги анонимам:

Anon_mkdir_write_enable=YES

Разрешить анонимным пользователям удалять и переименовывать файлы и каталоги:

Anon_other_write_enable=YES

Разрешить анонимам загружать новые файлы:

Anon_upload_enable=YES

Ограничить скорость обмена данными для анонимных пользователей в автономном режиме сервера можно следующим параметром (значение указывается в байтах/сек):

Anon_max_rate=1024

По умолчанию umask файлов vsftpd использует равный 077 , то есть файлы создаются доступными на чтение/запись только для владельца. Изменить значение umask анонимных пользователей можно при помощи параметра anon_umask :

Anon_umask=022

а для локальных — при помощи параметра local_umask :

Local_umask=022

При необходимости вы можете запретить пользователям скачивать файлы с вашего сервера:

Download_enable=NO

Иногда бывает полезно скрыть реальные идентификаторы владельцев файлов, заменив их на идентификатор пользователя ftp :

Hide_ids=YES

Сетевые параметры

Если ваш vsftpd запускается в автономном режиме, а не через xinetd , тогда необходимо явно указать это:

Listen=YES

то же, для IPv6 (помните, что демон может работать одновременно только либо с IPv4, либо с IPv6):

Listen_ipv6=YES

Определить IPv4 адрес, на который должен «вешаться» демон, можно параметром:

Listen_address=192.168.0.1

Listen_address6=fe80:0:0:0:202:b3ff:fe1e:8329

При необходимости вы можете отключить возможность использования клиентами PASV-режима:

Pasv_enable=NO

Разное

Начиная с версии 2.0.7 vsftpd умеет удалять неудавшиеся закачки, если определить следующий параметр:

Delete_failed_uploads=YES

По умолчанию vsftpd отображает таймштампы файлов в GMT. Если вам нужно, чтобы они отображались согласно локальному времени сервера, воспользуйтесь следующим параметром.

FTP или File Transfer Protocol - это достаточно древний, но в то же время надёжный и проверенный протокол выгрузки файлов на удалённый сервер или их скачивания. Также иногда этот протокол применяется веб-мастерами для управления файлами или организации хранилища данных.

В этой статье мы рассмотрим, как выполняется установка FTP на Ubuntu 16.04, как настроить все необходимые компоненты, в том числе и защищённое соединение. Мы будем использовать FTP-сервер VSFTPD или Very Secure FTP Daemon, который обеспечивает самую надёжную защиту от уязвимостей.

Программа доступна из официальных репозиториев, поэтому установка FTP на Ubuntu Server 16.04 не должна вызвать проблем. Сначала обновите список пакетов в репозиториях, затем установите саму программу:

sudo apt update
$ sudo apt install vsftpd

Когда установка будет завершена, вам необходимо включить сервис vsftpd , поскольку он не будет запущен по умолчанию, а также добавить службу в автозагрузку:

sudo systemctl start vsftpd
$ sudo systemctl enable vsftpd

Если у вас установлен фаервол ufw, а такая ситуация возникает, когда вы пытаетесь установить FTP на Ubuntu Server, нужно открыть порты 20 и 21 для нормальной работы. Чтобы это сделать, выполните команды:

sudo ufw allow 20/tcp
$ sudo ufw allow 21/tcp
$ sudo ufw status

Установка FTP Ubuntu завершена, но теперь вам осталось настроить всё необходимое для обеспечения безопасной работы. Никогда не используйте FTP-сервер с настройками по умолчанию в производственных сетях, это небезопасно.

Настройка FTP Ubuntu

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

sudo cp /etc/vsftpd.conf /etc/vsftpd.conf.orig

Затем откройте файл в редакторе:

sudo vi /etc/vsftpd.conf

Затем добавьте такие настройки. Вам нужно будет найти и изменить значения указанных строк, добавлять новые, если они уже есть, не стоит. Сначала отключаем анонимный вход:

anonymous_enable = NO

Разрешаем использовать имена локальных пользователей для входа:

write_enable = YES

Установим значение umask для новых файлов, создаваемых по FTP:

local_umask = 022

Включаем сообщение о необходимости выбрать каталог после регистрации:

dirmessage_enable = YES

Записывать в лог файл все транзакции по передаче файлов и использовать стандартный формат лога:

xferlog_enable = YES
xferlog_std_format=YES

Использовать порт 20 для передачи данных вместо случайного, это нужно для нормальной работы фаервола:

connect_from_port_20 = YES

Указываем, что нужно ожидать входящих соединений:

Использовать PAM-сервис vsftpd :

pam_service_name=vsftpd

На завершение разрешим аутентификацию только пользователей, перечисленных в файле userlist :

userlist_enable = YES

Указываем файл с нашими виртуальными пользователями:

userlist_file=/etc/vsftpd.userlist

По умолчанию таким пользователям запрещён вход в систему, но мы хотим совсем обратное, поэтому добавьте такую строчку:

userlist_deny=NO

При входе пользователей на FTP-сервер, они могут работать только в корневом каталоге FTP. Если вы хотите, чтобы пользователи были ограничены только своей домашней папкой, то необходимо раскомментировать эти строчки:

chroot_local_user = YES
allow_writeable_chroot = YES

Первая строчка указывает, что нужно разместить пользователя в изолированном домашнем каталоге, а вторая, что ему можно разрешить запись в этот каталог. Настройка FTP Ubuntu почти завершена, сохраните изменения в конфигурационном файле и перезапустите vsftpd :

sudo systemctl restart vsftpd

Тестирование vsftpd

Сервер готов, но система настроена ещё не полностью. Сначала создадим нашего тестового пользователя с помощью useradd :

sudo useradd -m -c "Test User" -s /bin/bash testuser
$ sudo passwd testuser

Поскольку мы хотим подключаться от его имени к FTP-серверу, то нам нужно добавить его в vsftpd.userlist:

echo "testuser" | sudo tee -a /etc/vsftpd.userlist
$ cat /etc/vsftpd.userlist

Теперь самое время подключится к нашему FTP-серверу и проверить, как там всё работает. Попробуем войти от имени анонимного пользователя:

У нас ничего не получится. Теперь попробуем войти от имени нашего тестового пользователя, и всё заработает как нужно.

Обратите внимание, что опасно давать пользователям доступ на запись в их домашнюю папку. Делайте это, только если уверены в том, что это необходимо и безопасно.

Настройка домашних папок пользователей

Чтобы хоть как-то обойти проблемы с безопасностью, вы можете использовать другую папку вместо домашней для предоставления её пользователю. Сначала создадим такую папку для нашего пользователя:

sudo mkdir -p /home/testuser/ftp/files

Уберём право на запись для папки ftp:

sudo chown nobody:nogroup /home/testuser/ftp
$ sudo chmod a-w /home/testuser/ftp

Затем дайте необходимые полномочия пользователю на запись в подпапку.

sudo chown -R testuser:testuser /home/testuser/ftp/files
$ sudo chmod -R 0770 /home/testuser/ftp/files/

Теперь вернёмся к конфигурационному файлу vsftpd.conf. Сначала закомментируйте строчку:

allow_writeable_chroot = YES

Теперь добавьте такие строчки:

user_sub_token = $USER
local_root=/home/$USER/ftp

Первая из них добавляет переменную $USER, в которой содержится имя пользователя, а вторая задаёт корневую папку для каждого пользователя. Осталось снова перезапустить FTP-сервер:

sudo systemctl restart vsftpd

Теперь вы можете снова войти от имени этого пользователя и увидите, что сейчас используется указанная нами папка.

Настройка защищенного соединения

Установка FTP на Ubuntu 16.04 завершена, но в наше время небезопасно использовать открытую передачу данных через сеть. Всё, что только возможно, необходимо шифровать. Поэтому мы рассмотрим, как настроить защищённое соединение для vsftpd. Сначала создадим папку и сгенерируем сам сертификат, который будем использовать:

sudo mkdir /etc/ssl/private
$ sudo openssl req -x509 -nodes -days 720 -newkey rsa:2048 -keyout /etc/ssl/private/vsftpd.key -out /etc/ssl/private/vsftpd.pem

Затем нужно разрешить доступ к портам защищённого соединения FTP с фаерволе UFW:

sudo ufw allow 990/tcp
$ sudo ufw allow 40000:50000/tcp
$ sudo ufw status

И осталось внести несколько правок в настройку самого FTP-сервера. Нам нужно включить ssl_enable и отключить поддержку шифрования sslv2 и sslv3 , оставляем только tlsv1 :

ssl_enable=YES
ssl_tlsv1=YES
ssl_sslv2=NO
ssl_sslv3=NO

rsa_cert_file=/etc/ssl/private/vsftpd.pem
rsa_private_key_file=/etc/ssl/private/vsftpd.key

Запретите вход анонимных пользователей по SSL:

allow_anon_ssl=NO
force_local_data_ssl=YES
force_local_logins_ssl=YES

Теперь установим самый сложный шифр SSL:

ssl_ciphers=HIGH

И настроим диапазон портов для передачи данных:

pasv_min_port=40000
pasv_max_port=50000

Осталось перезагрузить наш сервис:

sudo systemctl restart vsftpd

Теперь тестируем, что у нас получилось:

Теперь все данные будут передаваться по зашифрованному соединению. Установка FTP-сервер Ubuntu завершена.

Выводы

В этой статье мы рассмотрели, как выполняется установка FTP на Ubuntu Server 16.04, также как настроить FTP для максимально безопасной работы, включая настройку работы по SSL. Если у вас остались вопросы, спрашивайте в комментариях!

Протокол передачи файлов (FTP) - это TCP протокол для передачи файлов между компьютерами. В прошлом он использовался также для загрузки [файлов в интернете], но, поскольку этот метод не использует шифрование, пользовательские данные как и содержимое файлов передаются в открытую и легко перехватываются. Поэтому, если вы здесь ищете способ безопасно передавать и загружать файлы, лучше обратитесь к статье по OpenSSH в разделе Удаленное администрирование .

FTP работает на основе модели клиент/сервер. Серверный компонент называется сервисом FTP . Он постоянно слушает FTP запросы от удаленных клиентов. При получении запроса он управляет входом и установкой соединения. На протяжении сессии он выполняет любые команды, переданные FTP клиентом.

vsftpd - установка FTP сервера

vsftpd - это сервис FTP , доступный в Ubuntu. Его легко устанавливать, настраивать и поддерживать. Для установки vsftpd вы можете выполнить следующую команду:

Sudo apt install vsftpd

Для запуска сервиса требуется добавить его в автозагрузку. Начиная с версии Ubuntu 15.04 используется Systemd , поэтому для добавления vsftpd в автозапуск надо ввести следующие команды:

Sudo systemctl start vsftpd sudo systemctl enable vsftpd

В Ubuntu Server может использоваться файервол ufw . Тогда вам потребуется разрешить порты 20 и 21

Sudo ufw allow 20/tcp sudo ufw allow 21/tcp

Конфигурационный файл содержит много параметров настройки. Информация по каждому параметру доступна в этом же файле. В качестве альтернативы вы можете посмотреть системное руководство по команде

Man 5 vsftpd.conf

для уточнения деталей по каждому параметру.

Доступ к FTP серверу может быть организован двумя способами:

В анонимном режиме удаленный клиент может получить доступ к FTP серверу, используя учетную запись пользователя по умолчанию с именем «anonymous» или «ftp» и передав адрес email в качестве пароля. В авторизованном режиме пользователь должен иметь учетное имя и пароль. Этот последний вариант крайне небезопасный и не должен использоваться за исключением специальных обстоятельств. Если вы хотите передавать файлы безопасно, смотрите SFTP в разделе по OpenSSH серверу. Пользовательский доступ к каталогам и файлам FTP сервера зависит от прав доступа пользователя, указанного при входе. Как правило, сервис FTP скрывает корневой каталог FTP сервера, подменяя его на домашний каталог FTP . Это скрывает корень файловой системы от удаленных сессий.

Настройка анонимного доступа по FTP

Настройка vsftpd по умолчанию не разрешает анонимную загрузку. Если вы хотите разрешить анонимную загрузку, измените в /etc/vsftpd.conf следующее:

Anonymous_enable=YES

В процессе установки создается пользователь ftp с домашним каталогом /srv/ftp. Это каталог по умолчанию для FTP .

Если вы желаете поменять его расположение, например, на /srv/files/ftp, просто создайте новый каталог и измените домашний каталог пользователя ftp:

Sudo mkdir /srv/files/ftp sudo usermod -d /srv/files/ftp ftp

После изменений перезапустите vsftpd:

Под конец скопируйте все файлы и каталоги, которые вы хотите сделать доступными для анонимного FTP в /srv/files/ftp (или /srv/ftp, если вы хотите оставить настройки по умолчанию).

По умолчанию анонимный пользователь не имеет возможности загружать файлы на FTP сервер. Для изменения этой настройки уберите комментарий на следующей строке и перезапустите vsftpd:

Anon_upload_enable=YES

Разрешение анонимному пользователю загружать файлы может оказаться серьезной угрозой безопасности. Лучше не разрешать анонимную загрузку файлов на сервера с прямым доступом из интернета.

Настройка авторизованного доступа по FTP

Прежде чем вносить какие-либо изменения в конфигурационный файл, рекомендуется скопировать образец для возможности отката изменений без переустановки пакета sudo cp /etc/vsftpd.conf /etc/vsftpd.conf.orig

Для аутентификации локальных пользователей надо раскоментировать строчку

Local_enable=YES

По умолчанию vsftpd настроен на аутентификацию системных пользователей с возможностью получать файлы. Если вы хотите пользователям разрешить загружать файлы, измените в /etc/vsftpd.conf:

Write_enable=YES

после чего перезагрузите vsftpd:

Sudo service vsftpd restart

Теперь при входе системных пользователей по FTP они будут попадать в свои домашние каталоги, где они смогут скачивать, загружать [файлы], создавать каталоги и т.д.

Защита FTP

Ограничение пользователей

В /etc/vsftpd.conf существуют опции, помогающие сделать vsftpd более безопасным. Например, данная опция позволяет поместить локального пользователя в chroot() «заточение», выше которого (по дереву каталогов) он не сможет подняться.

Chroot_local_user=YES

Вы также можете определить список пользователей, имеющих доступ только в домашний каталог:

Chroot_list_enable=YES chroot_list_file=/etc/vsftpd.chroot_list

После снятия комментариев с этих опций, создайте /etc/vsftpd.chroot_list, содержащий список пользователей по одному на строку. Затем перезапустите vsftpd:

Sudo service vsftpd restart

Если вы сняли комментарии со всех трёх строчек, то пользователи из списка не будут ограничены своими домашними каталогами, в отличии от пользователей не вошедших в список

Аналогично файл /etc/ftpusers содержит список пользователей, которым запрещен доступ по FTP . По умолчанию он включает root, daemon, nobody и т.п. Для запрета доступа по FTP для дополнительных пользователей, просто добавьте их в этот список.

Если при попытке подключения вы видите ошибку :

Ответ: 500 OOPS: vsftpd: refusing to run with writable root inside chroot()

то это значит, что локальный пользователь имеет доступ на запись в домашний каталог, чего быть не должно. Способов решения этой ошибки несколько:

    Запретить запись в домашний каталог локальному пользователю (подходит не всем и не всегда)

sudo chmod a-w /home/user/ allow_writeable_chroot=YES

    Прописать /home каталогом, куда будут попадать локальные пользователи после входа на FTP сервер. Тогда каждый из них будет иметь возможность писать только в свой домашний каталог

local_root=/home

Шифрование

FTP может быть зашифрованным при использовании FTPS . В отличие от SFTP , FTPS - это FTP поверх SSL . SFTP - это сессия, подобная FTP , по зашифрованному SSH соединению. Основное отличие заключается в том, что пользователи SFTP должны иметь учетную запись с собственным окружением (shell account) вместо оболочки nologin. Предоставление всем пользователям доступа к оболочке может оказаться не лучшим решением для некоторых систем, таких как web сервер общего доступа. Однако есть возможность ограничить такие учетные записи только SFTP и запретить взаимодействие с оболочкой. Смотрите раздел по OpenSSH для дополнительной информации.

Для настройки FTPS, добавьте в конец файла /etc/vsftpd.conf следующее:

Ssl_enable=Yes

Также обратите внимание на опции сертификата и ключа:

Rsa_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem rsa_private_key_file=/etc/ssl/private/ssl-cert-snakeoil.key

По умолчанию эти опции установлены в значения, предоставленные пакетом ssl-cert . Для рабочей среды они должны быть заменены на сертификат и ключ, созданные для определенного компьютера. Для дополнительной информации смотрите раздел Сертификаты .

Теперь перегрузите vsftpd и неанонимные пользователи будут использовать FTPS:

Sudo service restart vsftpd

Чтобы позволить пользователям с оболочкой /usr/sbin/nologin получить доступ к FTP , но не предоставлять shell доступ, отредактируйте /etc/shells, добавив к оболочке nologin:

# /etc/shells: valid login shells /bin/csh /bin/sh /usr/bin/es /usr/bin/ksh /bin/ksh /usr/bin/rc /usr/bin/tcsh /bin/tcsh /usr/bin/esh /bin/dash /bin/bash /bin/rbash /usr/bin/screen /usr/sbin/nologin

Это необходимо, поскольку по умолчанию vsftpd использует авторизацию PAM, а файл настроек /etc/pam.d/vsftpd содержит:

Auth required pam_shells.so

Модуль PAM shells ограничивает доступ к оболочкам, перечисленным в файле /etc/shells.

Наиболее популярные клиенты FTP могут быть настроены на использование FTPS. FTP клиент командной строки lftp также имеет возможность использовать FTPS.

Серверные , для администрирования MySQL установлен и защищен извне. Не хватает только ftp сервера. Все уже привыкли загружать файлы на хостинг при помощи FTP клиентов , поэтому ничего не остается, как установить и настроить на своем виртуальном сервере поддержку FTP.

Под linux создано огромное количество ftp-серверов, но мне нравится vsftpd . Он прост в установке и прекрасно справляется со своими задачами. Для установки vsftpd в окне терминала выполни команду:

Apt-get install vsftpd

Установка vsftpd в Debian 7 занимает буквально две минуты.

Настройка vsftpd

Все настройки vsftpd хранятся в файле /etc/vsftpd.conf . Откроем его в редакторе nano и внесем несколько корректив:

Nano /etc/vsftpd.conf

Первое, что необходимо сделать в файле настроек – установить запрет на подключение анонимных пользователей. Находим опцию “anonymous_enable” и прописываем ей значений “NO” . Затем сними комментарий с опции “local_enable” и “write_enable” . Первая опция разрешает использовать для входа на сервер пользователям, которые зарегистрированы в системе. Вторая разрешает пользователям выполнять любые FTP-команды записи.

Последним действие в конфигурационном файле будет снятие комментария с опции chroot_local_user . Если ей установлено значение «Yes» (по умолчанию оно и установлено), все системные пользователи будут находиться в пределах chroot и не смогут получить доступ к другим директориям сервера.

Сохраняем изменения (ctrl+o ) и закрываем файл (ctrl+x ). Теперь попробуем протестировать работу FTP сервера. Для этого создадим нового пользователя и сделаем в его домашней директории папку, к которой он будет иметь возможность получить доступ по FTP.

Добавление нового пользователя выполняется командой adduser. Попробуем создать нового пользователя user :

Adduser user

Утилита создания пользователя задаст несколько вопросов (пароль, различные вспомогательная информация). Вопросы с запросом вспомогательной информации (phone, room number и т.д.) можешь игнорировать, нажимая клавишу “Enter”. Предположим, что пользователь создан, теперь добавим новую группу webusers и включим в нее пользователя user:

Groupadd webusers usermod -G webusers user

Если прямо сейчас перейти в директорию /home , то мы увидим, что в ней появилась папка для недавно созданного нового пользователя. Создадим в домашней директории пользователя две новые папки:

Mkdir /home/user/www mkdir /home/user/logs

В первой будут храниться файлы доступные снаружи (это будет директория хоста), а вторую будем использоваться для хранения логов. Теперь нам надо сменить владельца для созданных папок. Мы их создавали из под root , поэтому сейчас владельцем является супер пользователь. Смена владельца выполняется командой chown:

Chown user:webusers /home/user/www chown user:webusers /home/user/logs chmod 555 /home/user

На этом все подготовительные действия завершены. Остается только перезапустить FTP сервер и попробовать подцепиться к нему каким-нибудь клиентом. Перезапуск службы vsftpd выполняем традиционным способом:

Service vsftpd restart

Тестируем настроенный vsftpd сервер

В качестве теста попробуем соединиться встроенным в Windows консольным ftp клиентом с нашим ftp-сервером. Открываем CMD и вбиваем команду:

Ftp

После установки соединения, программа у тебя запросит ввести логин/пароль. Вводи сюда данные созданного пользователя. Пройдя процесс аутентификации, ты можешь начать отправлять ftp команды. Например, команда dir запрашивает список директорий с ftp сервера. Выполнив ее, ты увидишь, что на сервере доступно две папки – www и logs .

На этом, установку и настройку vsftpd считать оконченной.

Если у Вас уже установлен сервис vsftpd, то переходим сразу к пункту 2, иначе по порядку:
1. В дистрибутиве Debian, выполняем команду: apt-get install vsftpd
Все операции по его скачиванию и установке занимают около 1-3 минут, на вопрос установщика необходимо ответить «y».
2. Находим конфигурационный файл данного сервиса, он лежит в /etc/vsftpd.conf , редактируем его либо nano, либо встроенным в midnight commander редактором.
nano /etc/vsftpd.conf
Далее проверяем некоторые настройки описанные в нем:
— устанавливаем запрет на подключение анонимных пользователей, находим опцию «anonymous_enable » и прописываем ей значений «NO «.
— снимаем комментарий с опции «local_enable » и «write_enable «. (первая опция разрешает использовать для входа на сервер логин и пароль пользователям, которые зарегистрированы в системе/вторая разрешает пользователям выполнять любые FTP-команды записи)
— находим «chroot_local_user «, если этой надстройке установлено значение «Yes » (скорее всего стоит по умолчанию), все системные пользователи будут находиться в пределах chroot директории и не смогут получить доступ к другим директориям сервера.
Сохраняем все изменения, которые сделали. Для nano: жмем ctr+o -> Enter(сохраняем) -> ctrl+x(закрываем). Для midnight commander-а — жмем F2(сохраняем) затем F10(выход).
3. Когда все подготовили, создаем пользователя который будет пользоваться FTP: (заранее оговорюсь, что имя пользователя может быть любым, не обязательно писать user , как в данном примере! это пример! )
— выполняем в терминале команду adduser user
— далее утилита по созданию нового пользователя задаст Вам несколько вопросов, на которые вы введете ответы с клавиатуры (просьба заполнить побочные поля в роде номера телефона и пр. можно игнорировать и просто нажимать Enter), и в конце при сохранении пишем «yes»
— теперь добавим вновь созданного пользователя в группу ftpusers (название группы может быть любым другим, придуманным Вами самими, в данном случае — это пример! )
groupadd ftpusers
usermod -G ftpusers user
в директории /home уже создалась одноименная папка пользователя.
— сделаем в этой папке еще две папки для файлов и для логов.
mkdir /home/user/www
mkdir /home/user/logs
— далее сменим владельца данных папок т.к. текущие операции мы производили из под пользователя с root правами, соотв. и атрибуты назначились как для root
chown user:ftpusers /home/user/www
chown user:ftpusers /home/user/logs
chmod 555 /home/user
4. Перезапускаем наш сервис командой
service vsftpd restart
5. Пробуем подключаться с помощью FTP клиента (FileZilla,Winscp,Explorer) по ip-адресу или доменному имени хоста на котором производили данные действия, введя логин созданного пользователя и его пароль. После входа будут доступны созданные ранее папки.



Есть вопросы?

Сообщить об опечатке

Текст, который будет отправлен нашим редакторам: