Виртуальный хостинг · 2 min read · Dec 14, 2025

Виртуальный хостинг с vsftpd и MySQL на Debian Etch

Виртуальный хостинг с vsftpd и MySQL на Debian Etch

Версия 1.0
Автор: Фалко Тимме

Vsftpd является одним из самых безопасных и быстрых FTP-серверов для Linux. Обычно vsftpd настраивается для работы с системными пользователями. Этот документ описывает, как установить сервер vsftpd, который использует виртуальных пользователей из базы данных MySQL вместо реальных системных пользователей. Это значительно более производительно и позволяет иметь тысячи FTP-пользователей на одной машине.

Для администрирования базы данных MySQL вы можете использовать веб-инструменты, такие как phpMyAdmin, которые также будут установлены в этом руководстве. phpMyAdmin — это удобный графический интерфейс, что означает, что вам не нужно возиться с командной строкой.

Этот учебник основан на Debian Etch (Debian 4.0). Вы должны уже настроить базовую систему Debian Etch, как описано в первых шести главах этого учебника: https://www.howtoforge.com/perfect_setup_debian_etch

Этот документ предназначен как практическое руководство; он не охватывает теоретические основы. Они рассматриваются во многих других документах в сети.

Этот документ предоставляется без каких-либо гарантий! Я хочу сказать, что это не единственный способ настройки такой системы. Существует много способов достижения этой цели, но это тот путь, который я выбираю. Я не даю никаких гарантий, что это сработает для вас!

1 Предварительная заметка

В этом учебнике я использую имя хоста server1.example.com с IP-адресом 192.168.0.100. Эти настройки могут отличаться для вас, поэтому вам нужно заменить их, где это необходимо.

2 Установка vsftpd, MySQL и phpMyAdmin

Vsftpd не имеет встроенной поддержки MySQL, поэтому мы должны использовать PAM для аутентификации в базе данных MySQL. Поэтому мы устанавливаем libpam-mysql в дополнение к vsftpd, MySQL и phpMyAdmin:

apt-get install vsftpd libpam-mysql mysql-server mysql-client phpmyadmin

Создайте пароль для пользователя MySQL root (замените yourrootsqlpassword на желаемый пароль):

mysqladmin -u root password yourrootsqlpassword

Затем проверьте с помощью

netstat -tap | grep mysql

на каких адресах MySQL слушает. Если вывод выглядит так:

tcp        0      0 localhost.localdo:mysql *:*                     LISTEN     2713/mysqld

это означает, что MySQL слушает только на localhost.localdomain, тогда вы в безопасности с паролем, который вы установили ранее. Но если вывод выглядит так:

tcp        0      0 *:mysql *:*                     LISTEN     2713/mysqld

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

mysqladmin -h server1.example.com -u root password yourrootsqlpassword

3 Создание базы данных MySQL для vsftpd

Теперь мы создаем базу данных с именем vsftpd и пользователя MySQL с именем vsftpd, который демон vsftpd будет использовать позже для подключения к базе данных vsftpd:

mysql -u root -p
CREATE DATABASE vsftpd;  
GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP ON vsftpd.* TO 'vsftpd'@'localhost' IDENTIFIED BY 'ftpdpass';  
GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP ON vsftpd.* TO 'vsftpd'@'localhost.localdomain' IDENTIFIED BY 'ftpdpass';  
FLUSH PRIVILEGES;

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

USE vsftpd;
CREATE TABLE `accounts` (  
`id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY ,  
`username` VARCHAR( 30 ) NOT NULL ,  
`pass` VARCHAR( 50 ) NOT NULL ,  
UNIQUE (  
`username`  
)  
) ENGINE = MYISAM ;
quit;

Как вы могли заметить, с помощью команды quit; мы вышли из оболочки MySQL и вернулись в оболочку Linux.

Кстати, (я предполагаю, что имя хоста вашей FTP-системы — server1.example.com) вы можете получить доступ к phpMyAdmin по адресу http://server1.example.com/phpmyadmin/ (вы также можете использовать IP-адрес вместо server1.example.com) в браузере и войти как пользователь vsftpd. Затем вы можете взглянуть на базу данных. Позже вы можете использовать phpMyAdmin для администрирования вашего сервера vsftpd.

Share: X/Twitter LinkedIn

Get new posts in your inbox

No spam. Unsubscribe anytime.