Как настроить FTP сервер vsftpd на Debian 9
Раздел(ы): GNU Linux - CentOS / Debian
Просмотры: 8715
Комментарии: 0
Необходимость в автономном FTP сервере у меня возникла для сохранения резервных копий панели управления VestaCP, так как по другому Веста «из коробки» не умеет. В этой статье расскажу как быстро и просто настроить FTP сервер на основе Debian 9.
В Linux системах наиболее популярны два FTP сервера, это VSFTPD и ProFTPD. В этой статье я расскажу как настроить vsftpd (англ. Very Secure FTP Daemon), который со слов Википедии является FTP-сервером по умолчанию многих операционных систем, и обслуживает официальные репозитории ftp.debian.org, ftp.redhat.com, ftp.openbsd.org, ftp.freebsd.org. Также используется на официальном FTP ядра Linux (Источник).
Как установить vsftpd на Debian 9
Для начала обновите операционную систему:
# apt update && apt upgrade
Затем установите FTP сервер vsftpd:
# apt install vsftpd
Внесите изменения в файл настроек /etc/vsftpd.conf:
# # Запрещаем неавторизованных пользователей. anonymous_enable=NO # # Разрешаем подключение с учетными данными локальных пользователей. local_enable=YES # # Разрешаем полный доступ (чтение/запись) по FTP. write_enable=YES # # Изменяем пользователям корневой каталог на их домашнюю директорию (chroot) chroot_local_user=YES # # И разрешаем запись в нее allow_writeable_chroot=YES
После этого нужно перегрузит ftp сервер:
# service vsftpd restart
Чего мы добились
Настройками выше мы получили FTP сервер к корому могут подключаться только авторизованные пользователи Debian 9, у них есть возможность как считывать, так и записывать файлы при этом они ограничены своей домашней директорией и не видят файлы других пользователей.
Ошибка 500 oops: vsftpd: refusing to run with writable root inside chroot
Подобная ошибка говорит о том, что FTP сервер считает небезопасным возможность записи в корневую директорию:
В интернете множество дискуссий и решений по этому поводу, но проще добавить одну строку в файл конфигурации /etc/vsftpd.conf (уже присутствует в моем примере выше), чтобы разрешить пользователю запись в свою корневую директорию:
allow_writeable_chroot=YES
и перезапустить сервис:
# service vsftpd restart
Это конечно не совсем правильно с точки зрения безопасности, так как пользователь получает полный доступ к файлам .bashrc, .profile и может изменить стандартную переменную PATH. Надежнее в большинстве случаев было бы запретить загрузку по ftp в корневой каталог вошедшего в систему пользователя и дать разрешение на запись только для конкретной подпапки.
Благодарности
При написании статьи были использованы следующие источники: