proFTPd Administrator - веб панель для фтп сервера proFTPd

Представляю вашему вниманию довольно интересную панель управления под незатейливым названием proFTPd Administrator. Эта панель оказалась куда интереснее, информативнее и функциональнее, чем ProMA. proFTPd Administrator умеет создавать, редактировать и удалять пользователей и группы пользователей, выставлять им различные параметры. Кроме того доступна масса различной статистики, такой как объем входящего и исходящего трафика, какие конкретно файлы были переданы, топы пользователей по объему трафика, кто сейчас подсоединен к серверу. Помимо статистики, относящейся к передаче файлов, есть информация по степени загрузки сервера, свободному объему на жестких дисках и в оперативной памяти, данные по конфигурации ядра, базе данных mySQL, по скомпилированным модулям фтп сервера. proFTPd Administrator поддерживает различные стили и локализации. Последняя версия 1.2 была выпущена 18.11.2006

Скриншоты

proftpd administrator пользователиproftpd administrator статистика

proftpd administrator статус сервераproftpd administrator настройка

Процесс установки на FreeBSD.

Прежде, чем устанавливать web панель управления, вам необходимо установить и настроить web сервер. Также стоит упомянуть, что в этом тексте все действия совершаются отностительно домашней директории пользователя.

Логинимся на сервер и попадаем в директорию пользователя, куда и скачиваем исходные коды панели управления

fetch http://downloads.sourceforge.net/project/proftpd-adm/proFTPd%20Administrator/proFTPd%20Administrator%20v1.2/proftpd_admin_v1.2.tar.gz

Затем распакуем

tar -xfvz proftpd_admin_v1.2.tar.gz

Переходим в каталог misc/database_structure_mysql и редактируем файл db_structure.sql на предмет пароля, который будет использовать proFTPd для доступа к базе данных, то есть необходимо заменить поля <database_password> на любой пароль по выбору. Эти три поля находятся в самом низу.

cd misc/database_structure_mysql
ee db_structure.sql

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

mysql -u root -p < db_structure.sql

Теперь поднимаемся на два уровня вверх и меняем права для конфигурационного файла

cd ..
cd ..
chmod o+w configuration.xml

Правим конфигурационный файл proFTPd, где вписываем следующее:

# Some logging formats
LogFormat default "%h %l %u %t "%r" %s %b"
LogFormat auth "%v [%P] %h %t "%r" %s"
LogFormat write "%h %l %u %t "%r" %s %b"

# Define log-files to use
TransferLog /var/log/proftpd.xferlog
ExtendedLog /var/log/proftpd.access_log WRITE,READ write
ExtendedLog /var/log/proftpd.auth_log AUTH auth
ExtendedLog /var/log/proftpd.paranoid_log ALL default
SQLLogFile /var/log/proftpd.mysql

# Set up authentication via SQL
# ===========
AuthOrder mod_sql.c
SQLAuthTypes Backend
SQLConnectInfo proftpd_admin@localhost proftpd <database_password> #write your password here
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

и не забываем указать пароль для доступа к базе, который указан в файле db_structure.sql

Или, если ваш proFTPd еще не настроен, то копируем конфиг из поставки proFTPd Administrator:

cp misc/sample_config/proftpd.conf /usr/local/etc/proftpd.conf

Перезагружаем конфиг фтп сервера командой:

/usr/local/etc/rc.d/proftpd reload

Теперь переходим в директорию, где хранятся файлы, относящиеся к сайту, и делаем линк на директорию, куда распакован proFTPd Administrator:

ln -s /usr/home/username/proftpd_admin_v1.2/ ftpadm

Теперь из браузера открываем страницу с профтпд админом

http://www.domain.ru/ftpadm/

Должна открыться страница, на которой будет написано, что не удалось подсоединиться к базе данных, так как наверняка неправильно указан пароль, поэтому перемещаемся в раздел Configure->Database где вводим необходимый пароль и нажимаем кнопку Submit. После этого все начинает работать. Также следует заглянуть в подраздел proFTPd и указать там корневую директорию для фтп. Затем в подраздел Sections, где можно указать директории, по которым статистика будет вестись раздельно. Затем в подраздел Filepaths, где по необходимости поправить пути до утилит, например, мне пришлось исправить пути для who (/usr/bin/who) и до proFTPd (/usr/local/sbin/proftpd).

Так как в этой панели управления нет встроенной авторизации, то требуется запаролить директорию методами веб-сервера Apache.

Все, можно приступать к работе!