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

Сервер FTP

Содержание

Сервер FTP

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Защита FTP

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

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

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

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

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

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

Шифрование

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

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

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

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

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

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

Установка и настройка vsFTPd на Ubuntu

vsFTPd и proFTPd — одни из самых простых способов поднять сервер FTP на Linux. В данной инструкции пойдет речь о vsFTPd и Ubuntu (на примере версий 14 и 16).

Установка и настройка

Обновляем списки портов в репозиториях:

apt-get install vsftpd

Открываем конфигурационный файл:

И снимаем комментарий со следующих строк:

* write_enable — разрешить копировать файлы на сервер; chroot_local_user — использовать для пользователей изолированное окружение.

И дописываем следующее:

allow_writeable_chroot=YES
pasv_enable=YES
pasv_max_port=40100
pasv_min_port=40900

* где allow_writeable_chroot разрешаем использовать домашние каталоги с правом на запись; pasv_enable включает пассивный режим работы FTP-сервера; pasv_max_port и pasv_min_port определяют диапазон портов для пассивного режима.

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

  • 20 — для активного режима. Используется для передачи команд.
  • 21 — основной порт FTP для передачи.
  • 40100-40900 — диапазон, который нами был определен в конфигурационном файле. Используется для пассивного режима.

Разрешаем и запускаем сервис:

systemctl enable vsftpd

systemctl start vsftpd

service vsftpd start

Добавление пользователя

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

useradd ftpuser -d /ftp -s /bin/false -m

* где ftpuser — имя учетной записи; /ftp — домашний каталог (в него будем попадать при подключении); /bin/false — запрет пользователю на локальный вход в систему.

Открываем на редактирование следующий файл:

И добавляем следующее:

* мы добавили /bin/false в список разрешенных оболочек. В противном случае, может вернуться ошибка 530 Login incorrect.

Для проверки подключения можно воспользоваться FTP-клиентом на другом компьютере (например, FileZilla или Total Commander).

Также можно установить FTP-клиент на сервер:

apt-get install ftp

И для подключения используем следующую команду:

Система запросит логин и пароль.

Виртуальные пользователи

Устанавливаем pam-модуль, позволяющий аутентифицировать пользователей с помощью passwd-like файлов:

apt install libpam-pwdfile

Открываем конфигурационный файл vsftpd и добавляем следующее:

user_config_dir=/etc/vsftpd_virtuser_conf
guest_enable=YES
virtual_use_local_privs=YES
pam_service_name=vsftpd
nopriv_user=vsftpd
guest_username=vsftpd

  • user_config_dir — каталог для хранения настроек пользователя.
  • guest_enable — разрешаем гостевой вход.
  • virtual_use_local_privs — виртуальные пользователи используют привилегии, как локальные, в не анонимные.
  • pam_service_name — имя pam-сервиса.
  • nopriv_user — под каким пользователем работает сервер, когда ему не нужны привилегии.
  • guest_username — имя гостевого пользователя.

Для возможности использовать утилиту htpasswd ставим следующий пакет:

apt install apache2-utils

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

htpasswd -cd /etc/vsftpd/ftpd.passwd virt1

htpasswd -d /etc/vsftpd/ftpd.passwd virt2

* обратите внимание, опция -c команды htpasswd используется только при создании файла (при первом вводе команды). Мы создаем два пользователя — virt1 и virt2.

Архивируем имеющийся pam-сервис для vsftpd:

mv /etc/pam.d/vsftpd /etc/pam.d/back_vsftpd

Создаем новый со следующим содержимым:

auth required pam_pwdfile.so pwdfile /etc/vsftpd/ftpd.passwd
account required pam_permit.so

В самой системе создаем пользователя, которого используем как гостевого:

useradd vsftpd -d /home/vsftpd -g nogroup -m -s /bin/false

* с домашней директорией /home/vsftpd, основной группой nogroup и без возможности входа в систему (-s /bin/false).

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

и создаем настройку для первого:

* local_root — домашняя директория для FTP пользователя virt1.

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

chown vsftpd:nogroup /var/www/virt1

systemctl restart vsftpd || service vsftpd restart

Настройка FTP-сервера на примере Ubuntu Linux

Настройка на примере Ubuntu Linux В данной статье будет показано, как выполняется настройка FTP сервера на Ubuntu Linux. Статья подходит пользователям Виртуального сервера Ubuntu. Для передачи файлов используется протокол FTP (File Transfer Protocol), поэтому мы будем настраивать ни что иное, как .

На базе Linux/UNIX разработано очень много различных , а именно: proftpd, , , vsftpd. Какой из них выбрать?

Если вам нужно максимум настроек и максимальная гибкость, тогда нужно выбрать proftpd. Это настоящий монстр (в хорошем смысле этого слова) по сравнению с остальными.

Vsftpd (Very Secure FTP Daemon) позиционируется как простой, но очень защищенный FTP. Обслуживает официальные репозитарии ftp.debian.org, ftp.redhat.com, ftp.openbsd.org, ftp.freebsd.org и других дистрибутивов. Если настройка FTP сервера Ubuntu выполнена правильно, и есть надежда на лучшую защищенность, он вроде бы работает чуть быстрее — вот что можно сказать о vsftpd. Серьезное ограничение vsftpd — он не позволяет в системе одновременную регистрацию обычных и анонимных клиентов.

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

Самый древний вариант — . Старый и «дырявый». По причине его почтенного возраста и не очень совершенной безопасности не рекомендуется к использованию. Оптимальным вариантом на сегодняшний день является сервер proftpd. Настройка FTP сервера Ubuntu такого типа требует знаний, но это наиболее гибко настраиваемое и при этом защищенное решение.

Для установки proftpd нужно установить одноименный пакет, который имеется во всех дистрибутивах Linux. Введите команду:

Рис. 1. Установка

Конфигурационные файлы сервера хранятся в каталоге /etc/proftpd. Основной конфигурационный файл называется proftpd.conf и будет рассмотрен далее.

Управление и настройка FTP сервера Ubuntu выполняется с помощью команд:

Первая команда, как обычно, запускает сервер, вторая — перезапускает, третья — останавливает. Последняя команда показывает состояние сервера. Когда серверу «плохо», с помощью этой команды можно узнать, что ему «не нравится». Пока запускать сервер не нужно.

Далее — небольшое практическое руководство, необходимое чтобы была выполнена настройка FTP сервера Ubuntu. Первым делом нужно исправить директиву DefaultRoot так:

Для каждого пользователя его домашний каталог станет его корневым каталогом. Это означает, что клиент не сможет выйти за пределы его домашнего каталога и прочитать ваши системные конфигурационные файлы.

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

В глобальной секции можно ограничить доступ только пользователям вашей виртуальной сети, для этого потребуется дополнительная настройка FTP сервера Ubuntu. Это можно сделать путем ограничения операции LOGIN, например:

виртуальной сети можно посмотреть в разделе Сети панели управления Xelent. Если у вас несколько виртуальных сетей, нужно указать сети, к которой подключен настраиваемый сервер.

Рис. 2. виртуальной сети

Конечно, такое ограничение допустимо только, если вы создаете для нужд компании. Если вы собираетесь предоставлять доступ всем желающим, например, создаете , то ограничивать регистрацию клиентов не нужно.

Теперь поговорим об аутентификации пользователей. В большинстве случаев вам будет удобнее использовать для аутентификации саму систему:

Если немного (пусть даже около сотни), тогда в Linux настройка FTP сервера делается проще. При желании можно использовать аутентификацию PAM:

Когда же пользователей очень много (несколько сотен или тысяч), удобнее для аутентификации использовать MySQL. В этом случае учетные записи будут храниться не в /etc/passwd, а в отдельной таблице MySQL. Такой вариант настройки выходит за рамки этой статьи и будет непременно рассмотрен в следующих наших статьях. Следите за нашим блогом.

Ускорить аутентификацию может отключение следующих директив:

Первая строка отключает (давно уже не используются), вторая — запрещает разрешать пользователей в доменные имена. При желании вы всегда сможете разрешить в доменное имя вручную, если вам это будет нужно. Зато при частом использовании сервера отключив разрешение , вы существенно повысите скорость работы сервера.

Директива TimeoutLogin задает, сколько времени можно потратить пользователю на аутентификацию. По умолчанию — 60 секунд. Представьте ситуацию. Пользователь подключается к серверу. Сервер просит его ввести логин. Пользователь его вводит. Затем пользователь долго и нудно вспоминает свой пароль. Если с момента подключения прошло 60 секунд, а пользователь так и не ввел пароль, то он отключается. Но кто сейчас вводит пароль вручную? Обычно он сохраняется в таком как Total Commander, Filezilla. Программа вводит пароль моментально, поэтому нечего ждать 60 секунд. Достаточно ожидания в 20 секунд — специально для пользователей, которые вводят пароль вручную. Думаю, 20 секунд вполне достаточно, чтобы ввести имя и пароль вручную:

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

Но если вы настраиваете , к которому будут подключаться пользователи Интернета, нужно помнить о NAT. Представьте, что есть другая локальная сеть с одним реальным (как правило, реальный есть только на шлюзе). Получается, что к вашему серверу могут подключиться несколько пользователей из этой сети и у всех них будет одинаковых , хотя сами пользователи будут разные. Обычно такие ситуации — редкие, поэтому можно ограничиться 2–3 клиентами. Но бывают исключения — у вас может быть очень популярный сервер, например, с музыкальным контентом или же вы знаете, что есть другая сеть, практически все пользователи которой будут подключаться к вашему серверу. Здесь решать вам, в Ubuntu установка FTP сервера позволяет настраивать и этот параметр. Пока установим ограничение на уровне 3 пользователей с одного :

Максимальное число одновременных клиентов задается директивой MaxInstances. Для предотвращения лучше не устанавливать большие значения для этого параметра:

С другой стороны, если выполняется Ubuntu установка FTP сервера , на котором будет 1000 пользователей, а вы разрешили одновременную работу всего двадцати пользователям, может возникнуть ситуация, когда пользователи не смогут войти на сервер. Тогда придется увеличивать это число. Насколько — нужно смотреть по ситуации и по количеству пользователей. Теоретически можно увеличить это значение до 10% от количества пользователей, например:

Об оперативной памяти можно особо не заботиться, proftpd довольно экономно ее использует. Каждый процесс proftpd занимает около 2.5 Мб, следовательно, 100 процессов займут всего 250 Мб. Самое страшное — это загрузка процессора. При закачке одного файла один процесс proftpd занимает от 10 до 30% процессорного времени одного ядра. Вот и считаем, что если даже один процесс расходует 10% процессорного времени одного ядра, всего 10 процессов «сожрут» одно ядро процессора. 40 одновременных процессов окажут ощутимое влияние даже на четырехядерный процессор. Вот поэтому в настройках по умолчанию и рекомендует не превышать значение 30 для этого параметра. Также довольно интересный параметр MaxClientsPerUser. Означает, сколько соединений может создать один пользователь. Чтобы один пользователь не залогинился 30 раз и не узурпировал все 30 процессов, рекомендую ограничить это значение до 1:

