Мини FAQ по настройке ProFTPD

Тут буду собирать вопросы (FAQ) и их решения в области настройки ftp сервера ProFTPD. Сам пользуюсь Linux Debian, расположение конфигурационных файлов могут отличаться в других дистрибутивах, но в целом все аналогично.

Основной конфигурационный файл ProFTPD в Linux Debian расположен в /etc/proftpd/proftpd.conf. Надо сказать, что Linux Ubuntu имеет полностью идентичное расположение файлов, поскольку является полным клоном Debian. Большая часть настроек касается именно этого файла, но если в каком-то вопросе затрагиваются другие конфигурационные файлы, я об этом буду говорить отдельно. Например: подключение/отключение модулей осуществляется в файле modules.conf; настройки авторизации ProFTPD с использованием MySQL хранятся в файле sql.conf; настройки сертификатов для соединения по защищенным протоколам — tls.conf.

1. Поддержка продолжения загрузки файла после обрыва соединения

По-умолчанию ProFTPD не поддерживает функцию до-загрузки ранее прерванной закачки файла с сервера. Для включения функции продолжения загрузки файла с сервера на клиента в файле proftpd.conf нужно активировать директиву:

AllowRetrieveRestart on

Для включения функции до-загрузки файла с клиента на сервер:

AllowOverwrite on
AllowStoreRestart on

Важно учитывать условие, что директивы HiddenStores и AllowStoreRestart — несовместимы, т.е. не могут быть активированы одновременно.

2. Как не позволить пользователю выходить за пределы своего домашнего каталога

Настройка по-умолчанию позволяет авторизованному пользователю ходить по всей файловой системе без особых ограничений. Это очень неудобно, если необходимо обеспечить подключение к серверу не доверенных пользователей.

Чтоб «запереть» пользователя в пределах его домашнего каталога, в файле proftpd.conf необходимо активизировать директиву:

DefaultRoot ~

Обычно эта директива просто закомментирована.