ИТ Блог. Администрирование серверов на основе Linux (Ubuntu, Debian, CentOS, openSUSE)

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

Как настроить PureFTPd чтобы использовать сессию TLS на CentOS 7

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 . Если вам понравился этот пост, пожалуйста поделитесь им с друзьями в социальных сетях помощью кнопок на левой стороне поста или просто оставьте комментарий ниже. Заранее благодарю.

Exit mobile version