Установка и настройка Proftpd + Proftpd Administrator на CentOS или Fedora
Цель
Организация ftp доступа к серверу с хранением имен пользователей и паролей, домашних каталогов и т.д. в СУБД MySQL
Описание
ProFTPd — FTP-сервер для Linux и UNIX-подобных операционных систем.
Поддерживаемые платформы
-
AIX
-
BSD/OS
-
DG/UX
-
Digital Unix
-
FreeBSD
-
HP/UX
-
IRIX
-
Linux for IBM S/390, zSeries
-
Linux
-
Mac OS X
-
NetBSD
-
OpenBSD
-
SCO
-
Solaris
-
SunOS
-
Windows (via Cygwin)
Установка и настройка
Для начала устанавливаем пакет proftpd-mysql.x86_64, после чего приступаем к настройке конфигурационного файла /etc/proftpd.conf. С учетом поставленной цели, содержимое его следующее:
ServerName "ftp.example.ru" ServerIdent on "FTP Server ready." ServerAdmin admin@example.ru DefaultServer on AccessGrantMsg "User %u logged in." DeferWelcome off IdentLookups off UseReverseDNS off Port 21 Umask 022 ListOptions "-a" RootLogin off MaxLoginAttempts 3 MaxClientsPerHost 1 AllowRetrieveRestart on AllowStoreRestart on MaxInstances 3 DefaultRoot ~ AllowOverwrite on User root Group wheel UseSendfile off ScoreboardFile /var/run/proftpd.score LogFormat default "%h %l %u %t \"%r\" %s %b" LogFormat auth "%v [%P] %h %t \"%r\" %s" LoadModule mod_sql.c LoadModule mod_sql_mysql.c LoadModule mod_quotatab.c LoadModule mod_quotatab_sql.c # Настройки для авторизации через mysql. SQLConnectInfo database_name@localhost:3306 user_name my_password SQLAuthTypes Backend SQLUserInfo usertable userid passwd uid gid homedir shell RequireValidShell off SQLGroupInfo grouptable groupname gid members SQLUserWhereClause "disabled=0 and (NOW()<=expiration or expiration=-1 or expiration=0)" # Лог-файлы SQLLogFile /var/log/proftpd_sql.log SyslogLevel notice SystemLog /var/log/proftpd/proftpd.log TransferLog /var/log/proftpd/xferlog ExtendedLog /var/log/proftpd/proftpd_auth.log AUTH auth
На данном этапе мы еще не можем запустить наш ftp-сервер, т.к. отсутствует база mysql. Для этого нам необходимо скачать proFTPd Administrator. Скачать его можно тут. Полученный архив распаковываем:
tar xvfz proftpd_admin_v1.2.tar.gz
Дамп базы находится в каталоге распакованного архива misc/database_structure_mysql, в файле db_structure.sql.
Создадим базу и таблицы в ней:
mysql -uroot -p <db_structure.sql
На всякий случай применим права к базе еще раз через консоль:
mysql> GRANT ALL ON database_name.* TO user_name@localhost IDENTIFIED BY 'my_password'; mysql> flush privileges;
И последний штрих:
-
Перемещаем распакованный архив proFTPd Administrator-а в каталог, доступный по 80 порту, например в /var/www/html/
-
Прописываем в файле /etc/hosts
X.X.X.X hostname_our_server domainname_our_server
Теперь запускаем proftpd
service proftpd start
Устанавливаем права на файлы:
chown -R apache:apache /var/www/html/
Проверяем нашу вебадминку
http://example.com
и сразу, в разделе Configure, производим настройки, а в разделе Users создаем пользователя для авторизации на нашем ftp-сервере. Пояснять не буду, т.к. там все интуитивно понятно.
Не забудьте запаролить веб-админку, например с помощью htpasswd
И последнее (чтобы стартовал при загрузке системы)
chkconfig proftpd on