Datum: | ältere Artikel

In diesem Teil werden Alternativen bei den Clients und Serverpaketen vorgestellt. Außerdem wird der sichere verschlüsselte Dateitransfer thematisiert sowie der FXP-Transfer erläutert. Dieser Artikel vertieft das Wissen zu FTP. Er ist keine Voraussetzung für den 3. Teil, sollte aber gerade wegen der Sicherheits-Thematik von Einsteigern nicht ungelesen bleiben.

Zum 1. Teil – Einsteiger

Anzeige

 

Inhalt

Teil 2: Inside FTP

8. Begriffsklärung zu SSH, SCP, SFTP, Secure FTP und FTPS
9. FTP-Server im Teil 2
9.1. Serv-U
9.2. FTP-Server mit Windows-Bordmitteln
9.3. grafischer SFTP-/FTPS-Server mit PSFTPd
9.4. kommandozeilengesteuerter SFTP-Server mit Cygwin
9.5. (S)FTP-Server unter SuSE Linux 9.2: vsftpd
10. FTP-Clients im Teil 2
10.1. SFTP-Clients
10.2. Kommandozeile
10.3. FXP-Transfer
11. Quellen

8. Begriffsklärung zu SSH, SCP, SFTP, Secure FTP und FTPS

In diesen Teil werde ich unter anderem Verschlüsselungs-Techniken beim Datentransfer einbeziehen, deswegen vorab eine Begriffsklärung zu SSH, SCP, SFTP, Secure FTP und FTPS.

SSH steht für Secure Shell und ist sowohl Protokoll (TCP-Port 22) als auch Programm. SSH ermöglicht eine gesicherte verschlüsselte Daten-Verbindung zwischen 2 Rechnern.

SCP steht für Secure Copy und ist wie SSH sowohl Protokoll als auch Programm. Es dient zum Kopieren von Daten zwischen Server und Client über eine gesicherte und verschlüsselte Verbindung per SSH.

SFTP steht für SSH File Transfer Protocol, ist die konsequente Fortführung der SCP-Idee und stellt dem User einen Befehlssatz zur Verfügung, um zwischen 2 Rechnern kommunizieren und Aktionen ausführen zu können. SFTP nutzt SSH zu Verschlüsselung der Authentifizierung, Kommunikation und Datentransfer zwischen 2 Rechnern. Die Nutzung scheint der von FTP ähnlich, dennoch ist SFTP ein komplett eigenständiges Protokoll, das auch anders funktioniert. Es gibt nur eine Verbindung (also keinen getrennten Steuer- und Datenkanal) und es wird nur ein Port genutzt (Standard: Port 22). SFTP unterstützen derzeit nur wenige Clients und Server.

Es gibt auch noch Secure FTP, welches wieder auf FTP aufbaut. Dabei werden die Authentifizierung und der Verzeichniswechsel über einen SSH-Tunnel verschlüsselt, der Rest der Kommunikation inklusive Datentransfer läuft unverschlüsselt ab. Dies hat den Vorteil, dass die beteiligten Rechner nicht in so starkem Maße durch die Verschlüsselung belastet werden, wie es bei einer vollständigen Verschlüsselung der Kommunikation der Fall ist. Man unterscheidet explizites und implizites Secure FTP. Beim impliziten Secure FTP ist die Verschlüsselung per SSL/TLS zwingend bei der Anmeldung an einer Domäne erforderlich, beim expliziten Secure FTP ist auch eine unverschlüsselte Anmeldung an einer Domäne möglich, die Verschlüsselung kann aber per AUTH-Signal vom FTP-Client initialisiert werden. Der Standard-Port für Secure FTP ist Port 990.

So wie es HTTPS gibt, existiert auch FTPS, eine per SSL/TLS gesicherte FTP-Verbindung, mit der verschlüsselte Datenübertragung möglich ist. In Kombination mit Secure FTP wird eine sichere Kommunikation zwischen 2 Rechnern möglich.

Insgesamt unterstützen gerade die sicheren Verbindungsmöglichkeiten nur relativ wenige Server und Clients, und nicht alle verschlüsseln sowohl Kontroll- als auch Datenkanal in der per SSL/TLS gesicherten Variante.

9. FTP-Server – Teil 2

9.1. Serv-U

Serv-U ist ein größeres FTP-Serverpaket. Es bietet viele Features, die freie Pakete nicht bieten: mehrere Domänen, Port-Range bei Passiv-Modus, SSL-Zertifikat-Einbindung, ODBC-Datenbank-Schnittstelle und Fernwartung. Es gibt mehrere Lizenztypen und damit einhergehend Preisstufen. Die Unterschiede sind hier einsehbar: http://www.serv-u.info/produktinfo/editionen.htm. Die Shareware-Version wird für einen ersten Blick in diesem Artikel ausreichend sein, da sie 30 Tage als Corporate-Version läuft.

Den Download finden Sie hier: http://www.serv-u.info/produktinfo/download.php. Die englische Version finden Sie unter http://www.serv-u.com/.
Nach der Installation von Serv-U erfragt der initiale Assistent die Daten für die erste FTP-Domäne und ob der Server als Systemdienst laufen soll. Anschließend kann der FTP-Server konfiguriert werden. Bereits abgefragt wurde, ob Admin-Rechte gewährt werden sollen. Seien Sie vorsichtig und umsichtig mit solchen Einstellungen und setzen Sie Berechtigungen so restriktiv wie möglich.

Unter „Lokaler Server“ kann man den Server komplett starten und stoppen sowie die Startart als Systemdienst konfigurieren. Mit einem Klick auf Lizenz sieht man die Laufzeit, bis das Programm sich in die Personal Edition zurückschaltet. Deinstallieren und Neuinstallieren bringt hier nichts.

Direkt darunter finden Sie globale Einstellungen. In der Karteikarte „Allgemein“ lässt sich der Zugriff domänenübergreifend einschränken. Die Geschwindigkeits-Optionen sollten im Verhältnis zur Bandbreite der Internet-Verbindung gewählt werden. „Unterbinde Permanentverbindungen“ ist nützlich bei häufigem Zugriff per Webbrowser und gleichzeitiger Einschränkung der maximal gleichzeitig eingeloggten User auf dem Server.

Serv-U Administrator
Klick aufs Bild zum Vergrößern

Das SSL-Zertifikat ermöglicht FTP via TLS/SLL (FTPS), d.h. die Authentifizierung und der Steuerkanal sind verschlüsselt, der Datentransfer ist es nicht. Sie müssen selbst ein Zertifikat erzeugen. Die ausführliche integrierte Hilfe hilft Ihnen dabei weiter (Stichwort: SSL-Zertifikat). Das erzeugte Zertifikat ist von Serv-U selbst unterzeichnet, kommt also nicht von einer Zertifizierungsstelle wie VeriSign. Zertifizierungsstellen sind vertrauenswürdige Stellen, die Zertifikate ausgeben, welche garantieren, dass ein öffentlicher Schlüssel zu einer bestimmten Person gehört. Dem Zertifikat wird eine digitale Signatur aufgeprägt, mit der die Integrität und Echtheit des Zertifikats nachgewiesen werden kann.

Unter „Erweitert“ findet sich beispielsweise die Einstellung für einen Port-Range, wenn man den Server im passiven Modus betreiben möchte (siehe Punkt 2.4. im Teil 1).

Unter den globalen Einstellungen findet sich die globale Aktivität. Wenn jemand eingeloggt ist und/oder etwas downloadet, sieht man dies hier. Interessant ist hier das Häkchen oben links für das automatische Aktualisieren, so dass man immer auf den ersten Blick den aktuellen Stand hat. Die Karteikarte Domänen-Protokoll bildet die globale Log-Datei ab. Alle globalen Funktionen bedienen den gesamten FTP-Server. Serv-U kann mehrere Domänen verwalten, das heißt mehrere virtuelle Hosts können verwaltet werden. Jeder Host – respektive jede Domäne – hat einen eigenen Namen und eigene Einstellungen, Logdateien, Benutzer, Gruppen etc.

Klicken Sie eine Domäne an, können Sie Einstellungen setzen, die die Domäne selber betreffen. Dazu gehören beispielsweise Port-Nummer, auf dem der Server lauscht, und ob der gesicherte Zugriff möglich ist.

Serv-U Administrator
Klick aufs Bild zum Vergrößern

In der Karteikarte „Allgemein“ können virtuelle Pfade definiert werden, welche bereits im 1. Teil ausführlich beschrieben wurden.

Nun kann man sich der Benutzerverwaltung widmen. Um „anonymous login“ zu erlauben, muss man einfach den Benutzer „anonymous“ anlegen (Rechtsklick auf Benutzer – Neuer Benutzer, den Anweisungen folgen). Ist ein neuer Nutzer definiert, warten viele Einstellungen auf ihre Konfiguration. Klicken Sie einen User an. In der Karteikarte „Account“ sieht man größtenteils getätigte Einstellungen, die beim Anlegen eines neuen Benutzers erfragt wurden. Hier kann auch ein Account deaktiviert oder mit einer Ablaufzeit versehen werden. Haben Sie Benutzergruppen definiert, können Sie hier den Benutzer einer oder mehreren Gruppen hinzufügen. Das System ist beispielsweise aus dem Active Directory bekannt, leider lassen sich die Mitglieder einer Gruppe in der derzeitigen Version nirgends einsehen.

