Установка и настройка PureFTPd с MySQL на VPS OpenSUSE Linux

Pure-FTPd является свободным (BSD), безопасным, производственно-качественным и стандарт-совместимым FTP -сервером, который активно поддерживается и разработан с учетом требований безопасности. Он фокусируется на эффективности, простоте использования и предоставляет простые решения, плюс уникальные полезные функции для персональных пользователей, особенно на серверах Linux VPS, а также для хостинг -провайдеров. Pure-FTPd даже может работать 100% без root, с его встроенным root() эмуляцией и виртуальных аккаунтов.



На этом уроке мы покажем вам, как настроить Pure-Ftpd так, что он использует виртуальных пользователей из базы данных MySQL вместо реальных пользователей системы. Эта конфигурация является гораздо более производительным и позволит вам иметь тысячи пользователей FTP на одном сервере.

Мы также установим PhpMyAdmin для того, чтобы легко администрировать созданные базы данных.

Обновим систему

Войдем на сервер как пользователь «root» и убедимся, что ваш OpenSUSE VPS полностью обновлен:

ssh root@hostname

zypper ref

zypper up

 

Установим apache2, MariaDB (MYSQL) и PhpMyAdmin

Установка Apache2, MariaDB и PhpMyAdmin с соответствующими зависимостями с помощью следующей команды:

zypper install mariadb mariadb-client apache2 apache2-mod_php5 php5-mysql php5-mcrypt php5-mbstring php5-gd

 

Запустить и добавить MariaDB к загрузке вашей системы:

chkconfig -a mysql

systemctl start mysql.service

 

Мы рекомендуем Вам запустить mysql_secure_installation и завершим установку MariaDB:

mysql_secure_installation

 

Создание автозапуска системы ссылки для Apache (так, чтобы он автоматически запускается всякий раз, когда загружается система) и запустим его с помощью следующих команд:

systemctl enable apache2.service

systemctl start apache2.service

 

Затем установите PhpMyAdmin:

zypper install phpmyadmin

 

Чтобы получить доступ к PhpMyAdmin вам нужно изменить файл /etc/apache2/conf.d/phpMyAdmin.conf используя текстовый редактор и добавить следующие строки в самом начале файла:

vim /etc/apache2/conf.d/phpMyAdmin.conf



Alias /phpMyAdmin /srv/www/htdocs/phpMyAdmin

Alias /phpmyadmin /srv/www/htdocs/phpMyAdmin

 

Перейдите в каталог PhpMyAdmin и включите файл в config.inc.php:

cd /srv/www/htdocs/phpMyAdmin



cp config.sample.inc.php config.inc.php

 

Файл config.inc.php ожидает существующую базу данных PhpMyAdmin. С помощью следующих команд вы можете создать базу данных PhpMyAdmin и импортировать таблицы по умолчанию из PhpMyAdmin:

echo "create database phpmyadmin;" | mysql -u root -p 'yourpassword'



mysql -u root -p 'yourpassword' < /usr/share/doc/packages/phpMyAdmin/examples/create_tables.sql

 

Перезапустите Apache:

systemctl restart apache2.service

 

Теперь вы можете использовать ваш веб-браузер и PhpMyAdmin доступа путем перехода http://your_IP_address/phpmyadmin или http://yourdomain/phpmyadmin. Вы увидите страницу приветствия:

PhpMyAdmin

УСТАНОВИТЬ PURE-FTPd

Теперь установите PureFTPd, выполнив следующую команду:

zypper install pure-ftpd

 

Затем создайте FTP группу и пользователей, все виртуальные пользователи будут сопоставлены:

groupadd -g 2525 ftpgroup

useradd -u 2525 -s /bin/false -d /bin/null -c "pureftpd user" -g ftpgroup ftpuser

 

Следующее, что вам нужно сделать, это создать базу данных для PureFTPd. Войдите в MySQL как root:

mysql -u root -p





MariaDB [(none)]> CREATE DATABASE pureftpd;



MariaDB [(none)]> GRANT ALL PRIVILEGES on pureftpd.* TO 'ftpuser'@'localhost' IDENTIFIED BY 'your_password';



MariaDB [(none)]> FLUSH PRIVILEGES;

 

Замените строку your_password на пароль по своему вкусу.

В то время как вы все еще в MySQL давайте создадим таблицу базы данных, необходимую для хранения виртуальных учетных данных пользователей. Введите следующее:

MariaDB [(none)]> USE pureftpd;



MariaDB [pureftpd]> CREATE TABLE `ftpd` (

User varchar(16) NOT NULL default '',

status enum('0','1') NOT NULL default '0',

Password varchar(64) NOT NULL default '',

Uid varchar(11) NOT NULL default '-1',

Gid varchar(11) NOT NULL default '-1',

Dir varchar(128) NOT NULL default '',

ULBandwidth smallint(5) NOT NULL default '0',

DLBandwidth smallint(5) NOT NULL default '0',

comment tinytext NOT NULL,

ipaccess varchar(15) NOT NULL default '*',

QuotaSize smallint(5) NOT NULL default '0',

QuotaFiles int(11) NOT NULL default 0,

PRIMARY KEY (User),

UNIQUE KEY User (User)

)  ENGINE=InnoDB;





MariaDB [pureftpd]> exit

 

