Blog
Verschlüsselten sFTP Server auf Linux einrichten
In dieser Aneitung erfahrt ihr wie ihr euren Linux sFTP Server mit Smartphone verbinden könnt. Möchtet ihr Daten zwischen eurem Smartphone und einem Linux System austauschen, geht das am besten über das gute alte File Transfer Protokol. Ihr könnt dann sobald eingerichtet, von eurem Smartphone aus ganz einfach Daten über den cx Dateinexplorer austauschen, kopieren, bearbeiten, löschen, herrunter oder hochladen. Fast wie eine kleine NAS, aber der funktionsumfang ist deutlich geringer. Da wir auch vom Internet aus zugreifen wollen, richten wir das ganze gleich richtig verschlüsselt ein (sFTP)
Zum Dokumente hin und her schieben, Bilder an den Server zu schicken damit diese dann bearbeitet werden können und so weiter ist das erstmal keine schlechte Lösung.
In dieser Anleitung zeige Ich euch, wie Ihr einen sFTP Server einrichtet, und euch mit dem Smartphone darauf via LAN und Internet damit verbindet.
Vorbereitungen
Da wir im Systeverzeichnissen Änderungen vornehmen, müssen wir root Rechte haben, ansonsten dürfen wir bei jeder Änderung immer „sudo“ und unser Passwort eingeben auch wenn wir den befehl mit sudo starten
um root rechte zu erhalten, führt zuerst den Befehl „sudo -i“ aus. Damit habet ihr für diese Sitzung root Rechte.
Einrichtung sFTP Zugriff via LAN
Schritt 1 SSH installieren
Da sFTP über SSH läuft, müssen wir zuerst SSH auf dem Linux Server installieren.
Das macht ihr mit folgendem Befehl:
„apt install ssh“ – bestätigt mit Ihrem Passwort und erlaubt die Installation mit „j“
Schritt 2 SSHD Konfiguration für Benutzergruppen ändern
Nachdem ihr SSH installiert habt müssen wir die Datei „sshd_config“ bearbeiten. Das machen wir indem wir den Befehl „nano /etc/ssh/sshd_config“ ausführen. Navigiert zum Ende der Datei und fügt folgendes hinzu:
Match group sftp
ChrootDirectory /home
X11Forwarding no
AllowTcpForwarding no
ForceCommand internal-sftp

Die obige Konfiguration ermöglicht der sftp-Benutzergruppe den Zugriff auf euer Home-Verzeichnisse über sFTP. Allerdings darf nicht auf die normale SSH-Shell zugegriffen werden. Speichert mit „ctrl+o“ und bestätigt mit der Enter Taste. Beendet nano mit „ctrl+x“
Damit die Änderung wirksam werden müsst ihr den SSH Service neu starten. Das erledigr ihr mit dem Befehl „systemctl restart ssh“
Schritt 4 Eine sFTP Benutzergruppe und Benutzer anlegen
Damit wir einen Login für unsere App später haben müssen wir zuerst Benutzergruppe und einen Benutzer erstellen. Mit dem Befehl „addgroup sftp“ erstellen wir eine sFTP Benutzergruppe
Alle Benutzer die einen sFTP Account haben sollen fügen wir jetzt der sFTP Gruppe hinzu. Das geht wie folgt.
„useradd -m benutzer1 -g sftp„
Als nächsten setzen wir ein Passwort für den eben erstellten benutzer1, das geht wie folgt „passwd benutzer1“
Wählt ein sicheres Passwort aus und bestätigt es.
Der neu erstellte Benutzer hat allerdings noch keine Rechte und kommt garnicht in seinen Home Ordner hinein, damit Benutzer1 auf seinen Ordner zugriff hat, aber auf die anderen nicht erteilen wir die Rechte wie folgt:
„chmod 700 /home/benutzer1/“ Der benutzer1 hat nun Zugriff auf sein Verzeichnis benutzer1/
Auf andere Ordner darf er aber nicht zugreifen, ebenso so dürfen andere sFTP Nutzer nicht auf sein Verzeichnis zugreifen.
Die Einrichtung für den Zugriff über das eigene LAN ist bereits abgeschlossen.
Einrichtung sFTP Zugriff via Internet
Damit der Zugriff über das Internet funktioniert, braucht ihr eine feste IP Adresse, dies haben in der Regel aber die wenigsten, falls ihr einen normalen Internetanschluss habt, besitzt ihr keine feste IP Adresse. Die IP Adresse echselt in der Regel von Zeit zu Zeit und verhindert beim Wechsel den Zugriff auf den sFTP Server.
Um ein Zugriff über eine immer wechselnde IP Adresse zu ermöglichen brauchen wir ein Domain, genauer gesagt eine Domainadresse die eure neue IP verlinkt und automatisch die neue IP übernimmt, sobald sich diese ändert. Das geht über DynDNS. Was das ist erfahrt ihr auch in der Infozentrale unter DynDNS
Bei DynuDNS können wir uns eine Domain erstellen, die wir nachher brauchen und von aussen auf den sFTP Server zuzugreifen. Erstellt euch also einen Account hier und loggt euch anschliessend ein.
Im Control Panel wählt als nächstes den DDNS Service und erstellt euch eine Adresse. Als Host wählt ihr z.B euren Namen, und als Top Level Domain einen belieben Anbieter. Ich habe mir z.B die Adresse mario.hofmann.freeddns.org ausgewählt. Wählt dann anschliessend den Button „Add“ aus.