Serv-U Administrator
Klick aufs Bild zum Vergrößern

In der Karteikarte „Allgemein“ finden sich wichtige Einstellungen für die Konnektivität. Nehmen Sie sich Zeit für diese Einstellungen. Mindestens genauso wichtig ist der „Verzeichniszugriff“. Das Stammverzeichnis ist bereits vorkonfiguriert. Rechts finden Sie die Berechtigungen auf Dateien und Ordner und ob diese Rechte an Unterordner vererbt werden sollen. Es ist kein Problem, auch ein CD-ROM-Laufwerk zum Beispiel freizugeben. Mit dem Hinzufügen von Pfaden in dieser Karteikarte tauchen die Verzeichnisse noch nicht beim User-Login auf. Hier kommen die virtuellen Pfade zur Anwendung, die in den Domänen-Einstellungen konfiguriert werden.

Beispielhaft werde ich das Vorgehen skizzieren. Zuerst definiere ich als Startverzeichnis für einen User das „Eigene Bilder“-Verzeichnis. Zusätzlich füge ich ein weiteres Verzeichnis in der Karteikarte „Verzeichniszugriff“ hinzu, das „Eigene Musik“-Verzeichnis.

Serv-U Administrator
Klick aufs Bild zum Vergrößern

Ein Testlogin zeigt, dass derzeit „nur“ der Inhalt des Verzeichnisses „Eigene Bilder“ angezeigt wird. Das „Eigene Musik“-Verzeichnis ist nicht erreichbar. Nun wechsle ich in die Domänen-Einstellungen in die Karteikarte „Allgemein“ und füge einen neuen virtuellen Pfad hinzu. Der Pfad auf der Festplatte lautet „C:\Dokumente und Einstellungen\%USERNAME%\Eigene Dateien\Eigene Musik“, der virtuelle Pfad lautet „C:\Dokumente und Einstellungen\%USERNAME%\Eigene Dateien\Eigene Bilder“. Damit wird der Ordner „Eigene Musik“ nach dem Login im Stammverzeichnis (Eigene Bilder) angezeigt. Zuletzt wird der Anzeigename definiert. Das System der virtuellen Verzeichnisse wurde bereits ausführlich in Teil 1 unter Punkt 4. erläutert.

Virtuelle Pfade

Nach erneutem Login per FTP-Client wird nun ein Ordner „Programme“ im Windows-Verzeichnisstamm angezeigt.
Wer die Einstellung eines „Ratio“ sucht, wird unter „UL/DL Verhältnis“ fündig. Mit dieser Funktion sind Up- und Download-Verhältnisse definierbar. Damit die Festplatte nicht zugemüllt wird, kann man außerdem ein Speicherplatzlimit definieren.

Sollten Sie Probleme oder Fragen zu diesem Programm haben, zögern Sie nicht, die integrierte ausführliche Hilfe zu nutzen. Außerdem gibt es für Serv-U eine Wissensdatenbank, die viele Fragen beantworten kann.

9.2. FTP-Server mit Windows-Bordmitteln

Auch Windows XP Professional bringt bereits einen FTP-Server mit. Er ist Teil der „Internet Information Services (IIS)“ – hier Version 5.0 – und muss erst nachinstalliert werden. Sie können ihn in Ihrer Windows-Installation per Systemsteuerung – Software – „Windows-Komponenten hinzufügen/entfernen“ – „Internet-Informationsdienste“ installieren. Wählen Sie die Komponenten „FTP-Dienst (File Transfer Protocol)“, „Gemeinsame Dateien“ und „Snap-In Internet-Informationsdienste“ aus und lassen Sie sie installieren. Ggf. benötigen Sie Ihre Windows-CD. Beachten Sie, dass in der Home-Edition dieses Feature fehlt. In der Professional-Edition ist nur eine FTP-Seite erlaubt. Weiterhin ist die Anzahl der Verbindungen auf 10 beschränkt. Dies sind die Unterschiede zu den Server-Versionen von Windows 2000 (IIS 5.0) und 2003 (IIS 6.0).

Es folgt die Konfiguration, die nicht umfangreich ausfällt. Sie finden das MMC-Snap-In „Internet Informationsdienste“ unter Systemsteuerung – Verwaltung. Unter den „FTP-Sites“ gibt es zunächst eine „Standard-FTP-Site“. Wechseln Sie über das Kontextmenü in die Eigenschaften zur Konfiguration. In der Karteikarte „FTP-Site“ vergeben Sie am besten als Beschreibung den DynDNS-Namen oder einen treffenden Namen, der sich am Stammverzeichnis orientiert.

