Der News- und Mailserver Hamster unterstützt SSL/TLS in der aktuellen Classic-Version direkt. Der hier beschriebene Ansatz sollte daher bei Verwendung einer Hamster-Version ab 2.0.0.0 (oder ab Beta 1.3.23.140) nicht mehr verwendet werden. Bitte lesen Sie hierzu die Hinweise zur Benutzung von Hamster mit SSL/TLS.
Stunnel (sprich: S-Tunnel) ist ein Programm, mit dem man TCP-Verbindungen mit SSL (Secure Sockets Layer) verschlüsseln kann. Dieser "Tunnel" ermöglich die Kommunikation zwischen einem SSL-Server und Programmen, die SSL nicht beherrschen.
Stunnel ist freie Software; der Quelltext wird unter der GNU General Public License veröffentlicht. Weitere Information über das Programm gibt es auf Homepage von Stunnel: http://stunnel.mirt.net/
Im Folgenden versuche ich zu erklären, wie Stunnel eine verschlüsselte Pop3-Verbindung herstellt:

Beispiel einer unverschlüsselten Pop3-Verbindung:
Hamster holt als Client die Mails mit einer unverschlüsselten
Pop3-Verbindung vom Mailserver ab. Gleichzeitig arbeitet Hamster als
lokaler Mailserver. Damit der Datenaustausch zwischen Client und Server
funktioniert, wird jedem Datenpaket die Information mitgegeben, wo es
landen soll (im TCP-Header). Diese Information besteht aus der
Adresse des Zielrechners und einem Port.
Durch Verwendung verschiedener Ports können gleichzeitig verschiedene
Dienste verwendet werden, zum Beispiel News, Http und Pop3. Portnummern
können im Bereich von 0 bis 65535 liegen. Die Ports 0 bis 1024 sind
reserviert und dürfen nicht für selbstdefinierte Dienste genutzt
werden.
Einige Beispiele für reservierte Portnummern:
| Port | unverschlüsselte Protokolle | Port | verschlüsselt Protokolle |
| 80 | HTTP (World Wide Web) | 443 | HTTPS (HTTP über TLS/SSL) |
| 119 | NNTP (News) | 563 | NNTPS (NNTP über TLS/SSL) |
| 25 | SMTP (E-Mail senden) | 465 | SMTPS (SMTP über TLS/SSL) |
| 110 | POP3 (E-Mail holen) | 995 | POP3S (POP3 über TLS/SSL) |

Beispiel einer verschlüsselten Pop3-Verbindung:
Hamster verbindet sich nicht mehr direkt mit dem POP3 Server, sondern mit
dem lokalen Port 1100. Stunnel verschlüsselt die Daten und leitet sie an
den Port 995 des Pop3S-Servers weiter. Gleichzeitig empfängt Stunnel die
verschlüsselten Mails, decodiert sie und leitet sie an Hamster weiter.
Es wird benötigt:
Einrichten eines neuen lokalen Pop3-Mailservers über das Menü:
File -- Configuration -- Mailserver -- [POP3] Load mails from (Server,
Port) -- Add
Wichtig: Es darf nicht "127.0.0.1,pop3" eingestellt sein! Die Portnummer ist hierbei frei wählbar, in unserem Beispiel wählen wir 1100. Der eingestellte Port sollte allerdings von keinem anderen Programm verwendet werden. Um Konflikte zu vermeiden, sollten folgende Ports auf keinen Fall verwendet werden: 0-1024, 3128, 4000, 4444, 8000, 8008, 8080
Wird nur ein Mailserver über SSL abgefragt, so man
Passwort und Usernamen für den SSL-Mailserver unter
File -- Configuration -- Passwords -- 127.0.0.1
eintragen.
Tip: Sollen mehrere SSL-Mailserver gleichzeitig über ein Skript abgefragt werden, so kann man die Spezial-Passwort-Kombinationen $1, $2 usw. verwenden. In einem Hamsterskript sieht das dann beispielsweise so aus:
# SSL-Verbindung zu Web.de über lokalen Port 1100 execute( HamPath+"stunnel.exe -c -r pop3.web.de:995 -d 1100","",1,false ) # SSL-Verbindung zu GMX über lokalen Port 1101 execute( HamPath+"stunnel.exe -c -r pop.gmx.net:995 -d 1101","",1,false ) # 7 Sekunden warten sleep( 7000 ) # Mails von Web.de abholen HamFetchMail( "127.0.0.1", "1100", "$1", "", "" ) # Mails von GMX abholen HamFetchMail( "127.0.0.1", "1101", "$2", "", "" )
Der Start von Stunnel muß nach dem Verbindungsaufbau mit dem Netz erfolgen. Die Syntax lautet:
stunnel.exe -c -r servername:995 -d 1100
servername ist der Name des POP3S-Servers (z.B.
pop3.web.de)
1100 bezeichnet den lokalen Port und muß mit den Einstellungen
von Hamster übereinstimmen
Vor dem Abholen der Mails (siehe Bild) bitte erst warten, bis Stunnel die SSL-Verbindung mit dem Mailserver hergestellt hat. (Das dauert bei mir incl. Laden des Programms etwa 5 Sekunden)
Manuell kann Stunnel mit der Tastenkombination [Strg] + [c] beendet werden.
Ein einfaches Beispielskript zum automatischen Mailabruf über eine verschlüsselte Verbindung könnte folgendermaßen aussehen:
#!hs2
#!load hamster.hsm
# Make sure, that Hamster is new enough to run this script
HamRequireVersion( "1.3.18.0", True )
#-------------------------------------------------------------------------------------
# Skript zum automatischen Mailabruf über eine SSL-Verbindung mit Stunnel
#-------------------------------------------------------------------------------------
# Einstellungen
var( $POP3S_SERVERNAME, $RASDIAL_CONNECTION, $RASDIAL_USERNAME, $RASDIAL_PASSWORD )
$POP3S_SERVERNAME = "" # Name des Pop3S-Servers (muß SSL unterstützen)
$RASDIAL_CONNECTION = "" # Name der DFÜ Verbindung; "" = Keine Einwahl
$RASDIAL_USERNAME = "" # Username für DFÜ Verbindung; "" = Hamster-Einstellung wird verwendet
$RASDIAL_PASSWORD = "" # Passwort für DFÜ Verbindung; "" = Hamster-Einstellung wird verwendet
#-------------------------------------------------------------------------------------
# Verbinden
var( $RASERR, $AUTOCONNECT)
$AUTOCONNECT = false
if( !RasIsConnected && $RASDIAL_CONNECTION<>"" )
print( "Verbinden ..." )
$AUTOCONNECT = true
$RASERR = HamRasDial( $RASDIAL_CONNECTION, $RASDIAL_USERNAME, $RASDIAL_PASSWORD )
if( $RASERR<>0 )
Error( "Fehler bei der DFÜ-Verbindung ", $RASDIAL_CONNECTION, "! DFÜ-Fehler Code=", $RASERR )
endif
endif
# Starten von Stunnel (den lokalen Port 995 ('-d 995') bei Bedarf anpassen)
print( "SSL Verbindung mit "+$POP3S_SERVERNAME+" wird hergestellt ..." )
execute( HamPath+"stunnel.exe -c -r "+$POP3S_SERVERNAME+":995 -d 995","",1,false )
# 7 Sekunden warten (Bei Bedarf länger)
sleep( 7000 )
# Mails mit Stunnel abholen (den lokalen Port 995 bei Bedarf anpassen)
print( "Mails werden verschlüsselt empfangen ..." )
HamFetchMail( "127.0.0.1", "0995", "", "", "" )
# Wait until all transfer-threads have finished
HamWaitIdle
print( "Fertig!" )
# Hanging up
if( $AUTOCONNECT = true )
print( "Verbindung wird getrennt ..." )
HamRasHangup
endif
# The End.
quit
Damit das Skript funktioniert, muß stunnel.exe im Arbeitsverzeichnis von Hamster liegen.
Hinweis: Mit diesem Beispielskript werden nur Emails über die verschlüsselte Verbindung abgerufen, Mailversand sowie das Abholen und Versenden von Newspostings erfolgt nicht.
Zuletzt geändert am 27.12.2002 von Martin Germann