Не так давно, я ставил PureFTP
с вебинтерфейсом управления, а теперь аналогичная задача, только с ProFTPd.
ProFTPd установим с поддержкой MySQL, для этого имеется целый, отдельно выделенный порт во FreeBSD:
cd/usr/ports/ftp/proftpd-mysql/ makeinstall clean
Перед сборкой появится диалог настройки сборки, как я уже говорил в статье Настройка ProFTPD, количество опций просто огромно:
Options for proftpd-mysql 1.3.2
[] BAN Include mod_ban (Requires CTRLS) [] CLAMAV Include mod_clamav [] CTRLS Include controls [] DIGEST Include mod_digest [X] IFSESSION Include mod_ifsession
[] IPV6 Use IPv6 [] LDAP Use LDAP [] LDAP_TLS Use LDAP TLS (Requires LDAP, OPENSSL) [X] MYSQL MySQL auth (Can be combined with PGSQL) [X] NLS Use nls (builds mod_lang) [X] OPENSSL Include mod_tls [] PGSQL Postgres auth (Can be combined with MYSQL) [] QUOTA Include mod_quota [] QUOTATAB_RADIUS include mod_quotatab_radius [] RADIUS Include mod_radius
[X] RATIO Include mod_ratio [X] README Include mod_readme [X] REWRITE Include mod_rewrite [] TDS FreeTDS - Sybase & MS-SQL auth (Exclusive) [X] WRAP Include mod_wrap2 [] WRAP_FILE Include mod_wrap2_file [] WRAP_SQL Include mod_wrap2_sql .(+) [ OK ] Cancel
Описание опций установки, я приводил в упомянутой выше статье Настройка ProFTPD, по сравнению с теми опциями, добавился только выбор MySQL auth.
Установку окончена, настройку отложим, сначала надо скачать proFTPd Administrator, скачать его можно с http://sourceforge.net/projects/proftpd-adm/, к сожелению в портах его нет, а имеющийся proma, мне не подошел. Поэтому качаем последнюю версию, у меня это было так:
После распаковки можно приступить к настройке ProFTPd, пример файла
настройки находится в том каталоге который получился при распаковке, я
укажу относительный путь, в каталоге misc/sample_config, находится файл
proftpd.conf, возьмем из него опции отвечающие за подключение к mysql,
совместим с тем конфигурационным файлом, что упоминался в Настройка ProFTPD и в итоге получим вот такой файл настроек(/usr/local/etc/proftpd.conf):
ServerName "Hilik FTP server" ServerType standalone DefaultServer on ScoreboardFile /var/run/proftpd/proftpd.scoreboard Port 21 Umask 022 MaxInstances 30 CommandBufferSize 512 User nobody Group nogroup DefaultRoot ~ AllowOverwrite on DefaultAddress 89.252.34.107 <Limit
SITE_CHMOD> DenyAll </Limit> #Опция включает автосоздание домашнего каталога CreateHome on # Авторизация на MySQL # =========== AuthOrder mod_sql.c SQLAuthTypes Backend SQLConnectInfo proftpd_admin@localhost proftpd proftpdpass SQLUserInfo usertable userid passwd uid gid homedir shell SQLGroupInfo grouptable groupname gid members SQLUserWhereClause "disabled=0 and (NOW()<=expiration or expiration=-1 or expiration=0)"
# Log the user logging in SQLLog PASS counter SQLNamedQuery
counter UPDATE "lastlogin=now(), count=count+1 WHERE userid='%u'" usertable
# display last login time when PASS command is given SQLNamedQuery login_time SELECT "lastlogin from usertable where userid='%u'" SQLShowInfo PASS "230""Last login was: %{login_time}"
Настройка самого ProFTPd на этом фактически закончена, но запустить
мы его не можем, сначала надо создать базу и дать доступ к ней. Дамп
базы находится в каталоге misc/database_structure_mysql, в файле
db_structure.sql.
Создадим базу и таблицы в ней:
mysql -uroot-p<db_structure.sql
После того как база будет создана, сделаем возможным ее использование:
mysql -uroot-p mysql> grant all on proftpd_admin.* to proftpd.* identified by 'proftpdpass';
Для вебинтерфейса либо сконфигурируем новый виртуалхост, либо,
разместим распакованный каталог в имеющемся виртуалхосте( не забудте
обязательно запаролить каталог средствами апача).
Далее, необходимо убедится, что файл configuration.xml доступен для записи. Если нельзя записаться в него, делаем:
chown www:www configuration.xml
Теперь из интерфейса можно настроить авторизацию в MySQL: