Янв 13 2009

Настройка PureFTP c MySQL и UserManager.

Одной из любимых тем у системных администраторов — это интеграция всего всего, для авторизации через одну базу. База эта, чаще всего оказывается MySQL, в общем самое популярное решение. Сейчас мы настроим взаимодействие PureFTP с MySQL и сверху добавим, для удобства управления UserManager.

Все что нам надо устанавливается из портов FreeBSD.
В первую очередь установим MySQL сервер, нажодится он в /usr/ports/databases/mysql50-server/:

cd /usr/ports/databases/mysql50-server/
make WITH_CHARSET=cp1251 WITH_XCHARSET=all WITH_PROC_SCOPE_PTH=yes BUILD_OPTIMIZED=yes BUILD_STATIC=yes install clean

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

#Подключимся к MySQL
mysql -uroot -p
#После ввода пароля появится командная строка MySQL, в ней наберем
create database ftpusers;
#Это мы создали базу и сделаем пользователя
grant all on ftpusers.* to 'ftpusers'@'localhost' identified by 'ftpusers';

Переходим к установке PureFTP сервера:

cd /usr/ports/ftp/pure-ftpd/
make install clean

В появившемся диалоге настройки сборки, обязательно надо выбрать:

MYSQL          Support for users in MySQL database

эта опция непосредственно и отвечает за поддержку MySQL. К слову, вызвать диалог настройки можно командой:

make config

Теперь установим UserManager:

cd /usr/ports/www/usermanager/
make install clean

Для работы UserManager требует установленного и настроеного Apache с mod_php, установка Apache я описывал в Установка php 5 под Apache 1.3, я попросту скопировал установку UserManager из /usr/local/www/data/, в свой виртуалхост www.hilik.org.ua, дальнейшая установка осуществляется из веббраузера.
Простейший вируталхост выглядит так:

<VirtualHost *:80>
    DocumentRoot /home/www/hilik.org.ua
    ServerName hilik.org.ua
    ServerAlias www.hilik.org.ua 
    <Directory /home/www/hilik.org.ua>
        Options FollowSymLinks
        AllowOverride all
    </Directory>
</VirtualHost>

Теперь будем настраивать UserManager через веббраузер.
Первый шаг выглядит так:
scr1

Инсталлятор проверяет настройки PHP(доступность расширений PHP), доступность на запись конфигурационных файлов.

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

scr21

Мы выбираем новую инсталяцию и переходим к этапу установки параметров для подключения к базе. То есть необходимо указать имя пользователя, пароль, а так же имя базы в которую будет установленны таблици. Тут возник нюансик, я попытался указать свою базу, а не ту что, предлагалась по умолчанию инсталятором, и инсталятор не смог проверить наличие таблиц в ней. Пришлось довольствоваться ftpusers. Как сделать пользователя для MySQL, можно прочитать у меня в статье Grantы в mysql

scr3

На этом же этапе создаются таблицы.

Следующий этап, опять ввод настроек подключения к MySQL, и плюс к этому необходимо ввести адрес с портом вашего ftp сервера. У меня это выглядит как hilik.org.ua:21

scr4

Переходим к следующему этапу.

На нем вы уже можете установить пароль для администратора, и добавить новых пользователей, любые изменения подтверждаются нажатием на кнопку «Change», кстати логин Administrator нельзя изменить и удалить.

scr5

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

scr6

Файл настроек /usr/local/etc/pureftpd-mysql.conf:

#Адрес, где находится MySQL сервер
MYSQLServer     127.0.0.1
MYSQLSocket     /tmp/mysql.sock
#Логин и пароль для подключения к MySQL
MYSQLUser       xxxxxxx
MYSQLPassword   xxxxxxx
#База MySQL
MYSQLDatabase   ftpusers
#Пароли в базе зашифрованны
MYSQLCrypt      md5
#Запросы авторизации, получения домашней директории, id пользователя
MYSQLGetPW      SELECT Password FROM users WHERE User="\L"
MYSQLGetUID     SELECT Uid FROM users WHERE User="\L"
MYSQLGetGID     SELECT Gid FROM users WHERE User="\L"
MYSQLGetDir     SELECT Dir FROM users WHERE User="\L"

Файл можно создать и сохранить либо с моего поста, либо прямо из инсталлятора.

Последний этап — вам просто сообщают, что все отлично и установка завершена.
scr7

Теперь можно перейти к настройке непосредственно PureFTP. Файл настроек достаточно простой и мало отличается от того, что мы создали в Настройка PureFTP, фактически мы добавили подключение MySQL и убрали все остальные методы авторизации.

ChrootEveryone              no
BrokenClientsCompatibility  no
MaxClientsNumber            50
Daemonize                   yes
MaxClientsPerIP             8
VerboseLog                  yes
DisplayDotFiles             yes
AnonymousOnly               no
NoAnonymous                 yes
SyslogFacility              ftp
DontResolve                 yes
MaxIdleTime                 15
#Подключаем поддержку базы MySQL
MySQLConfigFile             /usr/local/etc/pureftpd-mysql.conf
LimitRecursion              2000 8
AnonymousCanCreateDirs      no
MaxLoad                     4 
PassivePortRange          30000 50000
AntiWarez                   yes
Bind                      89.252.34.107,21
Umask                       177:077
MinUID                      100
AllowUserFXP                no
AllowAnonymousFXP           no
ProhibitDotFilesWrite       no
ProhibitDotFilesRead        no
AutoRename                  no
AnonymousCantUpload         no
AltLog                     clf:/var/log/pureftpd.log
#NoChmod                     yes
#CreateHomeDir               yes
MaxDiskUsage               99
CustomerProof              yes
IPV4Only                 yes

Осталось только запустить PureFTP.
Установим разрешение на запуск:

echo pureftpd_enable="YES" >>/etc/rc.conf

И запустим:

/usr/local/etc/rc.d/pure-ftpd start

На этом настройка закончена. Управление пользователями FTP осуществляется через вебинтерфейс.

Добавить в закладки:

google.com bobrdobr.ru del.icio.us technorati.com linkstore.ru news2.ru rumarkz.ru memori.ru moemesto.ru

Украинская Баннерная Сеть