FTP-сервер Ubuntu: Как происходит настройка

В 1985 году был создан протокол передачи данных FTP (File Transfer Protocol), основанный на TCP/IP, который был описан в RFC 959, чтобы сделать возможным хранение файлов на сервере и их последующее получение. Протокол, расположенный на прикладном уровне, позволяет передавать данные через порт 20 (клиент) и 21 (сервер), а также создавать, редактировать и читать каталоги. Для использования этой клиент-серверной структуры пользователям требуется только FTP-клиент и вход в специальную учетную запись пользователя на сервере.

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

Совет

Вы хотите сохранить или передать данные? Тогда арендуйте защищенный FTP-хостинг от IONOS. Безопасная передача данных по SSH и SSL/TLS, а также ежедневное резервное копирование включены в стоимость.

Установка FTP-сервера Ubuntu

Прежде чем приступить к настройке собственного FTP-сервера, необходимо найти соответствующее программное обеспечение. Для этого в системах Ubuntu уже есть собственное решение vsftpd для управления пакетами, которое вам просто нужно установить. Это приложение с открытым исходным кодом для unix-подобных систем построено на модулях и компонентах, отличающихся особой компактностью. Таким образом, серверы vsftpd гарантируют отличный уровень безопасности и стабильную работу даже при большом количестве обращений клиентов. Чтобы установить приложение, просто вызовите терминал и введите следующую команду:

sudo apt-get install vsftpd

Ubuntu FTP server tutorial: Конфигурация

После завершения короткой установки вы можете снова закрыть терминал и приступить к настройке FTP-сервера Ubuntu. Для этого откройте конфигурационный файл vsftpd.conf, который обычно находится в папке ‘etc’.

