Howto proFTPd Server mit virtuellen Usern und MariaDB (verwalten über phpMyAdmin) unter Debian 11 und 12

spicer

Forum-Chef
Teammitglied
Administrator
Moderator
Landesflagge
Hier wird beschrieben, wie Du einen Proftpd-Server installierst, 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 einem einzigen Server zu haben und diesen ein Verzeichnis zuzuweisen.
Darüber hinaus wird die Verwendung von Quoten mit diesem Setup gezeigt.

Für die Verwaltung der MariaDB-Datenbank können webbasierte Tools wie phpMyAdmin verwendet werden, die ebenfalls in diesem Howto installiert werden.
phpMyAdmin ist eine komfortable grafische Oberfläche, was bedeutet, dass Du Dich nicht mit der Befehlszeile herumschlagen musst.

Dieses Tutorial basiert auf Debian Bullseye und wurde auch auf Debian Bookworm getestet.

Vorbemerkung
In diesem Tutorial verwende ich den Ausdruck IP-Adresse. Dieser ist duch die IP-Adresse Deines Servers zu ersetzen (zBsp 192.193.194.45).

Installiere MariaDB und phpMyAdmin
Dies kann alles mit einer einzigen Zeile installiert werden:
Code:
Bitte, Anmelden oder Registrieren to view codes content!

Bei den Fragen auswählen:
- apache2
- Configure database for phpmyadmin with dbconfig-common? >> Yes
- MySQL application password for phpmyadmin: Passwort
Hier wirst Du aufgefordert, ein Passwort für den MySQL-Root-Benutzer anzugeben – dieses Passwort gilt auch für den Benutzer root@localhost,
sodass wir später kein MySQL-Root-Passwort manuell angeben müssen.

Installiere Proftpd mit MySQL-Unterstützung
Code:
Bitte, Anmelden oder Registrieren to view codes content!

Dann erstellen wir eine FTP-Gruppe (ftpgroup) und einen Benutzer (ftpuser), denen alle unsere virtuellen Benutzer zugeordnet werden.
Wir benennen hier die Gruppen- und Benutzerkennung mit 3002.
Code:
Bitte, Anmelden oder Registrieren to view codes content!

Erstelle die MariaDB-Datenbank für Proftpd
Jetzt erstellen wir eine Datenbank namens ftp und einen MariaDB-Benutzer namens proftpd, den der proftpd-Daemon später verwendet, um sich mit der ftp-Datenbank zu verbinden:
Code:
Bitte, Anmelden oder Registrieren to view codes content!
Jetzt Dein oben gewähltes Passwort eingeben.

Folgend passwort mit dem gewählten Passwort ersetzen (2 mal)!!
Code:
Bitte, Anmelden oder Registrieren to view codes content!
Ab hier kann Alles 1 zu 1 übernommen werden.
Code:
Bitte, Anmelden oder Registrieren to view codes content!
Code:
Bitte, Anmelden oder Registrieren to view codes content!
Code:
Bitte, Anmelden oder Registrieren to view codes content!
Code:
Bitte, Anmelden oder Registrieren to view codes content!
Code:
Bitte, Anmelden oder Registrieren to view codes content!
Code:
Bitte, Anmelden oder Registrieren to view codes content!

Du kannst auf phpMyAdmin unter
Code:
Bitte, Anmelden oder Registrieren to view codes content!
in einem Browser zugreifen und Dich als proftpd mit dem oben gewählten Passwort anmelden.
Dann kannst Du einen Blick in die Datenbank werfen. Später kannst Du phpMyAdmin verwenden, um den Proftpd-Server zu verwalten.

proFTPd konfigurieren
Code:
Bitte, Anmelden oder Registrieren to view codes content!
Folgende 3 Module aktivieren:
Code:
Bitte, Anmelden oder Registrieren to view codes content!
Code:
Bitte, Anmelden oder Registrieren to view codes content!
Kommentiere den Quota Abschnitt ein und die Zeile Include /etc/proftpd/sql.conf aus:
Code:
Bitte, Anmelden oder Registrieren to view codes content!
Code:
Bitte, Anmelden oder Registrieren to view codes content!
Es sollte wie folgt aussehen. Achte darauf, dass in der Zeile SQLConnectInfo passwort das echte Passwort für den MariaDB-Benutzer proftpd steht!
Code:
Bitte, Anmelden oder Registrieren to view codes content!
Code:
Bitte, Anmelden oder Registrieren to view codes content!
Code:
Bitte, Anmelden oder Registrieren to view codes content!
Jetzt Dein oben gewähltes Passwort eingeben.
Code:
Bitte, Anmelden oder Registrieren to view codes content!
Code:
Bitte, Anmelden oder Registrieren to view codes content!
Code:
Bitte, Anmelden oder Registrieren to view codes content!
Code:
Bitte, Anmelden oder Registrieren to view codes content!
Code:
Bitte, Anmelden oder Registrieren to view codes content!

