|
|
www.lissyara.su
—> статьи
—> FreeBSD
—> программы
—> PurefFTPd
Администрирование Pureftpd с помощью вэб интерфейса Usermanager
Автор: Morty.
PureftpD и UserManager
Создание FTP сервера, которым можно управлять с помощью вэб-интерфейса (UserManager)
UserManager даёт возможность администратору сервера легкого
управления пользователями ftp. Их создание , удаление , назначение папок
в которых они будут работать.
Используемое ПО:
uname -rp
6.4-RELEASE i386
pkg_info -Ix apac ftp sql php perl pcre User
UserManager-2.1 Easily create, change, or delete virtual PureFTPd users
apache-2.0.63_2 Version 2.0.x of Apache web server with prefork MPM.
mysql-client-6.0.7 Multithreaded SQL database (client)
mysql-server-6.0.7 Multithreaded SQL database (server)
pcre-7.8 Perl Compatible Regular Expressions library
perl-5.8.8_1 Practical Extraction and Report Language
php5-5.2.7 PHP Scripting Language
php5-bz2-5.2.7 The bz2 shared extension for php
php5-ctype-5.2.7 The ctype shared extension for php
php5-gd-5.2.7 The gd shared extension for php
php5-mbstring-5.2.7 The mbstring shared extension for php
php5-mcrypt-5.2.7 The mcrypt shared extension for php
php5-mysql-5.2.7 The mysql shared extension for php
php5-openssl-5.2.7 The openssl shared extension for php
php5-posix-5.2.7 The posix shared extension for php
php5-session-5.2.7 The session shared extension for php
php5-simplexml-5.2.7 The simplexml shared extension for php
php5-spl-5.2.7 The spl shared extension for php
php5-zlib-5.2.7 The zlib shared extension for php
phpMyAdmin-3.1.0 A set of PHP-scripts to manage MySQL over the web
pure-ftpd-1.0.21_2 A small, easy to set up, fast and very secure FTP server
| Это тот необходимый минимум который мне понадобился.
Сам pureftpd был собран со следующими опциями
#pwd
/usr/ports/ftp/pure-ftpd
#make showconfig
===> The following configuration options are available for pure-ftpd-1.0.21_2:
LDAP=off "Support for users in LDAP directories"
MYSQL=on "Support for users in MySQL database"
PAM=on "Support for PAM authentication"
PGSQL=off "Support for users in PostgreSQL database"
PRIVSEP=off "Enable privilege separation"
PERUSERLIMITS=on "Per-user concurrency limits"
THROTTLING=on "Bandwidth throttling"
BANNER=on "Show pure-ftpd welcome upon session start"
UPLOADSCRIPT=on "Support uploadscript daemon"
UTF8=on "Support for charset conversion (expreimental)"
SENDFILE=on "Support for the sendfile syscall"
===> Use 'make config' to modify these settings
#
| Установка вэб-интрефейса к PureftpD (UserManager)
#pwd
/usr/ports/www/usermanager
#make install clean
|
mv /usr/local/www/data/UserManager/ /usr/local/www/
| Алиас для Апача
# pwd
/usr/local/etc/apache2/Includes
#cat usermanager.conf
Alias /ftpadm "/usr/local/www/UserManager/"
<Directory "/usr/local/www/UserManager">
# Options Indexes
Options Indexes FollowSymlinks MultiViews
AllowOverride AuthConfig
DirectoryIndex index.php
Order deny,allow
Allow from all
</Directory>
| Так же необходимо проверить что в php.ini присутствует
Далее настройка проста, открываем броузером
http://192.168.10.5/ftpadm/install.php
| И пошагово выполняем то о чём нас спрашивают:
This configuration script has carried out a few checks
to see if everything is ready to start the configuration.
Checking if config.php exists OK!
Checking if config.php is writable OK!
Checking if PHP Extension MYSQL is enabled OK!
Checking if PHP Extension PCRE is enabled OK!
Checking if PHP Extension POSIX is enabled OK!
Checking if PHP Extension SESSION is enabled OK!
| 2ой шаг - утсановка базы данных которая будет использоватья вэб
интерфейсом и демоном pureftpd
New installation,
create a new database.
| Далее возникла небольшая проблема...
Checking connection to MySQL server OK!
Create user FTP OK!
Create database ftpusers OK!
Create table admin Failed!
Create table users Failed!
| При первой попытке установить всё легким путем у меня ничего хорошего не получилось.
Было решено удалить БД ftpusers;
И совсем немножко подправить файл-дамп бд. Т.к. не получалось
его импортнуть через вэб интерфейс,необходимо было его залить консольным методом.
качаем файлик который будет создавать бд , пользователя и пароль на нашу базу
fetch ftp://ftp.lissyara.su/users/morty/pftpcfg/db.sql
| db.sql - Создаёт пользователя и права для базы. (База ftpusers, пользователь - ftp,
пароль - ftp_pass)
Эти данные нам понадобяться когда мы вернемся к установке "через вэб".
mysql -uroot -pparol_roota < db.sql
| UserManager идет с файликом дампом бд который расположен тут ../extra/script.mysql
но так как мы немного отклонились от стандартного пути, то далее качаем дамп
fetch ftp://ftp.lissyara.su/users/morty/pftpcfg/script.mysql
| Он практически ничем не отличается от родного.
А также сразу выкачиваем Russian Language Pack для вэб интерфейса
fetch ftp://ftp.lissyara.su/users/morty/pftpcfg/russian.php
|
cp russian.php /usr/local/www/UserManager/language/russian.php
| Возвращаемся к установке с вэб страницы, вводим данные пользователя ,бд и его пароль.
На данном этапе будут генериться конфиги для pure-ftpd.conf и pureftpd-mysql.conf.
Вприниципе можно все оставить как есть, только поменять язык по умолчанию на русский
и вписать необходимый FTP Address. А также я еще выбрал
Quota support
Ratio support
Но еще не тестировал эти вещи.
Далее сохраняем настройки — нажимаем Save, настройки будут сохранены в файле
/usr/local/www/UserManager/config.php
| Следующий этап - это создание административного аккаунта для доступа на вэб панель.
Я поставил на Administrator пароль 12345,
при необходимости его всегда можно изменить
например через PhPMyAdmin (база ftpusers, таблица admin).
После этого нам предлагают скопипастить конфиги для purefptd. Чем и займемся:
# cp /usr/local/etc/pure-ftpd.conf.sample /usr/local/etc/pure-ftpd.conf
#echo \
MySQLConfigFile /usr/local/etc/pureftpd-mysql.conf >> \
/usr/local/etc/pure-ftpd.conf
| и содержимое файла /usr/local/etc/pureftpd-mysql.conf
############################################################################
# #
# PureFTPd MySQL configuration file. #
# Generated by the installation wizard for the 'User manager for PureFTPd' #
# See http://machiel.generaal.net for more info #
# or read the README.MySQL for explanations of the syntax. #
# #
############################################################################
# Optional : MySQL server name or IP. Don't define this for unix sockets.
MYSQLServer 127.0.0.1
# Optional : MySQL port. Don't define this if a local unix socket is used.
# MYSQLPort 3306
# Optional : define the location of mysql.sock if the server runs on this host.
MYSQLSocket /tmp/mysql.sock
# Mandatory : user to bind the server as.
MYSQLUser ftp
# Mandatory : user password. You must have a password.
MYSQLPassword ftp_pass
# Mandatory : database to open.
MYSQLDatabase ftpusers
# Mandatory : how passwords are stored
# Valid values are : "cleartext", "crypt", "md5" and "password"
# ("password" = MySQL password() function)
# You can also use "any" to try "crypt", "md5" *and* "password"
MYSQLCrypt md5
# In the following directives, parts of the strings are replaced at
# run-time before performing queries :
#
# \L is replaced by the login of the user trying to authenticate.
# \I is replaced by the IP address the user connected to.
# \P is replaced by the port number the user connected to.
# \R is replaced by the IP address the user connected from.
# \D is replaced by the remote IP address, as a long decimal number.
#
# Very complex queries can be performed using these substitution strings,
# especially for virtual hosting.
# Query to execute in order to fetch the password
MYSQLGetPW SELECT Password FROM users WHERE User="\L" AND Status="1"
AND (Ipaddress = "*" OR Ipaddress LIKE "\R")
# Query to execute in order to fetch the system user name or uid
MYSQLGetUID SELECT Uid FROM users WHERE User="\L" AND Status="1"
AND (Ipaddress = "*" OR Ipaddress LIKE "\R")
# Optional : default UID - if set this overrides MYSQLGetUID
#MYSQLDefaultUID 1000
# Query to execute in order to fetch the system user group or gid
MYSQLGetGID SELECT Gid FROM users WHERE User="\L" AND Status="1"
AND (Ipaddress = "*" OR Ipaddress LIKE "\R")
# Optional : default GID - if set this overrides MYSQLGetGID
#MYSQLDefaultGID 1000
# Query to execute in order to fetch the home directory
MYSQLGetDir SELECT Dir FROM users WHERE User="\L" AND Status="1"
AND (Ipaddress = "*" OR Ipaddress LIKE "\R")
# Optional : query to get the maximal number of files
# Pure-FTPd must have been compiled with virtual quotas support.
MySQLGetQTAFS SELECT QuotaFiles FROM users WHERE User="\L"
AND Status="1" AND (Ipaddress = "*" OR Ipaddress LIKE "\R")
# Optional : query to get the maximal disk usage (virtual quotas)
# The number should be in Megabytes.
# Pure-FTPd must have been compiled with virtual quotas support.
MySQLGetQTASZ SELECT QuotaSize FROM users WHERE User="\L"
AND Status="1" AND (Ipaddress = "*" OR Ipaddress LIKE "\R")
# Optional : ratios. The server has to be compiled with ratio support.
MySQLGetRatioUL SELECT ULRatio FROM users WHERE User="\L"
AND Status="1" AND (Ipaddress = "*" OR Ipaddress LIKE "\R")
MySQLGetRatioDL SELECT DLRatio FROM users WHERE User="\L"
AND Status="1" AND (Ipaddress = "*" OR Ipaddress LIKE "\R")
# Optional : bandwidth throttling.
# The server has to be compiled with throttling support.
# Values are in KB/s .
MySQLGetBandwidthUL SELECT ULBandwidth FROM users WHERE User="\L"
AND Status="1" AND (Ipaddress = "*" OR Ipaddress LIKE "\R")
MySQLGetBandwidthDL SELECT DLBandwidth FROM users WHERE User="\L"
AND Status="1" AND (Ipaddress = "*" OR Ipaddress LIKE "\R")
# Enable ~ expansion. NEVER ENABLE THIS BLINDLY UNLESS :
# 1) You know what you are doing.
# 2) Real and virtual users match.
# MySQLForceTildeExpansion 1
# If you upgraded your tables to transactionnal tables (Gemini,
# BerkeleyDB, Innobase...), you can enable SQL transactions to
# avoid races. Leave this commented if you are using the
# traditionnal MyIsam databases or old (< 3.23.x) MySQL versions.
# MySQLTransactions On
| Осталось прописать в /etc/rc.conf
pureftpd_enable=YES
mysql_enable=YES
apache2_enable=YES
| не забываем завести в системе пользователя ftp
я завёл через adduser как обычного пользователя, только с рандомной
генерацией пароля.Насколько это правильно или нет - судите сами ;-)
Запускаем
/usr/local/etc/rc.d/pure-ftpd start
Starting pureftpd.
Running: /usr/local/sbin/pure-ftpd -A -c50 -B -C8 -D -fftp -H -I15 -L2000:8
-m4 -s -U133:022 -u100 -k99 -Z -lmysql:/usr/local/etc/pureftpd-mysql.conf
| Всё. Теперь можно начинать пользоваться, открываем броузером
http://192.168.10.5/ftpadm/
Вводим Administrator / 12345
Далее панель админа
-----------------
Похоже где-то накосячил с паролями для Administrator
не хотело пускать
Удаляем то что касалось старых записей для админа и заводим новую
mysql> delete from admin where Username='Administrator';
mysql> insert into admin(Username, Password) values ('Admin',md5('12345'));
| PS: Есть у этого вэб интерфейса 1 минус - не отображаються пути к дирикториям,
немного не удобно когда пытаешься настроить нового пользователя и выбрать где
он будет chroot'иться. Хотя может и я где-то , что-то не увидел и оно так работает.
Первоисточник:
http://machiel.generaal.net/index.php?subject=pureftpd&language=eng
http://machiel.generaal.net/index.php?subject=user_manager_pureftpd
Ссылка на обсуждение: http://forum.lissyara.su/viewtopic.php?t=13407.
размещено: 2008-12-13,
последнее обновление: 2008-12-13,
автор: Morty
|
|
|
|
2014-07-27, lissyara
gmirror
Удалённое создание софтверного зеркала средствами gmirror, на диске разбитом с использованием gpart. Использование меток дисков для монтирования разделов.
2013-08-20, zentarim
Scan+Print server FreeBSD 9
Настройка сервера печати и сервера сканирования под управлением операционной системы FreebSD 9 для МФУ Canon PIXMA MP540
2011-11-20, BlackCat
Разъём на WiFi-карту
Делаем съёмной несъёмную антену на WiFi-карте путём установки ВЧ-разъёма
2011-09-14, manefesto
Настройка git+gitosis
Настройка системы контроля версия исходного кода в связке git+gitosis+ssh
2011-08-14, zentarim
Wi-FI роутер + DHCP + DNS
Настройка Wi-Fi роутера на Freebsd 8 + DNS сервер + DHCP сервер: чтобы Wi-Fi клиенты были в одной подсети с проводными, проводные и беспроводные клиенты получали адреса автоматически по DHCP, кэширующ
2011-06-15, -ZG-
Охранная система на FreeBSD+LPT
В этой статье описана попытка реализации простой охранной системы на базе FreeBSD с подключением к ней охранных устройтсв на LPT порт и видеорегистрацией.
2011-03-13, terminus
ng_nat
Описание работы ng_nat, практическое использование, достоинства и недостатки в сравнении с ipfw nat
2011-02-20, Капитан
Nagios+Digitemp
Статья описывает создание системы оповещения о превышении температуры в специальных помещениях на основе Nagios с использованием программы Digitemp.
2011-02-17, Le1
Zyxel Configuration
Скрипт для массового изменения конфига свичей Zyxel. Берет из файла iplist список ip-шек, заходит последовательно на каждый и выполняет комманды из файла commands, записывая происходящее в лог файл.
2011-02-16, fox
hast carp zfs ucarp cluster
HAST (Highly Available Storage), CARP, UCARP, ZFS, Cluster настройка и одаптация плюс личные размышления…
2011-02-04, BlackCat
Восстановление ZFS
История о том, как был восстановлен развалившийся RAIDZ ZFS-пул (перешедший в FAULTED) с помощью скотча и подручных средств. Или о том, какие приключения ожидают тех, кто не делает резервных копий.
2011-02-03, Капитан
1-Wire
Статья описывает самостоятельное изготовление контроллера DS9097 для съёма показаний с датчиков температуры DS1820 с помощью программы Digitemp.
2011-01-28, Капитан
Температура в серверной
Статья описывает построение системы наблюдения за температурой в помещении серверной с использованием программы Digitemp и выводом графиков в MRTG
2011-01-21, m4rkell
Syslog server
Как то буквально на днях, у нас завалилось, что то в еве) или не в еве не суть. Суть в том, что когда захотели снять логи с хостов esx обнаружили, что хранят эти негодяи логии только за последнии сутк
2011-01-07, lissyara
Canon/gphotofs
Монтирование цифровых фотоаппаратов Canon (PTP) как файловой системы, автоматизация этого процесса через события devd и внешние скрипты.
2010-12-13, Al
IPSec
Описание принципов работы IPSEC и способов аутентификации.
2010-12-07, manefesto
FreeBSD on flash
Было принято решении переехать на USB Flash и установить минимальный джентельменский набор для работы своего роутера. Делаем =)
2010-12-05, Fomalhaut
root ZFS, GPT
Инструкция по установке FreeBSD с использованием в качестве таблицы разделов GPT и в качестве основной файловой системы - ZFS
2010-09-05, Cancer
Настройка аудиоплеера на ximp3
Цели: Простенький аудиоплеер, для того что бы тетя продавец в магазине утром пришла нажала на кнопку Power и заиграла в зале музыка, так же был доступ по сети, общая шара куда можно заливать музыку, к
2010-08-31, Cancer
Установка и настройка OpenVPN
На днях появилась задача - объединить головной офис и 3 филиала в одну сеть через интернет посредством OpenVPN, чтобы люди могли подключаться через RDP к базам 1С на серверах.
2010-08-25, manefesto
freebsd lvm
Использование linux_lvm для работы с LVM разделами из-под FreeBSD. Проблемы которые возники при монтирование lvm раздела
2010-04-30, gonzo111
proftpd file auth"a
Proftpd - квоты и авторизация из файлов, без использования базы данных и/или системных пользователей
2010-04-22, lissyara
tw_cli
Пошаговая инструкция по восстановлению RAID на контроллере 3ware, из которого выпал один диск. Настройка мониторинга состояния рейда и отчётов о его состоянии на email.
2010-04-14, fox
MySQL Master+Master
MySQL (Master Master) and (Master Slave) Как настроить репликацию…
2010-03-09, terminus
DNS zones
Краткий ликбез про управление DNS зонами. Примеры проведения делегирования прямых и обратных DNS зон.
2010-03-09, aspera
Squid+AD (group access)
Настройка прокси сервера SQUID с автроризацией пользователей в AD. Разделение пользователей на группы
2010-03-02, BlackCat
Шлюз: Часть 4
Настройка дополнительных сервисов: синхронизация времени (OpenNTPD), клиент DynDNS.org.
2010-03-01, BlackCat
Шлюз: Часть 3
Настройка DHCP и DNS серверов для работы внутри частной сети, c поддержкой внутренних (частных зон) DNS, а так же интеграция DHCP и DNS сервисов.
2010-03-01, BlackCat
Шлюз: Часть 2
Конфигурация МСЭ pf для проброса портов с изменением порта назначения и без, а так же поддержки активного режима FTP и ограничения максимального размера сегмента
2010-03-01, BlackCat
Шлюз: Часть 1
Быстрая настройка шлюза/маршрутизатора с установлением PPPoE-соединения, поддержкой NAT и DNS-forwarding.
2010-02-23, Morty
darkstat
Простая считалка траффика, со встроенным веб-сервером. Очень маленькая, может делать отчеты трафика по хостам, портам, протоколам, а также строить графики
|
Комментарии пользователей [20 шт.]