Чтобы иметь возможность открывать и редактировать конфигурационный файл FTP-сервера, вам понадобится простой текстовый редактор. В Ubuntu для этих целей предустановлена программа gedit (GNOME-Editor), так что вам не обязательно искать собственное решение. Текстовое содержимое делится на две части: Строки, начинающиеся со знака фунта (#), игнорируются сервером vsftpd. Эти строки используются для комментирования различных настроек, а также деактивированных функций. Строки, не начинающиеся со знака фунта, содержат информацию, которая впоследствии интерпретируется сервером.

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

Факт

Чтобы сохранить изменения в файле vsftpd.conf, вам нужны права root. В противном случае вы можете только читать конфигурационный файл.

Разрешить анонимный доступ

По умолчанию vsftpd настроен так, что пользователи могут входить на FTP-сервер только под определенной учетной записью. Но протокол передачи файлов допускает процедуру входа, при которой пользователи могут входить анонимно, не предоставляя личных данных. Чтобы активировать этот неопределенный тип доступа, найдите запись ‘anonymous_enable=NO’ и измените параметр ‘NO’ на ‘YES’:

anonymous_enable=YES

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

По умолчанию права пользователей, которые заходят на FTP-сервер Ubuntu анонимно, крайне ограничены.  Например, можно скачивать только те файлы, которые доступны для чтения всем пользователям (anon_world_readable_only=YES). Если вы опустите этот параметр, то можно будет скачивать и другие файлы. Доступны следующие опции:

  • anon_mkdir_write_enable: Анонимные пользователи могут создавать новые каталоги, если здесь введено значение ‘YES’. Дополнительным требованием является активация функции write_enable (см. раздел ‘Разрешить изменения в файловой системе’ ниже). Значение по умолчанию: ‘NO’ или деактивированное (#) ‘YES’.
  • anon_other_write_enable: Если эта строка активирована, файлы и каталоги на FTP-сервере также могут быть переименованы и удалены с анонимным доступом. Значение по умолчанию: ‘NO’ или деактивированный (#) ‘YES’.
  • anon_upload_enable: С помощью этой текстовой строки активируется анонимная загрузка файлов. Требуется, чтобы была активирована функция write_enable и создан отдельный каталог загрузки, так как анонимные пользователи не могут писать непосредственно в домашний каталог. Значение по умолчанию: ‘NO’ или деактивировано (#) ‘YES’.

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

Ограничение доступа для локальных пользователей

Если вы хотите предоставить локальным пользователям доступ только к их домашнему каталогу /home/username, вы можете задать это в файле vsftpd.conf. За это отвечает параметр разметки ‘chroot_local_user’, которому по умолчанию присвоено значение ‘NO’. Если вы измените значение параметра следующим образом

chroot_local_user=YES

то все остальные каталоги останутся закрытыми для локальных пользователей.

Отключение входа локальных пользователей

Чтобы разрешить доступ к FTP-серверу локальным пользователям, необходимо установить запись ‘local-enable=YES’, которая имеет значение по умолчанию. Если вы хотите запретить доступ к FTP-серверу Ubuntu для локальных пользователей, вам просто нужно закомментировать соответствующую строку, поставив перед ней знак фунта:

#local_enable=YES

Разрешить изменения в файловой системе

В конфигурации по умолчанию определено, что ни локальный, ни анонимный пользователь не могут использовать FTP-команды. Соответствующая строка для глобальной записи ‘#write_enable=YES’ отключена. Если авторизованному пользователю необходимо разрешить настраивать файловую систему сервера vsftpd, то необходимо извлечь это утверждение:

write_enable=YES

Ограничить доступ к FTP для определенных пользователей

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

userlist_deny=YES
userlist_enable=YES
userlist_file=/etc/vsftpd.user_list

Этот параметр указывает серверу vsftpd запретить доступ всем пользователям, перечисленным во внешнем файле vsftpd.user_list. В этом случае все остальные пользователи могут войти в систему как обычно.

Для второго сценария, когда только пользователи, перечисленные в vsftpd.user_list, могут войти в систему, параметр ‘userlist_deny’ должен быть отрицательным:

userlist_deny=NO
userlist_enable=YES
userlist_file=/etc/vsftpd.user_list

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

Обзор дополнительных опций

Опция Значение по умолчанию Описание
download_enable ДА Определяет, возможна ли загрузка с FTP-сервера Ubuntu.
ssl_enable НЕТ Предлагает возможность включить SSL-шифрование для FTP-доступа
anon_max_rate   Устанавливает максимальную скорость передачи данных (байт в секунду) для анонимных пользователей; 0 означает неограниченную скорость.
local_max_rate   Устанавливает максимальную скорость передачи данных (байт в секунду) для локальных пользователей; 0 означает неограниченную скорость.
max_clients   Максимальное значение для количества клиентов, одновременно входящих на FTP-сервер; 0 означает отсутствие ограничений.
anon_root /home/ftp Каталог, в который автоматически отправляются анонимные пользователи
log_ftp_protocol НЕТ Записывает в журнал все FTP-запросы и ответы
таймаут_соединения 60 Определяет промежуток времени (в секундах), по истечении которого соединение между сервером и клиентом прерывается при отсутствии связи
ftpd_banner   Текст приветствия
guest_enable НЕТ Позволяет разблокировать профиль анонимного доступа, определенный в guest_username
имя_гостя ftp Имя пользователя для анонимного входа

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

man vsftpd.conf

Как использовать FTP-сервер под Ubuntu

После того, как вы настроили конфигурационный файл в соответствии с желаемыми характеристиками, не забудьте сохранить его. Чтобы серверное приложение приняло все изменения, требуется перезагрузка, которую вы инициируете с помощью следующей команды:

sudo etc/init.d/vsftpd restart

Если вы еще не запустили FTP-сервер, сделайте это с помощью команды терминала:

sudo etc/init.d/vsftpd start
Совет

Если вы хотите снова остановить FTP-сервер Ubuntu, замените параметр ‘start’ в приведенной выше команде на ‘stop’.

Теперь, когда вы установили FTP-сервер Ubuntu и запустили его, вам нужна учетная запись пользователя, чтобы иметь возможность войти в систему. Для этого примера мы создали пользователя с именем ‘user’ и паролем ‘password’.

sudo useradd -m user -s/usr/sbin/nologin
sudo passwd user

Теперь вы разрешаете вход в систему для оболочки nologin, добавив следующую строку в конец файла /etc/shells:

/usr/sbin/nologin

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

sudo apt-get install filezilla

Откройте FileZilla и добавьте новое соединение с соответствующими данными: В поле host введите IP-адрес вашего FTP-сервера Ubuntu, который принимает запросы на порт 21 (если вы не изменили настройки). Выберите протокол передачи файлов и, если возможно, выберите SFTP (Secure FTP) или FTP over TLS, поскольку простое FTP-соединение через порт 21 представляет собой относительно высокий риск безопасности. В поле ‘Тип входа’ выберите опцию ‘Обычный’. Для ‘User’ и ‘Password’ вам понадобятся ранее созданные регистрационные данные учетной записи примера. Нажав на кнопку ‘Connect’, вы присоединитесь к серверу.

500 OOPS: функция безопасности решает проблемы

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

500 OOPS: vsftpd: refusing to run with writable root inside chroot ()

Это сообщение, которое можно встретить во время установления соединения, не является сообщением об ошибке, а скорее функцией безопасности. Причиной является возможная уязвимость библиотеки glibc (стандартная библиотека Ubuntu языка программирования C), которая может быть использована пользователями для записи собственного корневого каталога. Существует два решения, чтобы избежать этой уязвимости безопасности:

1. Снять разрешение на запись в корневой каталог пользователя: Лишить локальных пользователей прав на запись в их собственный корневой каталог, чтобы они могли писать только в подкаталоги. Ограничение решает проблему ‘500 OOPS’, но это может стать недостатком, когда файлы должны быть записаны в корневой каталог. Команда терминала для этого подхода выглядит следующим образом:

chmod a-w /home/user

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

allow_writeable_chroot=YES

Оцените статью
cdelat.ru
Добавить комментарий