IIS / FTP-Site festlegen
Klick aufs Bild zum Vergrößern

Unter „Sitzungskonten“ ist die anonyme Anmeldung aktiviert. Wer dies möchte, kann alles so lassen. Wenn nicht, dann einfach Haken oben raus. Anmelden kann man sich dann mit Benutzerkonten auf dem Rechner, welche unter Systemsteuerung – Verwaltung – Computerverwaltung – System – Lokale Benutzer und Gruppen – „Benutzer“ konfiguriert werden. Die Installation der ISS legt ein Konto mit Gastrechten an: ISUR_%COMPUTERNAME%. Jeder FTP-User benötigt ein lokales Konto.

Weiter in den Eigenschaften der FTP-Seite: In der Karteikarte „Basisverzeichnis“ können der Stammpfad sowie dazugehörige Rechte (Lesen und Schreiben) definiert werden. Wenn Schreiben erlaubt sein soll in der FTP-Verzeichnisstruktur, muss hier schreibender Zugriff aktiviert werden. Der Standardpfad liegt unter %SYSTEMDRIVE%\inetpub\ftproot\ und wird ebenfalls bei der Installation des IIS-Servers automatisch erstellt.

Nun können Sie die Konfiguration schließen. Virtuelle Verzeichnisse sind auch möglich. Klicken Sie eine FTP-Seite an und wählen Sie im freien rechten Bereich aus dem Kontextmenü „Neu“ – „Virtuelles Verzeichnis“.

Im Snap-In „Internet-Informationsdienste“ kann man den root des Snap-Ins wählen und sich unter „Aktion“ – „Verbinden“ mit einem entfernten FTP-Server auf IIS-Basis verbinden und weitgehend administrieren.

Damit erschöpft sich schon der Funktionsumfang. IIS sollten unbedingt auf einer NTFS-Partition installiert werden, um eine Rechteverwaltung als Werkzeug in der Hand zu haben („Einfache Dateifreigabe“ deaktiviert). Sie sollten sich gut mit der Rechteverwaltung in Windows auskennen, bevor daran zu denken ist, einen FTP-Server auf IIS-Basis ins Internet zu stellen. Bei der Härtung hilft Ihnen auch das Tool „IIS Lockdown„.

9.3 SFTP-/FTPS-Server mit PSFTPd

PSFTPd ist ein umfangreicher FTP-Server, den es als Lite und Corporate Version gibt. Dieser Server beherrscht FTP, FTPS (explizit & implizit) und SFTP (SecureFTP on SSH2), vereint in einer einfach zu bedienenden Oberfläche. Eine Version, die sich als Dienst ins System einbinden lässt, gibt es nach der Registrierung. Die Corporate-Version bietet unter anderem multiple Domänen-Verwaltung und Benutzer-Gruppen.

Die Konfiguration ist denkbar einfach, das Programm macht es einem wirklich leicht. Per Doppelklick auf die Protokolle (wie im folgenden Screenshot zu sehen) können Ports und Zertifikate konfiguriert werden.

PSFTPd
Klick aufs Bild zum Vergrößern

Auch in den anderen Karteikarten gibt es keine Überraschungen. In der Benutzerkonfiguration können virtuelle Pfade per Drag-and-Drop erstellt werden.

Die Oberfläche ist sehr aufgeräumt, was aber auch daran liegt, dass diese Lite-Version nicht den riesigen Funktionsumfang bietet wie beispielsweise Serv-U. Dafür kann sie bei den unterstützten Protokollen punkten.

PSFTPd
Klick aufs Bild zum Vergrößern

9.4. SFTP-Server mit Cygwin

Cygwin bildet eine eigene UNIX-Umgebung auf Windows ab. Mitgeliefert wird hier OpenSSH als SSH-Server, das Package beinhaltet auch gleich einen SFTP-Server. Eine Komplettinstallation von Cygwin ist ordentlich groß, ich werde hier den Weg beschreiben, um die benötigten Komponenten zu installieren. Wer möchte, kann sich noch einen Editor hinzu installieren (nano oder auch vim, die Kategorie-Ansicht empfiehlt sich dann im Installer, welcher gleich näher erläutert wird).

Für den folgenden Guide zu Cygwin benötigen Sie Administrator-Rechte. Außerdem muss Cygwin auf einer NTFS-Partition installiert werden, die eine Rechteverwaltung zulässt.

