Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
Beide Seiten der vorigen Revision Vorhergehende Überarbeitung Nächste Überarbeitung | Vorhergehende Überarbeitung | ||
centos:mail_c7:mta_8 [28.10.2014 18:51. ] – [Installation] django | centos:mail_c7:mta_8 [20.05.2021 12:43. ] (aktuell) – Externe Bearbeitung 127.0.0.1 | ||
---|---|---|---|
Zeile 1: | Zeile 1: | ||
====== SASL-Authentifizierung beim Postfix MTA 2.11 unter CentOS 7 ====== | ====== SASL-Authentifizierung beim Postfix MTA 2.11 unter CentOS 7 ====== | ||
Zur Authentifizierung unserer Mail-Clients gegenüber unserem Mailserver wollen wir **SMTP-Auth**((// | Zur Authentifizierung unserer Mail-Clients gegenüber unserem Mailserver wollen wir **SMTP-Auth**((// | ||
- | Da SMTP-Auth nicht regelt, wie der Mailserver auf die eigentliche Userdatenbank zugreifen kann, benötigen wir Unterstützung durch **SASL**((// | + | Da SMTP-Auth nicht regelt, wie der Mailserver auf die eigentliche Userdatenbank zugreifen kann, benötigen wir Unterstützung durch **SASL**((// |
Postfix unterstützt zwei verschiedene SASL-Implementierungen, | Postfix unterstützt zwei verschiedene SASL-Implementierungen, | ||
Zeile 8: | Zeile 8: | ||
Beide Lösungen sind vom Grundsatz her gleich aufgebaut - liegt doch beiden folgende Struktur zu Grunde. | Beide Lösungen sind vom Grundsatz her gleich aufgebaut - liegt doch beiden folgende Struktur zu Grunde. | ||
- | < | + | <uml> |
skinparam defaultFontName Courier | skinparam defaultFontName Courier | ||
Zeile 38: | Zeile 38: | ||
{{: | {{: | ||
- | Dass dies nicht unbedingt stimmt, wollen wir uns an Hand des nachfolgenden Konfigurationsbeispiels genauer ansehen. Werfen wir als erstes | + | Dass dies nicht unbedingt stimmt, wollen wir uns an Hand des nachfolgenden Konfigurationsbeispiels genauer ansehen. Werfen wir als erstes |
- | < | + | <uml> |
skinparam defaultFontName Courier | skinparam defaultFontName Courier | ||
Zeile 306: | Zeile 306: | ||
==== Konfiguration ==== | ==== Konfiguration ==== | ||
+ | Die Konfiguration von **cyrus-sasl** erfolgt nun mit Hilfe von zwei Dateien. Die erste Datei // | ||
+ | # less / | ||
+ | <file bash / | ||
+ | # Directory in which to place saslauthd' | ||
+ | # on. This directory must already exist. | ||
+ | SOCKETDIR=/ | ||
+ | # Mechanism to use when checking passwords. | ||
+ | # of which mechanism your installation was compiled with the ablity to use. | ||
+ | MECH=pam | ||
+ | # Additional flags to pass to saslauthd on the command line. See saslauthd(8) | ||
+ | # for the list of accepted flags. | ||
+ | FLAGS= | ||
+ | </ | ||
+ | |||
+ | Die weitere wichtige Stelle, an der wir nun die **SASL-Mechanismen** und die **SASL Methoden & Password Verification Services** konfigurieren müssen, ist // | ||
+ | # rpm -qf / | ||
+ | |||
+ | | ||
+ | |||
+ | Diese Konfigurationsdatei bearbeiten wir nun mit dem editor unserer wahl, z.B. **vim**. | ||
+ | |||
+ | # vim / | ||
+ | <file bash / | ||
+ | # default: log_level: 1 | ||
+ | log_level: 3 | ||
+ | |||
+ | # Django : 2014-10-27 - Das Auxiliary Property plugin für die Anbindung an das Datenbankbackend mysql | ||
+ | # verwenden | ||
+ | # default: pwcheck_method: | ||
+ | pwcheck_method: | ||
+ | |||
+ | # Django : 2014-10-27 - Die Mechanismen PLAIN, LOGIN, CRAM-MD5, DIGEST-MD5 und NTLM anbieten | ||
+ | # default: mech_list: plain login | ||
+ | mech_list: PLAIN LOGIN CRAM-MD5 DIGEST-MD5 NTLM | ||
+ | |||
+ | # Django : 2014-10-27 - Definition der Datenbankanbindung an unseren mySQL-Datenbankserver | ||
+ | # default: unset | ||
+ | auxprop_plugin: | ||
+ | sql_engine: mysql | ||
+ | sql_hostnames: | ||
+ | sql_database: | ||
+ | sql_user: postfix_user | ||
+ | sql_passwd: rbBgeM2b2btx9iMHfzd | ||
+ | sql_select: SELECT password FROM mailbox WHERE username=' | ||
+ | sql_usessl: no | ||
+ | </ | ||
+ | |||
+ | ==== manueller Start von Cyrus-SASL ==== | ||
+ | Da wir die Konfiguration von **Cyrus-SASL** erfolgreich beendet haben, können wir nun den zugehörigen Service starten. | ||
+ | # systemctl start saslauthd.service | ||
+ | |||
+ | Den erfolgreichen Start des Daemon können wir wie folgt abfragen. | ||
+ | # systemctl status saslauthd.service | ||
+ | < | ||
+ | | ||
+ | | ||
+ | Process: 27468 ExecStart=/ | ||
+ | Main PID: 27469 (saslauthd) | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | |||
+ | Oct 28 20:19:36 vml000087.dmz.nausch.org systemd[1]: Starting SASL authentication daemon.... | ||
+ | Oct 28 20:19:36 vml000087.dmz.nausch.org saslauthd[27469]: | ||
+ | Oct 28 20:19:36 vml000087.dmz.nausch.org saslauthd[27469]: | ||
+ | Oct 28 20:19:36 vml000087.dmz.nausch.org systemd[1]: Started SASL authentication daemon.. | ||
+ | </ | ||
+ | |||
+ | ==== manueller Start von Cyrus-SASL beim Systemstart ==== | ||
+ | Wollen wir den Daemon beim Hochfahren des Systems automatisch starten, greifen wir auf den Befehl **systemctl** zurück. | ||
+ | # systemctl enable saslauthd.service | ||
+ | |||
+ | ln -s '/ | ||
+ | |||
+ | Möchten wir uns vergewissern, | ||
+ | # systemctl is-enabled saslauthd.service | ||
+ | |||
+ | | ||
+ | |||
+ | Startet der Server nicht automatisch, | ||
+ | |||
+ | ==== Postfix-Konfiguration ==== | ||
+ | Die Konfiguration von SASL-Auth beim Postfix MTA gestaltet sich sehr einfach im Vergleich zu den Vorbereitungen auf Seiten von **cyrus-sasl**. Detailierte Hinweise hierzu finden wir in der entsprechenden **[[http:// | ||
+ | |||
+ | Wir legen uns eine eigene Sektion in der Postfix-Konfigurationsdatei // | ||
+ | |||
+ | <code bash>... | ||
+ | |||
+ | ################################################################################ | ||
+ | ## SASL-Authentifizierung | ||
+ | # | ||
+ | # Django : 2014-10-27 SASL Authentifizierung aktivieren | ||
+ | # http:// | ||
+ | # default: smtpd_sasl_auth_enable = no | ||
+ | smtpd_sasl_auth_enable = yes | ||
+ | |||
+ | # Django : 2014-10-27 Statt des Default SASL-Mechanismus " | ||
+ | # SALS-Implementierung von Dovecot nutzen. | ||
+ | # http:// | ||
+ | # default: smtpd_sasl_type = cyrus | ||
+ | |||
+ | # Django : 2014-10-27 Definition wie Postfix das Authentifizierungsbackend | ||
+ | # erreichen kann; dies ist entweder eine Datei mit weiteren | ||
+ | # Konfigurationsdetails oder ein UNIX oder TCP-Socket | ||
+ | # http:// | ||
+ | # default: smtpd_sasl_path = smtpd | ||
+ | |||
+ | # Django : 2014-10-27 Obsolete Authentifizierungsbefehle (RFC 4954) unter- | ||
+ | # stützen, um so Clients wie z.B. MicroSoft Outlook Express version 4 | ||
+ | # oder MicroSoft Exchange Version 5.0 die Authentifizierungsmöglichkeit | ||
+ | # zur Verfügung zu stellen. | ||
+ | # http:// | ||
+ | # default: broken_sasl_auth_clients = no | ||
+ | broken_sasl_auth_clients = yes | ||
+ | |||
+ | # Django : 2014-10-27 Definition des Namen des lokalen SASL Authentifizierungs | ||
+ | # Realm. | ||
+ | # http:// | ||
+ | # default: smtpd_sasl_local_domain = | ||
+ | |||
+ | # Django : 2014-10-27 Postfix SMTP Daemon SASL Sicherheitsoptionen | ||
+ | # Welche Authentifizierungsmechanismen soll der Postfix SMTP-Daemon | ||
+ | # den Clients anbieten? | ||
+ | # http:// | ||
+ | # default: smtpd_sasl_security_options = noanonymous | ||
+ | |||
+ | # Django : 2014-10-27 SASL Authentifizierung Sicherheitsoptionen, | ||
+ | # SMTP-Daemon für TLS verschlüsselte SMTP-Verbindungen nutzen soll. | ||
+ | # http:// | ||
+ | # default: smtpd_sasl_tls_security_options = $smtpd_sasl_security_options | ||
+ | |||
+ | ... | ||
+ | </ | ||
+ | |||
+ | Der Der Wert **yes** beim Konfigurationsparameter **broken_sasl_auth_clients** bewirkt, dass auch Clients wie z.B. MicroSoft Outlook Express Version 4 oder MicroSoft Exchange version 5.0, die die obsoleten Authentifizierungsbefehle (RFC 4954) unterstützen, | ||
+ | |||
+ | Zur Aktivierung unserer Konfigurationsänderungen führen wir nun einen Reload unseres Daemon durch. | ||
+ | # systemctl reload postfix | ||
+ | |||
+ | Nachdem wir die Konfiguration von **cyrus-sasl** und unseres **postfix**-Daemon erfolgreich abgeschlossen haben, können wir uns daran machen, die **[[centos: | ||
===== SASL mit Dovecot ===== | ===== SASL mit Dovecot ===== | ||
+ | {{: | ||
- | www.postfix.org/SASL_README.html | + | Wie auch die **[[http://www.cyrusimap.org/docs/ |
- | ===== Konfigurationsänderungen aktivieren ===== | + | |
+ | Werfen wir auch hier erst einen Blick auf das Eingangs gezeigte **[[centos: | ||
+ | |||
+ | <uml> | ||
+ | skinparam defaultFontName Courier | ||
+ | |||
+ | |||
+ | state MUA as " | ||
+ | state "SASL Request" | ||
+ | request : Der Mail-User-Agent " | ||
+ | request : sich authentifizieren, | ||
+ | request : eine eMail an einen externen | ||
+ | request : Empfänger senden will. (relaying) | ||
+ | } | ||
+ | |||
+ | state " | ||
+ | state " | ||
+ | state " | ||
+ | smtpd : Annahme der ankommenden Verbindung | ||
+ | smtpd : sowie Durchführung der Authentifizierung | ||
+ | smtpd : und ggf. Annahme der Nachricht | ||
+ | | ||
+ | state " | ||
+ | dovecot : SASL-Socket/ | ||
+ | dovecot : DOVECOT-IMAP-Server | ||
+ | } | ||
+ | state " | ||
+ | mech : PLAIN LOGIN CRAM-MD5 DIGEST-MD5 NTLM | ||
+ | state " | ||
+ | } | ||
+ | |||
+ | state "mySQL Datenbank" | ||
+ | mysql : postfix-admin | ||
+ | mysql : Datenbanktabelle | ||
+ | |||
+ | |||
+ | |||
+ | request -right-> smtpd | ||
+ | smtpd -down-> dovecot | ||
+ | dovecot -down-> mech | ||
+ | mech -up-> dovecot | ||
+ | mech --> method | ||
+ | method --> mech | ||
+ | method -down-> mysql | ||
+ | mysql -up-> method | ||
+ | |||
+ | |||
+ | note left of method | ||
+ | |||
+ | / | ||
+ | └── !include auth-sql.conf.ext | ||
+ | |||
+ | end note | ||
+ | |||
+ | note right of smtpd | ||
+ | |||
+ | / | ||
+ | ├── service auth { | ||
+ | ├── smtpd_sasl_type = dovecot | ||
+ | ├── smtpd_sasl_path = inet: | ||
+ | ├── broken_sasl_auth_clients = yes | ||
+ | ├── smtpd_sasl_security_options = noanonymous | ||
+ | └── smtpd_sasl_tls_security_options = $smtpd_sasl_security_options | ||
+ | |||
+ | end note | ||
+ | |||
+ | note right of dovecot | ||
+ | |||
+ | / | ||
+ | ├── service auth { | ||
+ | ├──── inet_listener { | ||
+ | ├──── address = imap.dmz.nausch.org | ||
+ | ├──── port = 3659 | ||
+ | ├─── } | ||
+ | └── } | ||
+ | |||
+ | end note | ||
+ | |||
+ | note right of mech | ||
+ | |||
+ | / | ||
+ | └── auth_mechanisms = plain login digest-md5 cram-md5 ntlm | ||
+ | |||
+ | end note | ||
+ | |||
+ | </ | ||
+ | |||
+ | ==== Konfiguration ==== | ||
+ | Hinweise zur Konfiguration findet man in der **[[http:// | ||
+ | |||
+ | Die Auswahl der SASL-Mechanismen erfolgt beim Dovecot-IMAP-Server in der Konfigurationsdatei // | ||
+ | # vim / | ||
+ | |||
+ | <code bash>... | ||
+ | |||
+ | # Space separated list of wanted authentication mechanisms: | ||
+ | # plain login digest-md5 cram-md5 ntlm rpa apop anonymous gssapi otp skey | ||
+ | # | ||
+ | # NOTE: See also disable_plaintext_auth setting. | ||
+ | # Django : 2014-05-23 | ||
+ | # default: auth_mechanisms = plain | ||
+ | auth_mechanisms = plain login digest-md5 cram-md5 ntlm | ||
+ | |||
+ | ... | ||
+ | </ | ||
+ | |||
+ | Wie auch schon bei den **SASL-Mechanismen** greifen wir bei den **Methoden / Password Verification Service** auf die Konfigurationen des Dovecot-IMAP-Servers zurück. Wir brauchen daher nichts weiter gesondert konfigurieren, | ||
+ | # less / | ||
+ | |||
+ | < | ||
+ | |||
+ | # Django : 2014-07-30 | ||
+ | # Auswahl des Authentifizierungsmechanismus | ||
+ | # default: !include auth-system.conf.ext | ||
+ | #!include auth-system.conf.ext | ||
+ | !include auth-sql.conf.ext | ||
+ | </ | ||
+ | |||
+ | Was uns eigentlich an Konfiguration auf Seiten des Dovecot-Servers nocht fehlt ist die Schnittstelle des SASL-Proxies, | ||
+ | # vim / | ||
+ | |||
+ | <code bash>... | ||
+ | |||
+ | service auth { | ||
+ | # auth_socket_path points to this userdb socket by default. It's typically | ||
+ | # used by dovecot-lda, | ||
+ | # full permissions to this socket are able to get a list of all usernames and | ||
+ | # get the results of everyone' | ||
+ | # | ||
+ | # The default 0666 mode allows anyone to connect to the socket, but the | ||
+ | # userdb lookups will succeed only if the userdb returns an " | ||
+ | # matches the caller process' | ||
+ | # socket' | ||
+ | # | ||
+ | # To give the caller full permissions to lookup all users, set the mode to | ||
+ | # something else than 0666 and Dovecot lets the kernel enforce the | ||
+ | # permissions (e.g. 0777 allows everyone full permissions). | ||
+ | unix_listener auth-userdb { | ||
+ | # Django : 2014-08-08 | ||
+ | # Authentication Socket für userdb-Anfragen bei Nutzung von shared folders | ||
+ | # default: #mode = 0666 | ||
+ | # #user = | ||
+ | # #group = | ||
+ | user = vmail | ||
+ | group = vmail | ||
+ | } | ||
+ | |||
+ | # Postfix smtp-auth | ||
+ | # | ||
+ | # mode = 0666 | ||
+ | #} | ||
+ | |||
+ | # Auth process is run as this user. | ||
+ | #user = $default_internal_user | ||
+ | |||
+ | # Django : 2014-05-23 | ||
+ | # default: unset | ||
+ | # Authentifizierungsport 3659 für Postfix Frontend-Mailserver definiert | ||
+ | inet_listener { | ||
+ | | ||
+ | port = 3659 | ||
+ | } | ||
+ | } | ||
+ | |||
+ | ... | ||
+ | </ | ||
+ | |||
+ | <WRAP center round info> | ||
+ | Dies ist vermutlich der Grund, warum viele Administratoren der Dovecot-SASL Implementierung der Cyrus-SASL Implementierung vorziehen. | ||
+ | </ | ||
+ | |||
+ | |||
+ | Zur Aktivierung unserer Konfigurationsänderungen führen wir nun einen Reload des Dovecot-Daemon durch. | ||
+ | # systemctl reload dovecot.service | ||
+ | |||
+ | |||
+ | |||
+ | ==== Paketfilter ==== | ||
+ | Damit unser Postfix-MTA (smtp.dmz.nausch.org) auch Authentifizierungsanfragen an unseren Dovecot-MDA (imap.dmz.nausch.org) stellen kann, muss dieser den Authentifizierungs-Port **3659** erreichen können. Wir erstellen also eine passende Regel bei unserem Paketfilter/ | ||
+ | |||
+ | # firewall-cmd --permanent --zone=public --add-rich-rule=" | ||
+ | |||
+ | Zur Aktivierung führen wir einen Reload des Firewall-Daemon durch. | ||
+ | |||
+ | # firewall-cmd --reload | ||
+ | |||
+ | Wollen wir überprüfen, | ||
+ | |||
+ | # iptables -nvL IN_public_allow | ||
+ | < | ||
+ | pkts bytes target | ||
+ | 0 0 ACCEPT | ||
+ | 0 0 ACCEPT | ||
+ | 0 0 ACCEPT | ||
+ | </ | ||
+ | |||
+ | ==== Postfix-Konfiguration ==== | ||
+ | Die Konfiguration von SASL-Auth beim Postfix MTA gestaltet sich ähnlich einfach, wie beim zuvor vorgestellten Konfigurationsbeispiel bei der **[[centos: | ||
+ | |||
+ | Wir legen uns eine eigene Sektion in der Postfix-Konfigurationsdatei // | ||
+ | |||
+ | <code bash>... | ||
+ | |||
+ | ################################################################################ | ||
+ | ## SASL-Authentifizierung | ||
+ | # | ||
+ | # Django : 2014-10-27 SASL Authentifizierung aktivieren | ||
+ | # http:// | ||
+ | # default: smtpd_sasl_auth_enable = no | ||
+ | smtpd_sasl_auth_enable = yes | ||
+ | |||
+ | # Django : 2014-10-27 Statt des Default SASL-Mechanismus " | ||
+ | # SALS-Implementierung von Dovecot nutzen. | ||
+ | # http:// | ||
+ | # default: smtpd_sasl_type = cyrus | ||
+ | smtpd_sasl_type = dovecot | ||
+ | |||
+ | # Django : 2014-10-27 Definition wie Postfix das Authentifizierungsbackend | ||
+ | # erreichen kann; dies ist entweder eine Datei mit weiteren | ||
+ | # Konfigurationsdetails oder ein UNIX oder TCP-Socket | ||
+ | # http:// | ||
+ | # default: smtpd_sasl_path = smtpd | ||
+ | smtpd_sasl_path = inet: | ||
+ | |||
+ | # Django : 2014-10-27 Obsolete Authentifizierungsbefehle (RFC 4954) unter- | ||
+ | # stützen, um so Clients wie z.B. MicroSoft Outlook Express version 4 | ||
+ | # oder MicroSoft Exchange Version 5.0 die Authentifizierungsmöglichkeit | ||
+ | # zur Verfügung zu stellen. | ||
+ | # http:// | ||
+ | # default: broken_sasl_auth_clients = no | ||
+ | broken_sasl_auth_clients = yes | ||
+ | |||
+ | # Django : 2014-10-27 Definition des Namen des lokalen SASL Authentifizierungs | ||
+ | # Realm. | ||
+ | # http:// | ||
+ | # default: smtpd_sasl_local_domain = | ||
+ | |||
+ | # Django : 2014-10-27 Postfix SMTP Daemon SASL Sicherheitsoptionen | ||
+ | # Welche Authentifizierungsmechanismen soll der Postfix SMTP-Daemon | ||
+ | # den Clients anbieten? | ||
+ | # http:// | ||
+ | # default: smtpd_sasl_security_options = noanonymous | ||
+ | |||
+ | # Django : 2014-10-27 SASL Authentifizierung Sicherheitsoptionen, | ||
+ | # SMTP-Daemon für TLS verschlüsselte SMTP-Verbindungen nutzen soll. | ||
+ | # http:// | ||
+ | # default: smtpd_sasl_tls_security_options = $smtpd_sasl_security_options | ||
+ | |||
+ | ... | ||
+ | </ | ||
+ | |||
+ | Der Der Wert **yes** beim Konfigurationsparameter **broken_sasl_auth_clients** bewirkt, dass auch Clients wie z.B. MicroSoft Outlook Express Version 4 oder MicroSoft Exchange version 5.0, die die obsoleten Authentifizierungsbefehle (RFC 4954) unterstützen, | ||
+ | |||
+ | Zur Aktivierung unserer Konfigurationsänderungen führen wir nun einen Reload unseres Daemon durch. | ||
# systemctl reload postfix | # systemctl reload postfix | ||
- | ===== Verbindung | + | Nachdem wir die Konfiguration von **cyrus-sasl** und unseres **postfix**-Daemon erfolgreich abgeschlossen haben, können wir uns daran machen, die **[[centos: |
+ | ===== Testen ===== | ||
+ | ==== Authentifizierungsoptionen ==== | ||
+ | Als erstes testen wir, ob und ggf. welche SASL-Mechanismen unser POstfix SMTP-Server nun anbietet. Dazu öffnet wir eine SMTP-Sitzung und melden uns beim SMTP-Daemon mit dem " | ||
# telnet ::1 25 | # telnet ::1 25 | ||
< | < | ||
Zeile 329: | Zeile 729: | ||
250-ETRN | 250-ETRN | ||
250-STARTTLS | 250-STARTTLS | ||
- | 250-AUTH PLAIN LOGIN DIGEST-MD5 CRAM-MD5 | + | 250-AUTH PLAIN LOGIN DIGEST-MD5 CRAM-MD5 |
- | 250-AUTH=PLAIN LOGIN DIGEST-MD5 CRAM-MD5 | + | 250-AUTH=PLAIN LOGIN DIGEST-MD5 CRAM-MD5 |
250-ENHANCEDSTATUSCODES | 250-ENHANCEDSTATUSCODES | ||
250 8BITMIME | 250 8BITMIME | ||
Zeile 338: | Zeile 738: | ||
</ | </ | ||
+ | An der zweiten Zeile '' | ||
+ | ==== Test der Authentifizierung ==== | ||
+ | Zum leichteren Testen der Authentifizierung greifen wir auf das " | ||
- | # swaks --to django@nausch.org --from michael@nausch.org --auth | + | Nach Aufruf von **swaks** werden wir nach dem zugehörigen Passwort gefragt. Anschließend sehen wir den SMTP-Dialog zwischen dem Cilene " |
+ | |||
+ | # swaks --to django@nausch.org --from michael@nausch.org --auth | ||
| | ||
Zeile 353: | Zeile 758: | ||
<- 250-ETRN | <- 250-ETRN | ||
<- 250-STARTTLS | <- 250-STARTTLS | ||
- | <- 250-AUTH PLAIN LOGIN DIGEST-MD5 CRAM-MD5 | + | <- 250-AUTH PLAIN LOGIN CRAM-MD5 DIGEST-MD5 NTLM |
- | <- 250-AUTH=PLAIN LOGIN DIGEST-MD5 CRAM-MD5 | + | <- 250-AUTH=PLAIN LOGIN CRAM-MD5 DIGEST-MD5 NTLM |
<- 250-ENHANCEDSTATUSCODES | <- 250-ENHANCEDSTATUSCODES | ||
<- 250-8BITMIME | <- 250-8BITMIME | ||
<- 250 DSN | <- 250 DSN | ||
- | -> AUTH CRAM-MD5 | + | -> AUTH LOGIN |
- | <- 334 PDk2Mjk5MjQ4Njc5ODA2FucKMzQuMTQxNxNzE1M0B2bWwMAwNzcuZG16Lm5hdXNjaC5vcmc+ | + | <- 334 VXNlcm5hbWU6 |
- | | + | -> bWljaGFl69cuYXTzY2Tub3Jn |
+ | <- 334 UGFzc3dvcQ69 | ||
+ | | ||
<- 235 2.7.0 Authentication successful | <- 235 2.7.0 Authentication successful | ||
-> MAIL FROM:< | -> MAIL FROM:< | ||
Zeile 368: | Zeile 775: | ||
-> DATA | -> DATA | ||
<- 354 End data with < | <- 354 End data with < | ||
- | -> Date: Mon, 27 Oct 2014 14:39:08 +0100 | + | -> Date: Tue, 28 Oct 2014 22:59:26 +0100 |
-> To: django@nausch.org | -> To: django@nausch.org | ||
-> From: michael@nausch.org | -> From: michael@nausch.org | ||
- | -> Subject: test Mon, 27 Oct 2014 14:39:08 +0100 | + | -> Subject: test Tue, 28 Oct 2014 22:59:26 +0100 |
-> X-Mailer: swaks v20130209.0 jetmore.org/ | -> X-Mailer: swaks v20130209.0 jetmore.org/ | ||
-> X-Test: test email | -> X-Test: test email | ||
Zeile 378: | Zeile 785: | ||
| | ||
-> . | -> . | ||
- | <- 250 2.0.0 Ok: queued as 02E93C00088 | + | <- 250 2.0.0 Ok: queued as DE611C00088 |
-> QUIT | -> QUIT | ||
<- 221 2.0.0 Bye | <- 221 2.0.0 Bye | ||
=== Connection closed with remote host. | === Connection closed with remote host. | ||
</ | </ | ||
+ | |||
+ | Im Maillog wird die erfolgreiche Authentifizierung und die weitere Verarbeitung unserer Mail entsprechend dokumentiert. | ||
# less / | # less / | ||
- | < | + | < |
- | Oct 27 14:39:14 vml000087 postfix/ | + | Oct 28 22:59:34 vml000087 postfix/ |
- | Oct 27 14:39:14 vml000087 postfix/ | + | Oct 28 22:59:34 vml000087 postfix/ |
- | Oct 27 14:39:14 vml000087 postfix/ | + | Oct 28 22:59:34 vml000087 postfix/ |
- | Oct 27 14:39:14 vml000087 postfix/ | + | Oct 28 22:59:34 vml000087 postfix/ |
- | Oct 27 14:39:14 vml000087 postfix/ | + | Oct 28 22:59:35 vml000087 postfix/ |
- | Oct 27 14:39:14 vml000087 postfix/ | + | Oct 28 22:59:35 vml000087 postfix/ |
</ | </ | ||
+ | **swaks** beherrscht natürlich auch das Verfahren **CRAM-MD5**: | ||
+ | # swaks --to django@nausch.org --from michael@nausch.org --auth CRAM-MD5 --auth-user michael@nausch.org --header-X-Test "test email" --server 10.0.0.87 | ||
+ | | ||
+ | < | ||
+ | === Connected to 10.0.0.87. | ||
+ | <- 220 mx01.nausch.org ESMTP Postfix | ||
+ | -> EHLO vml000087.dmz.nausch.org | ||
+ | <- 250-mx01.nausch.org | ||
+ | <- 250-PIPELINING | ||
+ | <- 250-SIZE 52428800 | ||
+ | <- 250-ETRN | ||
+ | <- 250-STARTTLS | ||
+ | <- 250-AUTH PLAIN LOGIN CRAM-MD5 DIGEST-MD5 NTLM | ||
+ | <- 250-AUTH=PLAIN LOGIN CRAM-MD5 DIGEST-MD5 NTLM | ||
+ | <- 250-ENHANCEDSTATUSCODES | ||
+ | <- 250-8BITMIME | ||
+ | <- 250 DSN | ||
+ | -> AUTH CRAM-MD5 | ||
+ | <- 334 PDI2OTAzMkdldjffp4ff0NzA1gdfxcvMUDAxLm5hdXNjaC5vcmc+ | ||
+ | -> bWljaG2ucdnmrP1fflbEBuYXVzY2MwNzczOTg2ZmIS5Q1ZjP1ffpUzOWNkOWE0YTM1ZGMx | ||
+ | <- 235 2.7.0 Authentication successful | ||
+ | -> MAIL FROM:< | ||
+ | <- 250 2.1.0 Ok | ||
+ | -> RCPT TO:< | ||
+ | <- 250 2.1.5 Ok | ||
+ | -> DATA | ||
+ | <- 354 End data with < | ||
+ | -> Date: Tue, 28 Oct 2014 22:51:47 +0100 | ||
+ | -> To: django@nausch.org | ||
+ | -> From: michael@nausch.org | ||
+ | -> Subject: test Tue, 28 Oct 2014 22:51:47 +0100 | ||
+ | -> X-Mailer: swaks v20130209.0 jetmore.org/ | ||
+ | -> X-Test: test email | ||
+ | | ||
+ | -> This is a test mailing | ||
+ | | ||
+ | -> . | ||
+ | <- 250 2.0.0 Ok: queued as CCB35C00088 | ||
+ | -> QUIT | ||
+ | <- 221 2.0.0 Bye | ||
+ | === Connection closed with remote host. | ||
+ | </ | ||
+ | Maillog: | ||
+ | < | ||
+ | Oct 28 22:51:51 vml000087 postfix/ | ||
+ | Oct 28 22:51:51 vml000087 postfix/ | ||
+ | Oct 28 22:51:51 vml000087 postfix/ | ||
+ | Oct 28 22:51:51 vml000087 postfix/ | ||
+ | Oct 28 22:51:51 vml000087 postfix/ | ||
+ | Oct 28 22:51:51 vml000087 postfix/ | ||
+ | </ | ||
+ | Zu guter Letzt testen wir noch das Verfahren **NTLM**. | ||
+ | # swaks --to django@nausch.org --from michael@nausch.org --auth NTLM --auth-user michael@nausch.org --header-X-Test "test email" --server 10.0.0.87 | ||
+ | | ||
+ | < | ||
+ | === Connected to 10.0.0.87. | ||
+ | <- 220 mx01.nausch.org ESMTP Postfix | ||
+ | -> EHLO vml000087.dmz.nausch.org | ||
+ | <- 250-mx01.nausch.org | ||
+ | <- 250-PIPELINING | ||
+ | <- 250-SIZE 52428800 | ||
+ | <- 250-ETRN | ||
+ | <- 250-STARTTLS | ||
+ | <- 250-AUTH PLAIN LOGIN CRAM-MD5 DIGEST-MD5 NTLM | ||
+ | <- 250-AUTH=PLAIN LOGIN CRAM-MD5 DIGEST-MD5 NTLM | ||
+ | <- 250-ENHANCEDSTATUSCODES | ||
+ | <- 250-8BITMIME | ||
+ | <- 250 DSN | ||
+ | -> AUTH NTLM | ||
+ | <- 334 | ||
+ | -> TlRMTVN12TU43BABAAAAB6IAAAAAAAAAAAAAAAAAAAA= | ||
+ | <- 334 TlRMTVNTUs9e3nmfrABCAAAAHgAeADAIAJsLjyygqM30AAAAAAAAAAAAAAAAAAAAATQBYADAAMQAuAE4AQQBVAFMAQwBIAC4ATwBSAEcA | ||
+ | -> TlRTFMNTUAADAAAAGAAYAEAAAAAYABgzuwlscAAB4AHgBwAAAAJAAkAI4AAAAkACQAsgAAAAAAAACWAAAABaICAJj/ | ||
+ | <- 235 2.7.0 Authentication successful | ||
+ | -> MAIL FROM:< | ||
+ | <- 250 2.1.0 Ok | ||
+ | -> RCPT TO:< | ||
+ | <- 250 2.1.5 Ok | ||
+ | -> DATA | ||
+ | <- 354 End data with < | ||
+ | -> Date: Tue, 28 Oct 2014 22:55:33 +0100 | ||
+ | -> To: django@nausch.org | ||
+ | -> From: michael@nausch.org | ||
+ | -> Subject: test Tue, 28 Oct 2014 22:55:33 +0100 | ||
+ | -> X-Mailer: swaks v20130209.0 jetmore.org/ | ||
+ | -> X-Test: test email | ||
+ | | ||
+ | -> This is a test mailing | ||
+ | | ||
+ | -> . | ||
+ | <- 250 2.0.0 Ok: queued as BDD65C00088 | ||
+ | -> QUIT | ||
+ | <- 221 2.0.0 Bye | ||
+ | === Connection closed with remote host. | ||
+ | </ | ||
+ | Maillog: | ||
+ | < | ||
+ | Oct 28 22:55:37 vml000087 postfix/ | ||
+ | Oct 28 22:55:37 vml000087 postfix/ | ||
+ | Oct 28 22:55:37 vml000087 postfix/ | ||
+ | Oct 28 22:55:37 vml000087 postfix/ | ||
+ | Oct 28 22:55:38 vml000087 postfix/ | ||
+ | Oct 28 22:55:38 vml000087 postfix/ | ||
+ | </ | ||
+ | ===== SASL und Submission/ | ||
+ | Damit nun unsere authentifizierten Nutzer, wie auch Clients aus unserem eigenen Netz oder auch z.B. der Backupmailserver auch über unseren Server, Empfänger fremder Maildomains Nachrichten schicken können (relayen) passen wir noch die Konfiguration unseres Mailservers an. | ||
+ | ==== Relaying ==== | ||
+ | In der Hauptkonfigurationsdatei // | ||
+ | # vim / | ||
+ | <code bash> | ||
+ | ################################################################################ | ||
+ | ## SMTP Relay Restrictions | ||
+ | # | ||
+ | # Django : 2014-10-27 - Definition, wer über unseren MX relayen darf oder nicht. | ||
+ | # http:// | ||
+ | # default: smtpd_relay_restrictions = permit_mynetworks, | ||
+ | # | ||
+ | smtpd_relay_restrictions = | ||
+ | # Unsere eigenen Nutzer zulassen-/ | ||
+ | | ||
+ | | ||
+ | # Backupserver (MX) erlauben | ||
+ | | ||
+ | # alles andere an relaying verbieten, d.h. mit einem finalen error 550 abweisen | ||
+ | | ||
+ | ... | ||
+ | </ | ||
+ | ==== Submission ==== | ||
+ | Auch bei Submission auf Port **587** setzen wir die Option **permit_sasl_authenticated**. | ||
+ | # vim / | ||
- | ===== Paketfilter ===== | + | <code bash>... |
- | # firewall-cmd --permanent | + | # Django : 2014-10-27 Submission auf Port 587 geöffnet |
+ | submission inet n - n - | ||
+ | -o syslog_name=postfix/ | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | #-o smtpd_client_restrictions=$mua_client_restrictions | ||
+ | #-o smtpd_helo_restrictions=$mua_helo_restrictions | ||
+ | #-o smtpd_sender_restrictions=$mua_sender_restrictions | ||
+ | -o smtpd_recipient_restrictions= | ||
+ | -o smtpd_relay_restrictions=permit_sasl_authenticated, | ||
+ | -o milter_macro_daemon_name=ORIGINATING | ||
+ | -o mydestination=lists.nausch.org,fax.nausch.org | ||
- | # firewall-cmd --reload | + | ... |
- | + | ||
- | # iptables -nvL IN_public_allow | + | |
- | < | + | |
- | pkts bytes target | + | |
- | 0 0 ACCEPT | + | |
- | 0 0 ACCEPT | + | |
- | 0 0 ACCEPT | + | |
</ | </ | ||
- | + | ====== Links ====== | |
+ | * **⇐ [[centos: | ||
+ | * **⇒ [[centos: | ||
+ | * **[[centos: | ||
+ | * **[[wiki: | ||
+ | * **[[http:// | ||