Sicherheit - Mailserver mit Lokalen Usern und unverschlüsselter Verbindung - Meinung gesucht
Hallo an alle, ich möchte jemanden von den Sicherheitsexperten in der Liste bitten, eine kurze Meinung zu folgender Sache zu geben. Ich habe auf die schnelle einen Mailserver mit Postfix + Procmail + Cyrus + lokale Benutzer aufsetzen müssen. Diese Benutzer authentifizieren sich ja bei ihrer Mailbox mit dem Linux-Passwort und zu allem Überfluß klappt SSL/TLS auch irgendwie nicht (Beide Outlooks wollen nicht aber auch The Bat und Pegasus Mail) also läuft es im Moment ohne Verschlüsselung. Das war also die Ausgangslage und jetzt sieht es folgendermassen aus: 1) Suse Linux 9.3 2) Apache2 Webserver mit PHP4 3) Postfix / Cyrus Mailserver mit lokalen Benutzern und ohne TLS 4) Lokale Benutzer haben Standard-Rechte (Grupen users, video, dialout) 5) SuSEFirewall2 aktiv mit offenen Ports für ssh, pop3, pop3s, imap, imaps, http, https 6) Nur passwortloser SSH-Zugrif über RSA-Keys und nur SSH2 Wer kann mir mit einem oder zwei Sätzen kommentieren, wie gross das Risiko für das System ist kompromitiert zu werden wenn die Linux-User Daten bei dem E-Mail-Verkehr im Plain-Text durchs Netz gehen obwohl kein passwortbasierter Zugang über ssh möglich ist. Gibts es eine möglichkeit über eine Postfix-Option die Linux-User oder Linux-User und Linux-Passwörter auf andere zu mappen - vielleicht mit SASL? Kennt jemand ein How-To, dass sich genau mit Cyrus SASL mit lokalen Usern beschäftigt? In den letzten zwei schlaflosen Nächten hatte ich wohl zu viel Input und weiss nicht so recht wo ich da ansetzen soll. P.S. Aus Zeitgünden war auf die Schnelle nur diese Lösung möglich aber ich arbeite bald daran die E-Mail-User über MySQL zu authentifizieren. Leider gehts nicht sofort und die E-Mails müssen sein. Wenn sich jemand bereit erklärt mir bei dem SSL/TLS - Problem zu helfen so schiebe ich gerne noch zusätzliche infos wie z.b. die main.cf nach. Alles Gute im neuen Jahr an alle. Artur Cichosz
Artur Cichosz wrote:
Hallo an alle,
ich möchte jemanden von den Sicherheitsexperten in der Liste bitten, eine kurze Meinung zu folgender Sache zu geben.
Ich habe auf die schnelle einen Mailserver mit Postfix + Procmail + Cyrus + lokale Benutzer aufsetzen müssen. Diese Benutzer authentifizieren sich ja bei ihrer Mailbox mit dem Linux-Passwort und zu allem Überfluß klappt SSL/TLS auch irgendwie nicht (Beide Outlooks wollen nicht aber auch The Bat und Pegasus Mail) also läuft es im Moment ohne Verschlüsselung.
Das war also die Ausgangslage und jetzt sieht es folgendermassen aus:
1) Suse Linux 9.3 2) Apache2 Webserver mit PHP4 3) Postfix / Cyrus Mailserver mit lokalen Benutzern und ohne TLS 4) Lokale Benutzer haben Standard-Rechte (Grupen users, video, dialout) 5) SuSEFirewall2 aktiv mit offenen Ports für ssh, pop3, pop3s, imap, imaps, http, https 6) Nur passwortloser SSH-Zugrif über RSA-Keys und nur SSH2
Wer kann mir mit einem oder zwei Sätzen kommentieren, wie gross das Risiko für das System ist kompromitiert zu werden wenn die Linux-User Daten bei dem E-Mail-Verkehr im Plain-Text durchs Netz gehen obwohl kein passwortbasierter Zugang über ssh möglich ist.
Gibts es eine möglichkeit über eine Postfix-Option die Linux-User oder Linux-User und Linux-Passwörter auf andere zu mappen - vielleicht mit SASL? Kennt jemand ein How-To, dass sich genau mit Cyrus SASL mit lokalen Usern beschäftigt? In den letzten zwei schlaflosen Nächten hatte ich wohl zu viel Input und weiss nicht so recht wo ich da ansetzen soll.
Steht der Server in einem Rechenzentrum und greifen die Anwender über das Internet auf den Server zu oder ist es ein Server, der hinter der Firewall innerhalb des Firmennetzwerks steht und den nur die lokalen Anwender innerhalb des Firmennetzes benutzen sollen und können? Wenn über das Internet zugegriffen wird, dann sollte TLS für Mail und Imap/pop Pflicht sein. Ebenso sollten die Client-PCs auf dem aktuellen Sicherheitsstand sein und, wenn Windows mit aktiver Firewall und Antivirus laufen. Man kann die Benutzerverwaltung auch vom System abkoppeln und über eine SASL-Datenbank laufen lassen. Das ist ohne große Probleme möglich.
P.S. Aus Zeitgünden war auf die Schnelle nur diese Lösung möglich aber ich arbeite bald daran die E-Mail-User über MySQL zu authentifizieren. Leider gehts nicht sofort und die E-Mails müssen sein.
MySQL ist meistens nicht als Option in Postfix oder Cyrus hereinkompiliert, da muss man selbst die Pakete erstellen, was manchmal etwas trickreich sein kann. Solange man nicht täglich neue User/Restriktionen konfiguriert, geht das auch ohne SQL/LDAP.
Wenn sich jemand bereit erklärt mir bei dem SSL/TLS - Problem zu helfen so schiebe ich gerne noch zusätzliche infos wie z.b. die main.cf nach.
Brauchst du noch ein Web-Interface? Jedenfalls solltest du ein Zertifikat für alle Dienste verwenden, die auf dem Server laufen. Bei Apache oder Openssl gibt es Scripte, die ein solches Zertifikat erstellen. Sandy -- Antworten bitte nur in die Mailingliste! PMs bitte an: news-reply2 (@) japantest (.) homelinux (.) com
> Man kann die Benutzerverwaltung auch vom System abkoppeln und über eine > SASL-Datenbank laufen lassen. Das ist ohne große Probleme möglich. Das denke ich mir auch deswegen habe ich auch nach tips zu bestehenden How-To's gefragt, die Cyrus mit SASL und lokalen benutzern behandeln. Also frage ich noch mal - kennt jemand oder hat jemand welche? > >Wenn sich jemand bereit erklärt mir bei dem SSL/TLS - Problem zu helfen so schiebe ich gerne noch zusätzliche infos wie z.b. die main.cf nach. > Brauchst du noch ein Web-Interface? Jedenfalls solltest du ein Zertifikat > für alle Dienste verwenden, die auf dem Server laufen. Bei Apache oder > Openssl gibt es Scripte, die ein solches Zertifikat erstellen. Brauche nicht unbedingt ein Web-Interface. Aber ich schliesse das für die Zukunft nicht aus. Erstmal gibt es nur IMAP und POP und ich hätte wohl gerne TLS dabei aber irgendwie hackt's bei mir irgendwo. Zu TLS: 1) Die Postfix TLS-Konfiguration habe ich ausprobiert und natürlich eigene Zertifikate mit openssl nach dem http://www.postfix-howto.de/ erstellt. 2) Dann Postfix entsprechend konfiguriert in /etc/postfix/main.cf smtp_tls_note_starttls_offer = yes smtp_use_tls = yes smtpd_use_tls = yes smtpd_tls_auth_only = no smtpd_tls_key_file = /etc/certs/key.pem smtpd_tls_cert_file = /etc/certs/cert.pem smtpd_tls_CAfile = /etc/certs/cert.pem smtpd_tls_loglevel = 3 smtpd_tls_received_header = yes smtpd_tls_session_cache_timeout = 3600s tls_random_source = dev:/dev/urandom smtp_use_tls = yes smtp_tls_key_file = /etc/certs/key.pem smtp_tls_cert_file = /etc/certs/cert.pem smtp_tls_CAfile = /etc/certs/cert.pem 3) und auch Cyrus entsprechend nach dem gleichen how-to mit dem gleichen Zertifikat (Kopie) wie für postfix # mkdir /var/imap # cp /etc/certs/key.pem /var/imap/server.pem # cat /etc/certs/cert.pem >> /var/imap/server.pem # chown cyrus:mail /var/imap/server.pem # chmod 600 /var/imap/server.pem # Schützt den Key # echo tls_ca_file: /var/imap/server.pem >> /etc/imapd.conf # echo tls_cert_file: /var/imap/server.pem >> /etc/imapd.conf # echo tls_key_file: /var/imap/server.pem >> /etc/imapd.conf 4) SuSEFirewall2 - Ports geöfnet, zur Sicherheit sowohl über den Namen als auch numerisch. Lokale Client-Firewall ist aus FW_SERVICES_EXT_TCP="http https pop3 pop3s imap imaps smtp ssh sieve 143 25 110 993 995 2000" Muss ich irgendeinen dieser Ports auch unter FW_SERVICES_EXT_UDP setzen? 5) Den E-Mail Server lokal getestet nach einem anderen How-To domino:~ # telnet localhost 25 Trying 127.0.0.1... Connected to localhost. Escape character is '^]'. 220 host ESMTP Postfix ehlo localhost 250-host 250-PIPELINING 250-SIZE 10240000 250-VRFY 250-ETRN 250-STARTTLS 250-AUTH LOGIN PLAIN 250-AUTH=LOGIN PLAIN 250 8BITMIME quit Nach dem How-To ist alles in Ordnung wenn 250-STARTTLS und 250-AUTH erscheinen - so ist es bei mir Aber dann macht mich folgendes stutzig. Wenn ich die aktiven Ports überprüfe mit "netstat -an|grep LISTEN" bekomme ich folgendes zu sehen: tcp 0 0 127.0.0.1:3306 0.0.0.0:* LISTEN tcp 0 0 0.0.0.0:110 0.0.0.0:* LISTEN tcp 0 0 0.0.0.0:143 0.0.0.0:* LISTEN tcp 0 0 0.0.0.0:111 0.0.0.0:* LISTEN tcp 0 0 0.0.0.0:2000 0.0.0.0:* LISTEN tcp 0 0 0.0.0.0:10000 0.0.0.0:* LISTEN tcp 0 0 0.0.0.0:25 0.0.0.0:* LISTEN tcp 0 0 :::110 :::* LISTEN tcp 0 0 :::143 :::* LISTEN tcp 0 0 :::2000 :::* LISTEN tcp 0 0 :::80 :::* LISTEN tcp 0 0 :::22 :::* LISTEN tcp 0 0 :::25 :::* LISTEN Laut howto und auch irgendwie logisch müssen dort auch die ports 993 und 995 für pops und imaps erscheinen, tun sie aber nicht. Dementsprechend funktioniert auch nicht SSL bei den Clients, zur Info gebe Paar Einzelheiten was so passiert bei einzelnen Clients obwohl das sicherlich nicht sehr aussagekräftig ist. Outlook Express 6 Wenn ich bei bei einem IMAP-Konto unter "erweitert" sowohl für den Posteingang (993) als auch für den Postausgang (25) die Option "Dieser Server erfordert eine sichere Verbindung" aktiviere dann bekomme ich beim versuch die Nachrichten zu holen folgende Fehler-Meldung Protokoll: IMAP Port: 993 Secure (SSL): 1 Code: 800ccc0e Outlook 2000 sagt dabei sogar dass er selbst offline sei. The Bat mit der Verbindungs-Option "Secure to dedicated Port (TLS)" sowohl für Ausgang (Port 25) als auch für Eingang (Port 993) kann seltsamerweise Mails abrufen (Zauberei ???) aber keine versenden (Log: SEND - TLS protocol error: Unexpected message.) Wenn ich wiederum für beide Richtungen STARTTLS wähle kann er weiterhin Nachrichten abholen aber beim Versenden ein ähnlicher Fehler SEND - Server reports error. The response is: Nicht unterstützter Befehl. SEND - Server reports it is not ready, reply: "Nicht unterstützter Befehl." Pegasus Mail 4 Will sich wie die Outlooks gar nicht verbinden über direkte SSL Verbindung. Über STARTTLS kann er die Mails abholen (Ich schätze über unverschlüsselte verbindung als ausweichmethode) aber beim verschicken gehen die mails irgendwie ins nirvana - keine meldung, nix in der Warteschlange, kein log auf dem mailserver, keine E-Mail beim Empfänger. Wohl ein Programm-Bug oder ich check nicht ganz wie man mit dem Ding Mails Verschickt, denn im Ordner Ausgangskopien sind alle versendeten Mails drin. Schwamm drüber. Server Log sagt bei allen Programmen (bis auf Pagasus) beim Versenden das gleiche: Jan 4 16:47:22 suse93lamp postfix/smtpd[12901]: connect from aur200.neoplus.adsl.tpnet.pl[83.27.25.200] Jan 4 16:47:29 suse93lamp postfix/smtpd[12901]: disconnect from aur200.neoplus.adsl.tpnet.pl[83.27.25.200] Wo hackt es bei der Postfix-Config? Warum sind die Ports 993 und 995 nicht aktiv? Hat jemand eine Idee? ----- Original Message ----- From: "Sandy Drobic"To: Sent: Wednesday, January 04, 2006 12:56 PM Subject: Re: Sicherheit - Mailserver mit Lokalen Usern und unverschlüsselter Verbindung - Meinung gesucht Artur Cichosz wrote: > Hallo an alle, > > ich möchte jemanden von den Sicherheitsexperten in der Liste bitten, eine kurze Meinung > zu folgender Sache zu geben. > > Ich habe auf die schnelle einen Mailserver mit Postfix + Procmail + Cyrus + lokale Benutzer aufsetzen müssen. > Diese Benutzer authentifizieren sich ja bei ihrer Mailbox mit dem Linux-Passwort und zu allem Überfluß klappt SSL/TLS auch irgendwie nicht (Beide Outlooks > wollen nicht aber auch The Bat und Pegasus Mail) also läuft es im Moment ohne Verschlüsselung. > > Das war also die Ausgangslage und jetzt sieht es folgendermassen aus: > > 1) Suse Linux 9.3 > 2) Apache2 Webserver mit PHP4 > 3) Postfix / Cyrus Mailserver mit lokalen Benutzern und ohne TLS > 4) Lokale Benutzer haben Standard-Rechte (Grupen users, video, dialout) > 5) SuSEFirewall2 aktiv mit offenen Ports für ssh, pop3, pop3s, imap, imaps, http, https > 6) Nur passwortloser SSH-Zugrif über RSA-Keys und nur SSH2 > > > Wer kann mir mit einem oder zwei Sätzen kommentieren, wie gross das Risiko für das System ist kompromitiert zu werden > wenn die Linux-User Daten bei dem E-Mail-Verkehr im Plain-Text durchs Netz gehen obwohl kein passwortbasierter Zugang > über ssh möglich ist. > > > Gibts es eine möglichkeit über eine Postfix-Option die Linux-User oder Linux-User und Linux-Passwörter auf andere zu mappen > - vielleicht mit SASL? Kennt jemand ein How-To, dass sich genau mit Cyrus SASL mit lokalen Usern beschäftigt? In den letzten > zwei schlaflosen Nächten hatte ich wohl zu viel Input und weiss nicht so recht wo ich da ansetzen soll. > Steht der Server in einem Rechenzentrum und greifen die Anwender über das Internet auf den Server zu oder ist es ein Server, der hinter der Firewall innerhalb des Firmennetzwerks steht und den nur die lokalen Anwender innerhalb des Firmennetzes benutzen sollen und können? Wenn über das Internet zugegriffen wird, dann sollte TLS für Mail und Imap/pop Pflicht sein. Ebenso sollten die Client-PCs auf dem aktuellen Sicherheitsstand sein und, wenn Windows mit aktiver Firewall und Antivirus laufen. Man kann die Benutzerverwaltung auch vom System abkoppeln und über eine SASL-Datenbank laufen lassen. Das ist ohne große Probleme möglich. > > P.S. > Aus Zeitgünden war auf die Schnelle nur diese Lösung möglich aber ich arbeite bald daran > die E-Mail-User über MySQL zu authentifizieren. Leider gehts nicht sofort und die E-Mails müssen sein. MySQL ist meistens nicht als Option in Postfix oder Cyrus hereinkompiliert, da muss man selbst die Pakete erstellen, was manchmal etwas trickreich sein kann. Solange man nicht täglich neue User/Restriktionen konfiguriert, geht das auch ohne SQL/LDAP. > Wenn sich jemand bereit erklärt mir bei dem SSL/TLS - Problem zu helfen so schiebe ich gerne noch zusätzliche infos wie z.b. die main.cf nach. Brauchst du noch ein Web-Interface? Jedenfalls solltest du ein Zertifikat für alle Dienste verwenden, die auf dem Server laufen. Bei Apache oder Openssl gibt es Scripte, die ein solches Zertifikat erstellen. Sandy -- Antworten bitte nur in die Mailingliste! PMs bitte an: news-reply2 (@) japantest (.) homelinux (.) com -- Um die Liste abzubestellen, schicken Sie eine Mail an: suse-linux-unsubscribe@suse.com Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: suse-linux-help@suse.com
Artur Cichosz wrote:
Man kann die Benutzerverwaltung auch vom System abkoppeln und über eine SASL-Datenbank laufen lassen. Das ist ohne große Probleme möglich.
Das denke ich mir auch deswegen habe ich auch nach tips zu bestehenden How-To's gefragt, die Cyrus mit SASL und lokalen benutzern behandeln. Also frage ich noch mal - kennt jemand oder hat jemand welche?
Direkt kenne ich keinen Link, aber ich denke, dass postfix.org einen haben wird. Ah, hier ist er schon: http://www.postfix.org/SASL_README.html Der Abschnitt " To authenticate against Cyrus SASL's own password database:"
Wenn sich jemand bereit erklärt mir bei dem SSL/TLS - Problem zu helfen
so schiebe ich gerne noch zusätzliche infos wie z.b. die main.cf nach.
Brauchst du noch ein Web-Interface? Jedenfalls solltest du ein Zertifikat für alle Dienste verwenden, die auf dem Server laufen. Bei Apache oder Openssl gibt es Scripte, die ein solches Zertifikat erstellen.
Brauche nicht unbedingt ein Web-Interface. Aber ich schliesse das für die Zukunft nicht aus. Erstmal gibt es nur IMAP und POP und ich hätte wohl gerne TLS dabei aber irgendwie hackt's bei mir irgendwo.
Zu TLS:
1) Die Postfix TLS-Konfiguration habe ich ausprobiert und natürlich eigene Zertifikate mit openssl nach dem http://www.postfix-howto.de/ erstellt.
2) Dann Postfix entsprechend konfiguriert in /etc/postfix/main.cf
smtp_tls_note_starttls_offer = yes smtp_use_tls = yes smtpd_use_tls = yes smtpd_tls_auth_only = no smtpd_tls_key_file = /etc/certs/key.pem smtpd_tls_cert_file = /etc/certs/cert.pem smtpd_tls_CAfile = /etc/certs/cert.pem smtpd_tls_loglevel = 3 smtpd_tls_received_header = yes smtpd_tls_session_cache_timeout = 3600s tls_random_source = dev:/dev/urandom
smtp_use_tls = yes smtp_tls_key_file = /etc/certs/key.pem smtp_tls_cert_file = /etc/certs/cert.pem smtp_tls_CAfile = /etc/certs/cert.pem
3) und auch Cyrus entsprechend nach dem gleichen how-to mit dem gleichen Zertifikat (Kopie) wie für postfix
# mkdir /var/imap # cp /etc/certs/key.pem /var/imap/server.pem # cat /etc/certs/cert.pem >> /var/imap/server.pem # chown cyrus:mail /var/imap/server.pem # chmod 600 /var/imap/server.pem # Schützt den Key
# echo tls_ca_file: /var/imap/server.pem >> /etc/imapd.conf # echo tls_cert_file: /var/imap/server.pem >> /etc/imapd.conf # echo tls_key_file: /var/imap/server.pem >> /etc/imapd.conf
4) SuSEFirewall2 - Ports geöfnet, zur Sicherheit sowohl über den Namen als auch numerisch. Lokale Client-Firewall ist aus
FW_SERVICES_EXT_TCP="http https pop3 pop3s imap imaps smtp ssh sieve 143 25 110 993 995 2000"
Muss ich irgendeinen dieser Ports auch unter FW_SERVICES_EXT_UDP setzen?
5) Den E-Mail Server lokal getestet nach einem anderen How-To
domino:~ # telnet localhost 25
Trying 127.0.0.1... Connected to localhost. Escape character is '^]'. 220 host ESMTP Postfix
ehlo localhost
250-host 250-PIPELINING 250-SIZE 10240000 250-VRFY 250-ETRN 250-STARTTLS 250-AUTH LOGIN PLAIN 250-AUTH=LOGIN PLAIN 250 8BITMIME
Das sieht ja schon gut aus. Was passiert denn, wenn du folgenden Befehl eingibst: openssl s_client -starttls smtp -connect localhost:25 Dann sollte eigentlich das normale Mailbanner angezeigt werden nach dem Kladderadatsch vom TLS-Handshake: SSL handshake has read 1947 bytes and written 350 bytes --- New, TLSv1/SSLv3, Cipher is DHE-RSA-AES256-SHA Server public key is 2048 bit SSL-Session: Protocol : TLSv1 Cipher : DHE-RSA-AES256-SHA Session-ID: F2ED0FB07021C997A25C91029BD5A6483E95E1C227D8DECF1AEC43F8465A62B6 Session-ID-ctx: Master-Key: BEDABCE4EC9980817C576EB8DD53D08068D35EA3EA960FED63E2231EDC9C177C8AF515C30408792216DDBC5E9203A613 Key-Arg : None Start Time: 1136404708 Timeout : 300 (sec) Verify return code: 18 (self signed certificate) --- 220 japantest.homelinux.com ESMTP Postfix quit 221 2.0.0 Bye Wenn das kommt, funktioniert jedenfalls Postfix schon einmal mit TLS.
quit
Nach dem How-To ist alles in Ordnung wenn 250-STARTTLS und 250-AUTH erscheinen - so ist es bei mir
Aber dann macht mich folgendes stutzig. Wenn ich die aktiven Ports überprüfe mit "netstat -an|grep LISTEN" bekomme ich folgendes zu sehen:
tcp 0 0 127.0.0.1:3306 0.0.0.0:* LISTEN tcp 0 0 0.0.0.0:110 0.0.0.0:* LISTEN tcp 0 0 0.0.0.0:143 0.0.0.0:* LISTEN tcp 0 0 0.0.0.0:111 0.0.0.0:* LISTEN tcp 0 0 0.0.0.0:2000 0.0.0.0:* LISTEN tcp 0 0 0.0.0.0:10000 0.0.0.0:* LISTEN tcp 0 0 0.0.0.0:25 0.0.0.0:* LISTEN tcp 0 0 :::110 :::* LISTEN tcp 0 0 :::143 :::* LISTEN tcp 0 0 :::2000 :::* LISTEN tcp 0 0 :::80 :::* LISTEN tcp 0 0 :::22 :::* LISTEN tcp 0 0 :::25 :::* LISTEN
Laut howto und auch irgendwie logisch müssen dort auch die ports 993 und 995 für pops und imaps erscheinen, tun sie aber nicht.
Das hat mit Postfix nichts mehr zu tun, das ist die Konfiguration von Cyrus, die diese Ports benutzen soll. Das wird in /etc/imapd.conf festgelegt: /etc/imapd.conf: ... allowanonymouslogin: no tls_cert_file: /etc/certs/server.pem tls_key_file: /etc/certs/key.pem ... /etc/cyrus.conf: ... SERVICES { ... imaps cmd="imapd -s" listen="imaps" prefork=0 pop3s cmd="pop3d -s" listen="pop3s" prefork=0 ... } Dies sind nur die wesentlichen Einstellungen für TLS, nicht etwa alle notwendigen! Füge diese Einstellungen mal an den richtigen Stellen dazu und schaue danach, ob Port 993 vorhanden ist. Sandy -- Antworten bitte nur in die Mailingliste! PMs bitte an: news-reply2 (@) japantest (.) homelinux (.) com
Direkt kenne ich keinen Link, aber ich denke, dass postfix.org einen haben wird. Ah, hier ist er schon: http://www.postfix.org/SASL_README.html Der Abschnitt " To authenticate against Cyrus SASL's own password database:"
Danke für diesen Link. Der hat mich schon mal weit gebracht, dazu habe ich noch http://postfix.state-of-mind.de/patrick.koetter/smtpauth/sasldb_configuratio... zur Rate gezogen. Jetzt wird über sasldb2 authentifiziert :)
Das sieht ja schon gut aus. Was passiert denn, wenn du folgenden Befehl eingibst: openssl s_client -starttls smtp -connect localhost:25
kommt auch das selbe wie bei Deinem Beispiel also soweit alles klar
Das hat mit Postfix nichts mehr zu tun, das ist die Konfiguration von Cyrus, die diese Ports benutzen soll. Das wird in /etc/imapd.conf festgelegt:
/etc/cyrus.conf: imaps und pop3s in SERVICES eingetragen => die Ports 993 und 995 sind jetzt auch aktiv - danke
Dies sind nur die wesentlichen Einstellungen für TLS, nicht etwa alle notwendigen!
Ich habe die notwendigen alle soweit ich weiss eingetragen und folgendes ist die Folge. Ich kann Mails per POP und IMAP über TLS abholen aber leider wird beim verschicken über den Server gestreikt mit dem folgenden Fehler im Outlook Express 6 Ein unbekannter Fehler ist aufgetreten. ... Protokoll: SMTP, Serverantwort: '500 Nicht unterstützter Befehl.', Port: 25, Secure (SSL): Ja, Serverfehler: 500, Fehlernummer: 0x800CCC62 In /var/log/mail des Servers stehen nur drei zeilen Jan 5 01:48:48 suse93lamp postfix/smtpd[5241]: initializing the server-side TLS engine Jan 5 01:48:48 suse93lamp postfix/smtpd[5241]: connect from aur200.neoplus.adsl.tpnet.pl[83.27.25.200] Jan 5 01:48:48 suse93lamp postfix/smtpd[5241]: disconnect from aur200.neoplus.adsl.tpnet.pl[83.27.25.200] Was kann ich noch mehr sagen? Ich hoffe ich mache nur einen simplen Fehler. Ich gebe hier die wesentlichen Config-Dateien und hoffe, dass jemand vielleicht ein Auge darauf wirft und ich morgen nur noch nachjustieren muss. Vielen Dank schon mal an Sandy und Andreas für die hilfreichen Antworten Gruß - Artur /etc/postfix/main.cf queue_directory = /var/spool/postfix command_directory = /usr/sbin daemon_directory = /usr/lib/postfix mail_owner = postfix myhostname = host.domain.tld mydomain = domain.tld myorigin = $mydomain unknown_local_recipient_reject_code = 450 debug_peer_level = 2 debugger_command = PATH=/bin:/usr/bin:/usr/local/bin:/usr/X11R6/bin xxgdb $daemon_directory/$process_name $process_id & sleep 5 sendmail_path = /usr/sbin/sendmail newaliases_path = /usr/bin/newaliases mailq_path = /usr/bin/mailq setgid_group = maildrop html_directory = /usr/share/doc/packages/postfix/html manpage_directory = /usr/share/man sample_directory = /usr/share/doc/packages/postfix/samples readme_directory = /usr/share/doc/packages/postfix/README_FILES inet_protocols = all biff = no mail_spool_directory = /var/mail canonical_maps = hash:/etc/postfix/canonical virtual_maps = hash:/etc/postfix/virtual relocated_maps = hash:/etc/postfix/relocated transport_maps = hash:/etc/postfix/transport sender_canonical_maps = hash:/etc/postfix/sender_canonical masquerade_exceptions = root masquerade_classes = envelope_sender, header_sender, header_recipient program_directory = /usr/lib/postfix inet_interfaces = all masquerade_domains = mydestination = $myhostname, $mydomain defer_transports = disable_dns_lookups = no relayhost = mailbox_command = mailbox_transport = cyrus strict_rfc821_envelopes = no alias_maps = hash:/etc/aliases virtual_alias_maps = hash:/etc/postfix/virtual mailbox_size_limit = 0 message_size_limit = 10240000 smtp_sasl_auth_enable = yes smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd smtpd_sasl_auth_enable = yes smtpd_sasl_security_options = noanonymous smtpd_sasl_local_domain = broken_sasl_auth_clients = yes relay_domains = smtpd_recipient_restrictions = permit_sasl_authenticated,permit_mynetworks,check_relay_domains smtpd_use_tls = yes smtpd_tls_auth_only = no smtpd_tls_key_file = /etc/certs/key.pem smtpd_tls_cert_file = /etc/certs/cert.pem smtpd_tls_CAfile = /etc/certs/cert.pem smtpd_tls_loglevel = 3 smtpd_tls_received_header = yes smtpd_tls_session_cache_timeout = 3600s tls_random_source = dev:/dev/urandom smtp_use_tls = yes smtp_tls_note_starttls_offer = yes smtp_tls_key_file = /etc/certs/key.pem smtp_tls_cert_file = /etc/certs/cert.pem smtp_tls_CAfile = /etc/certs/cert.pem /etc/postfix/master.cf smtp inet n - n - - smtpd smtps inet n - n - - smtpd -vv -o smtpd_tls_wrappermode=yes -o smtpd_sasl_auth_enable=yes submission inet n - n - - smtpd -o smtpd_enforce_tls=yes -o smtpd_sasl_auth_enable=yes pickup fifo n - n 60 1 pickup cleanup unix n - n - 0 cleanup qmgr fifo n - n 300 1 qmgr tlsmgr unix - - n 1000? 1 tlsmgr rewrite unix - - n - - trivial-rewrite bounce unix - - n - 0 bounce defer unix - - n - 0 bounce trace unix - - n - 0 bounce verify unix - - n - 1 verify flush unix n - n 1000? 0 flush proxymap unix - - n - - proxymap smtp unix - - n - - smtp relay unix - - n - - smtp -o fallback_relay= showq unix n - n - - showq error unix - - n - - error discard unix - - n - - discard local unix - n n - - local virtual unix - n n - - virtual lmtp unix - - n - - lmtp anvil unix - - n - 1 anvil scache unix - - n - 1 scache maildrop unix - n n - - pipe flags=DRhu user=vmail argv=/usr/local/bin/maildrop -d ${recipient} cyrus unix - n n - - pipe flags= user=cyrus argv=/usr/lib/cyrus/bin/deliver -e -r ${sender} -m ${extension} ${user} uucp unix - n n - - pipe flags=Fqhu user=uucp argv=uux -r -n -z -a$sender - $nexthop!rmail ($recipient) ifmail unix - n n - - pipe flags=F user=ftn argv=/usr/lib/ifmail/ifmail -r $nexthop ($recipient) bsmtp unix - n n - - pipe flags=Fq. user=foo argv=/usr/local/sbin/bsmtp -f $sender $nexthop $recipient procmail unix - n n - - pipe flags=R user=cyrus argv=/usr/bin/procmail -r SENDER=${sender} -t -m USER=${user} EXTENSION=${extension} /etc/procmailrc /usr/lib/sasl2/smtpd.conf (Postfix 2.2.1) pwcheck_method: auxprop mech_list: LOGIN /etc/imapd.conf configdirectory: /var/lib/imap partition-default: /var/spool/imap sievedir: /var/lib/sieve admins: cyrus allowanonymouslogin: no #autocreatequota: 10000 reject8bit: no quotawarn: 90 timeout: 30 poptimeout: 10 dracinterval: 0 drachost: localhost sasl_pwcheck_method: auxprop lmtp_overquota_perm_failure: no lmtp_downcase_rcpt: yes postmaster: postmaster allowplaintext: yes sasl_mech_list: LOGIN servername: host.domain.tld autocreatequota: 1000000 sendmail: /usr/sbin/sendmail sieve_maxcriptsize: 32 sieve_maxscripts: 5 #unixhierarchysep: yes tls_ca_file: /var/imap/server.pem tls_cert_file: /var/imap/server.pem tls_key_file: /var/imap/server.pem #tls_ca_path: /var/imap /etc/cyrus.conf # standard standalone server implementation START { # do not delete this entry! recover cmd="ctl_cyrusdb -r" # this is only necessary if using idled for IMAP IDLE # idled cmd="idled" } # UNIX sockets start with a slash and are put into /var/lib/imap/socket SERVICES { # add or remove based on preferences imap cmd="imapd" listen="imap" prefork=0 imaps cmd="imapd -s" listen="imaps" prefork=0 pop3 cmd="pop3d" listen="pop3" prefork=0 pop3s cmd="pop3d -s" listen="pop3s" prefork=0 sieve cmd="timsieved" listen="sieve" prefork=0 # at least one LMTP is required for delivery # lmtp cmd="lmtpd" listen="lmtp" prefork=0 lmtpunix cmd="lmtpd" listen="/var/lib/imap/socket/lmtp" prefork=0 # this is only necessary if using notifications # notify cmd="notifyd" listen="/var/lib/imap/socket/notify" proto="udp" prefork=1 } EVENTS { # this is required checkpoint cmd="ctl_cyrusdb -c" period=30 # this is only necessary if using duplicate delivery suppression delprune cmd="ctl_deliver -E 3" at=1440 # this is only necessary if caching TLS sessions tlsprune cmd="tls_prune" at=1440 # Uncomment the next entry, if you want to automatically remove # old messages of EVERY user. # This example calls ipurge every 60 minutes and ipurge will delete # ALL messages older then 30 days. # enter 'man 8 ipurge' for more details # cleanup cmd="ipurge -d 30 -f" period=60 # SQUAT failed, helps squatter cmd="squatter -r user" period=1440 }
Am Thursday 05 January 2006 03:22 schrieb Artur Cichosz:
Ich habe die notwendigen alle soweit ich weiss eingetragen und folgendes ist die Folge. Ich kann Mails per POP und IMAP über TLS abholen aber leider wird beim verschicken über den Server gestreikt mit dem folgenden Fehler im Outlook Express 6
Ein unbekannter Fehler ist aufgetreten. ... Protokoll: SMTP, Serverantwort: '500 Nicht unterstützter Befehl.',
Postfix antwortet nicht in Deutsch. Wie ich schon sagte, disable den (***Zensiert***)Virenscanner für ausgehende Mail.
Port: 25, Secure (SSL): Ja, Serverfehler: 500, Fehlernummer: 0x800CCC62
In /var/log/mail des Servers stehen nur drei zeilen
Jan 5 01:48:48 suse93lamp postfix/smtpd[5241]: initializing the server-side TLS engine Jan 5 01:48:48 suse93lamp postfix/smtpd[5241]: connect from aur200.neoplus.adsl.tpnet.pl[83.27.25.200] Jan 5 01:48:48 suse93lamp postfix/smtpd[5241]: disconnect from aur200.neoplus.adsl.tpnet.pl[83.27.25.200]
Was kann ich noch mehr sagen? Ich hoffe ich mache nur einen simplen Fehler. Ich gebe hier die wesentlichen Config-Dateien und hoffe, dass jemand vielleicht ein Auge darauf wirft und ich morgen nur noch nachjustieren muss.
-- Andreas
Postfix antwortet nicht in Deutsch. Wie ich schon sagte, disable den (***Zensiert***)Virenscanner für ausgehende Mail.
Hast Recht der Virenscanner wars - jetzt läuft alles wunderbar. Aber meinen Virenscanner möchte ich weiterhin benutzen. Ich habe auch Thunderbird (Win32 1.0.7) ausprobiert und der hatte irgendwie keine Probleme mit dem aktiven Virenscanner also könnte ich theoretisch auch den nehmen - sieht ja fast wie Outlook aus. Aber ich finde ums Verrecken nicht die Einstellungsmöglichkeiten für ausgehende Mail. In den Konten - Einstellungen kann man nur die POP/IMAP-Server Einstellen und zu jedem POP-Server gibt es einen Button "Erweitert", wo ich einen SMTP-Server aus einer Liste Auswählen kann - Aber wie kommen diese dahin ???? Wo finde ich die Eigenschaften dieser Server? Meine allerletzte Frage wäre ob es mit Postfix 2.2.1 möglich ist, beide Richtungen (Empfang und Versand) auf TLS server-seitig für die Clients zu beschränken. Ich weiss ja dess es die Option "smtpd_tls_auth_only = yes" gibt. Aber wenn ich sie einschalte ist es immer noch möglich, mit einer unverschlüsselten Client-Konfiguration E-Mails vom Server abzurufen. Ist das richtig so? Danke für die Hilfe - Eigentlich bin ich mit dem ganzen schon recht glücklich. Grüße an alle Artur
Artur Cichosz wrote:
Postfix antwortet nicht in Deutsch. Wie ich schon sagte, disable den (***Zensiert***)Virenscanner für ausgehende Mail.
Hast Recht der Virenscanner wars - jetzt läuft alles wunderbar. Aber meinen Virenscanner möchte ich weiterhin benutzen. Ich habe auch Thunderbird (Win32 1.0.7) ausprobiert und der hatte irgendwie keine Probleme mit dem aktiven Virenscanner also könnte ich theoretisch auch den nehmen - sieht ja fast wie Outlook aus. Aber ich finde ums Verrecken nicht die Einstellungsmöglichkeiten für ausgehende Mail. In den Konten - Einstellungen kann man nur die POP/IMAP-Server Einstellen und zu jedem POP-Server gibt es einen Button "Erweitert", wo ich einen SMTP-Server aus einer Liste Auswählen kann - Aber wie kommen diese dahin ???? Wo finde ich die Eigenschaften dieser Server?
Bei Outlook Express: Extras->Konten->Mail->Eigenschaften (von Konto) -> Server outgoing...
Meine allerletzte Frage wäre ob es mit Postfix 2.2.1 möglich ist, beide Richtungen (Empfang und Versand) auf TLS server-seitig für die Clients zu beschränken. Ich weiss ja dess es die Option "smtpd_tls_auth_only = yes" gibt. Aber wenn ich sie einschalte ist es immer noch möglich, mit einer unverschlüsselten Client-Konfiguration E-Mails vom Server abzurufen. Ist das richtig so?
Für das Abrufen der Mails ist Cyrus verantwortlich. Wenn TLS jetzt klappt, dann schalte imap und pop in den services ab und erlaube nur imaps und pops. Sandy -- Antworten bitte nur in die Mailingliste! PMs bitte an: news-reply2 (@) japantest (.) homelinux (.) com
Artur Cichosz schrieb:
Ich habe auch Thunderbird (Win32 1.0.7) ausprobiert und der hatte irgendwie keine Probleme mit dem aktiven Virenscanner also könnte ich theoretisch auch den nehmen - sieht ja fast wie Outlook aus. Aber ich finde ums Verrecken nicht die Einstellungsmöglichkeiten für ausgehende Mail. In den Konten - Einstellungen kann man nur die POP/IMAP-Server Einstellen und zu jedem POP-Server gibt es einen Button "Erweitert", wo ich einen SMTP-Server aus einer Liste Auswählen kann - Aber wie kommen diese dahin ???? Wo finde ich die Eigenschaften dieser Server?
Hallo, bei mir ist's drinnen in der Konten-Ansicht, links, unter den ganzen POP3/IMAP-Konten und heißt "Postausgang-Server (SMTP)". Da kann man die Verbinungseinstellungen festlegen und über den Button "Weitere SMTP" können die weiteren Ausgangs-Konfigurationen definiert werden, die dann bei den Eingangs-Diensten ausgewählt werden. In der "prefs..js" im Thunderbird-User-Profil werden die Infos etwa so gespeichert: user_pref("mail.smtp.defaultserver", "smtp1"); user_pref("mail.smtpserver.smtp1.auth_method", 1); user_pref("mail.smtpserver.smtp1.hostname", "rechner1"); user_pref("mail.smtpserver.smtp1.port", 25); user_pref("mail.smtpserver.smtp1.try_ssl", 0); user_pref("mail.smtpserver.smtp1.username", "user1"); user_pref("mail.smtpserver.smtp2.auth_method", 0); user_pref("mail.smtpserver.smtp2.hostname", "rechner2"); user_pref("mail.smtpserver.smtp2.port", 25); user_pref("mail.smtpserver.smtp2.try_ssl", 0); user_pref("mail.smtpserver.smtp2.username", "user2"); ... user_pref("mail.smtpservers", "smtp1,smtp2,..."); Grüße, Günther
Artur Cichosz wrote:
Ich habe die notwendigen alle soweit ich weiss eingetragen und folgendes ist die Folge. Ich kann Mails per POP und IMAP über TLS abholen aber leider wird beim verschicken über den Server gestreikt mit dem folgenden Fehler im Outlook Express 6
Ein unbekannter Fehler ist aufgetreten. ... Protokoll: SMTP, Serverantwort: '500 Nicht unterstützter Befehl.', Port: 25, Secure (SSL): Ja, Serverfehler: 500, Fehlernummer: 0x800CCC62
In /var/log/mail des Servers stehen nur drei zeilen
Jan 5 01:48:48 suse93lamp postfix/smtpd[5241]: initializing the server-side TLS engine Jan 5 01:48:48 suse93lamp postfix/smtpd[5241]: connect from aur200.neoplus.adsl.tpnet.pl[83.27.25.200] Jan 5 01:48:48 suse93lamp postfix/smtpd[5241]: disconnect from aur200.neoplus.adsl.tpnet.pl[83.27.25.200]
Ich gehe ebenfalls wie Andreas von einer Client-Fehlkonfiguration aus. Verwende mal einen anderen Client, der nicht von einem Virenscanner belästigt wird. In Thunderbird folgende Einstellungen: [x] Use name and password Use secure connection: [x] TLS Sandy -- Antworten bitte nur in die Mailingliste! PMs bitte an: news-reply2 (@) japantest (.) homelinux (.) com
Am Wednesday 04 January 2006 12:14 schrieb Artur Cichosz:
ich möchte jemanden von den Sicherheitsexperten in der Liste bitten, eine kurze Meinung zu folgender Sache zu geben.
Ich habe auf die schnelle einen Mailserver mit Postfix + Procmail + Cyrus + lokale Benutzer aufsetzen müssen. Diese Benutzer authentifizieren sich ja bei ihrer Mailbox mit dem Linux-Passwort und zu allem Überfluß klappt SSL/TLS auch irgendwie nicht (Beide Outlooks wollen nicht aber auch The Bat und Pegasus Mail) also läuft es im Moment ohne Verschlüsselung.
Dazu fällt mir spontan ein, dass der ein oder andere Virenscanner auf Windows-Clients SSL/TLS sperrt. Evtl. mal disablen und nochmal probieren. Kann aber auch noch ein paar andere Gründe haben.
Das war also die Ausgangslage und jetzt sieht es folgendermassen aus:
1) Suse Linux 9.3 2) Apache2 Webserver mit PHP4 3) Postfix / Cyrus Mailserver mit lokalen Benutzern und ohne TLS 4) Lokale Benutzer haben Standard-Rechte (Grupen users, video, dialout) 5) SuSEFirewall2 aktiv mit offenen Ports für ssh, pop3, pop3s, imap, imaps, http, https 6) Nur passwortloser SSH-Zugrif über RSA-Keys und nur SSH2
Wer kann mir mit einem oder zwei Sätzen kommentieren, wie gross das Risiko für das System ist kompromitiert zu werden wenn die Linux-User Daten bei dem E-Mail-Verkehr im Plain-Text durchs Netz gehen obwohl kein passwortbasierter Zugang über ssh möglich ist.
Wie sicher ist denn das Netz zwischen Server und Clients?
Gibts es eine möglichkeit über eine Postfix-Option die Linux-User oder Linux-User und Linux-Passwörter auf andere zu mappen - vielleicht mit SASL? Kennt jemand ein How-To, dass sich genau mit Cyrus SASL mit lokalen Usern beschäftigt? In den letzten zwei schlaflosen Nächten hatte ich wohl zu viel Input und weiss nicht so recht wo ich da ansetzen soll.
Cyrus-SASL bringt ne eigene Datenbank mit, die sasldb. Mit ein paar Handgriffen lässt sich diese einbinden und bringt auch noch ein paar Vorteile mit. Die Passwörter werden dort drin zwar im Klartext gespeichert, aber dadurch gibt es auch die Möglichkeit Authentifizierungsmechanismen zu benutzen, bei denen das Passwort nicht mehr über die Leitung geht. Bei saslauthd oder lokal verschlüsselten Passwörtern muss das Klartextpasswort übertragen werden.
P.S. Aus Zeitgünden war auf die Schnelle nur diese Lösung möglich aber ich arbeite bald daran die E-Mail-User über MySQL zu authentifizieren. Leider gehts nicht sofort und die E-Mails müssen sein.
Wenn sich jemand bereit erklärt mir bei dem SSL/TLS - Problem zu helfen so schiebe ich gerne noch zusätzliche infos wie z.b. die main.cf nach.
Kommen in den Logs fehler? Schalt mal verbose Logging ein (in der master.cf hinter dem smtpd ein "-vv") und schau Dir im Log mal genau an, was zwischen Client und Server übertragen wird. -- Andreas
participants (4)
-
Andreas Winkelmann
-
Artur Cichosz
-
Günther Zisham
-
Sandy Drobic