Erstellen Sie auf Ihrer Festplatte ein Verzeichnis (z.B. Cygwin) – wo ist egal. Speichern Sie die setup.exe aus dem WinTotal-Download darin und starten Sie sie anschließend. Mit Hilfe des Installers können die Installationsdateien direkt aus dem Internet geladen werden. Wählen Sie dafür als Installationsquelle „Install from Internet“. Anschließend wird das Installationsverzeichnis gewählt. Sie können das Verzeichnis nehmen, in dem schon die setup.exe liegt. Als Default Text Type kann „UNIX“ ausgewählt bleiben. Das „Local Package Directory“ kann ebenfalls auf dem Pfad des Installers bleiben. Als Mirror sollte man einen in seiner Nähe nehmen. Genug Uni-Server sind dabei. Bei der Package-Auswahl klicken Sie einmal auf den View-Button, damit die Ansicht auf „Full“ wechselt. Die Packages sind alphabetisch sortiert. Suchen Sie nach „OpenSSH“, klicken auf „Skip“, so dass unter „Binary“ ein Kreuz gesetzt wird.

Cygwin
Klick aufs Bild zum Vergrößern

Nun kann die Installation gestartet werden. Etwa 40 MB werden nun heruntergeladen. Mit diesem Installer kann Cygwin jederzeit modifiziert und deinstalliert werden.

Nach dem ersten Start der Bash Shell von Cygwin werden noch einige Komponenten initialisiert. Bevor dort die Konfiguration von OpenSSH gestartet wird, muss Windows noch vorbereitet werden. Drücken Sie die [Win-Taste]+[Pause] (oder in der Systemsteuerung das Modul „System“), wechseln zur Karteikarte „Erweitert“, klicken auf Umgebungsvariablen, suchen bei den Systemvariablen den PATH-Eintrag und editieren diesen. Fügen Sie an hinterster Stelle ein Semikolon (;) und den Pfad zum bin-Ordner im Cygwin-Installationsverzeichnis hinzu. Bei mir lautet der Pfad C:\Cygwin\bin.

Cygwin
Klick aufs Bild zum Vergrößern

Anschließend wird mit dem Neu-Button eine neue Variable erstellt. Als Namen tragen Sie „CYGWIN“ ein, als Wert tragen Sie „ntsec tty“ ein. Bestätigen und schließen Sie alle geöffneten Windows-Fenster per Klick auf [OK], damit die Änderungen übernommen werden.

Nun geht es in der Bash Shell weiter. Geben Sie ssh-host-config ein. Es startet ein Skript. Wenn Sie nach „privilege seperation“ gefragt werden, antworten Sie mit „yes“. Dasselbe machen Sie bei der Abfrage zum „local user sshd“. Die Idee hinter „privilege seperation“ wird in diesem Artikel erklärt: http://www.symlink.ch/articles/02/05/27/220210.shtml. Dafür wird der User „sshd“ benötigt.

Falls Sie möchten, dass der SSH-Daemon bei jedem Windows-Start verfügbar sein und als Dienst starten soll, beantworten Sie auch die nächste Frage mit „yes“. Dies ist nicht nur für den angedachten SFTP-Server nützlich, sondern kann auch für andere Verbindungen genutzt werden, beispielsweise zur verschlüsselten Übertragung des Mailverkehrs. Anschließend wird die System-Variable „CYGWIN“ erfragt. Geben Sie hier den zuvor definierten Wert „ntsec tty“ ein. Nun müssen noch Rechte restriktiver gesetzt werden. Geben Sie dazu nacheinander in die Konsole ein:

„touch /var/log/sshd.log“
„chown -R system:system /var/log/sshd.log /var/empty /etc/ssh_h*“

Sie erzeugen damit eine Logdatei für den SSH-Daemon und setzen anschließend die Zugriffsrechte für mehrere Dateien so, dass der Benutzer „System“ aus der Benutzergruppe „System“ der Eigentümer wird.

Nun kann der SSH-Daemon gestartet werden (künftig startet er im lokalem derzeitigen User-Account per default). Geben Sie also in der Kommandozeile „cygrunsrv –start sshd“ ein.

Cygwin
Klick aufs Bild zum Vergrößern

Analog dazu kann man den Dienst mit „stop“ statt „start“ wieder stoppen. Auch die Windows-Kommandozeile funktioniert: „net start sshd“. Und natürlich kann man auch den Weg über die Systemsteuerung – Verwaltung – Dienste gehen.

