FTP, das für File Transfer Protocol steht, ist ein etabliertes Netzwerkprotokoll welches speziell für die Übertragung von Dateien zwischen einem Client und einem Server entwickelt wurde. Das FTP Protokoll ermöglicht es Dateien zuverlässig und effizient auszutauschen, wobei die Einsatzmöglichkeiten eines FTP-Servers vielfältig sind. Häufig wird FTP eingesetzt, um Webseiteninhalte auf Webservern zu aktualisieren oder um Dateien auf Servern für Downloads bereitzustellen. Darüber hinaus kann ein FTP-Server auch in privaten Netzwerken, beispielsweise für den Austausch von Dateien zwischen Computern, genutzt werden.
Ich für meinen Teil nutze meinen lokalen Server für verschiedenste Anwendungen. Dank des FTP-Servers ist es mir möglich, Dateien einfach zu bearbeiten und problemlos zwischen verschiedenen Systemen zu übertragen. Insbesondere die direkte Bearbeitung von Dateien auf dem Server ist sehr oft ziemlich praktisch.
Zum Kapitel springen Informationen
In diesem Tutorial zeige ich, wie man einen konfigurierbaren FTP-Server aufsetzt. Ein Vorteil dieses Ansatzes ist es, verschiedene Benutzerkonten mit verschiedenen Rechten auszustatten. Diese Rechtr können so konfiguriert werden, bestimmte Nutzer oder Gruppen Zugang zu bestimmten Ordnern haben. Je nach Anforderung kann dies sehr gezielt eingestellt werden.
Falls du lediglich einen einfachen Zugriff auf deinen Raspberry Pi via FTP benötigst, ist keine zusätzliche Installation nötig. Der Raspberry Pi verfügt standardmäßig über einen sFTP-Server. Dieser ist verschlüsselt und kann direkt ohne weitere Einrichtung genutzt werden.
Um auf den sFTP-Server zuzugreifen, verwende einfach die Benutzerdaten deines Raspberry Pi. Hier ist ein Beispiel für die Struktur der Zugangsdaten:
Feld | Beispielwert |
---|---|
Host | IP-Adresse deines Raspberry Pis |
Benutzer | pi |
Passwort | raspberry |
Port | 22 |
Solltest du einen FTP-Server für bestimmtere Zwecke nutzen, kann du die folgende Anleitung durchführen.
Zum Kapitel springen Installation
Für meine Zwecke setze ich die Software ProFTPD ein. ProFTPD ist ein vielseitiger, hochkonfigurierbarer FTP-Server, der für seine Leistungsfähigkeit und Sicherheit bekannt ist. Dank einer breiten Palette von Modulen unterstützt er eine Vielzahl von Funktionen und detaillierte Zugriffskontrollen. Totz der Flexibilität ist ProFTPD in einer Grundkonfiguration sehr einfach einzurichten. Diese Eigenschaften machen ProFTPD zu einer beliebten Wahl für Administratoren, die einen zuverlässigen und anpassbaren FTP-Server suchen.
Um ProFTPD und die notwendigen Pakete zu installieren reicht in erster Instanz ein einfacher Befehl in der Konsole:
sudo apt install proftpd-basic
Zum Kapitel springen Konfiguration
Nachdem die Software installiert wurde, werden wir eine eigene Konfigurationsdatei erstellen. Ein Vorteil dieser Methode ist, dass unsere Konfiguration auch nach Softwareaktualisierungen unverändert bleibt. Das bietet uns Sicherheit in der Verwendung. Die Konfigurationsdateien, die wir im Verzeichnis /etc/proftpd/conf.d
ablegen, werden von der Software automatisch erkannt und eingebunden. Dies vereinfacht die Konfiguration und stellt sicher, dass unsere Einstellungen stets berücksichtigt werden.
Wir legen also zunächst eine eigene Konfigurationsdatei an:
sudo nano /etc/proftpd/conf.d/myftp.conf
Die Konfiguration bekommt dann den folgenden Inhalt:
# Das Home-Verzeichnis ~ ist das Stammverzeichnis der Benutzer in den Gruppen myftp und root
DefaultRoot ~ myftp,root
# Ein Login auf den FTP-Server wird nur Benutzern der Gruppe myftp erlaubt
<Limit LOGIN>
DenyGroup !myftp
</Limit>
Speichert die Datei anschließend mit STRG + O
und schließt den Editor mit STRG + X
.
Damit die Änderung und damit auch die Konfiguration wirksam wird, muss der FTP-Server einmal neugestartet werden:
sudo systemctl restart proftpd
Zum Kapitel springen Gruppe “myftp” erstellen
Nachdem lt. unserer Konfiguration nur Benutzer der Gruppe myftp
Zugriff auf den FTP-Server erhalten, werden wir diese Gruppe als nächstes auf unserem Server anlegen.
Produktempfehlungen und -suche in Verbindung mit dem Amazon Partnerprogramm:
¹ Angaben ohne Gewähr. Bei einem Kauf über den Link erhalten wir eine Provision.
sudo addgroup myftp
Zum Kapitel springen Nutzer der Gruppe hinzufügen
Bisher haben wir die Gruppe myftp
. Diese Gruppe hat aber noch gar keine Benutzer. Alle Nutzer, die Zugriff erhalten sollen, müssen jetzt im nächsten Schritt der Gruppe hinzugefügt werden. Bei mir ist das der einzige Nutzer des Servers: makesmart
. Und auch nur dieser soll Zugriff bekommen, deshalb werde ich den Nutzer der Gruppe hinzufügen:
sudo adduser makesmart myftp
Mit diesem Befehl hat der Nutzer makesmart
nun Zugriff auf den FTP-Server. Beim Login landet er direkt in seinem Homeverzeichnis, da wir das in der Konfiguration definiert haben.
Zum Kapitel springen Verbindung herstellen
Für den Zugriff auf einen FTP-Server nutze ich den FileZilla FTP-Client. Dieser ist kostenlos und für alle gängige Plattformen verfügbar.
Jetzt ist es bereits möglich, sich über einen FTP-Client mit dem Server zu verbinden. Als Login Daten für den FTP-Zugang verwendet man dieselben Anmeldedaten, die auch für den Benutzer verwendet werden:
Produktempfehlungen und -suche in Verbindung mit dem Amazon Partnerprogramm:
¹ Angaben ohne Gewähr. Bei einem Kauf über den Link erhalten wir eine Provision.
Feld | Beispielwert |
---|---|
Host | makesmart-server |
Benutzer | makesmart |
Passwort | makesmart |
Port | 21 |
Auch wenn eine Verschlüsselung in einem geschlossenen und lokalen Netzwerk nicht unbedingt notwendig ist, wird im Anschluss noch eine Möglichkeit gezeigt, wie man die Verbindung selbst verschlüsseln kann.
Nach dem Bestätigen der Meldung werden wir eingeloggt und befinden uns im Home-Verzeichnis unseres Nutzers.
/home/makesmart
In dem Verzeichnis können wir Dateien und Ordner ablegen bearbeiten und löschen.
Zum Kapitel springen Verbindung verschlüsseln
Wie bereits erwähnt, ist eine Verschlüsselung im lokalen Netzwerk nicht unbedingt erforderlich. Wer aber auf der sicheren Seite sein möchte oder andere Gründe hat, warum die Verbindung verschlüsselt sein sollte, kann die nachfolgenden Schritte ausführen.
Zum Kapitel springen OpenSSL installieren
sudo apt-get install openssl
Zum Kapitel springen Ordner für die Zertifikate anlegen
sudo mkdir /etc/ssl/localcerts
Zum Kapitel springen Zertifikat erstellen
sudo openssl req -new -x509 -days 365 -nodes -out /etc/ssl/localcerts/proftpd.pem -keyout /etc/ssl/localcerts/proftpd.key
Die beiden Pfade bestimmen den Speicherort und den Namen der Zertifikate
Der Parameter -days 365
bedeutet, dass das Zertifikat ein Jahr lang gültig ist. Nach diesem Zeitraum wird das Zertifikat ungültig und eine Verbindung unter diesem abgelaufenen Zertifikat ist dann nicht mehr möglich. Es müssen dann neue Zertifikatsdateien erstellt werden.
Beim Erstellen des Zertifikats werden ein paar Daten verlangt. Es spielt dabei keine Rolle, ob die Daten der Wahrheit entsprechen, oder nicht. Sie dienen nur zum Füllen der Informationen des Herausgebers des Zertifikats - also ihr.
Zum Kapitel springen Rechte der Zertifikate anpassen
Nachdem die Zertifikate für einen sicheren FTP-Zugang erstellt wurden, ist es wichtig, die Dateiberechtigungen entsprechend anzupassen. Die folgende Befehlszeile setzt die Berechtigungen so, dass nur der Root-Benutzer Lesezugriff auf die Zertifikatsdateien hat:
sudo chmod 600 /etc/ssl/localcerts/proftpd*
Zum Kapitel springen ProFTPD Konfiguration bearbeiten
Nach dem Erstellen der Zertifikate um dem Anpassen der Berechtigungen muss nochmal die Konfigurationsdatei von ProFTPd bearbeitet werden. Dort müssen die erstellen Zertifikate hinterlegt werden um eine verschlüsste Verbindung zu ermöglichen.
sudo nano /etc/proftpd/conf.d/myftp.conf
Fügt am Ende folgende Zeilen ein. Die Zeilen bestimmten die Pfade der Zertifikate und einige Einstellungen zu TLS. Unter anderem wird mit der Zeile TLSRequired on
die Verbindung via TLS erzwungen.
Mit dem setzen dieses Parameters kann keine unverschlüsselte Verbindung mehr hergestellt werden!
<IfModule mod_tls.c>
TLSEngine on
TLSLog /var/log/proftpd/tls.log
TLSProtocol TLSv1.2
TLSRSACertificateFile /etc/ssl/localcerts/proftpd.crt
TLSRSACertificateKeyFile /etc/ssl/localcerts/proftpd.key
TLSVerifyClient off
TLSOptions NoSessionReuseRequired
TLSRequired on
</IfModule>
Wenn alles soweit eingetragen wurde, kann der FTP-Server neugestartet werden um die Änderungen zu übernehmen.
sudo systemctl restart proftpd
Zum Kapitel springen Verschlüsselte Verbindung herstellen
Um eine verschlüsselte Verbindung herzustellen haben sich die Logindaten geändert. Absofort muss der Port 22
verwendet werden, ansonsten wird die Verbindung abgelehnt.
Feld | Beispielwert |
---|---|
Host | makesmart-server |
Benutzer | makesmart |
Passwort | makesmart |
Port | 22 |
Status: Verbinde mit makesmart-server...
Status: Connected to makesmart-server
Status: Eming directory /home/makesmart
Status: Anzeigen des Verzeichnisinhalts für "/home/makesmart" abgeschlossen