Diese Website existiert nur weil wir Werbung mit AdSense ausliefern.
Bitte den AdBlocker daher auf dieser Website ausschalten! Danke.

postfix mit tls und smtpd_auth

Alles rund um das Internet, Internet-Anwendungen (E-Mail, Surfen, Cloud usw.) und das Einrichten von Netzwerken einschl. VPN unter Linux

Moderator: Moderatoren

Gesperrt
Trexter
Newbie
Newbie
Beiträge: 35
Registriert: 14. Jul 2004, 15:09
Kontaktdaten:

postfix mit tls und smtpd_auth

Beitrag von Trexter »

Ich hoffe, dass man mir weiterhelfen kann, ich verzweifle nämlich. Ich habe mittlerweile so viele HOW-TO 's gelesen, dass ich jetzt total durcheinander bin. Bitte verzeiht, wenn einige Fragen für euch zu banal, manche Fragen vielleicht gar keinen Sinn ergeben.

OS: debian 2.6.8 testing

Ich versuche folgendes zu erreichen:
Einen postfix Mailserver zu installieren, der grundsätzlich TLS benutzt. Ich denke, dass ich das eigentlich auch hinbekommen habe. Zertifikat des Mailservers ist erstellt und durch meine eigene CA signiert. Auch privat und public keys sind vorhanden. Leider habe ich keine drei Rechner hier stehen, welches ich per man-in-the-middle als C-Rechner überprüfen kann, ob die Verbindung zwischen A-Rechner und B-Rechner auch tatsächlich verschlüsselt ist.

Am Mailserver soll man sich authentifizieren. Also smptd_auth. Hier habe ich Schwierigkeiten und offensichtlich auch Denkfehler. Den die aufgabe des MDA soll cyrus übernehmen, der ja seine Benutzer über sasldb authetifiziert. Was zum Geier ist sasldb2 ??? Was ist der Unterschied zwischen sasldb und sasldb2?
In sehr vielen HOW-TO's habe ich gelesen, dass man cyrus-sasl installieren soll. Die Binärdateien liegen ja zuhauf im Netz. Version 1.xxx habe ich problemlos kompilieren können, Versionen ab 2 wollen nicht. Aber grundsätzlich mal die Frage: Warum findet apt-cache search nichts über cyrus-sasl ? Wird cyrus-sasl für die authentifizierung am smptd benötig oder steht cyrus-sasl eher in Verbindung mit dem MDA Cyrus-Imap ?

Kopfzerbrechen machen mir auch die restrictions. WO gehören diese eigentlich hin? In die main.cf oder in die master.cf? Dem Postfixbuch von Peer Heinlein habe ich nichts entnehmen können.

Wenn die Verbindung per TLS abgesichert ist, ist es dann Tabu, dass die login-passwörter für die Anmeldung am Server nochmal MD5 verschlüsselt sind. Ich möchte nämlich, dass sowohl cyrus für seine Benutzerverwaltung ( Mail Accounts) als auch postfix (smtpd_auth) die gleiche datei benutzen: /etc/sasldb2. Und hier sind die nunmal verschlüsselt abgelegt, oder? Per ACL habe ich der Gruppe postfix der /etc/sasldb2 leserechte vergeben, aber leider funtz das ganze noch nicht.

/etc/postfix/transports
/etc/postfix/sasl

Diese Dateien und Ordner sind ja nach einem apt-get install postfix zunächst mal nicht vorhanden. Wo/Wie teile ich postfix mit, dass diese nun existieren? Damit postfix zum beispiel die /etc/postfix/sasl/smtpd.conf auswertet.
Wenn in für smtpd_auth die sasldbd2 benutzt werden soll, was muss in der /etc/postfix/sasl/smtpd.conf für pwcheck_method: stehen? auxprop oder saslauthd? Wenn die Verbindung per TLS aufgebaut wurde, was gilt dann für die mech_list ?
PLAIN LOGIN CRAM-MD5 DIGEST-MD ???

