Путь юниксоида

Блог посвященный UNIX-подобным операционным системам.

Установка PureFTPd с поддежкой MySQL на Debian 8 «Jessie»

15 Ноября 2016, 10:11, Вт | Комментарии

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

Установка PureFTPd

На выбор в репозитории предлагается 4 варианта возможной конфигурации:
pure-ftpd - FTP-сервер, с аутентификацией через системных пользователей,
pure-ftpd-ldap - FTP-сервер, с аутентификацией через пользователей LDAP,
pure-ftpd-mysql - FTP-сервер, с аутентификацией через пользователей хранимых в СУБД MySQL,
pure-ftpd-postgresql - FTP-сервер, с аутентификацией через пользователей хранимых в СУБД PostgreSQL.

Небольшие пояснения:
- символ # (решётка) - означает выполнение команды от root (суперпользователя),
cat /path/to/some.file - означает что ниже приведено полное содержимое файла some.file, расположенного в директории /path/to,
echo no > /path/to/some.file - означает, что в some.file будет вставлен текст no, с заменой содержимого. Если файл не существует, он будет создан.

Я выбрал вариант с поддержкой MySQL:

# apt-get install pure-ftpd-common pure-ftpd-mysql

Настройка PureFTPd

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

/etc/pure-ftpd/conf

Рассмотрим наиболее интересные файлы конфигурации предоставленные нам мейнтейнерами по умолчанию.

Указан файл для логов трансфера, в формате Apache:

# cat /etc/pure-ftpd/conf/AltLog
clf:/var/log/pure-ftpd/transfer.log

Указан файл конфигурации для MySQL:

# cat /etc/pure-ftpd/conf/MySQLConfigFile
/etc/pure-ftpd/db/mysql.conf

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

# cat /etc/pure-ftpd/conf/NoAnonymous
yes

Теперь необходимо дополнить конфигурацию. Для начала запретим UNIX-аутентификацию:

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

Затем запретим PAM-аутентификацию:

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

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

# echo "yes" > /etc/pure-ftpd/conf/ChrootEveryone

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

# echo "40110 40210" > /etc/pure-ftpd/conf/PassivePortRange

Не забудьте потом открыть необходимые порты в брандмауэре.

По ссылке доступна таблица со всеми возможными параметрами которые я нашел.

Установка веб-интерфейса PureFTP WebUI.

Есть два веб-интерфейса, которые я нашел. Это PureFTPd WebUI и User Manager. Для себя я выбрал PureFTPd WebUI. Ну-с, приступим к установке.

Переходим в директорию файлов веб-сервера:

1
# cd /var/www/sitename

Где sitename - директория веб-сервера с уже настроенным сайтом.

Скачаем файлы веб-интерфейса с гитхаба:

1
$ git clone https://github.com/mazay/pure-ftpd-webui.git

Переходим в скачаный каталог pure-ftpd-webui:

1
# cd pure-ftpd-webui

В одном из файлов я нашел ошибку в функции create_table_settings(). Неверно указано значение параметра pureftpd_init_script_path и отсутствует параметр pureftpwho_path. Надо заменить строку:

1
('pureftpd_init_script_path','/etc/init.d/pure-ftpd');";

На

1
2
('pureftpd_init_script_path','/etc/init.d/pure-ftpd-mysql'),
('pureftpwho_path','/usr/sbin/pure-ftpwho');";

Для нормального доступа у вас уже должен быть настроен веб-сервер. После того как откроете страницу http://sitename/pure-ftpd-webui, вам будет доступна страница настройки:

Страница настройки PureFTPd

Где sitename - доменное имя сервера или его IP-адрес.

После того как вы нажмете кнопку Install вы попадете на страницу настройки подключения к СУБД MySQL:

Настройки подключения PureFTPd к MySQL

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

Настройки подключения PureFTPd к MySQL

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

Настройки подключения PureFTPd к MySQL

Комментарии