MaxClientsPerUser 1 «Only one connection at a time».

Когда выполняется настройка FTP сервера Ubuntu server, первый параметр этой директивы — число соединений. Второй — сообщение об ошибке, которое будет выведено. Если у клиента медленное или нестабильное соединение, бывает так, что он может начать передачу файла, но потом связь может оборваться. Можно задать , определяющий, сколько нужно ждать в такой ситуации до разъединения. Медленные и нестабильные соединения уходят в прошлое, поэтому можно понизить время ожидания с 5 минут (300 секунд) до 2 минут:

Это делается специально, чтобы процесс proftpd завершился как можно быстрее и не занимал драгоценное процессорное время.

Максимальная продолжительность сессии с момента аутентификации задается директивой TimeoutSession. По умолчанию эта настройка FTP сервера Ubuntu server составляет 1 час, чего вполне хватит даже для загрузки больших файлов. Например, при относительно низкой скорости загрузки в 1 Мбайт/с файл размером 1 Гб загрузится примерно за 1024 секунды. То есть за одну такую сессию пользователь сможет загрузить три таких файла. Думаю, этого более, чем достаточно.

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

Автор: ITSeason · Опубликовано 18.05.2019 · Обновлено 06.08.2019

В настоящей статье мы рассмотрим установку и настройку FTP сервера vsftpd на веб-сервер под управлением операционной системы Ubuntu Server 18.04.

FTP (File Transfer Protocol) — это протокол передачи файлов по сети. Порты по умолчанию: 21/TCP для команд, 20/TCP для данных. Порты для пассивного подключения настраиваются дополнительно в конфигурационном файле.

Для начала обновим индексы пакетов программ:

sudo apt update

Теперь устанавливаем сам FTP сервер:

sudo apt install vsftpd

Открываем конфигурационный файл для редактирования:

sudo nano /etc/vsftpd.conf

Опуская комментарии его содержание должно быть следующим:

listen=YES
local_enable=YES
chroot_local_user=YES
check_shell=NO
write_enable=YES
xferlog_enable=YES
chown_uploads=YES
chown_username=nobody
anonymous_enable=NO
pasv_enable=YES
pasv_min_port=60000
pasv_max_port=60100

Перезапускаем FTP сервер:

sudo service vsftpd restart

Создаем пользователя FTP:

sudo adduser ftpuser

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

sudo mkdir /home/ftpuser/site

sudo mount —bind /var/www /home/ftpuser/site

Теперь в /home/ftpuser/site будут отображаться файлы, которые лежат в /var/www. Обратите внимание на то, что монтирование сохраняется до перезагрузки сервера. После перезагрузки команду нужно будет повторить.

Далее даем права на каталоги и файлы сайта:

sudo chown www-data:ftpuser /var/www/ -R
sudo find /var/www -type d -exec chmod 775 <> ;
sudo find /var/www -type f -exec chmod 664 <> ;

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

sudo chmod a-w /home/ftpuser/

Теперь нам необходимо настроить брандмауэр для подключения:

sudo ufw allow in 20/tcp

sudo ufw allow in 21/tcp

sudo ufw allow in 60000:60100/tcp

sudo ufw status

Все. Пробуем подключиться по FTP.

Подключение по FTP

Как видим подключение работает. В смонтированном каталоге файлы нашего тестового сайта.

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

Ubuntu FTP

Известный факт: работа любой операционной системы зависит от того, какой сервер установлен на девайсе. Сервер FTP на Ubuntu имеет свои преимущества и недостатки. Он обладает своими специфическими особенностями. Следует знать важные аспекты установки и настройки ftp сервера linux. Также новичку следует знать о часто встречающихся ошибках установки ubuntu ftp server и проблемы, возникающие после при работе с ним.

Что такое FTP

FTP server linux – это один из базовых протоколов передачи файлов в сети на платформе убунту. С его помощью можно:

  • подключаться к различным tftp серверам ubuntu;
  • просматривать различные каталоги;
  • загружать документы с одного сервера на другой (например, с tftp на atftpd ubuntu).

Это оборудование использует для своей работы различные программы – ubuntu ftp клиенты:

  1. File Zilla – универсальная программа, используется для всех протоколов и платформ.
  2. WinSCP – очень удобный с двумя панелями протокол для системы виндовс.
  3. FAR Manager – его используют только с помощью консоли Виндовс.
  4. FireFTP – этот сервер актуален для браузера Mozilla.
  5. Total Commander – популярный менеджер для Виндовс.
  6. Cyberduck – программное обеспечение для платформы Линукс.

Дальнейшие этапы установки, настройки и работы будут рассмотрены для ftp сервера ubuntu 14.04.

Режимы работы FTP

При работе с таким протоколом есть 2 режима, которые отличаются между собой соединением между пользователем и сетью.

Автономный режим

По-другому этот вариант называется пассивным режимом. Это более безопасный для пользователя случай. Человек в этом случае не указывает номера порта.

Методика передачи файлов такова:

  1. Отправляют со своего временного порта запрос на порт сервера.
  2. Затем следует ответ сервера на временный порт индивидуума.
  3. Подтверждают соединение. Затем отправляют команду, утверждающую пассивный режим работы.
  4. Сервер в ответ подтверждает режим работы, выдает ip-адрес и номер порта для связи.
  5. Отправляют запрос с нового порта на соединение с выданным номером порта.
  6. Сервер подтверждает установку.
  7. После установления соединения клиент дает команды, и начинается передача.

Очень важно использовать этот режим, если установлен Firwall.

Нормальный режим

По-другому этот вариант называется активным режимом. В этом случае пользователь сам задает необходимый порт для связи.

Методика передачи файлов выглядит следующим образом:

  1. Клиент отправляет со своего временного порта запрос на порт сервера.
  2. Затем следует ответ сервера на временный порт индивидуума.
  3. Подтверждают соединение. Затем отправляют команду, утверждающую активный режим работы, свой ip-адрес и порт.
  4. Сервер в ответ подтверждает режим работы.
  5. Дают команды серверу.
  6. Сервер дает запрос на указанный пользователем порт о соединении.
  7. Клиент подтверждает это соединение, и передача файлов начинается.

Однако этот вариант опасен тем, что данные клиента могут попасть в «чужие руки», поскольку они никак не зашифрованы.

Установка FTP на Ubuntu Server

Этот процесс происходит с помощью команды vsftpd.

  1. Установка с помощью выражения sudo apt install vsftpd.
  2. Для запуска: sudo systemctl start vsftpd, sudo systemctl enable vsftpd.
  3. Разрешить порты для работы ufw: sudo ufw allow 20/tcp, sudo ufw allow 21/tcp.
  4. Запустится конфигурационный файл, содержащий множество параметров настройки. Руководство по каждому пункту вызывается с помощью команды: man 5 vsftpd.conf.

Настройка FTP сервера на Ubuntu

Этот процесс имеет разные направления, которые различаются своими специфическими особенностями.

Настройка доступа пользователей

Есть 2 пути: анонимный и авторизированный. Первый случай простой, пользователь создает анонимный файл для связи. Второй случай более безопасный – должна быть учетная запись.

Анонимный доступ

Скопировать на всякий случай конфигурационный файл с помощью команды:

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

Затем установить анонимный режим:

sudo cp /etc/vsftpd.conf / anonymous_enable=YES

После следует перезапустить сервер с помощью выражения:

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

Чтобы они тоже могли загружать файлы, нужно воспользоваться выражением:

Однако последний пункт может привести к нарушению безопасности работы сервера.

Авторизированный доступ

Повторить первый пункт предыдущего метода.

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

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

Затем следует перезагрузить систему с помощью выражения:

После следует защитить систему другими опциями.

Смена номера порта

Сначала нужно подключиться к серверу по SSH.

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

Выполнить команды: либо vsftpd, либо proftpd.

Другие опции

Есть важные 2 направления, о которых каждый пользователь обязательно должен знать.

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

Управлять документами и запросами пользователями достаточно просто.

Для ограничения уровня любого человека можно воспользоваться командой:

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

Затем следует перезапустить программу с помощью:

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

Отменить проверку на запись в домашний каталог можно выражением:

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

Шифрование

При наличии FTPS пользовательское место для увеличения безопасности можно зашифровать.

Для настройки такого режима следует в конце конфигурационного файла добавить:

Ввести сертификат и ключ с помощью:

Чтобы пользователям был доступ к серверу, а не к оболочке, следует отредактировать файл следующим образом:

Установка и настройка FTP-сервера в Linux

File Transfer Protocol, т. е. FTP – протокол передачи файлов и, как понятно из полного названия, предназначен для передачи файлов между удалёнными компьютерами через сеть. Несмотря на то, что сам протокол FTP является на сегодняшний день не самым совершенным из-за того, что передаваемые данные не шифруются, однако это не делает его устаревшим. Кроме того всё-таки к FTP возможно применять криптографическую защиту на основе протокола SSL, что и делает FTP достойным инструментом для передачи файлов.

Поскольку FTP работает по схеме клиент-серверного взаимодействия, то умелая и надёжная реализация протокола (да и вообще системы) в состоянии обеспечить ему надёжную защиту, высокую скорость и, как следствие — популярность, что и можно наблюдать на сегодняшний день, ведь большинство крупных проектов, таких как ftp.gnu.org, ftp.suse.com, ftp.redhat.com, ftp.gnome.org и т. д., используют для распространения программного обеспечения со своих серверов именно FTP. Надо заметить, что такой популярностью FTP обязан, в большей степени, одной из своих многочисленных реализаций — vsFTPd. Это FTP- сервер, поддерживающий работу с самыми современными технологиями по защите данных — SSL и IPv6, его реализация совмещает в себе высокую надёжность, стабильность, скорость работы и передачи данных, а также гибкую настройку работы сервера и широкий функционал. Разработчиком vsFTPd является Крис Эванс — профессиональный исследователь в сферах защиты данных и информационной безопасности. vsFTPd является FTP-сервером по-умолчанию практически во всех Linux-системах, поскольку, как уже упоминалось, помимо надёжности и высокой скорости работы, обладает большими функциональными возможностями, самыми значимыми из которых являются:

  1. Работа с виртуальными пользователями.
  2. Работа с виртуальными IP-адресами.
  3. Конфигурирование пользователей.
  4. Поддержка
  5. SSL-шифровние для защиты передаваемых данных.
  6. Контроль полосы пропускания.

