Server Hosting · 6 min read · Nov 26, 2025
Virtuelles Hosting Mit PureFTPd Und MySQL (Incl. Quota Und Bandbreitenmanagement) Auf Fedora 20
Virtuelles Hosting Mit PureFTPd Und MySQL (Incl. Quota Und Bandbreitenmanagement) Auf Fedora 20
Version 1.0
Autor: Falko Timme, aktualisiert von Srijan Kishore
Dieses Dokument beschreibt, wie man einen PureFTPd-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. Darüber hinaus werde ich die Verwendung von Quota und Upload-/Download-Bandbreitenlimits mit diesem Setup zeigen. Passwörter werden verschlüsselt als MD5-Strings in der Datenbank gespeichert.
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 Benutzeroberfläche, was bedeutet, dass Sie sich nicht mit der Befehlszeile herumschlagen müssen.
Dieses Tutorial basiert auf Fedora 20. Sie sollten bereits ein grundlegendes Fedora 20-System eingerichtet haben.
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 ersetzen.
2 MySQL Und phpMyAdmin Installieren
Dies kann alles mit einem einzigen Befehl installiert werden:
yum install mysql mysql-server phpMyAdmin httpdJetzt konfigurieren wir phpMyAdmin. Wir ändern die Apache-Konfiguration, sodass phpMyAdmin Verbindungen nicht nur von localhost erlaubt (indem wir alles im
vi /etc/httpd/conf.d/phpMyAdmin.conf| # phpMyAdmin - Web basierter MySQL-Browser, geschrieben in php # # Erlaubt standardmäßig nur localhost # # Aber phpMyAdmin für jeden anderen als localhost zuzulassen, sollte als # gefährlich angesehen werden, es sei denn, es ist ordnungsgemäß durch SSL gesichert Alias /phpMyAdmin /usr/share/phpMyAdmin Alias /phpmyadmin /usr/share/phpMyAdmin |
Dann erstellen wir die Systemstartlinks für MySQL und Apache (damit beide automatisch starten, wenn das System bootet) und starten beide Dienste:
systemctl enable mysqld.service
systemctl start mysqld.serviceWenn Sie einen Fehler wie diesen erhalten:
[root@server1 ~]# systemctl enable mysqld.service
Failed to issue method call: No such file or directory
[root@server1 ~]#Es passiert aufgrund dieses Fehlers, fahren Sie dann wie folgt fort:
[root@server1 ~]# ln -s '/usr/lib/systemd/system/mysqld.service' '/etc/systemd/system/multi-user.target.wants/mysqld.service'
[root@server1 ~]# ln -s '/usr/lib/systemd/system/mariadb.service' '/etc/systemd/system/multi-user.target.wants/mariadb.service'systemctl start mysqld.service
systemctl start mariadb.servicesystemctl enable httpd.service
systemctl start httpd.serviceErstellen Sie ein Passwort für den MySQL-Benutzer root (ersetzen Sie yourrootsqlpassword durch das Passwort, das Sie verwenden möchten):
mysql_secure_installation[root@server1 ~]# mysql_secure_installation
HINWEIS: DAS AUSFÜHREN ALLER TEILE DIESER SCRIPTES WIRD FÜR ALLE MySQL
SERVER IM PRODUKTIONSEINSATZ EMPFOHLEN! BITTE LESEN SIE JEDEN SCHRITT SORGFÄLTIG!
Um sich in MySQL anzumelden, um es zu sichern, benötigen wir das aktuelle
Passwort für den Benutzer root. Wenn Sie MySQL gerade installiert haben und
Sie das root-Passwort noch nicht festgelegt haben, ist das Passwort
leer, sodass Sie hier einfach die Eingabetaste drücken sollten.
Geben Sie das aktuelle Passwort für root ein (drücken Sie die Eingabetaste, wenn keines vorhanden ist): <– ENTFERNEN
OK, Passwort erfolgreich verwendet, weiter…
Das Festlegen des root-Passworts stellt sicher, dass niemand
ohne die richtige Autorisierung auf den MySQL-Benutzer root zugreifen kann.
Root-Passwort festlegen? [Y/n] <– ENTFERNEN
Neues Passwort: <– yourrootsqlpassword
Neues Passwort erneut eingeben: <– yourrootsqlpassword
Passwort erfolgreich aktualisiert!
Privilegientabellen werden neu geladen..
… Erfolg!
Standardmäßig hat eine MySQL-Installation einen anonymen Benutzer,
der es jedem ermöglicht, sich in MySQL anzumelden, ohne ein
Benutzerkonto erstellt zu haben. Dies ist nur für
Testzwecke gedacht und soll die Installation etwas reibungsloser gestalten.
Sie sollten sie entfernen, bevor Sie in eine
Produktionsumgebung wechseln.
Anonyme Benutzer entfernen? [Y/n] <– ENTFERNEN
… Erfolg!
Normalerweise sollte root nur von ‘localhost’ aus
verbunden werden dürfen. Dies stellt sicher, dass
niemand das root-Passwort über das Netzwerk erraten kann.
Root-Login aus der Ferne verbieten? [Y/n] <– ENTFERNEN
… Erfolg!
Standardmäßig kommt MySQL mit einer Datenbank namens
‘test’, auf die jeder zugreifen kann. Dies ist ebenfalls
nur für Testzwecke gedacht und sollte entfernt werden,
bevor Sie in eine Produktionsumgebung wechseln.
Testdatenbank und Zugriff darauf entfernen? [Y/n] <– ENTFERNEN
- Testdatenbank wird gelöscht…
… Erfolg! - Berechtigungen für die Testdatenbank werden entfernt…
… Erfolg!
Das Neuladen der Berechtigungstabellen stellt sicher, dass
alle bisher vorgenommenen Änderungen sofort wirksam werden.
Berechtigungstabellen jetzt neu laden? [Y/n] <– ENTFERNEN
… Erfolg!
Aufräumen…
Alles erledigt! Wenn Sie alle oben genannten Schritte abgeschlossen haben,
sollte Ihre MySQL-Installation jetzt sicher sein.
Danke, dass Sie MySQL verwenden!
[root@server1 ~]#
3 Installieren Sie PureFTPd Mit MySQL-Unterstützung
Das PureFTPd-Paket von Fedora unterstützt verschiedene Backends, wie MySQL, PostgreSQL, LDAP usw. Daher müssen wir nur das normale PureFTPd-Paket installieren:
yum install pure-ftpdDann erstellen wir eine FTP-Gruppe (ftpgroup) und einen Benutzer (ftpuser), auf die alle unsere virtuellen Benutzer abgebildet werden. Ersetzen Sie die Gruppen- und Benutzer-ID 2001 durch eine Nummer, die auf Ihrem System frei ist:
groupadd -g 2001 ftpgroup
useradd -u 2001 -s /bin/false -d /bin/null -c "pureftpd user" -g ftpgroup ftpuser4 Erstellen Sie Die MySQL-Datenbank Für PureFTPd
Jetzt erstellen wir eine Datenbank namens pureftpd und einen MySQL-Benutzer namens pureftpd, den der PureFTPd-Daemon später verwenden wird, um sich mit der pureftpd-Datenbank zu verbinden:
mysql -u root -pCREATE DATABASE pureftpd;
GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP ON pureftpd.* TO 'pureftpd'@'localhost' IDENTIFIED BY 'ftpdpass';
GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP ON pureftpd.* TO 'pureftpd'@'localhost.localdomain' IDENTIFIED BY 'ftpdpass';
FLUSH PRIVILEGES;Ersetzen Sie die Zeichenfolge ftpdpass durch das Passwort, das Sie für den MySQL-Benutzer pureftpd verwenden möchten. Immer noch in der MySQL-Shell erstellen wir die benötigte Datenbanktabelle (ja, es gibt nur eine Tabelle!):
USE 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=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 pureftpd anmelden. Dann können Sie sich die Datenbank ansehen. Später können Sie phpMyAdmin verwenden, um Ihren PureFTPd-Server zu verwalten.
Erhalte neue Beiträge in deinem Posteingang.
Kein Spam. Jederzeit abmelden.