Установка сервера vsFTPd на Ubuntu 18.04. Часть первая

11.12.2019

Теги: chmodFTPLinuxUbuntuКонфигурацияНастройкаПользовательСерверУстановка

Протокол передачи файлов (FTP) — это TCP протокол для передачи файлов между компьютерами, работает на основе модели клиент-сервер. Серверный компонент постоянно слушает FTP-запросы от удаленных клиентов. При получении запроса он управляет входом и установкой соединения. На протяжении сессии он выполняет любые команды, переданные FTP клиентом.

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

Одним из самых популярных FTP-серверов является vsftpd — его легко устанавливать, настраивать и поддерживать.

$ sudo apt install vsftpd

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

$ sudo systemctl start|stop|restart vsftpd

Разрешить или запретить запуск службы при загрузке системы:

$ sudo systemctl enable|disable vsftpd

Проверить, что служба vsftpd.service работает:

$ systemctl is-active vsftpd

В процессе установки FTP-сервера создается пользователь ftp с домашней директорией /srv/ftp:

$ cat /etc/passwd | grep ftp
ftp:x:124:128:ftp daemon,,,:/srv/ftp:/usr/sbin/nologin

Доступ к FTP серверу возможен в двух режимах:

  • В анонимном режиме удаленный клиент может получить доступ к FTP серверу, используя учетную запись «anonymous» или «ftp» и передав адрес email в качестве пароля. Данные в директории /srv/ftp доступны для всех анонимных пользователей.
  • В авторизованном режиме пользователь должен иметь учетное имя и пароль в системе. Доступ к каталогам и файлам зависит от прав доступа пользователя, указанного при входе. Обычный пользователь ограничен своей домашней директорией.

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

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

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

Доступ на чтение

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

$ sudo nano /etc/vsftpd.conf

Настройка vsftpd по умолчанию не разрешает подключаться анонимным пользователям. Чтобы это изменить, раскомментируем строчку:

anonymous_enable=YES

После внесения изменений перезагружаем сервер:

$ sudo systemctl restart vsftpd

Перейдем в /srv/ftp и создадим неколько каталогов, которые будут доступны на запись всем пользователям:

$ sudo mkdir /srv/ftp/audio
$ sudo chmod 777 /srv/ftp/audio
$ sudo mkdir /srv/ftp/video
$ sudo chmod 777 /srv/ftp/video
$ sudo mkdir /srv/ftp/others
$ sudo chmod 777 /srv/ftp/others

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

# запрещаем подключаться со своим логином и паролем
local_enable=NO

Доступ на запись

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

# разрешаем запись для всех пользователей, кроме анонимных
write_enable=YES
# разрешаем запись (т.е. загрузку файлов) еще и анонимным
anon_upload_enable=YES

Чтобы анонимный пользователь мог создавать директории:

anon_mkdir_write_enable=YES

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

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

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

Доступ на чтение

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

local_enable=YES

Доступ на запись

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

write_enable=YES

Защита FTP-сервера

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

chroot_local_user=YES

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

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

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

local_root=/home

Еще один способ решения проблемы — отменить проверку записи в домашний каталог:

allow_writeable_chroot=YES

Поиск: chmod • FTP • Linux • Ubuntu • Конфигурация • Настройка • Установка • Сервер • vsFTPd • Пользователь

Каталог оборудования
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
Производители
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
Функциональные группы
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.