Эта документация описывает, как установить PureFTPd сервере, который использует виртуальных пользователей из базы данных MySQL вместо реальных пользователей системы. Это гораздо более удобно, быстрее и позволяет иметь тысячи FTP пользователей на одной машине. В дополнение к этому, в этой установке я продемонстрирую использование квот и пределы полосы пропускания прием / отдача. Пароль будет хранится в зашифрованном виде строкой MD5 в базе данных.
Для администрации базы данных MySQL вы можете использовать веб-инструменты, такие как PhpMyAdmin, который также будет установлен в этом документе. PhpMyAdmin является удобным графическим интерфейсом, это означает, что Вам не придется возиться с командной строкой.
Этот учебник основан на Ubuntu 10.10. Вы уже должны были создать основу системы Ubuntu server 10.10, как описано в первых восьми главах материала: идеальный сервер ISPConfig 2 на Ubuntu server 10.10.
Этот материал предназначен в качестве практического руководства, она не охватывает теоретические основы. Так как они рассматриваются во многих других документах Интернета. Это не единственный способ создания такой системы. Есть много способов достижения этой цели, но это, как один из них.
Предварительные замечания
В данной статье я использую имя хоста ubuntu с IP-адреса 192.168.1.118. Эти параметры могут отличаться в Вашем случае, поэтому Вам придется заменить их в случае необходимости.
Убедитесь, что вы вошли в систему как суперпользователь (root):
|
Данная команда используется для того что бы стать администратором так как, мы должны выполнить все шаги из этого учебника, как root пользователь.
Установка MySQL и PhpMyAdmin
Все это может быть установлено одной командой:
|
Вам будут предложено ответить на следующие вопросы:
Новый пароль для MySQL "root" пользователя: - root пароль на SQL Повторите пароль для MySQL "корень" Пользователь: - root пароль на SQL Веб-сервер для перенастройки автоматически: - apache2 Настройка базы данных для PhpMyAdmin с dbconfig-common? - нет
Установка PureFTPd с поддержкой MySQL
Для Ubuntu 10.10 имеется пакет уже предварительно настроенный pure-ftpd-mysql. Установить это так:
|
Затем мы создаем FTP группы ( ftpgroup ) и пользователей ( ftpuser ), что бы все наши виртуальные пользователи будут сопоставлены. Заменить группы и идентификаторы с числом 2001, которое свободно в Вашей системе:
|
Создание базы данных MySQL для PureFTPd
Сейчас мы создадим базу данных под названием PureFTPd и пользователем MySQL с именем PureFTPd который будет использовать в дальнейшем демон PureFTPd для подключения к PureFTPd базы данных:
|
Заменим строку ftpdpass ни любой пароль, который Вы хотите использовать для пользователя MySQL PureFTPd . Тем не менее в оболочке MySQL, мы создаем базу данных таблицы нужную нам (да, есть только одна таблица!):
|
Между прочем, (предпологая, что имя хоста Вашей системы / сервера FTP является ubuntu ) Вы можете получить доступ к PhpMyAdmin перейдя по ссылке в интернет обозревателе персонального компьютера по ссылке http://ubuntu/phpmyadmin/ (вы можете также использовать IP адрес вместо ubuntu ) в браузер и войдите в систему как пользователь PureFTPd . Тогда вы сможете посмотреть на базу данных http://IP/phpmyadmin/. Позже вы сможете использовать PhpMyAdmin для администрирования вашего PureFTPd сервера.
Настройка PureFTPd
Изменим /etc/pure-ftpd/db/mysql.conf:
|
Он должен выглядеть следующим образом:
MYSQLSocket /var/run/mysqld/mysqld.sock #MYSQLServer localhost #MYSQLPort 3306 MYSQLUser pureftpd MYSQLPassword ftpdpass MYSQLDatabase pureftpd #MYSQLCrypt md5, cleartext, crypt() or password() - md5 is VERY RECOMMENDABLE uppon cleartext MYSQLCrypt md5 MYSQLGetPW SELECT Password FROM ftpd WHERE User="\L" AND status="1" AND (ipaccess = "*" OR ipaccess LIKE "\R") MYSQLGetUID SELECT Uid FROM ftpd WHERE User="\L" AND status="1" AND (ipaccess = "*" OR ipaccess LIKE "\R") MYSQLGetGID SELECT Gid FROM ftpd WHERE User="\L"AND status="1" AND (ipaccess = "*" OR ipaccess LIKE "\R") MYSQLGetDir SELECT Dir FROM ftpd WHERE User="\L"AND status="1" AND (ipaccess = "*" OR ipaccess LIKE "\R") MySQLGetBandwidthUL SELECT ULBandwidth FROM ftpd WHERE User="\L"AND status="1" AND (ipaccess = "*" OR ipaccess LIKE "\R") MySQLGetBandwidthDL SELECT DLBandwidth FROM ftpd WHERE User="\L"AND status="1" AND (ipaccess = "*" OR ipaccess LIKE "\R") MySQLGetQTASZ SELECT QuotaSize FROM ftpd WHERE User="\L"AND status="1" AND (ipaccess = "*" OR ipaccess LIKE "\R") MySQLGetQTAFS SELECT QuotaFiles FROM ftpd WHERE User="\L"AND status="1" AND (ipaccess = "*" OR ipaccess LIKE "\R")
Убедитесь, что вы заменили строку ftpdpass с реальным паролем для пользователя MySQL PureFTPd в строке MYSQLPassword! Пожалуйста, обратите внимание, что мы используем метод md5 MYSQLCrypt, который означает, что мы будет хранить пользователей и пароли в базе данных как строки MD5, которая является гораздо более безопасным, чем при использовании обычного текстового пароля!
Затем создадим файл /etc/pure-ftpd/conf/ChrootEveryone который просто содержит строку yes:
|
Это позволит сделать PureFTPd изолированной для каждого виртуального пользователя в его домашнем каталоге, чтобы он нельзя было просматривать каталоги и файлы, находящиеся вне его каталога. Также создадим файл /etc/pure-ftpd/conf/CreateHomeDir что опять-таки просто содержит строку yes:
|
Это позволит PureFTPdсоздавать домашний каталог пользователя при входе пользователя в систему даже если каталог еще не существует.
Наконец создаем файл /etc/pure-ftpd/conf/DontResolve что опять-таки просто содержит строки yes:
|
Это позволит PureFTPd не искать имена хостов, которые могут значительно ускорить процесс соединения и сократить использование пропускной способности.
После этого мы перезапустим :
|
Проверка MySQL
Для проверки перейдем в интернет обозревателе персонального компьютера по ссылке http://ubuntu/phpmyadmin/ (вы можете также использовать IP адрес вместо ubuntu ) в браузер и войдите в систему как пользователь PureFTPd . Тогда вы сможете посмотреть на базу данных http://IP/phpmyadmin/.
Позже вы сможете использовать PhpMyAdmin для администрирования вашего PureFTPd сервера.
- Назад
- Вперёд >>