Все выглядит нормально пока. Давайте изменим конфигурационный файл PureFTPd с некоторыми рекомендованными изменениями. С помощью текстового редактора откройте файл etc/pure-ftpd/pure-ftpd.conf:

vim etc/pure-ftpd/pure-ftpd.conf

 

Оказавшись там, убедитесь, что линии ChrootEveryone, AnonymousOnly, MySQLConfigFile и CreateHomeDir включены и выглядит следующим образом:

pureftpconf

Установка ChrootEveryone необходима потому, что он будет делать PureFTPd root каждый виртуальный пользователь в своем домашнем каталоге, тем самым ограничивая его просмотр каталогов и файлов только в его домашнем каталоге. CreateHomeDir линия позволит PureFTPd создать домашний каталог пользователя, когда пользователь входит в систему и домашний каталог еще не существует. AnonymousOnly должен быть установлен на нет, потому что в противном случае только анонимные сеансы FTP будут разрешены.

Затем создайте/отредактируйте файл /etc/pure-ftpd/pureftpd-mysql.conf:

vim /etc/pure-ftpd/pureftpd-mysql.conf

 

И вставьте следующее:

MYSQLSocket      /var/run/mysql/mysql.sock

MYSQLServer     localhost

MYSQLPort       3306

MYSQLUser       ftpuser

MYSQLPassword   your_password

MYSQLDatabase   pureftpd

#MYSQLCrypt md5, cleartext, crypt() or password() - md5 is VERY RECOMMENDABLE uppon cleartext

MYSQLCrypt      md5

MYSQLGetPW      SELECT Password FROM ftpd WHERE User="L" AND status="1" AND (ipaccess = "*" OR ipaccess LIKE "R")

MYSQLGetUID     SELECT Uid FROM ftpd WHERE User="L" AND status="1" AND (ipaccess = "*" OR ipaccess LIKE "R")

MYSQLGetGID     SELECT Gid FROM ftpd WHERE User="L"AND status="1" AND (ipaccess = "*" OR ipaccess LIKE "R")

MYSQLGetDir     SELECT Dir FROM ftpd WHERE User="L"AND status="1" AND (ipaccess = "*" OR ipaccess LIKE "R")

MySQLGetBandwidthUL SELECT ULBandwidth FROM ftpd WHERE User="L"AND status="1" AND (ipaccess = "*" OR ipaccess LIKE "R")

MySQLGetBandwidthDL SELECT DLBandwidth FROM ftpd WHERE User="L"AND status="1" AND (ipaccess = "*" OR ipaccess LIKE "R")

MySQLGetQTASZ   SELECT QuotaSize FROM ftpd WHERE User="L"AND status="1" AND (ipaccess = "*" OR ipaccess LIKE "R")

MySQLGetQTAFS   SELECT QuotaFiles FROM ftpd WHERE User="L"AND status="1" AND (ipaccess = "*" OR ipaccess LIKE "R")

 

Заменим строку ваш_пароль реальным паролем для пользователя ftpuser MySQL в строке MYSQLPassword. Мы будем использовать md5 как метод MYSQLCrypt, что означает, что MySQL будет хранить пароли пользователей в виде строки MD5 в базе данных, которая является гораздо более безопасным, чем использование простых текстовых паролей.

Теперь мы создадим ссылки для запуска системы PureFTPd и запустим его:

systemctl enable pure-ftpd

systemctl start pure-ftpd

 

Давайте заполним базу данных с помощью оболочки MySQL. Войдите в систему как root:

mysql -u root -p



MariaDB [(none)]> USE pureftpd;



MariaDB [pureftpd]> INSERT INTO `ftpd` (`User`, `status`, `Password`, `Uid`, `Gid`, `Dir`, `ULBandwidth`, `DLBandwidth`, `comment`, `ipaccess`, `QuotaSize`, `QuotaFiles`) VALUES ('testuser', '1', MD5('AndreyEx'), '2525', '2525', '/home/www.examledomain.ru', '200', '200', '', '*', '10', '0');



MariaDB [pureftpd]> exit;

 

Это утверждение MySQL создаст пользователя TestUser со статусом 1 (что означает, что FTP активен) и пароль andreyex (вы должны изменить его по своему вкусу). Пароль будет храниться и шифроваться с помощью функции MD5 в MySQL, идентификатор пользователя и GID будут установлены в 2525 (пользователь / группа, которую мы создали для виртуальных пользователей, которые будут отображаться), домашний каталог будет /home/www.examledomain. ru, выгрузка and download bandwidth будет установлена на 200 кб / сек. (килобайт в секунду), наряду с квотой 100 МБ.

Для проверки конфигурации откройте FTP-клиент из вашего выбора и введите следующие учетные данные:

hostname : your IP address;

user: testuser

password: yourpassword

port: 21

 

Все. Мы успешно установили и настроили Pure-Ftpd так, что он использует виртуальных пользователей из базы данных MySQL. Вы можете управлять базами данных и добавлять новых пользователей с помощью инструмента PhpMyAdmin.

Установка и настройка PureFTPd с MySQL на VPS OpenSUSE Linux

PS . Если вам понравился этот пост, пожалуйста поделитесь им с друзьями в социальных сетях помощью кнопок на левой стороне поста или просто оставьте комментарий ниже. Заранее благодарю.