В данной статье рассматривается установка и настройка FTP-сервера на примере vsFTPd, который, кстати, является свободно распространяемым программным обеспечением (ПО) с открытым исходным кодом. Официальная страница проекта: https://security.appspot.com/vsftpd.html.

Установка vsFTPd

Установить Vsftd в Debian-ориентированных дистрибутивах Linux позволяет команда:

Также полезно будет установить и простой FTP-клиент для тестирования соединения и передачи файлов:

Для дистрибутивов на основе RPM-пакетов, CentOS, RedHat:

Примечание: yum – это пакетный менеджер, тот же самый apt, но адаптированный для управления пакетами формата *.rpm.

После установки для vsFTPd будет доступна техническая документация, которая обычно находится в каталоге /usr/share/doc/vsftpd/examples – здесь приведены варианты различных конфигураций, в зависимости от характера и масштабов использования vsFTPd. Ознакомиться с документацией можно также с помощью команды:

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

Запуск, перезапуск и остановка сервера:

Для включения демона vsftpd в автозагрузку используется команда:

Аналогично и с командой service.

Если vsFTPd используется в серверных дистрибутивах, в которых часто работает фаервол, например ufw, то ещё может понадобиться разрешить использование портов 20 и 21:

Настройка vsFTPd

Конфигурационным файлом для настройки vsFTPd является файл vsftpd.conf, который обычно находится в каталоге etc/. Ознакомиться с его одержимым можно командой cat:

На всякий случай полезно перед редактированием оригинального файла настроек сделать его резервную копию:

$ sudo cp /etc/vsftpd.conf vsftpd.conf.backup

FTP-сервер vsFTPd предусматривает два основных варианта работы: с анонимными и авторизованными пользователями. Первый вариант считается «более безопасным», но только потому, что для обеспечения надёжной защиты практически ничего настраивать и не нужно. Но при грамотной организации авторизованного доступа, предполагающего работу с FTP локальных пользователей системы, можно обеспечить безопасность ничуть не хуже, чем при использовании анонимного доступа.

Настройка в режиме анонимного доступа

Работа vsFTPd в данном режиме заключается в том, что действия с файлами на удалённом сервере производятся одним определённым по умолчанию пользователем, например, пользователем с именем «ftp» или «anonymous», при этом в качестве пароля используется e-mail.

Чтобы включить анонимный доступ по FTP нужно в фале vsftpd.conf определить значение «YES» для соответствующей директивы:

Теперь для управления файлами будет использоваться определённый каталог (обычно это /srv/ftp) и определённый пользователь — обычно ftp.

Можно определить и другое расположение файлов для анонимного доступа по FTP, т. е. изменить домашнюю директорию пользователя ftp:

Если нужно, чтобы анонимные пользователи могли ещё и загружать файлы на удалённый сервер, то это позволит сделать директива:

Теперь можно скопировать необходимые для анонимного доступа файлы в домашнюю папку пользователя ftp и перезапустить демон vsftpd:

$ systemctl restart vsftpd

Обычно этого набора настроек достаточно для организации анонимного FTP-доступа. Для проверки соединения можно выполнить команду ftp address_host:

что в случае успешного выполнения даст примерно такой вывод:

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

Для авторизованного доступа проще всего включить использование локальных учётных записей на сервере. Для этого нужно указать следующую директиву в файле конфигурации vsftpd.conf:

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

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

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

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

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

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

которая «запирает» в chroot() локальных пользователей и выше своих домашних каталогов они подняться не смогут, то в этом случае пользователи в файле vsftpd.chroot_list ограничиваться своими домашними каталогами не будут, в отличии от тех, кто в этот список не внесён.

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

Лучшим способом исправить эту ошибку является указание некоего общего корневого каталога, куда при подключении будут попадать все пользователи, имея доступ лишь к своим домашним поддиректориям, например:

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

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

Защита данных с помощью SSL

Чтобы иметь возможность шифровать передаваемые данные, следует настроить vsFTPd в режиме FTPS. Это та же самая передача данных по FTP, но организованная поверх SSL – протокола. Шифрующего и проверяющего данные с помощью сертификатов и ключей.

Для включения режима FTPS нужно задействовать следующую директиву:

По умолчанию в конфигурационном файле vsftpd.conf также присутствуют опции, определяющие сертификаты и ключи, например:

Эти сертификат и ключ необходимо заменить. Для использования FTPS необходимо использовать сертификат и ключ. Cгенерированные (или полученные) для конкретного сервера или компьютера.

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

Как установить FTP-сервер с VSFTPD на Ubuntu 18.04

Главное меню » Операционная система Ubuntu » Как установить FTP-сервер с VSFTPD на Ubuntu 18.04

Для Linux доступно множество FTP-серверов с открытым исходным кодом. Самыми популярными и широко используемыми являются PureFTPd, ProFTPD и vsftpd. В этой статье мы будем устанавливать vsftpd. Это стабильный, безопасный и быстрый FTP-сервер. Мы также покажем вам, как настроить vsftpd для ограничения доступа пользователей к их домашнему каталогу и шифрования всей передачи с помощью SSL/TLS.

Хотя эта статья написана для Ubuntu 18.04, такие же инструкции применяются к Ubuntu 16.04 и любому дистрибутиву на базе Debian, включая Debian, Linux Mint и Elementary OS.