Nun ist ein erster Test-Login möglich. Einfach „ssh localhost“ eingeben. Es empfiehlt sich, einen User mit entsprechend gewünschten Rechten unter Windows anzulegen, den man dann zur Anmeldung von außen nutzen kann. Nun gibt man „ssh-user-config“ in die Konsole ein. Man kann alle Fragen mit „no“ beantworten, kann sich aber auch Schlüssel-Dateien erstellen. Nutzen Sie in diesem Fall eine Verschlüsselung unter SSH2 zum Login an diesem SSH-Server. Das Passwort sollte natürlich nicht einfach zu erraten sein. Bedenken Sie, dass der Zugriff aus dem Internet möglich ist, sofern in Router oder Firewall nicht verboten (z.B. bei ausschließlicher Nutzung im Heimnetzwerk). Jetzt existiert ein Verzeichnis .ssh im Home-Verzeichnis des angemeldeten Users. Geben Sie in die Shell „cd“ und anschließend „ls -al“ ein. Die Rechte auf den Ordner sollten so aussehen: „rwx——„. Falls nicht, gibt man das Kommando „chmod 700 .ssh“ ein.

Nun ist alles startklar. Die Syntax zum Test des Login per ssh lautet: „ssh username:serverip“. Analog dazu per SFTP: „sftp username:serverip“. SSH und SFTP nutzen Port 22 zur Kommunikation. Konfigurieren Sie je nachdem Software- und Netz-Hardware entsprechend. Sie können im Verzeichnis /etc-Verzeichnis in der Datei sshd_config den Port umkonfigurieren. Vorgehen: Server stoppen, „cd /etc“, „nano sshd_config“, Port ändern, speichern, Server starten. Sollte der Zugriff verweigert werden, ändern Sie für die Zeit der Änderung die Rechte per chmod. In jener Datei kann man auch den Zugriff auf bestimmte User beschränken (AllowUsers, siehe Handbuch, Befehl: „man sshd“).

Cygwin hat keine eigene Benutzerverwaltung, sondern greift auf Benutzerkonten von Windows zurück. Es gilt eine große Einschränkung bei Cygwin: Es ist nicht möglich, sich als ein anderer User in der Shell anzumelden als der gerade angemeldete User unter Windows. SSH funktioniert außerdem nur unter dem Benutzerkonto, unter dem Cygwin installiert wurde, da dieser Benutzer in der Datei /etc/passwd definiert ist. Beides kann man umgehen, indem man in besagter Datei sich die Zeile mit den Daten des vorhandenen Benutzers kopiert und den Benutzernamen umträgt. Beispiel:
test:unused_by_nt/2000/xp:0:0:PC\test,S-1-1-11-111111111-222222222-333333333-500:/home/test:/bin/bash

Die 2 Zahlen hinter „by_nt/2000/xp“ sollten auf ungenutzte IDs umgestellt werden, sie kennzeichnen die Gruppen- bzw. Benutzer-ID. Gleiche Gruppen-ID bedeutet auch gleiche Gruppen-Zugehörigkeit. Genauso verhält es sich mit der Benutzer-ID. Zwischen den beiden hinteren Doppelpunkten wird das Home-Verzeichnis definiert, welches vorher ggf. erstellt werden muss.

9.5. (S)FTP-Server unter SuSE Linux 9.2: vsftpd

Natürlich muss man sich bei so einem Artikel für eine Distribution entscheiden. Meine Wahl fiel auf SuSE Linux, da diese Distribution derzeit einfach am weitesten verbreitet ist. Ausgangspunkt ist eine Standard-Installation von SuSE Linux 9.2, in der bereits SSH eingebunden ist. Google gab mir schnell Auskunft, ob es ein RPM-Paket der aktuellen vsftpd-Version für SuSE gibt. Für diesen Artikel war Version 2.0.3 aktuell. Das Paket hört auf den Namen vsftpd-2.0.3-1.1.i586.rpm für SuSE People, welches sich über „YAST“ bequem installieren lässt. vsftpd steht für „very secure ftp daemon“, ist primär auf Sicherheit optimiert und beherrscht auch SFTP.

