VsFTP installieren: Unterschied zwischen den Versionen
imported>Daniel775 |
imported>Daniel775 |
||
Zeile 639: | Zeile 639: | ||
*Wenn FlashFXP nicht meckert, und den Dienst nicht mit der Meldung "Unable to Load private Key" quittiert, dann sollte Ihr neues Zertifikat jetzt in der Auflistung stehen. [[Bild:Cert_Manager_Cert_Imported.jpg|150px|right]] | *Wenn FlashFXP nicht meckert, und den Dienst nicht mit der Meldung "Unable to Load private Key" quittiert, dann sollte Ihr neues Zertifikat jetzt in der Auflistung stehen. [[Bild:Cert_Manager_Cert_Imported.jpg|150px|right]] | ||
*Schließen Sie die Auflistung mit dem Button "Close" und versuchen nun mit dem Button "Apply" und "Connect" eine Verbindung aufzubauen. [[Bild:Connect_and_view_Cert.jpg|150px|right]] | *Schließen Sie die Auflistung mit dem Button "Close" und versuchen nun mit dem Button "Apply" und "Connect" eine Verbindung aufzubauen. [[Bild:Connect_and_view_Cert.jpg|150px|right]] | ||
. | |||
== Links == | == Links == |
Version vom 1. März 2012, 20:33 Uhr
Ziel
Einen alternativen und flexiblen FTP Dienst auf der Synology Disk Station installieren. Wahlweise mit nur Anonymen Zugang oder Anonymen und Authentifizierten Zugang. Für Benutzer können sogenannte Homeverzeichnisse eingerichtet werden. In diesen Verzeichnissen können sich die Benutzer eingeschränkt oder uneingeschränkt bewegen bzw. mit schreib –und leserechten ausgestattet werden.
Zielgruppe
Anwender die sich mehr Flexibilität bei der Rechte– und Verzeichnisadministration wünschen.
Voraussetzungen/Vorbereitungen
- Die Disk-Station wurde mit einer Firmware durch den Synology Installation Assistenten oder im Station Manager mit der Firmwareaktualisierung bespielt. Näheres zur Installation der Firmware finden Sie hier
- Tipp: Besorgen Sie sich eine aktuelle Firmware von der Hersteller Seite. [Synology Support] Da die .pat Datei auf der Installations-CD nicht mehr aktuell sein könnte.
- Ihre Disk-Station ist mit mindestens einer Festplatte ausgestattet.
- Wenn Ihr FTP Dienst auch aus dem Internet erreichbar sein soll, sollten Sie sich bei den zahlreichen Anbietern eine Dynamische DNS einrichten. Adressen und Informationen gibt es in der Linksammlung hier. Wenn Sie ein DSL-Router Ihr eigen nennen dürfen, sollte auf diesem Router auch die Portweiterleitung mindestens für den Port 21 auf die Ip-Adresse der Disk-Station eingerichtet sein. Nähere Informationen gibt es hier
- Sie haben das Paketverwaltungssystem Ipkg installiert. Was ist Ipkg und wie installiere ich das? Näheres gibt es hier
- Sie haben den Terminaldienst SSH oder Telnet auf Ihrer Disk-Station aktiviert. Was ist SSH oder Telnet? Wie aktiviere ich diesen Dienst? Nun SSH (Secure Shell) stellt eine sichere verschlüsselte Verbindung zu Ihrer Disk-Station her, und ermöglicht somit Befehlseingaben auf Kommandozeilenebene abzusetzen. Dies gilt analog für Telnet, nur das Telnet nicht verschlüsselt verbindet. Wenn Sie einen Router mit Firewall besitzen, dürfte das in Ihrem lokalen Netz kein Sicherheitsproblem darstellen. Aktivieren lassen sich diese Dienste über den Station-Manager im Webbrowser unter Terminal. Oder Sie laden sich unter Synology Patch link
Funktion | Item/File |
---|---|
Telnet aktivieren | EnableTelnet.pat |
Telnet deaktivieren | DisableTelnet.pat |
SSH aktivieren | EnableSSH.pat |
SSH deaktivieren | DisableSSH.pat |
die entsprechenden Dateien runter und fügen diese über den Station-Manager unter Firmwareaktualisierung auf der Disk-Station ein.