Предпосылки

Прежде чем продолжить эту статью, убедитесь, что вы вошли в систему как пользователь с привилегиями sudo.

Установка vsftpd на Ubuntu 18.04

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

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

Результат будет выглядеть примерно так, показывая, что служба vsftpd активна и работает:

Настройка vsftpd

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

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

Начните с открытия файла конфигурации vsftpd:

1. Доступ к FTP

Мы разрешаем доступ к FTP-серверу только локальным пользователям, находим директивы anonymous_enable и local_enable и проверяем соответствие вашей конфигурации следующим строкам:

2. Включение загрузки

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

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

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

    Метод 1. – Рекомендуемый способ разрешить загрузку – включить chroot и настроить FTP-каталоги. В этой статье мы создадим каталог ftp внутри home пользователя, который будет служить chroot и записываем каталог uploads для загрузки файлов.

Метод 2. Еще один вариант – добавить следующую директиву в файл конфигурации vsftpd. Используйте этот параметр, если вы должны предоставить доступ к записи для своего пользователя в свой домашний каталог.

4. Пассивные FTP-соединения

vsftpd может использовать любой порт для пассивных FTP-соединений. Мы укажем минимальный и максимальный диапазон портов, а затем откроем диапазон в нашем брандмауэре.

Добавьте в файл конфигурации следующие строки:

5. Ограничение входа пользователя

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

Когда эта опция включена, вам необходимо явно указать, какие пользователи могут войти, добавив имена пользователей в файл /etc/vsftpd.user_list (по одному пользователю в строке).

6. Обеспечение передачи с помощью SSL/TLS

Чтобы шифровать FTP-передачи с помощью SSL/TLS, вам необходимо иметь сертификат SSL и настроить FTP-сервер для его использования.

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

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

В этой статье мы сгенерируем самоподписанный сертификат SSL с помощью команды openssl.

Следующая команда создаст 2048-битный закрытый ключ и самоподписанный сертификат, действительный в течение 10 лет. Как закрытый ключ, так и сертификат будут сохранены в одном файле:

Теперь, когда создан SSL-сертификат, откройте файл конфигурации vsftpd:

Найдите директивы rsa_cert_fileи rsa_private_key_file, измените их значение pam в пути к файлу и установите директиву ssl_enable на YES:

Если не указано иное, FTP-сервер будет использовать только TLS для обеспечения безопасных подключений.

Перезапустите службу vsftpd

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

Сохраните файл и перезапустите службу vsftpd, чтобы изменения вступили в силу:

Открытие брандмауэра

Если вы используете брандмауэр UFW, вам необходимо разрешить FTP-трафик.

Чтобы открыть порт 21( порт команд FTP), порт 20( порт данных FTP) и 30000-31000(диапазон пассивных портов), выполните следующие команды:

Чтобы избежать блокировки, мы откроем порт 22:

Перезагрузите правила UFW, отключив и снова включив UFW:

Чтобы проверить выполнение изменений:

Создание пользователя FTP

Чтобы протестировать наш FTP-сервер, мы создадим нового пользователя.

  • Если у вас уже есть пользователь, которому вы хотите предоставить FTP-доступ, пропустите 1-й шаг.
  • Если вы установили allow_writeable_chroot=YES в своем файле конфигурации, пропустите 3-й шаг.
  1. Создайте нового пользователя с именем newftpuser:

    Добавьте пользователя в список разрешенных пользователей FTP:

    Создайте дерево каталогов FTP и установите правильные разрешения:

    Как обсуждалось в предыдущем разделе, пользователь сможет загружать свои файлы в каталог ftp/upload.

На данный момент ваш FTP-сервер полностью работоспособен, и вы должны иметь возможность подключаться к вашему серверу с любым FTP-клиентом, который может быть настроен на использование шифрования TLS, например FileZilla.

Отключение доступа к оболочке

По умолчанию при создании пользователя, если явно не указано, у пользователя будет доступ к серверу SSH.

Чтобы отключить доступ к оболочке, мы создадим новую оболочку, которая просто напечатает сообщение, сообщающее пользователю, что их учетная запись ограничивается только доступом к FTP.

Создайте оболочку /bin/ftponly и сделайте ее исполняемой:

Добавьте новую оболочку в список допустимых оболочек в файл /etc/shells

Измените оболочку пользователя на /bin/ftponly:

Заключение

В этой статье вы узнали, как установить и настроить безопасный и быстрый FTP-сервер в вашей системе Ubuntu 18.04.

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

Установка FTP на Ubuntu 16.04

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

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

Установка FTP Ubuntu

Программа доступна из официальных репозиториев, поэтому установка 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

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

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

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

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

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

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

xferlog_enable = YES
xferlog_std_format=YES

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

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

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

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

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

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

При входе пользователей на 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. Сначала закомментируйте строчку:

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

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

Далее раскоментируйте такие строки:

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

allow_anon_ssl=NO
force_local_data_ssl=YES
force_local_logins_ssl=YES

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

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

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

sudo systemctl restart vsftpd

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

Как видите, мы уже не можем авторизоваться с помощью утилиты ftp. FTP-сервер выдаёт, что мы обязаны использовать шифрование. Поэтому для тестирования применим FileZilla:

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

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

Настройка и использование FTP-сервера в Ubuntu Linux

1. Введение

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

2. Соглашения

Далее в этой статье мы будем говорить просто об FTP-сервере, подразумевая vsFTPd.

3. Что такое FTP

Для тех, кто не знаком с FTP, ниже представлено краткое описание его возможностей. FTP расшифровывается как File Transfer Protocol. Название подразумевает, что этот протокол используется для передачи файлов или директорий с одного хоста на другой по сети — как локальной, так и через интернет.
Главные возможности vsFTPd: настройки для виртуальных IP, виртуальные пользователи, сетевые или автономные операции, большой спектр пользовательских настроек, регулирования пропускной способности канала, настройка лимитов по IP, поддержка IPv6 и шифрования (с помощью SSL).

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

Как всегда в Ubuntu и системах на ее основе, установка FTP-сервера выполняется одной командой. Откройте терминал и введите:

После выполнения этой команды сервер будет установлен и запущен.

5. Нормальный и автономный режимы работы FTP

5.1. Автономный режим

По умолчанию vsftpd запускается в автономном режиме, в котором запускаемая на сервере служба использует собственный стартовый скрипт, называемый демоном. В случае vsftpd это /etc/init.d/vsftpd. Данный автономный демон в момент старта службы FTP берет управление нею на себя. Демон vsftpd предоставляет администратору несколько команд для управления FTP-сервером vsftpd:

start или stop — используется для запуска или остановки ftp-сервера.
status — выводит подробную информацию о текущем состоянии вашего FTP-сервера.
restart — это альтернатива последовательности из остановки и запуска сервера. Если сервер уже остановлен, команда restart запустит его.
reload — эта команда позволяет перезагрузить и применить все новые настройки. Ее отличие от restart заключается в том, что применение новых настроек производится без остановки сервера.
Для запуска, перезагрузки и применения новых настроек используется утилита service:

Такой синтаксис применяется для выполнения всех команд.

5.2. Нормальный режим

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

Приведенная выше команда устанавливает и запускает суперсервер xinetd. В случае, если он у вас уже установлен, эта команда не нужна. Далее, создайте файл vsftpd в директории /etc/xinetd.d/ со следующим содержимым:

В то же время вы можете изменять любые опции, чтобы настроить суперсервер в соответствии со своими требованиями.
Опции, на которые стоит обратить внимание:
server — введите в командной строке «$ which vsftpd», чтобы узнать правильный путь.
no_access — все хосты с IP-адресами, указанными в этой директиве, будут блокированы.
banner_fail — здесь можно указать путь к текстовому файлу, содержимое которого будет показано для любых блокированных IP-адресов.

Далее нам необходимо отредактировать конфигурационный файл FTP-сервера /etc/vsftpd.conf, заменив строку

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

Теперь можно запустить FTP-сервер в нормальном режиме с помощью команды:

Чтобы убедиться в нормальной работе FTP-сервера, протестируйте и откройте порт 21 с помощью команды netstat:

6. Создание первого подключения по FTP

Независимо от того, запустили ли вы FTP-сервер в автономном, или в нормальном режиме, вы можете создать первое локальное ftp-подключение. По умолчанию vsftpd разрешает автономный доступ, поэтому при создании нашего первого тестового подключения в качестве имени пользователя мы будем использовать anonymous. Для этого просто введите команду ftp с аргументом localhost:

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

7. Настройка FTP-сервера

В этом разделе мы рассмотрим некоторые базовые примеры опций конфигурации vsftpd.

Примечание: при внесении любых изменений в настройки FTP-сервера не забудьте воспользоваться командой restart/reload, чтобы активировать их.

7.1. Настройка пользовательского доступа

vsftpd позволяет оставить только анонимный доступ, либо позволить пользователям, прописанным в файле /etc/passwd или в соответствующем списке, аутентифицироваться.

7.1.1. Анонимный доступ к FTP

По умолчанию FTP-сервер vsftpd настроен только для анонимного доступа. Если это то, что вам нужно, вы можете облегчить жизнь анонимным пользователям, отключив необходимость ввода пароля. Наиболее безопасный вариант для FTP-сервера — не разрешать пользователям идентифицироваться с паролем в виде простого текста. Для отключения необходимости ввода пароля анонимными пользователями необходимо в конфигурационном файле /etc/vsftpd.conf установить значение «NO» для директивы no_anon_password:

7.1.2. Доступ локальных пользователей по FTP

Теперь ваш сервер должен запрещать любой доступ за исключением пользователя anonymous. Чтобы позволить авторизоваться всем пользователям, указанным в файле /etc/passwd, необходимо изменить значение директивы local_enable в файле /etc/vsftpd.conf. Ее значение по умолчанию — «NO».

Теперь любой пользователь, указанный в файле /etc/passwd, сможет авторизоваться, используя свой пароль.

7.1.3. Список доступа пользователей

Сначала создадим список доступа, используемый сервером vsFTPd. Обычно вы можете задать его в директории /etc/. Создайте файл с произвольным именем и перечислите в нем всех пользователей, которым вы хотите разрешить или запретить доступ. Например, давайте создадим новый список с единственным пользователем «lubos»:

Далее, определим новый список пользователей в конфиграционном файле /etc/vsftpd.conf и активируем директиву userlist_enable:

Таким образом всем пользователям, перечисленным в файле /etc/vsftpd.userlist, будет отказано в доступе к FTP-серверу.

Чтобы разрешить доступ всем пользователям, перечисленным в файле /etc/vsftpd.userlist, установите значение «NO» для директивы userlist_deny. При этом вы открываете доступ только пользователям, перечисленным в /etc/vsftpd.userlist. Каждое имя пользователя в этом файле должно располагаться на отдельной строке.

