Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

http://www.hilik.org.ua/feed/


 В этом выпуске:

Установка ProFTPd c MySQL и вебадминкой proFTPd Administrator

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

cd /usr/ports/ftp/proftpd-mysql/
make install 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, мне не подошел. Поэтому качаем последнюю версию, у меня это было так:

wget -c http://puzzle.dl.sourceforge.net/sourceforge/proftpd-adm/proftpd_admin_v1.2.tar.gz

Полученный архив распаковываем:

tar xvfz proftpd_admin_v1.2.tar.gz

После распаковки можно приступить к настройке 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
 
# logout log
SQLLog EXIT time_logout
SQLNamedQuery time_logout UPDATE "lastlogout=now() 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}"
 
# xfer Log in mysql
SQLLog RETR,STOR transfer1
SQLNamedQuery transfer1 INSERT "'%u', '%f', '%b', '%h', '%a', '%m', '%T', now(), 'c', NULL" xfer_stat
SQLLOG ERR_RETR,ERR_STOR transfer2
SQLNamedQuery transfer2 INSERT "'%u', '%f', '%b', '%h', '%a', '%m', '%T', now(), 'i', NULL" xfer_stat

Настройка самого 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:

 

читать дальше >>>

 


В избранное