Поиск по сайту:
Быть свободным — это ничто, стать свободным — это все (К. Бёрне).

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

09.11.2016
Как настроить 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

 

Читать  Используйте команду Fallocate для создания файлов определенного размера в Linux

Файл 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

 

Читать  7 примеров команды lsof в Linux

Оказавшись там, убедитесь, что линии 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 в базе данных, которая является гораздо более безопасным, чем использование простых текстовых паролей.

Читать  Как установить стек LEMP (Linux, Nginx, MySQL, PHP) на OpenSUSE

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

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (Пока оценок нет)
Загрузка...
Поделиться в соц. сетях:

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

**ссылки nofollow

Это может быть вам интересно

Рекомендуемое
Как вы уже знаете, WordPress является бесплатной системой управления контентом…

Сообщить об опечатке

Текст, который будет отправлен нашим редакторам: