FTP сервер своими руками

FTP сервер

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

Одним из наиболее простых в настройке является PureFTP сервер. К тому же, несмотря на простоту, он имеет достаточно много возможностей, включая работу с базами данных MySQL для хранения списка пользователей и настроек. Но нам эта возможность сегодня не понадобится – при работе на своём сервере проще сделать одного пользователя с доступом ко всем сайтам, а при загрузке файлов на хостинг настройкой сервера займётся его администратор. Поэтому мы рассмотрим хранение списка пользователей в локальной базе данных.

Для начала нужно, подключившись по SSH, установить сам сервер:

sudo apt install -y pure-ftpd

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

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

ln -s /etc/pure-ftpd/conf/PureDB /etc/pure-ftpd/auth/50pureftpd

echo no > /etc/pure-ftpd/conf/PAMAuthentication

echo no > /etc/pure-ftpd/conf/UnixAuthentication

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

echo yes > /etc/pure-ftpd/conf/CreateHomeDir

Разрешим отображание скрытых файлов (по умолчанию отключено):

echo yes > /etc/pure-ftpd/conf/DisplayDotFiles

Запретим вход анонимным пользователям, на случай, если кто-то случайно обнаружит наш сервер:

echo yes > /etc/pure-ftpd/conf/NoAnonymous

И самый важный момент – нужно изменить минимальный идентификатор пользователя, с которым разрешён вход на сервер. По умолчанию там установлено значение 1000, но, поскольку мы планируем загружать файлы в основном для сайта, есть смысл делать это сразу от пользователя www-data, который по умолчанию имеет UID = 33. И нас с такими параметрами на сервер не пустит. Меняем минимальное значение на нужное нам:

echo 33 > /etc/pure-ftpd/conf/MinUID

Меняем владельца корневого каталога наших сайтов на www-data:

chown -R www-data:www-data /var/www

Основные настройки мы сделали. Теперь добавляем пользователя для работы с ФТП:

pure-pw useradd newftpuser -u www-data -g www-data -d /var/www

После добавления или изменения любого пользователя ФТП надо обновить базу пользователей:

pure-pw mkdb

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

service pure-ftpd start

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

service pure-ftpd status

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

Comments:

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *