v 0.1- 20.08.2006 – 22:55:23
Hier nun mein erstes HOWTO
Vorwort
Dieses HOWTO beschreibt ein Einsatzszenario von gFTP (gftp-2.0.18-r4) in Verbindung mit tlswrap (tlswrap-1.02).
Wer gerne gFTP benutzt, welches sich zum einen visuel durch gtk Unterstützung sowol in KDE als auch unter Gnome schön einbinden lässt, zum anderen relativ viele Optionen, u.a. auch FXP (Server2Server Transfer, ohne Zwischenstop auf dem lokalem Rechner) bietet, für den könnte dieses HOWTO interessant sein.
Was mich bei der alleinigen Verwendung von gFTP gestört hat, war das fehlende Feature, sich nicht nur per TLS einloggen zu können, sondern eben auch den Transfer durch TLS verschlüsseln zu lassen.
Hier schliesst das Paket tlswrap die Lücke, welches sich im Grunde wie ein FTP-Proxy verhält, aber gleichzeitig die TLS Verbindung incl. TLS Transfer für gFTP mit dem jeweiligem FTP-Server aushandelt.
Die Verbindung zu tlswrap auf localhost wird nicht verschlüsselt, was aber bei einer Verbindung innerhalb der selben Maschine verschmerzt werden kann.
Übrigends kann man tlswrap nicht nur mit gFTP verwenden, sondern ist universell einsetzbar, d.h. es kann mit jedem x-beliebigem FTP-Client kombiniert werden.
Eine Lücke wird dennoch nicht geschlossen, der FXP-Transfer funktioniert auch mit tlswrap leider nicht verschlüsselt (zumindest bei meinen bisherigen Versuchen hat es nicht funktioniert. Auch ist diese Info in der README von tlswrap zu finden).
Installation von gFTP
Möchte man sich nun auf einen FTPS-Server einloggen, welcher ausschliesslich TLS-Logins und TLS-Transfers erlaubt, sollte man folgendermassen vorgehen.
Zunächst installieren wir gFTP als User root. Die beiden USE-Flags „gtk ssl“ sollten von Haus aus gesetzt sein. Falls nicht schiebt man die beiden Flags einfach in das File /etc/portage/package.use:
|
Quellcode
|
1
2
3
4
5
6
7
8
9
10
11
|
# echo "net-ftp/gftp gtk ssl" >> /etc/portage/package.use
# emerge -av gftp
#
# These are the packages that would be merged, in order:
#
# Calculating dependencies... done!
# [ebuild R ] net-ftp/gftp-2.0.18-r4 USE="gtk ssl" 1,342 kB
#
# Total size of downloads: 1,342 kB
#
# Would you like to merge these packages? [Yes/No] y
|
Im Startmenü des jeweiligen Desktopmanagers (ich gehe von KDE oder Gnome aus) sollte ein Icon für gFTPangelegt worden sein. Falls nicht legt man sich wie gewohnt ein Icon an oder startet das Tool über das Terminal mit dem simplen Befehl gftp.
Installation von tlswrap
Nun werden wir das Paket tlswrap in unser System schmelzen
|
Quellcode
|
1
2
3
4
5
6
7
8
9
10
|
# emerge -av tlswrap
#
# These are the packages that would be merged, in order:
#
# Calculating dependencies... done!
# [ebuild R ] net-ftp/tlswrap-1.02 0 kB
#
# Total size of downloads: 0 kB
#
# Would you like to merge these packages? [Yes/No] y
|
tlswrap wird per init-Script gestartet. Damit tlswrap jederzeit angesprochen werden kann, fügen wir den Dienst gleich zum Runlevel „default“ hinzu. Somit wird der Dienst auch beim nächsten Reboot automatisch gestartet.
|
Quellcode
|
1
2
3
4
|
# /etc/init.d/tlswrap start
# * Starting tlswrap ... [ ok ]
# rc-update -a tlswrap default
# * tlswrap added to runlevel default
|
Jetzt sollte tlswrap auf Port 7000 lauschen. Dies überprüfen wir kurz mit folgendem Befehl: (sollte nmap nicht vorhanden sein, einfach ein „emerge -av nmap“ in das Terminal jagen
)
|
Quellcode
|
1
2
3
4
5
6
|
# nmap 127.0.0.1
# Starting Nmap 4.01 ( http://www.insecure.org/nmap/ ) at 2006-08-20 21:49 CEST
# Interesting ports on localhost (127.0.0.1):
# (The 1661 ports scanned but not shown below are in state: closed)
# PORT STATE SERVICE
# 7000/tcp open afs3-fileserver
|
Alternativ sollte auch folgendes genügen:
|
Quellcode
|
1
|
netstat -l
|
Konfiguration von gFTP
Möchte man sich nun mit gFTP verbinden muss an dem Client über den Menüpunkt „FTP“ -> „Optionen“ unter dem Reiter „FTP“ als Proxy die IP „127.0.0.1“ mit dem Port „7000“ eingetragen werden. Bei „Typ des ProxyServers“ wählt man im Aufklappmenü das Muster „user@host:port“.
Anschliessen „Anwenden“ und „OK“ klicken. Untenangehängt findet Ihr einen Screenshot für die Settings in gFTP.
Da ja ab jetzt tlswrtap für den FTP-Client die TLS-Verbindung und Übertragung aushandeln soll, gibt man in gFTP selbst jetzt nicht mehr wie gewohnt die IP des FTP-Servers an, sondern die des Localhost, d.h. „127.0.0.1“. In das Feld Port tragen wir „7000“ ein. Als Username wird nun das vormals ausgewähltes Muster auf den eigenen Login übertragen, d.h. man verwendet als Username nun folgendes: user@host:port. Auch hierzu gibt es einen angehängten Screenshot.
Das Voreingestellte Protokoll soll dabei einfach nur „FTP“ sein.
Test
Hat alles funktioniert sollte man sich erfolgreich mit TLS-Verschlüsselung auf den Server verbinden können:
|
Quellcode
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
|
# Suche IP Adresse von 127.0.0.1
# Versuche 127.0.0.1:7000
# Verbindung mit 127.0.0.1 erfolgreich:7000
# 220 TLSWrap FTP Proxy Server (v1.02) ready.
# USER test@xxx.xxx.xxx.xxx:xx@localhost:7000
# 331 Password required for test.
# PASS xxxx
# 230- No dead connections found.
# 230 User test logged in.
# SYST
# 215 UNIX Type: L8
# TYPE I
# 200 Type set to I.
# PWD
# 257 "/" is current directory.
# Lade Verzeichnisliste / von der Gegenstelle (LC_TIME=de_DE@euro)
# PASV
# 227 Entering Passive Mode (127,0,0,1,183,20)
# LIST -aL
# 150 Opening BINARY mode data connection for directory listing using SSL/TLS.
|
Auch der verschlüsselte Transfer sollte nun funktionieren:
|
Quellcode
|
1
2
3
4
5
6
|
# PASV
# 227 Entering Passive Mode (127,0,0,1,132,36)
# RETR /incoming/zoom.bmp
# 150 Opening BINARY mode data connection for /incoming/zoom.bmp (2359350 bytes) using SSL/TLS.
# /incoming/zoom.bmp erfolgreich mit 416,93 KB/s übertragen
# Erfolgreich den Modus von /home/test/Desktop/zoom.bmp nach 644 geändert
|
Weitere Infos zu tlswrap findet Ihr unter /usr/share/doc/tlswrap-1.02/README, per tlswrap –help im Terminal oder unter
http://tlswrap.sunsite.dk/.
Viel Spass beim verschlüsseltem Filetransfer
p.s. verbesserungsvorschläge sind wie immer gerne willkommen