SSL Zertifikate einrichten (Froxlor)

  • Hallo,


    Ich würde gerne ein SSL Zertifikat auf meinem Server einrichten, damit der verschlüsselte Abrug von Email möglich wird. Gerne würde ich dabei auch https bereitstellen, was für mich jedoch vorerst geringere bewandnis hat.


    Gelesen habe ich bereits den Artikel in der Necup Wiki Erstellung von einem SSL-Zertifikat – netcup Wiki .


    Daraus geht zwar hervor, wie man sich selbst ein Zertifikat erstellt und dieses selbst unterzeichnet, jedoch nur unzureichend, an welcher Stelle des Servers dieses Zertifikat zu liegen hat und wie es genau zu werden ist.
    Bei meinem letzten Versuch dies einzurichten auf einem anderen Server endete das ganze dabei, dass ich 4 Datein in meinem /home/root verzeichnis liegen hatte, die hießen:


    loeber-zweirad.de.cert
    loeber-zweirad.de.csr
    loeber-zweirad.de.key
    privkey.pem


    (loeber-zweirad.de war und ist der domain name der wichtigsten Website des Servers.)
    Die Frage bloß, was stell ich nun konkret mit diesen Datein an.


    Ich vertrete eigentlich die Meinung, das man wenn man von etwas absolut keine Ahnung hat es auch besser lassen soll.
    Leider bekomme ich vom nichts tun kein funktionales SSL, also bin ich malwieder hier im Forum gelandet.


    Nun hier meine Fragen zusammengefasst:

    • Wie erstelle ich das Zertifikat korrekt (Ich schätze wie im Wiki eintrag) und wo hat dieses auf meinem Server zu liegen?
    • Wo liegen die Config datein die ich editieren muss für SSL Support bei IMAP und SMTP (ggf auch für POP3)?
    • In Froxlor muss ich entsprechende SSL Domain für https einrichten, gibt es hier noch etwas wieters zu beachten?
    • Ein selbst signiertes Zertifikat ruft warn meldungen hevor bei HTTPS, ist meine Verbindung gennoch geschützt?
    • Ein billiges Zertifikat von Netcup (Ich meien 17€ im Jahr...) würde diese Meldungen benfalls hervorrufen?

    Das sind so einige Fragen, ich hoffe mir könnten hier zumindest einige davon beantwortet werden. Bisher wurde ich hier jedoch nur positiv überrascht! ;)
    Vielen Dank im Vorraus!

  • 1. Wie erstelle ich das Zertifikat korrekt (Ich schätze wie im Wiki eintrag) und wo hat dieses auf meinem Server zu liegen?
    Das SSL Zertifikat sollte in der Regel im folgenden Verzeichnis liegen "/etc/ssl/".
    Die Berechtigungen für den Private Key (.key Datei) bitte auf 400 setzen -> chmod 0400 /etc/ssl/loeber-zweirad.de.key


    Ein selbstsigniertes Zertifikat kannst du wie im Wiki beschrieben erstellen


    2. Wo liegen die Config datein die ich editieren muss für SSL Support bei IMAP und SMTP (ggf auch für POP3)?
    /etc/postfix/main.cf
    /etc/dovecot/dovecot.conf/10-ssl.xyz (habe die dateiendung nicht im kopf)



    3. In Froxlor muss ich entsprechende SSL Domain für https einrichten, gibt es hier noch etwas wieters zu beachten?
    Du musst deine IP Adresse nochmals unter IP und Ports im Froxlor Panel hinzufügen und die Einstellungen wie bei der anderen IP wählen, mit dem Unterschied dass du bei Port 443 einträgst und die Option SSL aktivierst.
    Anschließend noch den Apache Mod für SSL aktivieren (a2enmod ssl)


    4. Ein selbst signiertes Zertifikat ruft warn meldungen hevor bei HTTPS, ist meine Verbindung gennoch geschützt?
    Ja, ist geschützt. Es ist lediglich das Zertifikat nicht zertifiziert :D


    5. Ein billiges Zertifikat von Netcup (Ich meien 17€ im Jahr...) würde diese Meldungen benfalls hervorrufen?
    Nein



    lg.
    Alex

    [size=10]

    "This is Linux land. In silent nights you can hear the Windows machines rebooting."


  • Quote

    • Wie erstelle ich das Zertifikat korrekt (Ich schätze wie im Wiki eintrag) und wo hat dieses auf meinem Server zu liegen?
    • Wo liegen die Config datein die ich editieren muss für SSL Support bei IMAP und SMTP (ggf auch für POP3)?
    • In Froxlor muss ich entsprechende SSL Domain für https einrichten, gibt es hier noch etwas wieters zu beachten?
    • Ein selbst signiertes Zertifikat ruft warn meldungen hevor bei HTTPS, ist meine Verbindung gennoch geschützt?
    • Ein billiges Zertifikat von Netcup (Ich meien 17€ im Jahr...) würde diese Meldungen benfalls hervorrufen?

    1. Wie du das Zertifikat erstellst, steht im Wiki oder ggf auf anderen Seiten im Internet. Wo die Dateien vom Zertifikat liegen ist total egal. Es muss nur der Webserver leserechte darauf haben
    2. /etc/postfix/main.cf
    3. SSL Ip mit Port 443 erstellen und dann unten die Pfade zum Zertifikat anpassen
    4. Ja, Verbindung ist trotzdem verschlüsselt
    5. ein gekauftes Zertifikat wird in der Regel ohne Warnung akzeptiert. Als kostenlose Alternative gibt es noch startssl.com. Die Zertifikate werden auch von den meisten Browsern akzeptiert





    edit: ahhhh viel zu spät


  • Ich schätze mal ich muss die Kommentare von den anderen Zeilen ebenfalls entfernen. Leider habe ich keine Ahnung was diese genau bewirken. Am liebsten wäre es mir, wenn jemand mir einfach den Teil fertig schreiben würde und ich einfach über copy paste das ganze zum laufen bringe.
    Wie es aussieht scheinen jedoch bereits Zertifikate vorinstalliert zu sein... ?(
    Was mich mometan mit am meisten verwirrt sind die unterschiedlichen Dateiendungen, mal ende ein Zertifikat auf .csr oder .cert und dann doch wieder auf .pem.
    Genauso sind ja im Vorang wie in der Wiki beschriebe zwei .key files entstanden. loeber-zweirad.de.key sowieo privatekey.pem.


    Wäre nett wenn mich da einer aufklären würde, damit auch den Mechanismus der dahinter steckt einermaßen nachvollziehen kann.

  • Was diese Zeilen bewirken, kann man in der Dokumentation von Postfix nachlesen: Postfix TLS Support (SMTP Server specific settings & SMTP Client specific settings)


    Die Dateiendungen sind bei Zertifikaten tatsächlich nicht sehr konsistent, letztlich spielen sie auch keine Rolle. Deshalb auf verständliche Benennung achten...

  • Hallo,


    Habe nun etwas herum probiert und HTTPs problemlos zum laufen gebracht. Habe mir auch gleich ein Zertifikat von StartSSL geholt, was auch Problemlos die Warnmeldung beseigt hat! Danke für den Tipp!


    Mit den Emails hapert es jedoch etwas... Zur Einstellung von Postifx habe ich derart viele Tutorials gefunden, und alle gehen einen anderen Weg!


    Angefangen bei der Netcup Wiki, die nur zwei zeilen ändert und .crt und .key einfügt, über welche (Wie es auch in der standart konfiguration der fall ist) bei beiden Parameern die .key datei einfügen, bis hin zu dieser komplexen erweiterung der konfig datei:


    Code
    # TLS parameterssmtpd_tls_key_file = /etc/ssl/private/DOMAIN.keysmtpd_tls_cert_file = /etc/ssl/private/DOMAIN.crtsmtpd_tls_CAfile = /etc/ssl/private/sub.class1.server.ca.pemsmtpd_use_tls = yessmtpd_tls_security_level = maysmtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache smtp_tls_key_file = /etc/ssl/private/DOMAIN.keysmtp_tls_cert_file = /etc/ssl/private/DOMAIN.crtsmtp_tls_CAfile = /etc/ssl/private/sub.class1.server.ca.pemsmtp_use_tls = yessmtp_tls_security_level = maysmtp_tls_session_cache_database = btree:${data_directory}/smtp_scache smtpd_tls_received_header = yessmtpd_enforce_tls = nosmtpd_tls_loglevel = 1tls_random_source = dev:/dev/urandom


    Ich habe alle durchprobiert (selbstverändlcih die Werte entsprechend angepasst), was bisher aber bloß dazu führte, dass postifx zwar normal startete, sobald ich jedoch in Thunderbird auf TLS wechsele keine emails mehr versenden kann.
    Wenn ich es richtig beobachtet habe rennt das Senden ins time out.


    Dachte ich mir: Nun gut, dann bringst du halt erstmal das Abrufen der Emails zum laufen, also weiter zu Dovecot- so ernüchternd zugleich das ergebniss! /etc/dovecot/ existiert auf meinem Server nicht. Habe mal orientierungslos gesucht, ob ich irgendwo ein derartiges Verzeichniss finde, habe es aber auch andernorts nicht gefunden. Da ich jedoch IMAP und POP nach belieben nutzen kann und dies davon abhängt muss dieses Verzeichniss ja wohl auch irgendwo zu finden sein.


    Nochmal zur Info:
    Habe Debian Wheezy mit Standart-Image (Froxlor und allem notwendigem Vorinstalliert).


    Wäre euch sehr Dankbar für weitere Hilfe! War aber so weit positiv überrascht wie Problemlos das mit dem StartSSL Zertifikat und HTTPs geklappt hat! Danke dafür bereits! :thumbup:

  • hol dir für die mail am besten direkt noch ein startssl zertifikat. Dann halt eben für die email subdomain.


    Wenn dein Server also z.b. den Hostname und RDNS eintrag hat mail.domain.de musst du die mail subdomain bei startssl zertifizieren.


    vom startssl musst du dann runterladen: sub.class1.server.ca.pem, ca.pem, ssl.crt(kann auch anders heißen) und ssl,key(dein private key)
    Speicher diese dateien dann z.b. unter /etc/ssl/mail.domain.de/


    Für Postfix machst du dann:


    Code
    cat /etc/ssl/mail.domain.de/ssl.crt /etc/ssl/mail.domain.de/sub.class1.server.ca.pem >> /etc/ssl/mail.domain.de/postfixsmtp.pem


    nun öffne die postfixsmtp.pem mit einem editor und korrigiere die Fehlerhafte Zeile. die zeilen ----Begin certificate---- müssen immer in einer Zeile stehen. Es darf kein ----Begin certificate------------end certificate----------- in einer Zeile stehen


    Postfix main.cf anpassen:




    jetzt sollte smtp zum client funktionieren und die Verbindung zu anderen MTA's sollte verschlüsselt sein. Dies erkennst du am Email Header



    Für courier( der Standard pop/imap Dienst beim netcup image):

    Code
    apt-get install courier-imap-ssl


    Code
    cat /etc/ssl/mail.domain.de/ssl.key /etc/ssl/mail.domain.de/ssl.crt /etc/ssl/mail.domain.de/sub.class1.server.ca.pem >> /etc/courier/imapd.pem


    Auch hier wieder die Fehlerhaften Zeilen aufteilen wie oben!


    Nun in der /etc/courier/imap-ssl


    überprüfen ob folgender eintrag zufinden ist:

    Code
    TLS_CERTFILE=/etc/courier/imapd.pem


    optional, wenn alles funktioniert dieses setzen:

    Code
    IMAP_TLS_REQUIRED=1



    Nach dem ändern der Dateien Dienste neustarten nicht vergessen

    Code
    /etc/init.d/postfix restart
    /etc/init.d/courier-imap restart
    /etc/init.d/courier-imap-ssl restart



    Verbindung von Thunderbird per imap dann am besten per mail.domain.de port 143 STARTTLS Passwort normal
    Verbindung von Thunderbird zu SMTP dann am besten per mail.domain.de port 25 STARTTLS Passwort normal




    natürlich musst du den domainnamen anpassen. Achte darauf, dass Dein RDNS Eintrag richtig gesetzt ist, und die main.cf von postfix korrekt konfiguriert ist. Sonst kommen deine Mails am ende zwar Verschlüsselt, aber im spamordner bei Kunden an.

    Code
    mydomain = domain.de
    
    
    
    
    # should be different from $mydomain eg. mail.$mydomain
    myhostname = mail.domain.de



    Wenn etwas nicht geht, erst in syslog und mail.log schauen und dann wieder melden.

  • Hallo,
    Danke für deine detailierte Antwort!


    Ich habe grade versucht das alles anchzuvollziehen, ein paar Fragen sind dabei jedoch entstanden.


    Code
    cat /etc/ssl/mail.domain.de/ssl.key /etc/ssl/mail.domain.de/ssl.crt /etc/ssl/mail.domain.de/sub.class1.server.ca.pem >> /etc/courier/imapd.pem


    Dieser Befehl... er beinhaltet alle Zertifikate von StartSSL außer das CA zertifikat, du machst aus all diesen ein "Gesamt Zertifikat" sehe ich das richtig?
    Das leg ich dann ins courier verzeichnis ab, ok...
    Die Fehlenden Zeilenumbrüche enstehen grundsätzlich?


    Werde wenn ich aus der Firma heimkomme zunächst mal das neue Zertifikat erstellen lassen und das ganze dann nochmal ausprobieren.


    Das corurier installiert ist... hätte ich auch drauf kommen können! -.-


    Danke!

  • ja, das passiert durch die Verwendung von cat mit >>. Du kannst natürlich auch alle Dateien öffnen und per Texteditor in die neue kopieren. Dann hast du direkt die korrekten Zeilenumbrüche. Macht keinen Unterschied.

  • Also nun funktioniert auch IMAP mit SSL/TLS, ebenfalls funktioniert SMTP mit StartTLS.


    Sollte ja eigentlich sicher genug sein, wähle ich in Thunderbird jedoch auch bei SMTP SSL/TLS, damit die Verbindung von beginn an geschützt ist geht garnichts mehr beim senden.


    Thunderbird spuckt aus

    Quote

    Senden der Nachricht fehlgeschlagen.
    Die Nachricht konnte nicht gesendet werden, weil der Verbindungsaufbau mit dem SMTP-Server mail.loeber-zweirad.de fehlgeschlagen ist. Der Server ist entweder nicht verfügbar oder lehnt SMTP-Verbindungen ab. Bitte kontrollieren Sie die SMTP-Server-Einstellungen und versuchen Sie es nochmals oder kontaktieren Sie Ihren Netzwerkadministrator.


    Und mein Log sagt dazu bloß:

    Code
    Jul  5 16:10:24 v22014071485619189 imapd: Connection, ip=[::ffff:77.1.112.51]
    Jul  5 16:10:25 v22014071485619189 imapd: LOGIN, user=info@loeber-zweirad.de, ip=[::ffff:77.1.112.51], port=[59793], protocol=IMAP
    Jul  5 16:11:40 v22014071485619189 postfix/smtpd[3764]: connect from frnk-4d017033.pool.mediaWays.net[77.1.112.51]
    Jul  5 16:11:48 v22014071485619189 postfix/smtpd[3764]: lost connection after CONNECT from frnk-4d017033.pool.mediaWays.net[77.1.112.51]
    Jul  5 16:11:48 v22014071485619189 postfix/smtpd[3764]: disconnect from frnk-4d017033.pool.mediaWays.net[77.1.112.51]
    Jul  5 16:12:21 v22014071485619189 imapd: DISCONNECTED, user=info@loeber-zweirad.de, ip=[::ffff:77.1.112.51], headers=803, body=6546, rcvd=752, sent=24719, time=123


    Ich schätze jedenfalls das dieser Teil des Logs meinen Fehlgeschlagenen Versuch des Sendens darstellt...


    Meine main.cfg sieht mittlerweile folgenderdermaßen aus (Habe deine Config nicht genau übernommen, da ich auch eine nutzung ohne zertifikat gerne hätte):



    Wie gesagt, StartTLS kann ich nutzen. Aber das ich über SSL/TLS nicht direkt verschlüsselt darauf zugreifen kann deutet auf eine Fehlkonfiguration hin denke ich, zumal es bei IMAP problemlos funktioniert.
    Zudem kann ich mein Passwort nicht verschlüsselt übertragen (Ist das relevant? Sicherehitstechnisch). Falls ja, wäre ich hier auch froh um einen Tipp!


    Da inzwischen HTTPS, und IMAP wunderbar läuft möchte ich mich an dieser Stelle schon mal (btw nochmals) bei euch bedanken! :)

  • Wieso verwendest du nicht STARTTLS bei beiden Diensten?
    Ist moderner und sicherer.


    lg.
    Alex

    [size=10]

    "This is Linux land. In silent nights you can hear the Windows machines rebooting."


  • Wieso verwendest du nicht STARTTLS bei beiden Diensten?
    Ist moderner und sicherer.


    lg.
    Alex

    Ist es das?


    Ggf habe ich mich verlesen, jedoch habe ich die Infos gefunden, das im Fall von "STARTTLS" die verbindung zunächst unverschlüsselt aufgebaut wird, dann der Befehl zum verschlüsseln gegeben wird und dann weiter agiert wird.
    Hingegen bei SSL/TLS wäre die Verbindung von anfang an geschützt.


    In beiden Fällen sind die wichtigen Daten geschützt, es klang in dem Artikel aber danach, als wäre es von Vorteil die Verbindung von beginn an verschlüsselt zu haben.


    Wenn du mir aber sagst, dass ich SSL/TLS eh nicht brauche, dann hab ich mir arbeit gespart! :)
    Ich will meinen Mail Server ja auch nicht zu Fort Knox ausbauen, man hört bloß immerwieder, das man doch bitte gesichert auf seine Emails zugreifen soll.
    Entsprechend wollte ich halt diesen Sicherheitsstandarts mindestens genügen.

  • Dann mach ich das doch einfach so und markier das hier mal als gelöst, danke!


    Wenn jemand einwände hat oder ihm bei mir noch Fehler in der config aufgefallen sind würde es mich freuen wenn ihrs dennoch noch anmerken würdet! :)


    Eine Anmerkung noch, SSL/TLS wird wohl auch TLS nutzen, der unterschied zu STARTTLS ist wohl ein anderer... aber vorerst belass ich es beim STARTTLS

  • Hast du mal überprüft ob verschlüsselte Mails nun bei anderen Mail Providern ankommen? einfach mal ne mail schicken und dann original anzeigen lassen und gucken ob da irgendwas mit ssl oder tls steht.


    Schließlich stimmt hostname nun nicht mit domain des zertifikates überein.
    Vielleicht ist das aber auch nur ein fehlgedanke von mir. Habe dies so noch nie getestet.

  • Über die domain habe ich mir auch gedanken gemacht... aber ich habe mal dem Kommentar in der Konfig vertraut und es mal so belassen.


    Code
    Received:
     from [192.168.178.130] 
    (frnk-4d017033.pool.mediaWays.net [77.1.112.51]) (using TLSv1 with 
    cipher ECDHE-RSA-AES128-SHA (128/128 bits)) (No client certificate 
    requested) by v22014071485619189.yourvserver.net (Postfix) with ESMTPSA 
    id E370C100AB5 for <nico-loeber@web.de>; Sat,  5 Jul 2014 18:09:18
     +0200 (CEST)


    Sieht mir verschlüsselt aus, das kein Zertifikat beantagt wurde... Keine Ahnung, denke mal das heißt bloß, das Web.de keins angefordert hat zur annahme der email.

  • hm ok wenn sie ankommen ist ja gut.j


    aber jeder, dem du eine mail über smtp schreibst, kann die IP Adresse deines Internetanschlusses sehen. Ich glaube, dass ist nicht so cool :P

    Jetzt wo du das sagst fällt mir das auch auf! ;)


    Warum denn das? Sollte nicht eigentlich nur die IP des sendenden Servers bekannt sein??