Installation
Ohne SSL Unterstützung
Für dieses Beispiel kommt Telnet zum Einsatz. Die Konfiguration der Disk-Station wird mit einem Windows basierten Rechner durchgeführt. Sie melden sich zunächst mit dem Kommandozeileninterpreter Telnet an der Disk-Station an. Diesen rufen Sie über Start>Ausführen auf.
- Syntax:
- telnet <hostname/Ip-Adresse>
telnet 192.168.178.1
- Sie wurden bei der Installation der Firmware aufgefordert ein Passwort anzugeben. Dieses verwenden wir nun zusammen mit dem Benutzernamen „root“ für die Anmeldung.
DiskStation login: root Passwort: *********
- Wenn die Anmeldung an der Disk-Station erfolgreich war, erscheint die sogenannte shell von Linux.
BusyBox v1.1.0 (2008.09.19-12:36+0000) Built-in shell (ash) Enter ´help´ for a list of built-in commands. DiskStation> _
- Zunächst stellen Sie fest, in welchem Verzeichnis Sie sich befinden.
DiskStation> pwd /root DiskStation> _
- Sie befinden sich im Heimatverzeichnis von Root. Sie wechseln nun in das Rootverzeichnis der Synology Station.
DiskStation> cd / DiskStation> _
- Sie erstellen einen Ordner für das Installationspaket von vsFTP.
DiskStation> mkdir Ipk_Packages DiskStation> _
- Sie überprüfen nun ob der Ordner angelegt wurde.
DiskStation> ls bin initrd lost+found sbin var dev ipk_Packages mnt sys var.defaults etc lib proc tmp volume1 etc.defaults linuxrc root usr DiskStation> _
- Sie wechseln in das Verzeichnis “ipk_Packages”
DiskStation> cd ipk_Packages DiskStation> _
- Nun benötigen Sie das begehrte vsFTP Paket und laden dies über das Programm „wget“ aus dem Internet. Zuvor lassen Sie sich noch die Information geben um welches Gerät es sich bei Ihrer Disk-Station handelt.
DiskStation> cat /proc/cpuinfo processor : 0 cpu : 82xx revision : 1.4 (pvr 8081 1014) bogomips : 176.64 chipset : 8245 vendor : Synology Inc. machine : DS-101g+ DiskStation> _
- In diesem Beispiel handelt es sich um eine DS-101g+. Sie besuchen nun mit einem Browser Ihrer Wahl die Seite http://ipkg.nslu2-linux.org/feeds und Sie navigieren entsprechend Ihrer Maschine in optware/…/cross/stable. Dort suchen Sie nach dem vsFTP Paket. Die aktuelle Version für dieses Beispiel ist die Datei „vsftpd_2.3.4-1_powerpc.ipk“
- Wir laden nun die Datei vom Server
DiskStation> wget http://ipkg.nslu2-linux.org/feeds/optware/ds101g/cross/stable/vsftpd_2.3.4-1_powerpc.ipk .... DiskStation> _
- Sie überprüfen ob sich das Paket in dem Verzeichnis befindet.
DiskStation> ls vsftpd_2.3.4-1_powerpc.ipk DiskStation> _
- Sie können jetzt mit der Installation beginnen. Während der Installation werden Sie befragt, ob Sie die vsftpd.conf Datei in ihrem Ursprung belassen wollen. Sie bestätigen mit „n“ für Nein.
DiskStation> ipkg install vsftpd_2.3.4-1_powerpc.ipk Installing vsftpd (2.0.7-1) to /opt/... Installing vsftpd (2.0.7-1) to /opt/... Installing vsftpd (2.0.7-1) to /opt/... Installing vsftpd (2.0.7-1) to /opt/... Installing vsftpd (2.0.7-1) to /opt/... Installing vsftpd (2.0.7-1) to /opt/... Installing vsftpd (2.0.7-1) to /opt/... Installing vsftpd (2.0.7-1) to /opt/... Configuration file '/opt/etc/vsftpd.conf' ==> File on system created by you or by a script. ==> File also in package provided by package maintainer. What would you like to do about it ? Your options are: Y or I : install the package maintainer's version N or O : keep your currently-installed version D : show the differences between the versions (if diff is installed) The default action is to keep your current version. *** vsftpd.conf (Y/I/N/O/D) [default=N] ?Configuring vsftpd You'll need to add line like echo "ftp stream tcp nowait root /opt/sbin/vsftpd /opt/etc/vsftpd.conf" >>/etc/inetd.conf to your /unslung/rc.xinetd file -- see the wiki at http://www.nslu2-linux.org for more info Successfully terminated. DiskStation> _
- Im Idealfall sollte die Installation von vsFTP ohne Fehler abgeschlossen sein.
Mit SSL Unterstützung:
Vorrausetzungen/Vorbereitungen
- Sie haben die Schritte im Abschnitt "ohne SSL Unterstützung" durchgeführt.
- Sie sind mit Telnet oder Putty auf der DS angemeldet.
- Sie haben das OpenSSL Packet installiert (Durchführung wird in diesen Abschnitt erläutert).
- Sie verfügen über das für Ihre Architektur bestimmte vsftpd Binary mit kompilierter SSL-Unterstützung (Quelle: hier). Die Quelle beinhaltet z.Zt. nur die Binary für einen ppc Prozessor !!!
Installation von OpenSSL
Der Paketmanager soll sich zunächst eine aktuelle Liste der verfügbaren Pakete holen.
DiskStation> ipkg update Downloading http://ipkg.nslu2-linux.org/feeds/optware/ds101g/cross/stable/Packages.gz Inflating http://ipkg.nslu2-linux.org/feeds/optware/ds101g/cross/stable/Packages.gz Updated list of available packages in /opt/lib/ipkg/lists/optware Downloading http://ipkg.nslu2-linux.org/feeds/optware/ds101g/cross/stable/Packages.gz Inflating http://ipkg.nslu2-linux.org/feeds/optware/ds101g/cross/stable/Packages.gz Updated list of available packages in /opt/lib/ipkg/lists/cross Successfully terminated.
Sie überprüfen bitte, ob OpenSSL bereits in einer Version installiert ist.
DiskStation> ipkg list_installed openssl openssl - 0.9.7m-5 - Openssl provides the ssl implementation in libraries libcrypto and libssl, and is needed by many other applications and librari Successfully terminated.
Sollte bereits eine Version installiert sein, so können Sie überprüfen lassen, ob aktualisierungen für das OpenSSL Paket sowie für alle anderen Pakete vorliegen.
DiskStation> ipkg upgrade Nothing to be done Successfully terminated. DiskStation>
In diesem Beispiel gibt es keine aktualisierungen.
Wenn Sie aber kein OpenSSL installiert haben, dann weisen Sie den Paketmanager jetzt an das OpenSSL Packet zu laden und anschließend zu installieren.
DiskStation> ipkg install openssl Installing openssl (0.9.7m-5) to /opt/... Downloading http://ipkg.nslu2-linux.org/feeds/optware/ds101g/cross/stable/openssl_0.9.7m-5_powerpc.ipk wget: error while loading shared libraries: libssl.so.0.9.7: cannot open shared object file: No such file or directory Nothing to be done An error ocurred, return value: 22. Collected errors: ipkg_download: ERROR: Command failed with return value 127: `wget --passive-ftp -q -P /opt/ipkg-MH3QKy http://ipkg.nslu2-linux.org/feeds/optware/ds101g/cross/stable/openssl_0.9.7m-5_powerpc.ipk' Failed to download openssl. Perhaps you need to run 'ipkg update'?
Ups. Das kommt davon, wenn man vorher für den Wiki das Paket deinstalliert um eine Installation zu demonstrieren. Ok, wer das gleiche Problem mit einer zerschossenen OpenSSL Installation hat, der darf sich so wie ich das Paket manuell auf die DS laden. Also ich besorg mir unter http://ipkg.nslu2-linux.org/feeds/optware/ds101g/cross/stable für meine Architektur das OpenSSL Paket. Vorher sorge ich für einen Speicherpfad und wechsel in das Verzeichnis.
DiskStation> mkdir -p /ipk_Packages DiskStation> cd /ipk_Packages DiskStation> wget http://ipkg.nslu2-linux.org/feeds/optware/ds101g/cross/stable/openssl_0.9.7m-5_powerpc.ipk --2012-02-23 23:33:39-- http://ipkg.nslu2-linux.org/feeds/optware/ds101g/cross/stable/openssl_0.9.7m-5_powerpc.ipk Resolving ipkg.nslu2-linux.org... 140.211.169.161 Connecting to ipkg.nslu2-linux.org|140.211.169.161|:80... connected. HTTP request sent, awaiting response... 200 OK Length: 768888 (751K) [text/plain] Saving to: `openssl_0.9.7m-5_powerpc.ipk.1' 0K .......... .......... .......... .......... .......... 6% 56.3K 12s 50K .......... .......... .......... .......... .......... 13% 86.7K 10s 100K .......... .......... .......... .......... .......... 19% 101K 8s 150K .......... .......... .......... .......... .......... 26% 276K 6s 200K .......... .......... .......... .......... .......... 33% 142K 5s 250K .......... .......... .......... .......... .......... 39% 141K 4s 300K .......... .......... .......... .......... .......... 46% 269K 3s 350K .......... .......... .......... .......... .......... 53% 141K 3s 400K .......... .......... .......... .......... .......... 59% 141K 3s 450K .......... .......... .......... .......... .......... 66% 280K 2s 500K .......... .......... .......... .......... .......... 73% 277K 1s 550K .......... .......... .......... .......... .......... 79% 284K 1s 600K .......... .......... .......... .......... .......... 86% 283K 1s 650K .......... .......... .......... .......... .......... 93% 281K 0s 700K .......... .......... .......... .......... .......... 99% 4.67M 0s 750K 100% 173K=4.6s 2012-02-23 23:33:44 (162 KB/s) - `openssl_0.9.7m-5_powerpc.ipk.1' saved [768888/768888] DiskStation>
Jetzt die manuelle Installation durchführen. Dabei ist wichtig, dass Sie den Dateinamen wie unter Linux Sytemen üblich Case Sensitive schreiben und die Dateiendung .ipk nicht vergessen.
DiskStation> ipkg install openssl_0.9.7m-5_powerpc.ipk Installing openssl (0.9.7m-5) to /opt/... Installing openssl (0.9.7m-5) to /opt/... Installing openssl (0.9.7m-5) to /opt/... Installing openssl (0.9.7m-5) to /opt/... Installing openssl (0.9.7m-5) to /opt/... Installing openssl (0.9.7m-5) to /opt/... Installing openssl (0.9.7m-5) to /opt/... Installing openssl (0.9.7m-5) to /opt/... Installing openssl (0.9.7m-5) to /opt/... Configuring openssl Successfully terminated. DiskStation>
Vsftpd Upgrade mit SSL Unterstützung
- Speicherpfad anlegen und in Verzeichnis wechseln.
- Vsftpd Archiv mit SSL Unterstützung laden.
- Archiv entpacken und die alte Binary gegen die neue ersetzen.
DiskStation> mkdir -p /opt/vsftpd DiskStation> cd /opt/vsftpd DiskStation> wget http://sourceforge.net/projects/synonassource/files/vsftpd/vsftpd-2.3.5_SSL.tar.gz --2012-02-24 00:04:59-- http://sourceforge.net/projects/synonassource/files/vsftpd/vsftpd-2.3.5_SSL.tar.gz Resolving sourceforge.net... 216.34.181.60 Connecting to sourceforge.net|216.34.181.60|:80... connected. HTTP request sent, awaiting response... 302 Found Location: http://sourceforge.net/projects/synonassource/files/vsftpd/vsftpd-2.3.5_SSL.tar.gz/download [following] --2012-02-24 00:05:00-- http://sourceforge.net/projects/synonassource/files/vsftpd/vsftpd-2.3.5_SSL.tar.gz/download Connecting to sourceforge.net|216.34.181.60|:80... connected. HTTP request sent, awaiting response... 302 Found Location: http://downloads.sourceforge.net/project/synonassource/vsftpd/vsftpd-2.3.5_SSL.tar.gz?r=&ts=1330038300&use_mirror=heanet [following] --2012-02-24 00:05:00-- http://downloads.sourceforge.net/project/synonassource/vsftpd/vsftpd-2.3.5_SSL.tar.gz?r=&ts=1330038300&use_mirror=heanet Resolving downloads.sourceforge.net... 216.34.181.59 Connecting to downloads.sourceforge.net|216.34.181.59|:80... connected. HTTP request sent, awaiting response... 302 Found Location: http://heanet.dl.sourceforge.net/project/synonassource/vsftpd/vsftpd-2.3.5_SSL.tar.gz [following] --2012-02-24 00:05:00-- http://heanet.dl.sourceforge.net/project/synonassource/vsftpd/vsftpd-2.3.5_SSL.tar.gz Resolving heanet.dl.sourceforge.net... 193.1.193.66, 2001:770:18:aa40::c101:c142 Connecting to heanet.dl.sourceforge.net|193.1.193.66|:80... connected. HTTP request sent, awaiting response... 200 OK Length: 55905 (55K) [application/x-gzip] Saving to: `vsftpd-2.3.5_SSL.tar.gz.1' 0K .......... .......... .......... .......... .......... 91% 228K 0s 50K .... 100% 919K=0.2s 2012-02-24 00:05:01 (249 KB/s) - `vsftpd-2.3.5_SSL.tar.gz.1' saved [55905/55905] DiskStation>
Sollte das Archiv nicht auffindbar sein, könnte es sein, dass diese Version nicht mehr aktuell ist. Schauen Sie bitte dann unter http://sourceforge.net/projects/synonassource/files/vsftpd nach der aktuellen Version und passen den Pfad für den Befehl wget (.../vsftpd/[Archiv]) entsprechend an.
Nun entpacken wir das Archiv und ersetzen die alte vsftpd Binary gegen die neue aus dem Archiv. Vorher sollten Sie die alte Binary umbenennen.
DiskStation> mv /opt/sbin/vsftpd /opt/sbin/vsftpd.old DiskStation> tar -xzf vsftpd-2.3.5_SSL.tar.gz DiskStation> ls -l -rwxrwxrwx 1 guest users 18288 Feb 2 2008 COPYING -rwxrwxrwx 1 guest users 312 Feb 2 2008 LICENSE drwxrwxrwx 2 guest users 4096 Feb 24 00:22 ppc -rw-r--r-- 1 Ioot root 55905 Feb 23 21:04 vsftpd-2.3.5_SSL.tar.gz DiskStation>
Bitte wählen Sie entsprechend Ihrer Architektur den Ordner aus der die Binary kopiert werden soll. In diesem Beispiel handelt es sich um eine PowerPC Architektur und deshalb wird die Binary aus dem Ordner ppc kopiert.
DiskStation> cp /opt/vsftpd/ppc/vsftpd /opt/sbin DiskStation>
Konfiguration
Vorbereitungen
Eine Serverinstanz im xinetd einrichten
- Der nächste Schritt fordert erhöhte Konzentration. Denn bei einem Tippfehler könnte es passieren, dass die Disk-Station nicht mehr richtig bootet.
- Der inetd als Superdaemon sollte in der Lage sein den FTP-Server zu starten. Daher muss die Datei /etc/inetd.conf mit einem Editor angepasst werden.
DiskStation> vi /etc/inetd.conf telnet stream tcp nowait root /usr/sbin/telnetd telnetd ~ ~ ~ ~ ~ - /etc/inetd.conf 1/1 100%
- Der Umgang mit dem Editor ist etwas gewöhnungsbedürftig. Aber für eine Zeile die angepasst werden muss völlig ausreichend. Näheres zu dem Vi Editor und seiner Steuerung finden Sie unten in der Linksammlung oder hier.
- Zunächst müssen Sie in den Eingabemodus wechseln um Änderungen an dieser Datei vornehmen zu können. Das machen Sie mit der Tastenkombination <Shift + i>.
- Wenn Sie mit den Pfeiltasten auf das t von telnet navigieren und die <Enter> Taste drücken, fügen Sie eine neue Zeile ein. Sie schreiben bitte folgende Zeile und trennen die Begriffe mit der <Tab> oder <Space> Taste.
ftp stream tcp nowait root /opt/sbin/vsftpd /opt/etc/vsftpd.conf
- Auf Ihrem Bildschirm sollte folgendes angezeigt sein.
ftp stream tcp nowait root /opt/sbin/vsftpd /opt/etc/vsftpd.conf telnet stream tcp nowait root /usr/sbin/telnetd telnetd ~ ~ ~ ~ ~ I /etc/inetd.conf [modified] 1/2 50%
- Wenn dies der Fall ist, müssen Sie den Editormodus verlassen und die Datei mit den Änderungen abspeichern. Dazu drücken Sie die <Esc> Taste. Anschließend die
Tastenkombination < Shift + : > und geben den Befehl wq ein. Das ganze mit der Taste <Enter> abschließen.
- Damit nicht 2 Dienste auf einem Port laufen, müssen Sie sich vergewissern, dass der mitgelieferte FTP Dienst deaktiviert ist. Dazu rufen Sie den Station-Manager im Browser auf, navigieren zu Netzwerkdienste/FTP und überprüfen die Option „FTP Service aktivieren“.
- Sie können jetzt die Disk-Station oder den „inetd“ Prozess neustarten. Mit der zweiten Variante nehmen Sie wieder Telnet zur Hilfe.
DiskStation> ps | grep inetd 1325 root 680 S /usr/sbin/inetd 2766 root 220 S grep inetd DiskStation> _
- In diesem Beispiel ist die ProzessID für den Prozess inetd "1325". Bitte passen Sie Ihre ProzessID entsprechend an und starten inetd neu.
DiskStation> kill –HUP 1325 DiskStation> _
- vsFTP ist nun installiert und sollte bereits laufen. Sie können dies lokal überprüfen.
Syntax:
ftp://<Benutzername>:<Kennwort>@<Ip-Adresse>
- Beispiel:
FEHLER: Für den Benutzer Anonymous ist kein Homeverzeichnis angelegt. Somit kann dieser sich auch nicht mit dem FTP-Server verbinden.