Jetzt geht’s in der Shell weiter. Es werden root-Rechte benötigt und anschließend muss die vsftpd.conf im /etc-Verzeichnis editiert werden. Geben Sie „vi /etc/vsftpd.conf“ ein. Vor folgenden Zeilen sollte das führende Kommentarzeichen („#“) entfernt werden:

write_enable=YES (Schreibzugriff erlaubt)
ftpd_banner=“Willkommensmeldung bei Login“
local_enable=YES (Lokale Benutzer dürfen sich anmelden)
chroot_local_user=YES (Begrenzung auf vorgegebenes Stammverzeichnis)
Hilfe zur weiteren Konfiguration finden Sie durch Eingabe von „man vsftpd.conf“
Hilfreiche vim-Kommandos beim Editieren:
„i“ – vor aktuellem Zeichen Einfügemodus aktivieren
„ESC“ – Einfügemodus beenden
„o“ – neue Zeile
„dd“ – Zeile löschen
„:wq“ – Speichern und Beenden
„:q!“ – ohne Speichern Beenden

Jetzt kann der vsftp-Daemon aktiv geschaltet werden. Geben Sie „vi /etc/xinetd.d/vsftpd“ ein, ändern Sie die Zeile „disable = yes“ auf „disable = no“ und speichern diese Änderungen. Schauen Sie, dass kein anderer FTP-Server parallel läuft. Dies kann an dieser Stelle in der Kommandozeile mit „nmap localhost“ überprüft werden (wenn FTP gelistet wird – das Paket „nmap“ muss dafür installiert sein). Nun müssen noch die Netzwerkdienste neu gestartet werden. Geben Sie dazu „/etc/init.d/xinetd restart“ ein. Der FTP-Server ist nun aktiv, mit „ftp localhost“ kann dies geprüft werden. Nach dem Login (einfach den derzeit am System angemeldeten User benutzen) kann man prüfen, ob die Begrenzung auf das vorgegebene Stammverzeichnis funktioniert. Dazu: 1. „ls“, 2. „cd ..“, 3. „ls“. Der gleiche Verzeichnisinhalt sollte in beiden Fällen angezeigt werden.

vsftpd
Klick aufs Bild zum Vergrößern

Mit „sftp localhost“ sollte es natürlich ebenfalls funktionieren.

Neue Benutzer und Gruppen lassen sich per „YAST – Sicherheit und Benutzer“ anlegen. Hier der Weg über die Kommandozeile:
Für die Benutzerverwaltung wird zunächst eine neue Gruppe angelegt, in der anschließend die virtuellen FTP-User hineinkommen. Geben Sie in der Shell „groupadd ftpuser“ ein. Nun kann ein neuer Benutzer angelegt werden. Ein Beispiel:

useradd -d /home/tester -g ftpuser -m -s /sbin/false tester
Dabei gilt:
„-d“ = Homeverzeichnis
„-g“ = primäre Gruppenzugehörigkeit
„-m“ = Homeverzeichnis wird gleich mit angelegt, per default unter /home/
„-s“ = Login-Shell (hier benutzt: User kann sich nur am FTP-Server anmelden, nicht am System)

Abgeschlossen wird die Zeile mit dem Accountnamen. Geben Sie anschließend folgende Zeile ein:
passwd username

In diesem Beispiel also gebe ich Folgendes ein: „passwd tester“. Nun kann ich das Passwort definieren. Es gibt für „useradd“ zwar den Parameter -p für eine Passwortdefinition, der Login funktioniert aber zumindest bei der hier verwendeten Distribution damit nicht, da SuSE standardmäßig mit Blowfish verschlüsselt, welches vsftpd nicht entschlüsseln kann. Dies gilt nicht, wenn die Standard-Verschlüsselungsmethode bei der SuSE-Installation geändert wurde.

Es lässt sich auch eine Liste der Usernamen pflegen, die sich am FTP-Server anmelden dürfen. Dieses Verfahren ist zu empfehlen, denn so können andere auf dem System vorhandene Accounts sich nicht anmelden, sofern dies nicht explizit erlaubt wird. Legen Sie eine neue Datei „/etc/vsftpd.user_list“ an und tragen Sie die Benutzernamen untereinander ein, die sich am FTP-Server anmelden dürfen. Am Ende der Datei „/etc/vsftpd.conf“ tragen Sie folgende Zeilen ein:

userlist_deny=NO
userlist_enable=YES
userlist_file=/etc/vsftpd.user_list

Aktivieren und ändern Sie die Zeile „chroot_list_enable“ auf „NO“:
chroot_list_enable=NO
„chroot“ definiert die Verzeichniswurzel für Programme und Logins neu. Dem Benutzer wird im Falle eines FTP-Logins also als root-Pfad „/“ angezeigt.

10. FTP-Clients – Teil 2

10.1. SFTP-Clients

Für den Zugriff auf einen SFTP-Server benötigen wir jetzt noch einen Client, der diese Zugriffsmethode beherrscht. WinSCP ist hier mit die erste Wahl. Das Programm gibt es im WinTotal-Softwarearchiv.

Der Name täuscht, das Programm beherrscht auch SFTP.

WinSCP
Klick aufs Bild zum Vergrößern

Und natürlich beherrscht WinSCP auch SCP-Verbindungen. Im Verbindungsmanager lässt sich die Verbindungsart wählen.

Das im 1. Teil vorgestellte freie FTP-Programm FileZilla beherrscht SFTP ebenfalls. Der Server wird per „sftp://“ + IP oder DNS-Name angesprochen. Der Port lautet 22 per default.

FileZilla
Klick aufs Bild zum Vergrößern

Als Kommandozeilen-Client empfiehlt sich PSFTP aus den PuTTY-Downloads.
Geben Sie open servername ein und authentifizieren sich. Mit dem Befehl „help“ kann man einen Blick auf die zur Verfügung stehenden Kommandos werfen, welche mit einer Funktionsbeschreibung versehen sind.

Für Nutzer des Total Commanders gibt es auch ein SFTP- sowie FTPS-Plug-In auf der Homepage des Programms: http://www.ghisler.com/dplugins.htm. Am Beispiel vom SFTP-Plug-In sei die Benutzung kurz skizziert: Nach der Installation wird das Plug-In automatisch eingebunden, falls nicht, kann man es manuell in der Konfiguration unter Dateisystem-Plugins einbinden. Nun kann man [ALT]+[F1] drücken, „Netzwerkumgebung“ wählen, dort findet man nun „Secure FTP Connections“ und kann mit „Edit connections“ Verbindungen einrichten.

10.2. Windows-Kommandozeile

Die Windows-Kommandozeile beherrscht auch von Haus aus FTP. Klicken Sie auf Start – Ausführen und geben Sie „cmd“ ein, damit sich die Kommandozeile öffnet. Geben Sie „ftp“ ein, schon kann es losgehen. Der Befehlssatz kann mit der Eingabe von „help“ eingesehen werden. Die Benutzung ist denkbar einfach. Eine Session kann so aussehen:

open ftp.servername.de (öffnet Serververbindung, Kurzform nach cmd: „ftp ftp.servername.de“)
username (Benutzername)
password (Passwort)
binary (stellt auf Binary-Transfermodus um, da ich gepackte Dateien transferieren möchte)
cd folder (wechselt ins Verzeichnis „folder“)
get „datei.7z“ (lädt die Datei „datei.7z“ herunter)
put „datei2.7z“ (lädt die Datei „datei2.7z“ hoch)
quit

Dies ist beispielsweise praktisch, wenn man eine Datensicherung per FTP auf einen entfernten Rechner laden möchte. Um noch weniger Arbeit zu haben, kann man das Ganze in eine Batch-Datei packen. Im Pfad der Batchdatei kann man dann eine Textdatei mit den FTP-Kommandos ablegen – in diesem Beispiel vom Benutzernamen bis zum quit in eine Datei „ftptransfer.txt“. In einer Batch kann die Befehlsfolge so aussehen:
ftp -s:ftptransfer.txt ftp.servername.de
Mit dem Parameter -s werden die FTP-Befehle in der Textdatei abgearbeitet.

10.3. FXP-Transfer

FXP (File Exchange Protocol) ist ein Verfahren, um Daten direkt zwischen 2 Servern zu transferieren, ohne den Umweg über einen Client nehmen zu müssen. Dazu dürfen aber beide involvierte FTP-Server dieses Feature nicht verbieten.

FXP ist kein spezielles FTP-Feature, sondern nutzt die Eigenheiten von Aktiv- und Passiv-Modus aus. Zu einem 1. Server sendet ein geeigneter FTP-Client das PASV-Signal und erhält Port und IP-Adresse des Servers. Zu einem 2. Server sendet es den eben erhaltenen Port + IP-Adresse im PORT-Signal, wodurch eine Verbindung zwischen den betroffenen Servern aufgebaut wird. Mittels STOR- (1. Server) bzw. RECV-Signal (2. Server) können Datentransfers nun initialisiert werden.

Ein Client, der FXP beherrscht, ist Staff-FTP.

Die erste Verbindung wird normal aufgebaut, vor der 2. Verbindung muss der im Screenshot markierte Button angeklickt werden.

FXP mit Staff-FTP
Klick aufs Bild zum Vergrößern

Eine Alternative dazu ist FlashFXP.

11. Quellen

http://de.wikipedia.org/wiki/Digitales_Zertifikat
http://www.nickles.de/c/s/14-0011-246-1.htm
http://www.lackas.net/imp/ma/iu/200312/if4NExKJmE93APBe.html
http://de.wikipedia.org/wiki/FXP

Hinterlasse eine Antwort

(wird nicht veröffentlicht)

Nutzungsrichtlinien beachten