7.2. Смена номера порта

По умолчанию любой FTP-сервер слушает стандартный порт 21 для аутентификации пользователя и порт 20 для передачи данных. vsFTPd не является исключением. Для смены прослушиваемого по умолчанию порта используется директива listen_port в файле /etc/vsftpd.conf. Например, для смены порта на 2121 просто добавьте следующую директиву в ваш конфигурационный файл:

После чего перезапустите FTP-сервер.

Однако это применимо к только к vsFPTd, работающему в автономном режиме. В случае, если ваш FTP-сервер запущен в нормальном режиме с с использованием суперсервера xinetd, и вы хотите изменить порт по умолчанию на 2121, найдите в файле /etc/services строку FTP и замените 21 на 2121, после чего перезапустите xinetd.

Теперь, как вы можете убедиться, FTP-сервер слушает порт 2121:

7.3. Другие опции конфигурации

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

max_clients — эта опция задает максимальное количество пользователей, одновременно использующих FTP-сервер. 0 означает неограниченное количество пользователей.
max_per_ip — задает максимальное количество пользователей с одного IP-адреса.
download_enable — если ее значение — NO, любой запрос на скачивание будет отклонен.

8. Заключение

На сегодняшний день vsFTPd имеет 125 опций конфигурации. Это делает его очень гибким в настройке и в то же время простым в использовании и администрировании. Хотите ли вы использовать его дома, в пределах корпоративной сети, или на удаленном сервере, вы можете быть уверены, что vsFTPd полностью удовлетворит ваши нужды. Кроме того, vsFTPd позволяет активировать sftp, но этот вопрос мы обсудим в следующий раз.

Как настроить vsftpd на Ubuntu

vsftpd (англ. Very Secure FTP Daemon) — FTP-сервер с поддержкой IPv6 и SSL. Первые две буквы в названии vsftpd означают “very secure” («очень защищенный»), поскольку разработчики программы предусмотрели защиту от многих возможных уязвимостей протокола FTP.

Шаг #1: Установка vsftpd

С помощью специальной команды установить программу на VPS-сервер можно за пару секунд:

sudo apt-get install vsftpd

Фактически, после скачивания всех нужных файлов, пользователь получает уже сконфигурированную программу с базовыми настройками безопасности. Однако они недостаточны — например, в режиме по умолчанию vsftpd позволяет доступ к серверу анонимным пользователям.

Шаг #2: Настройка vsftpd

После установки программы, можно заняться ее настройкой. Для этого нужно открыть конфигурационный файл:

sudo nano /etc/vsftpd.conf

В нем нужно найти строчку Anonymous_enable и поменять значение с YES на NO:

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

Также следует «раскомментировать» (убрать знак #) опцию local_enable и поменять ее значение на YES, а затем — разрешить пользователям осуществлять запись в директорию, убрав символ комментария для опции write_enable:

Затем нужно раскомментировать опцию chroot_local_user — если она будет установлена в YES, то все пользователи будут ограничены своими правами chroot и не смогут получить доступ к другим частям сервера:

Виртуальный сервер Ubuntu

  • Бесплатное тестирование
  • API к панели управления
  • От 318 руб./мес.

После этого необходимо сохранить изменений и выйти из конфигурационного файла.

Чтобы избежать ошибки запуска последних версий vsftpd («refusing to run with writable root inside chroot») при работе не из под пользователя root (пользователи 1cloud по умолчанию получают доступ к своим серверам именно с такими привилегиями, так что появление подобной ошибки маловероятно), можно предпринять несколько простых шагов:

  1. Создать нового пользователя (здесь и далее ##username## необходимо заменить на название конкретного пользовалея) adduser ##username##
  2. Дать новому пользователю администраторский доступ командой adduser ##username## sudo
  3. Создать новую директорию внутри пользовательской домашней директории: mkdir /home/##username##/files

Также возможно система откажется создавать весь путь сразу, тогда нужно будет перейти в папку /home:

Создать в ней папку нужного пользователя /##username## (sudo mkdir ##username##), перейти в нее командой cd и уже затем создать папку files командой mkdir.

  • Изменить владельца этой директории на корневого пользователя root: chown root:root /home/##username##
  • Осуществить все изменения внутри поддиректории “files”.

    После внесения всех изменений в конфигурационный файл, нужно перезапустить vsftpd.

    sudo service vsftpd restart

    Для Ubuntu 16.04 необходимо настроить firewall с помощью следующих команд:
    Перезапустите firewall: sudo ufw disable
    sudo ufw enable

    Добавьте правила входящих подключений для портов используемых vsftpd: sudo ufw allow 20/tcp
    sudo ufw allow 21/tcp

    Проверить настройки можно с помощью команды: sudo ufw status

    Шаг #3: Получение доступа к FTP-серверу

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

    Чтобы воспользоваться первым способом нужно вбить в адресную строку браузера название протокола ftp и доменное имя или IP-адрес сервера: ftp://example.com (пример с IP-адресом: ftp://5.200.47.19/)

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

    Альтернативный способ заключается в использовании в терминале команды ftp в комбинации с доменным именем или IP-адресом сайта:ftp example.com

    После завершения работы с FTP, выйти из этого режима терминала можно с помощью команды “exit”.

  • Ссылка на основную публикацию