ToDo: Kontrolle

Update von Hamster <1.3.23.130 auf >= 1.3.23.140

Von Mathias Behrle (leicht geändert)

Ab dem Hamster 1.3.13.140 (Beta-Version im Vorfeld von Version 2.0.0.0) 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:

    1. Hamster als Client (Zugriff auf externe Server):

      Hier sei wärmstens die Lektüre der SSL-FAQ empfohlen: Hamster und SSL.

      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, mehr dazu siehe in der SSL-FAQ. 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, dass die eingetragenen Zertifikatsspeicher zur Überprüfung aller SSL-Zertifikate verwendet werden – unabhängig davon, wie die SSL-Funktionen aufgerufen wurden (Menü 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.

      Choose Usage: 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)
      

      Choose Verification: 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. 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.

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

    Wenn sicher ist, dass 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
    TunnelOption
    

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