Update von Hamster  < 1.3.23.130  auf  >= 1.3.23.140
====================================================

Ab dem Hamster 1.3.13.140 wurde die SSL-Funktionalität direkt in den 
Hamster integriert. Hierdurch wurde eine Änderung der HamFetchMail- 
bzw. HamSendMail-Skriptbefehle nötig, die sehr viele Hamsternutzer 
betreffen wird. 

Was ist zu tun?

1.	Für alle Nutzer, also auch solche, die bisher kein SSL benutzt 
haben:
-----------------------------------------------------------------------

Alle Skripte, die HamFetchMail- bzw. HamSendMail-Befehle nutzen, 
sollten daraufhin überprüft werden, ob bei den
FetchMail-Parametern hinter dem <LeaveOnServer>-Parameter
bzw. den
HamSendMail-Parametern hinter dem <from-select>-Parameter 
Einträge existieren, die angepasst werden müssen.

Die neue Syntax der Befehle lautet:

HamFetchMail( <server>, <port>, <user>, <pass>, <destuser>, <filter>, 
	<LeaveOnServer>, <SSLMode>, <SSLVerify>, <SSLCaFile> )

bzw.

HamSendMail( <server>, <port>, <from-select>, <to-select>, <SSLMode>, 
	<SSLVerify>, <SSLCaFile> )
HamSendMailAuth( <server>, <port>, <user>, <pass>, <from-select>,
	<to-select>, <SSLMode>, <SSLVerify>, <SSLCaFile> )

Wichtig ist nicht nur die neue Anzahl der Parameter, sondern auch das 
neue Parameterformat!

	SSLMode: Integer [0..3]
	SSLVerify: Integer [0..3]
	SSLCaFile: String

d.h. ein Befehl mit vollständig ausgefüllten Parametern sieht ohne 
Nutzung von SSL z.B. folgendermaßen aus:

HamFetchMail( "pop3-server", "110", "user", "pass", "admin", "", 0, 0, 0, "" )

bzw.

HamSendMail( "smtp-server", "25", ".*", ".*", 0, 0, ""  )
oder:
HamSendMailAuth( "smtp-server", "25", "", "", ".*", ".*", 0, 0, "" )




2.	Für Nutzer, die bisher SSL über Stunnel benutzt haben oder jetzt 
SSL nutzen wollen:
-----------------------------------------------------------------------

2.1	Hamster als Client (Zugriff auf externe Server):
----------------------------------------------------

Hier sei wärmstens die Lektüre der SSL-FAQ von Phillip Wendler und 
Martin Germann empfohlen:

	http://www.ximera.de/

oder auch enthalten in der deutschen Hamster-Hilfedatei

	http://zielgra.de/hamster/hamster_hlp_de.zip

Soviel an dieser Stelle:

Um SSL überhaupt nutzen zu können, werden zwei zusätzliche dll-Dateien 
benötigt:

libssl32.dll und libeay32.dll in aktueller Ausführung, d.h. minimal 
erforderlich ist Version openssl-0.9.6b.

Download z.B. unter:
	http://www.ximera.de/openssl_dlls.zip

Die beiden DLLs müssen in das Hamster-Hauptverzeichnis oder ein 
Verzeichnis, das in der Umgebungsvariable %PATH% enthalten ist, kopiert 
werden. Der Hamster findet sie beim Start automatisch. 


Unter Konfiguration/Grundeinstellungen/SSL stehen die 
Grundeinstellungen für SSL:

Es gibt zwei Möglichkeiten von Zertifkatsspeichern:
Unter "Path to certificates for verification" kann ein Verzeichnis 
angegeben werden, in dem alle Zertifikate in Einzeldateien vorliegen. 
Die Namen der Dateien müssen dann dem Format 
"<Hash_des_Zertifikates>.0" entsprechen (s. SSL-FAQ).
Eine alternative Möglichkeit besteht in der Angabe einer pem-Datei 
unter "File with certificates for verification", die alle Zertifikate 
gesammelt enthält.

Beide Möglichkeiten können additiv verwendet werden, nötig ist nur die 
Angabe einer von beiden.

Hier ist zu beachten, daß die eingetragenen Zertifikatsspeicher zur
Überprüfung aller SSL-Zertifikate verwendet werden - unabhängig davon, wie
die SSL-Funktionen aufgerufen wurden (Menu oder Skript).
Individuell abweichende Einstellungen für einzelne Server können jeweils in
deren Einzelkonfiguration vorgenommen bzw. über die SSL-Parameter der 
Skriptbefehle übergeben werden.

Auch müssen alle SSL-Einstellungen für die Einzelserver erneut
aktiviert werden, da die alten Einstellungen nicht übernommen werden.

SSL-Settings:

Chose Usage:
<SSLMode>	Wie soll SSL verwendet werden?
		0 - SSL abgeschaltet (default)
		1 - SSL auf separatem Port (z.B. 465,995,563)
		2 - TLS, wenn möglich (Fallback auf unverschlüsselte Verbindung,
			wenn TLS nicht möglich ist)
		3 - TLS wird erzwungen (auf Standardport z.B. 25,110,119)

Chose Verification:
<SSLVerify>	Steuert die Zertifikatsüberprüfung (entspricht der -v-Option von STunnel).
		0 - Zertifikatsüberprüfung abgeschaltet
		1 - Zertifikatsüberprüfung, falls Zertifikat vorgelegt
		2 - Zertifikatsüberprüfung immer
		3 - Zertifikatsüberprüfung immer und Vergleich des Serverzertifikats mit lokaler Kopie

Verify with File:
<SSLCaFile>	Der Pfad zum Zertifikat für die Überprüfung. Wenn leer, wird
	der in den Grundeinstellungen eingetragene Standard genommen. 



2.2	Hamster als Server (lokale Server):
---------------------------------------

Um SSL mit den lokalen Servern von Hamster verwenden zu können, wird
ein Zertifikat mit geheimem Schlüssel benötigt. Beim Versuch, die lokalen
Server ohne ein solches Schlüsselpaar in Betrieb zu nehmen, beschwert
sich der Hamster mit einer Fehlermeldung und nimmt die lokalen Server
ohne SSL-Unterstützung in Betrieb(!).

Näheres zur Erzeugung und Installation steht in der SSL-FAQ.



4.	Aufräumen alter SSL-Einträge:
-----------------------------------

Wenn sicher ist, daß die alte Methode über Stunnel nicht mehr benötigt 
wird, können folgende Einträge entfernt werden:

aus allen server.inis:
UseSSL
SSL-Port
sTunnelOption

aus der hamster.ini:
SSLWrapperNotClose
SSLProg
SSLStartTimeout
SSLlocalStartTimeout
SSLKeyFile
STunnelOption

und natürlich die
stunnelw.exe und zugehörige Dateien



--
Mathias Behrle, letzte Änderung 23.03.02