Server Hosting · 3 min read · Dec 14, 2025

Virtuelles Hosting Mit vsftpd Und MySQL Auf Debian Etch

Virtuelles Hosting Mit vsftpd Und MySQL Auf Debian Etch

Version 1.0
Autor: Falko Timme

Vsftpd ist einer der sichersten und schnellsten FTP-Server für Linux. Normalerweise wird vsftpd so konfiguriert, dass es mit Systembenutzern arbeitet. Dieses Dokument beschreibt, wie man einen vsftpd-Server installiert, der virtuelle Benutzer aus einer MySQL-Datenbank anstelle von echten Systembenutzern verwendet. Dies ist viel leistungsfähiger und ermöglicht es, Tausende von FTP-Benutzern auf einer einzigen Maschine zu haben.

Für die Verwaltung der MySQL-Datenbank können Sie webbasierte Tools wie phpMyAdmin verwenden, die ebenfalls in diesem Howto installiert werden. phpMyAdmin ist eine komfortable grafische Oberfläche, was bedeutet, dass Sie sich nicht mit der Befehlszeile herumschlagen müssen.

Dieses Tutorial basiert auf Debian Etch (Debian 4.0). Sie sollten bereits ein grundlegendes Debian Etch-System eingerichtet haben, wie in den ersten sechs Kapiteln dieses Tutorials beschrieben: https://www.howtoforge.com/perfect_setup_debian_etch

Dieses Howto ist als praktische Anleitung gedacht; es behandelt nicht die theoretischen Hintergründe. Diese werden in vielen anderen Dokumenten im Web behandelt.

Dieses Dokument kommt ohne jegliche Gewährleistung! Ich möchte sagen, dass dies nicht der einzige Weg ist, ein solches System einzurichten. Es gibt viele Möglichkeiten, dieses Ziel zu erreichen, aber dies ist der Weg, den ich wähle. Ich gebe keine Garantie, dass dies für Sie funktioniert!

1 Vorbemerkung

In diesem Tutorial verwende ich den Hostnamen server1.example.com mit der IP-Adresse 192.168.0.100. Diese Einstellungen können bei Ihnen abweichen, daher müssen Sie sie gegebenenfalls anpassen.

2 Installieren Sie vsftpd, MySQL Und phpMyAdmin

Vsftpd hat keine integrierte MySQL-Unterstützung, daher müssen wir PAM verwenden, um gegen die MySQL-Datenbank zu authentifizieren. Daher installieren wir libpam-mysql zusätzlich zu vsftpd, MySQL und phpMyAdmin:

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

Erstellen Sie ein Passwort für den MySQL-Benutzer root (ersetzen Sie yourrootsqlpassword durch das Passwort, das Sie verwenden möchten):

mysqladmin -u root password yourrootsqlpassword

Überprüfen Sie dann mit

netstat -tap | grep mysql

auf welchen Adressen MySQL lauscht. Wenn die Ausgabe so aussieht:

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

was bedeutet, dass MySQL nur auf localhost.localdomain lauscht, dann sind Sie mit dem Passwort, das Sie zuvor festgelegt haben, sicher. Aber wenn die Ausgabe so aussieht:

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

sollten Sie auch ein MySQL-Passwort für Ihren Hostnamen festlegen, denn sonst kann jeder auf Ihre Datenbank zugreifen und Daten ändern:

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

3 Erstellen Sie Die MySQL-Datenbank Für vsftpd

Jetzt erstellen wir eine Datenbank namens vsftpd und einen MySQL-Benutzer namens vsftpd, den der vsftpd-Daemon später verwenden wird, um sich mit der vsftpd-Datenbank zu verbinden:

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;

Ersetzen Sie den String ftpdpass durch das Passwort, das Sie für den MySQL-Benutzer vsftpd verwenden möchten. Immer noch in der MySQL-Shell erstellen wir die Datenbanktabelle, die wir benötigen (ja, es gibt nur eine Tabelle!):

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;

Wie Sie vielleicht bemerkt haben, haben wir mit dem Befehl quit; die MySQL-Shell verlassen und sind zurück in der Linux-Shell.

Übrigens, (ich gehe davon aus, dass der Hostname Ihres FTP-Servers server1.example.com ist) können Sie phpMyAdmin unter http://server1.example.com/phpmyadmin/ (Sie können auch die IP-Adresse anstelle von server1.example.com verwenden) in einem Browser aufrufen und sich als Benutzer vsftpd anmelden. Dann können Sie sich die Datenbank ansehen. Später können Sie phpMyAdmin verwenden, um Ihren vsftpd-Server zu verwalten.

Share: X/Twitter LinkedIn

Erhalte neue Beiträge in deinem Posteingang.

Kein Spam. Jederzeit abmelden.