In der einfachen Konfiguration mit POP3, spamassassin, clamav bekomme ich den Mailserver zum laufen. Ich wäre sehr erfreut darüber, wenn ich mehr über die oben erwähnten mechanismen erfahren könnte.
Benutzeravatar
ThomasF
Hacker
Hacker
Beiträge: 578
Registriert: 1. Mai 2004, 12:37
Wohnort: Köln

Beitrag von ThomasF »

Jaja, Cyrus-Sasl ...

ist recht mäßig dokumentiert, das ist wahr. Ein ganz brauchbares Dokument findest Du hier falls Du es noch nicht kennst.

http://postfix.state-of-mind.de/patrick ... s_SASL.pdf

Was das Postfix-Buch angeht habe ich leider bisher nur die erste Auflage, aber dort ist das Kapitel 18.3 diesem Thema (TLS/SSL ) gewidmet.

Von dort hatte ich auch die Anregung mit stunnel um die Verbindung zu imap und pop3 zu verschlüßeln.

Aber nun zu Deinem Thema,
Am Mailserver soll man sich authentifizieren. Also smptd_auth
Hmm, also ich denke doch das sich Deine User auch authentifizieren sollen wenn sie ihre Mails abholen, oder nicht ?

Das übernimmt dann der Cyrus-Imapd !!!
Die Konfigurationsdatei hierfür ist die /etc/imapd.conf.

Dort steht dann u.A auch so was drin.

Code: Alles auswählen

sasl_pwcheck_method: saslauthd
sasl_mech_list: PLAIN LOGIN #DIGEST-MD5 
saslauthd ist ein Teil von cyrus-sasl. Wobei Du bei cyrus-sasl zwischen verschiedene Passwortbackends aufwählen kannst (sasldb, PAM, LDAP ... )
Wo der Unterschied zwischen sasldb und sasldb2 liegt kann ich Dir nicht genau sagen, ich vermute es liegt an dem DB Format (Berkeley x.x)

Aber meiner Erfahrung nach sind die Passwörter in der sasldb2 nicht verschlüßelt ... mach doch den Test wenn Du einen User eingetragen hast mit cat /etc/sasldb2 ...
Bei mir sind die Passwörter dort menschenlesbar :-(

Wenn ich die Verfahren mit Sicherer Authentifizierung (MD5)richtig verstanden habe geht das wohl nicht anders ...

Obwohl ich das auch nicht ganz verstehe da selbst nach dem Hack von MD5, nach dem Heise Artikel, es sehr sehr lange dauert bis man 2 Hashes gefunden hat die übereinstimmen ;-) 170.000 Jahre

http://www.heise.de/security/artikel/56555

Also nichts desto Trotz hast Du zwei Möglichkeiten :

1. TLS/SSL Das Passwort ist im Klartext vom Client gesendet wird aber über eine sichere Verbindung über das Netzwerk übertragen (kein Abhören möglich) auf dem Server ist das Passwort dann wieder Klartext und wird mit einem Hash in der /etc/passwd oder in LDAP vergleichen.

2. MD5 das Passwort wird vom Client verschlüßelt und dann über das Netzwerk an den Server geschickt. (auch kein Abhören möglich) der Server braucht das Passwort dann aber im Klartext um es selber dann zu crypten und mit dem übertragenen Hash zu vergleichen.

Eines von beiden solltest Du auf jeden Fall nutzen !!!
Wenn die Verbindung per TLS aufgebaut wurde, was gilt dann für die mech_list ? PLAIN LOGIN CRAM-MD5 DIGEST-MD ???
Wenn Du TLS nimmst ist es für normale Clients PLAIN und für Windows Clients (OE und OE Express ) LOGIN.

Wenn Du MD5 nimmst (sichere Authentifizierenung (z.B thunderbird)) nimmt er einen der beiden MD5, wobei Du nur DIGEST-MD5 eintragen solltest.

Bei smtp ist es vergleichbar, Du must nur andere Konfigurationsdateinen nehmen z.B /etc/postfix/main.cf und Deine smtpd.conf von sasl, woimmer die auch bei Dir liegt (bei SuSE ist das usr/lib/sasl2/smtpd.conf)

So das soll es erst mal gewesen sein ;-) Das Thema ist aber sehr komplex und nicht so toll dokumentiert ...

So long

ThomasF
______________________

Ich bin /root, ich darf das !
Trexter
Newbie
Newbie
Beiträge: 35
Registriert: 14. Jul 2004, 15:09
Kontaktdaten:

Beitrag von Trexter »

Vielen Dank für dein ausfühliches posting. Der state-of-mind link ist sehr gut

"1. TLS/SSL Das Passwort ist im Klartext vom Client gesendet wird aber über eine sichere Verbindung über das Netzwerk übertragen (kein Abhören möglich) auf dem Server ist das Passwort dann wieder Klartext und wird mit einem Hash in der /etc/passwd oder in LDAP vergleichen.

2. MD5 das Passwort wird vom Client verschlüßelt und dann über das Netzwerk an den Server geschickt. (auch kein Abhören möglich) der Server braucht das Passwort dann aber im Klartext um es selber dann zu crypten und mit dem übertragenen Hash zu vergleichen. "


Bedeutet deis, dass bei einsazt von TLS Verschlüsselung nicht möglich ist oder nicht nötig ist?
Benutzeravatar
ThomasF
Hacker
Hacker
Beiträge: 578
Registriert: 1. Mai 2004, 12:37
Wohnort: Köln

Beitrag von ThomasF »

Mmm,

das ist die Frage ;-)

Wenn Du die MD5 Variante wählst, also auf dem Server in der sasldb2 die Passwörter einträgst (wobei die User z.B ihr Passwort selber nicht so einfach ändern können) kannst Du ohne weiteres zusätzlich noch TLS/SSL nehmen ...
In Thunderbird sichere Authentifizierung und sichere Verbindung.

Wobei der Zuwachs an Sicherheit nicht besonders hoch sein wird ...

Aber Du mußt dabei halt wissen ob es Dir so recht ist das in der sasldb2 die Passwörter im Klartext stehen ?!?

Ich bastle gerade daran die Passwörter in LDAP im Hash liegen zu lassen und trotzdem MD5 zu nutzen....

Nur das ich dabei eine Krise nach der anderen bekommen weil es eben nicht funktioniert so wie ich das will *grummel*

Dabei erkenne ich manchmal ein paar Zusammenhänge nur leider nichts was mich bisher viel weiter gebracht hat ...

So long

ThomasF
______________________

Ich bin /root, ich darf das !
Trexter
Newbie
Newbie
Beiträge: 35
Registriert: 14. Jul 2004, 15:09
Kontaktdaten:

Beitrag von Trexter »

hmm, in sasldb2 liegen die Passwörter quasi in Klartext vor. Was ist mit sasldb? Ist diese Datei nicht zu nehmen? Wenn nix mehr geht, reicht es nicht die Datei sasldb2 oder sasldbd mit Rechten zu schützen (ACL)?
Benutzeravatar
ThomasF
Hacker
Hacker
Beiträge: 578
Registriert: 1. Mai 2004, 12:37
Wohnort: Köln

Beitrag von ThomasF »

wie schon gesagt der Unterschied zwischen sasldb und sasldb2 ist mir auch noch nicht ganz klar, aber ich vermute in sasldb liegen die Passwörter auch im Klartext vor.

Ja, man kann die Datei mit der Rechtevergabe schützen, aber der User cyrus muß auf jeden Fall Lese und Schreibrechte haben.
Und nichts desto Trotz kann dieser User und root die Passwörter im Klartext lesen.

Für mich bzw. uns hier ist das nicht akzeptabel ...
Aber das mußt Du für Deinen Fall selber wissen ...

Für meinen Fall schau ich mir jetzt mal Kerberos an oder einen direkten Weg zu LDAP ohne saslauthd.

Solange nutze ich halt stunnel für eine sichere Verbindung zwischen Client und Server ...

So long

ThomasF
______________________

Ich bin /root, ich darf das !
Trexter
Newbie
Newbie
Beiträge: 35
Registriert: 14. Jul 2004, 15:09
Kontaktdaten:

Beitrag von Trexter »

Vielen Dank noch einmal.
Gesperrt