Öffne nun den FTP-Client auf Deinem PC (zBsp Filezilla) und versuche, eine Verbindung herzustellen. Als Hostname verwende die IP-Adresse des Servers, der Benutzername ist testuser und das Passwort ist testpasswort.
Das Verzeichnis /home/testverzeichnis in unserem Beispiel sollte automatisch erstellt werden, sobald der User "testuser" etwas hochlädt.

Datenbankverwaltung
Für die meisten Leute ist es einfacher, wenn sie ein grafisches Frontend für die Datenbank haben.
Darum kannst Du hier nun phpMyAdmin unter
Code:
Bitte, Anmelden oder Registrieren to view codes content!
verwenden, um die ftp-Datenbank zu verwalten.

Auswahl_007.png

Um einen neuen User anzulegen ist es am einfachsten, wenn Du hier einen vorhandenen User kopierst und dann die Daten des neuen Users einträgst. Wenn Du fertig bist, unten auf OK klicken.
Man kann mehreren Usern das gleiche Verzeichnis zuweisen.

Auswahl_008.png

Viel Spass
 
Zuletzt bearbeitet:
Um FXP einzuschalten:
Code:
Bitte, Anmelden oder Registrieren to view codes content!
Einfügen (IP Deines Servers bei MasqueradeAddress eintragen!):
Code:
Bitte, Anmelden oder Registrieren to view codes content!
Code:
Bitte, Anmelden oder Registrieren to view codes content!


Um den virtuellen Usern nur das Lesen zu erlauben, muss zunächst ein Systemuser erstellt werden, welcher dann auch schreiben/löschen und umbenennen darf.
Nennen wir den mal ftpmaster . Es können auch noch "weitere-user" erstellt werden.
Code:
Bitte, Anmelden oder Registrieren to view codes content!

Code:
Bitte, Anmelden oder Registrieren to view codes content!
einfügen:
Code:
Bitte, Anmelden oder Registrieren to view codes content!

Code:
Bitte, Anmelden oder Registrieren to view codes content!
Wenn möglich, gleich einen Reboot machen.

Nun muss der User ftpmaster noch in phpmyadmin angelegt werden, damit er sich überhaupt einloggen kann.

Auswahl_001.png

Ich habe hier dem ftpmaster gleich das ganze /home Verzeichnis gegeben. So kann der alle Unterverzeichnisse der virtuellen User verwalten.
 
proFTPd für TLS fit machen:

Als Erstes diesen mod installieren:
apt install proftpd-mod-crypto

In /etc/proftpd/modules.conf auskommentieren
Code:
Bitte, Anmelden oder Registrieren to view codes content!

In etc/proftpd/proftpd.conf anfügen:
Code:
Bitte, Anmelden oder Registrieren to view codes content!

Jetzt das Zertifikat erstellen:

openssl req -x509 -newkey rsa:2048 -sha256 -keyout /etc/ssl/private/proftpd.key -out /etc/ssl/certs/proftpd.crt -nodes -days 3650
chmod 600 /etc/ssl/private/proftpd.key
chmod 600 /etc/ssl/certs/proftpd.crt


Jetzt proFTPd neu starten:
service proftpd restart
 
Zuletzt bearbeitet:
Falls proFTPd nach Reboot nicht automatisch startet:

systemctl disable --now proftpd.socket
systemctl enable --now proftpd.service
 
Hallo Spicer,

diesen Thread lese ich zwar mit Interesse, jedoch für mich als "nur" LTspice-User sind es böhmische Linux-Dörfer von denen ich absolut nichts verstehe.
Aber sicherlich ist der Inhalt für Linux-User sehr interessant.

Gruß
Hencobike
 
Jo, diejenigen die sowas brauchen, wissen schon, was gemeint ist ;)
Dieser Thread ist deswegen auch in der Computer Sektion.
Dies hier wird erst interessant, wenn Du einen FTP Server betreiben willst.
Für mich und viele andere Admins gibt's nur ein Server OS. Das heisst Debian. Nichts gegen Windows Server. Aber das ist kostenpflichtig und Bloatware ;)
 
Zuletzt bearbeitet:

Benutzer welche diesen Thread betrachten (Mitglieder: 0, Gäste: 1)

Zurück
Oben