SFTP vorbereiten und nutzen

Zur Übertragung von Daten ist derzeit das FTP-Protokoll sehr weit verbreitet. Da das Internet auch schon vor über 30 Jahren Neuland war, hat man sich seinerzeit über Datensicherheit keine besonders großen Gedanken gemacht, dementsprechend ist FTP in seiner Urform vollständig unverschlüsselt. Zwar lässt sich die Kommunikation mit FTPS immerhin auf dem Kontroll-Kanal durch TLS schützen, die Daten selbst werden jedoch gemeinhin unverschlüsselt übertragen.

Auch heute ist das Internet noch Neuland, jedoch gibt es mittlerweile etablierte und nicht weniger komfortable Möglichkeiten, Daten wirklich sicher zwischen zwei Rechnern zu übertragen. Eine sehr empfehlenswerte Variante ist hierbei SFTP in Kombination mit WinSCP als Client. Da die Übertragung in dieser Variante auf SSH basiert sind sowohl Kommunikation als auch zu übertragende Daten komplett verschlüsselt. daneben begnügt sich SFTP mit einem einzigen Port, was insbesondere die Verwaltung von Firewall-Regeln im Vergleich zu FTP(S) start vereinfacht.

Die Erstellung eines SSH-Schlüssels und die Einrichtung von WinSCP soll nun an dieser Stelle erläutert werden.


SSH-Schlüssel erzeugen

Um einen SSH-Schlüssel für die Nutzung mit SFTP zu erstellen, benötigt man zuerst das kostenlose Tool „puttygen“, es kann unter https://www.chiark.greenend.org.uk/~sgtatham/putty/latest.html in der jeweils aktuellsten Version heruntergeladen werden. Nach dem Starten des Helferleins sollte man lediglich die Bitlänge des Schlüssels auf 4096 setzen

Nur die Länge des Schlüssels sollte angepasst werden um auch strengeren Anforderungen einiger Anbieter gerecht zu werden.

Mit Klick auf den Button „Generate“ beginnt die Erzeugung des Schlüssels. Durch Bewegen der Maus im oberen Bereich des Fensters sorgt man für einen gewissen Zufallsfaktor.

Zur Erstellung des Schlüssels bewegen Sie den Mauszeiger im oberen Kasten, bis sich der Fortschrittsbalken komplett gefüllt hat.

Ist der Vorgang abgeschlossen und das Schlüsselpaar erstellt, sollte man einen aussagekräftigen Kommentar im Feld „Key comment“ vergeben und den Schlüssel mit einem Passwort schützen. Es wird dringend davon abgeraten, Schlüssel ohne Passwort in produktiven Umgebungen einzusetzen.

Ein aussagekräftiger Kommentar erleichtert den Überblick, ein starkes Passwort schützt Ihren Schlüssel vor Missbrauch.

Mit Klick auf „Save private key“ speichert man den privaten Teil des Schlüssels nun sicher ab. Wichtig: Der private Teil eines SSH-Schlüssels ist essentiell und unersetzlich. Geht er verloren gibt es keine Möglichkeit, ihn wiederherzustellen. Den öffentlichen Teil des Schlüssels speichert man ebenfalls über den entsprechenden Button ab. Wer seinen Administratoren die Arbeit erleichtern möchte, legt sich auch den Inhalt des oberen Kastens (den mit dem Buchstabensalat) in einer Text-Datei ab – damit erspart man den Admins die Konvertierung, aber das nur nebenbei.

Um eine neue Verbindung mit diesem Schlüssel zu nutzen, übergibt man den öffentlichen Teil des Schlüssels an den Admin / Serverbetreiber des Zielsystems. Der hinterlegt auf seinem System den Schlüssel und man erhält von ihm einen Hostnamen (hier „sftp_demo.example.org“) und einen Benutzername (hier „demouser“), für den der Schlüssel genutzt werden kann.

Einrichtung des SFTP-Clients

Es existieren div. Client-Programme zur Arbeit mit SFTP, die Einrichtung soll nun am Beispiel von WinSCP erläutert werden. WinSCP kann unter https://winscp.net/eng/download.php kostenfrei heruntergeladen werden. Nach der Installation öffnet sich mit dem Start des Programms mit der Verbindungsübersicht (die nach einer Neuinstallation verständlicherweise noch leer ist).

Als Übertragungsprotokoll wählt man nun also SFTP aus, Rechnername und Benutzername haben Sie von Ihrem Anbieter erhalten, tragen Sie sie entsprechend ein. Es fehlt nun noch der Hinweis für WinSCP, welcher Schlüssel genutzt werden soll. Klicken Sie dazu auf den Button „Erweitert“. Wählen Sie im neu erscheinenden Fenster links die Option „Authentifizierung“. Hinterlegen Sie hier im Feld „Datei mit privatem Schlüssel“ den zuvor erzeugten Schlüssel.

Durch Klick auf „…“ am Ende des Eingabefeldes kann man bequem zur privaten Schlüsseldatei navigieren.

Schließen Sie das Fenster mit Klick auf „OK“, sie gelangen nun wieder in die Verbindungsübersicht. Sie können die Verbindung nun für spätere Nutzungen speichern.