Im Nächsten Feld befindet Sie sich nun in Ihrer Domainübersicht. Tätigt die Einstellung wie wie folgt, und setzt eure eigene IP Adresse in das Feld IPv4 Adresse. Eure aktuelle IP findet ihr rechts oben, oder über den Service Wie ist meine IP

Als nächstes geht ihr rechts auf den Eintrag „DNS Records“ und checkt ob euch DynDNS bereits einen korrekten A-Rekord eintragt gesetzt hat. Aussehen sollte es so:

Falls kein Eintrag da ist, könntihr oben einen erstellen. „Node Name“ leer lassen, „Type“: ipv4, „TTL“ könnt ihr so lassen,
IPv4 Adresse eure aktuelle IP Adresse, Group könnt leer lassen. Anschliessend mit Add DNS Record übernehmen.
Voila, Ihr habt nun eure eigene Domain die automatisch jedesmal auf eure neue IP Adresse zeigt, sobald diese sich ändert.
Portweiterleitung am Router
Öffnet eurer Router Menu und erstellt dort eine Portweiterleitungsregel die den Port 22 auf die interne IP Adresse eures Linux verweisst. Habt ihr einen HomeServer von uns, wäre das die Adresse 192.168.0.50
Wie ihr solch eine Regel erstellen könnet hängt natürlich immer vom Router ab. Im Internet finden sich viele Anleitungen zu eurem Router, leider kann ich hier keine Anleitung geben da es sehr viele Router Modelle gibt. Wichtig ist, dass Port 22 auf die interne Adresse eures Servers zeigt und als TCP konfiguriert ist. Bei mir sieht das in etwa so aus:

Bei mir hat der Server die Adresse 192.168.0.194. Falls sie ein anderes Gerät bzw einen anderen Server mit einer anderen Adresse haben, achten sie darauf dass die Adresse des Servers fixiert ist.
Firewall Regel im Linux Server erstellen
Öffnet die Konsole und gebt folgendes ein um die Firewall zu aktivieren falls nicht schon getan:
„sudo ufw enable“
Als nächstes erlaubt ihr den Zugriff via Port 22 indem ihr folgendes eingebt: „sudo ufw allow 22“
Zugriff via cx Dateiexplorer
Ladet euch die App cx Datei Exlorer aus dem Playstore oder Aurora Store herrunter und öffnet die App.
Geht danach auf den Reiter „Netzwerk“ in der Mitte und wählt den Blaue Button „Neuer Speicherort“

Fügt die IP Adresse eures Servers für den Zugriff via LAN hinzu und tragt die Daten des Benutzers ein, den wir im sFTP Setup erstellt haben und drücket auf OK. Wichtig dabei ist, dass ihr euch dabei im LAN befindet, und nicht wie bei mir auf dem Screenshot via Mobilfunk eingeloggt seid.

Danach solltet ihr euch im Home Ordner eures Servers befinden.
Geht wieder zurück auf den Reiter Netzwerk und fügt einen neuen Speicherort hinzu.
Tragt nun eure erstellte Domain inkl Benutzer und Passwort ein. Wichig dabei ist dass ihr euch beim Zugriff vom Internet aus nicht in eurem LAN befindet. Ihr müsst mit dem Mobilfunknetz verbunden sein.

Ihr solltet nun wieder mit eurem Home Ordner des Linux Servers verbunden sein.
Mit der App könnt ihr nun Dateien hin und her kopieren, löschen und herrunterladen.

Bei euch wird natürlich nur der Benutzer1 angezeigt, und euer Administrator Konto. Mit diesem könnt ihr euch natürlich auch via sFTP anmelden. Der aktuell eingeloggte Nutzer hat natürlich nur auf sein Benutzerkonto Zugriff. Der Administrator ebenso nur Zugriff auf sein eigenes Konto.
Nun haben wir es endlich geschaft und Ihr kleiner voll verschlüsselter sFTP Server ist eingerichtet.
Habt ihr Fragen? Schickt doch einen Kommentar ab und stellt euere Frage!
Dieser Beitrag hat 2 Kommentare
Pingback: Mit Windows auf Linux sFTP Server zugreifen – yourdevice – your hardware, your choice!
Pingback: Linux Rechner mit Synology NAS verbinden ohne Windows SMB Dienst – yourdevice – your hardware, your choice!