Selbstsigniertes X.509 Zertifikat erstellen
Vorwort:
Damit Sie einem FTP-Client später den verschlüsselten Login bzw. verschlüsselten Datentransfer ermöglichen können, sind mehrere Schritte notwendig.
- Kennwortgeschütztes Schlüsselpaar für ein Root Zertifikat erstellen (Public/Private Key). Mit diesem Schlüssel werden neue Zertifikate an der CA signiert. Dieser Schlüssel sollte verborgen und geheim bleiben.
- Zertifikatsanforderung (CSR) für das Root Zertifikat an die Zertifizierungsinstanz (CA).
- Das X.509 Root Zertifikat an der Zertifizierungsinstanz (CA) erstellen und signieren.
- Neues Schlüsselpaar für das Client Zertifikat erstellen (Public/Private Key). Diesen RSA Schlüssel (Private Key) geben Sie an die FTP-Clients weiter.
- Zertifikatsanforderung (CSR) für das Client Zertifikat an die Zertifizierungsinstanz (CA).
- Das X.509 Client Zertifikat an der Zertifizierungsinstanz (CA) erstellen und signieren. Dieses Zertifikat geben Sie mit dem extrahierten privaten RSA Schlüssel (siehe nächsten Schritt) an die FTP-Clients weiter.
- Privaten RSA Schlüssel in eine .key Datei extrahieren.
- RSA Schlüssel und Zertifikat für vsftp in eine Datei schreiben.
Wenn Sie an der DS nicht angemeldet sind, dann melden Sie sich bitte jetzt z.B. mit Telnet an.
- Syntax:
- telnet <hostname/Ip-Adresse>
telnet 192.168.178.1
DiskStation login: root Passwort: ********* DiskStation>
Sie wechseln bitte in das Verzeichnis /etc/ssl und erstellen den Ordner "newcerts", erstellen die Datei "index.txt" und die Datei "serial". Anschließend erstellen Sie das Schlüsselpaar für das Root Zertifikat in den Ordner /private. Dieser Schlüssel wird mit einem Passwort geschützt. Für dieses Beispiel wird ein RSA Schlüssel mit 2048 Bit erstellt.
DiskStation> cd /etc/ssl DiskStation> mkdir -p newcerts DiskStation> touch index.txt DiskStation> touch serial DiskStation> openssl genrsa -des3 -out private/caRoot.key 2048 Generating RSA private key, 2048 bit long modulus ...............................+++ ................+++ e is 65537 (0x10001) Enter pass phrase for private/caRoot.key: Verifying - Enter pass phrase for private/caRoot.key: DiskStation>
Erstellen Sie die Zertifikatsanforderung für das neue Root Zertifikat. Geben Sie das vom letzten Schritt festgelegte Passwort ein und beantworten Sie die Fragen wie im Beispiel unten. Optional kann hier bei "A challenge password" für jede Verbindungsanforderung noch ein Passwort mitgegeben werden. In diesem Beispiel ist das Kennwort und "An optional company name" leer.
DiskStation> openssl req -new -key private/caRoot.key -out ca.csr Enter pass phrase for private/caRoot.key: You are about to be asked to enter information that will be incorporated into your certificate request. What you are about to enter is what is called a Distinguished Name or a DN. There are quite a few fields but you can leave some blank For some fields there will be a default value, If you enter '.', the field will be left blank. ----- Country Name (2 letter code) [AU]: DE State or Province Name (full name) [Some-State]: NRW Locality Name (eg, city) []: Hamm Organization Name (eg, company) [Internet Widgits Pty Ltd]: Mustermann ltd Organizational Unit Name (eg, section) []: Common Name (eg, YOUR name) []: 192.168.170.2 Email Address []:trashme775@unitybox.de Please enter the following 'extra' attributes to be sent with your certificate request A challenge password []: An optional company name []: DiskStation>
Signieren Sie das neue Root Zertifikat mit z.B. einen Jahr Gültigkeit. Geben Sie dafür das Passwort ein, das Sie zuerst festgelegt haben.
DiskStation> openssl x509 -days 365 -signkey private/caRoot.key -in ca.csr -req -out newcerts/Root.crt Signature ok subject=/C=DE/ST=NRW/L=Hamm/O=Mustermann ltd/CN=192.168.170.2/emailAddress=trashme775@unitybox.de Getting Private key Enter pass phrase for private/caRoot.key: DiskStation>
Erstellen Sie das neue Schlüsselpaar für das Client Zertifikat. Dieses Schlüsselpaar kann, so wie bei dem Root Zertifikat auch, mit einem Passwort belegt werden.
DiskStation> openssl genrsa -out private/caClient.key 2048 Generating RSA private key, 2048 bit long modulus ............+++ .......+++ e is 65537 (0x10001) DiskStation>
Erstellen Sie einen Antrag bzw. einen CSR (Certificate Signing Request) für ein neues Client Zertifikat. Beantworten Sie die Fragen wie im Beispiel für das Root-Zertifikat. Dabei ist wichtig, dass "Common Name" übereinstimmt mit "Common Name" aus dem Root Zertifikat. Optional kann hier auch für jede Verbindungsanfoderung ein Passwort mitgegeben werden (A challenge password). Beim Test mit FlashFXP wurde ich allerdings nie danach gefragt!? Vielleicht wird dieses abgefragt, wenn das Zertifikat für z.B. VPN Verbindungen genutzt wird.
DiskStation> openssl req -new -key private/caClient.key -out client.csr You are about to be asked to enter information that will be incorporated into your certificate request. What you are about to enter is what is called a Distinguished Name or a DN. There are quite a few fields but you can leave some blank For some fields there will be a default value, If you enter '.', the field will be left blank. ----- Country Name (2 letter code) [AU]:DE State or Province Name (full name) [Some-State]:NRW Locality Name (eg, city) []:Hamm Organization Name (eg, company) [Internet Widgits Pty Ltd]:Mustermann ltd Organizational Unit Name (eg, section) []: Common Name (eg, YOUR name) []:192.168.170.2 Email Address []:trashme775@unitybox.de Please enter the following 'extra' attributes to be sent with your certificate request A challenge password []: An optional company name []: DiskStation>
Signieren Sie das neue Client Zertifikat an der CA. Geben Sie dazu das erste festgelegte Passwort ein.
DiskStation> openssl x509 -days 365 -CA newcerts/Root.crt -CAkey private/caRoot.key -set_serial 01 -in client.csr -req -out newcerts/client.pem Signature ok subject=/C=DE/ST=NRW/L=Hamm/O=Mustermann ltd/OU=192.168.170.2/CN=192.168.170.2/e mailAddress=trashme775@unitybox.de Getting CA Private Key Enter pass phrase for private/caRoot.key: DiskStation>
Das Client Zertifikat sollte jetzt erstellt und signiert sein. Schauen wir uns nun mal die Inhalte auf dem Pfad /etc/ssl, /etc/ssl/newcerts und /etc/ssl/private an.
s DiskStation> ls -l -rw-r--r-- 1 root root 1106 Feb 29 23:06 Client.csr -rw-r--r-- 1 root root 1106 Feb 29 22:59 ca.csr -rw-r--r-- 1 root root 0 Feb 29 22:52 index.txt drwxr-xr-x 2 root root 4096 Feb 29 20:08 newcerts drwxr-xr-x 2 root root 4096 Feb 29 23:02 private -rw-r--r-- 1 root root 0 Feb 29 22:52 serial DiskStation> cd newcerts DiskStation> ls -l -rw-r--r-- 1 root root 1306 Feb 29 23:18 Root.crt -rw-r--r-- 1 root root 1314 Feb 29 23:24 client.pem DiskStation> cd ../private DiskStation> ls -l -rw-r--r-- 1 root root 1675 Feb 29 23:18 caClient.key -rw-r--r-- 1 root root 1743 Feb 29 23:16 caRoot.key
Sie erstellen bitte eine private Key Datei, die wir mit der client.pem Datei weiter geben können, um einen FTP Clienten zu authentifizieren. Bitte vorher wieder in das Verzeichnis /etc/ssl wechseln.
DiskStation> cd /etc/ssl DiskStation> openssl rsa -in private/caClient.key -out private/client.key writing RSA key DiskStation>
Damit vsftp das Zertifikat und den RSA Schlüssel aus einer einzigen Datei lesen kann, müssen die client.pem und die caClient.key Datei zusammengefügt werden.
DiskStation> cat newcerts/client.pem private/caClient.key > vsftpd.pem
Schlüssel Dateien bzw. die Schlüssel Datei für das signieren neuer Zertifikte sollte nur vom root lesbar sein. Dazu verändern Sie die Rechte an dem Verzeichnis /private.
DiskStation> chmod 700 private DiskStation> dir -rw-r--r-- 1 root root 1106 Feb 29 23:20 Client.csr -rw-r--r-- 1 root root 1086 Feb 29 23:17 ca.csr -rw-r--r-- 1 root root 0 Feb 29 22:52 index.txt drwxr-xr-x 2 root root 4096 Feb 29 23:23 newcerts drwx------ 2 root root 4096 Feb 29 23:44 private -rw-r--r-- 1 root root 0 Feb 29 22:52 serial -rw-r--r-- 1 root root 2989 Feb 29 23:46 vsftpd.pem
Zu guter letzt kopieren wir die .key und die .pem Datei für den FTP-Clients an einen erreichbaren Ort (z.B. SambaShare /public).
DiskStation> cp newcerts/client.pem /volume1/public DiskStation> cp private/client.key /volume1/public
Wie Sie den FTP-Clienten für SSL-Verschlüsselung einrichten wird im Kapitel "FTP-Client" beschrieben.
Anonymen Zugang einrichten
Zugang mit Benutzer/Passwort Authentifizierung
Zugang mit SSL Zertifikat und PAM
FTP-Client
FlashFXP
Besonderheiten für SSL-Verschlüsselung:
Für dieses Beispiel wird eine Englischsprachige 30 Tage Testversion von FlashFXP benutzt. Diese kann kostenlos hier heruntergeladen werden.
In diesem Abschnitt wird die Einrichtung für einen Verbindungsaufbau zu einem FTP Server Schritt für Schritt erklärt, der eine SSL-Verbindung fordert oder bereithält.
- Wenn Sie das Programm FlashFXP installiert haben, dann starten Sie das Programm bitte.
- Wählen Sie bitte über das Menü "Sites" > "Site Manager".
- Sie klicken bitte auf den Button "New Site". Daraufhin erscheint ein Dialog.
- In die TextBox "Site Name" geben Sie dem Kind ein beliebigen Namen.
- In die TextBox "Ip-Address" geben Sie den Hostnamen oder die Ip-Adresse des FTP-Servers ein.
- In die TextBox "Port" geben Sie den Anschluss des FTP-Servers ein. Standartmäßig ist dies der Port 21.
- Wenn der FTP-Server anonyme Verbindungen zulässt, dann wählen Sie die CheckBox "Anonymous" aus. Lässt der FTP-Server nur bekannte Benutzer zu, dann geben Sie die Benutzerdaten in die TextBox "User Name" und "Password" ein. Näheres zu diesem Thema finden Sie hier.
- Wählen Sie den Karteireiter "SSL" und klicken auf den Button "Cert Manager". Ein neuer Dialog erscheint.
- Klicken Sie auf den Button "Import". Ein weiterer Dialog erscheint.
- Die Combobox "Key Format" müsste in der Vorauswahl "X.509 certifikate for FTP" haben. Wenn nicht, dann wählen Sie dies bitte aus.
- Klicken Sie bitte rechts neben der TextBox "Public Key" auf den "..." Button und suchen mit dem neuen Dialog nach einer .pem Datei. Sie müssen vorher in dem neuen Dialog mit der ComboBox "Dateityp" den Filter auf "Base 64 Encoded Certifikate *.pem" umstellen.
- Klicken Sie bitte rechts neben der TextBox "Private Key" auf den "..." Button und suchen mit dem Dialog nach einer .key Datei für Ihre Verbindung. Wie diese Dateien erstellt werden, wurde bereits im Abschnitt Selbstsigniertes X.509 Zertifikat erstellen erklärt.
- Klicken Sie bitte auf den Button "Import".
- Wenn FlashFXP nicht meckert, und den Dienst nicht mit der Meldung "Unable to Load private Key" quittiert, dann sollte Ihr neues Zertifikat jetzt in der Auflistung stehen.
- Schließen Sie die Auflistung mit dem Button "Close" und versuchen nun mit dem Button "Apply" und "Connect" eine Verbindung aufzubauen.
.
Links
Installation und Konfiguration von vsFTP (deutsch)
Quellen
Glosar
- Binary: Eine unter Linux ausführbare Programmdatei.
- Case Sensitive: Groß und Kleinschreibung ist zu berücksichtigten.
- Certificate Authority: Zertifizierungsinstanz
- Certificate Signing Request: Kurz CSR ist eine Zertifikatsanforderung an die CA (Certificate Authority) der Zertifizierungsinstanz.