Werden Verbindungen wiederholt genutzt, empfiehlt sich das Speichern des Verbindungsziels

Mit Klick auf „Anmelden“ starten Sie den Verbindungsaufbau.

Hinweisfenster bei der ersten Verbindung mit einem unbekannten Server.

Bei der ersten Verbindung werden Sie darauf hingewiesen, dass der vom Server gesendete Schlüssel nun lokal gespeichert und bei späteren Verbindungen geprüft wird. Damit wird sichergestellt, dass Sie sich auch zukünftig immer mit dem korrekten Server verbinden. Bestätigen Sie den Hinweis. Im Anschluss werden Sie aufgefordert, das Passwort einzugeben, welches Sie beim Erstellen des Schlüssels vergeben haben.

Nach der Eingabe des Passworts und der Bestätigung mit „OK“ stellt WinSCP die Verbindung mit dem Zielsystem her und wechselt in die Commander-Ansicht.

Commander-Ansicht von WinSCP nach erfolgreichem Verbindungsaufbau.

Sie können nun wie gewohnt auf dem Zielsystem arbeiten.

Noch ein abschließendes Wort zu FileZilla: Nach wie vor nutzen viele Anwender FileZilla als FTP-Client. Wir raten explizit von diesem Programm ab, da Zugangsdaten ohne weitere Konfiguration im Klartext abgespeichert und damit relativ einfach ausgespäht und missbraucht werden können. Obgleich das Risiko bei der Arbeit mit SFTP etwas gemindert ist, ist ein derartig sorgloser Umgang mit sensiblen Daten abzulehnen.

Codebereiche in unserem Blog.

Codebereiche lassen sich in unserem Blog wie folgt einbinden:

<pre lang="LANGUAGE">
< /pre>

Folgende Sprachen sind fuer das Syntax Highlightning moeglich:

4cs
6502acme
6502kickass
6502tasm
68000devpac
abap
actionscript
actionscript3
ada
algol68
apache
applescript
apt_sources
asm
asp
autoconf
autohotkey
autoit
avisynth
awk
bascomavr
bash
basic4gl
bf
bibtex
blitzbasic
bnf
boo
c
caddcl
cadlisp
cfdg
cfm
chaiscript
cil
clojure
cmake
cobol
coffeescript
cpp-qt
cpp
csharp
css
cuesheet
c_loadrunner
c_mac
d
dcs
delphi
diff
div
dos
dot
e
ecmascript
eiffel
email
epc
erlang
euphoria
f1
falcon
fo
fortran
freebasic
fsharp
gambas
gdb
genero
genie
gettext
glsl
gml
gnuplot
go
groovy
gwbasic
haskell
hicest
hq9plus
html4strict
html5
icon
idl
ini
inno
intercal
io
j
java
java5
javascript
jquery
kixtart
klonec
klonecpp
langs
latex
lb
lisp
llvm
locobasic
logtalk
lolcode
lotusformulas
lotusscript
lscript
lsl2
lua
m68k
magiksf
make
mapbasic
matlab
mirc
mmix
modula2
modula3
mpasm
mxml
mysql
newlisp
nsis
oberon2
objc
objeck
ocaml-brief
ocaml
oobas
oracle11
oracle8
oxygene
oz
pascal
pcre
per
perl
perl6
pf
php-brief
php
pic16
pike
pixelbender
pli
plsql
postgresql
povray
powerbuilder
powershell
proftpd
progress
prolog
properties
providex
purebasic
pycon
python
q
qbasic
rails
rebol
reg
robots
rpmspec
rsplus
ruby
sas
scala
scheme
scilab
sdlbasic
smalltalk
smarty
sql
systemverilog
tcl
teraterm
text
thinbasic
tsql
typoscript
unicon
uscript
vala
vb
vbnet
verilog
vhdl
vim
visualfoxpro
visualprolog
whitespace
whois
winbatch
xbasic
xml
xorg_conf
xpp
yaml
z80
Zxbasic

Etwas redundant, die Info, aber so wird’s zumindest nicht uebersehen 😉

Piwik – Einstellungen/Users Tab entfernen fuer SiteAdmins

in plugins/UsersManager/UsersManager.php
in der Methode addMenu() bei Piwik_AddAdminMenu(‚UsersManager_MenuUsers‘, …
Piwik::isUserHasSomeAdminAccess() in Piwik::isUserIsSuperUser() austauschen.

Damit ist das Menue nur fuer den „echten“ admin sichtbar.

Um den Content selbst noch zu schuetzen, in plugins/UsersManager/Controller.php in der Methode index() die Pruefung (count($IdSitesAdmin) > 0) um &&
Piwik::isUserIsSuperUser() erweitern.

Newsletterversand @-Zeichen bei AppleMail

Es gibt ein Phänomen beim Newsletterversand und AppleMail:

E-Mail Adressen mit @-Zeichen werden zwar als Links verarbeitet allerdings fehlt die Hand als Cursor.
Somit ist für den Empfänger schlecht ersichtlich ob dies nun ein E-Maillink ist oder nicht.
Bis jetzt gibt es nur die Lösung, das @-Zeichen mit (at) zu umgehen.
Nicht schön aber so ist weingstens gewährleistet, dass jeder Empfänger die Hand als Cursor sieht.