PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Postfix richtig konfigurieren



Eremit
10.08.08, 10:19
Hallo,

ich habe hier einen Mailserver:
192.168.2.6 server.linux

Emails werden auch per fetchmail empfangen aber das Versenden von eMails klappt nicht richtig. Es werden nur eMails versendet, deren Empfänger auch in der Datei virtual_alias stehen.
Scheint an einer falschen Konfiguration zu liegen.

Könnt ihr mir dabei helfen?

Eremit


main.cf


#myorigin = /etc/mailname
smtpd_banner = $myhostname ESMTP $mail_name (Ubuntu)
biff = no
append_dot_mydomain = no
#delay_warning_time = 4h
readme_directory = no
smtpd_tls_cert_file = /etc/postfix/ssl/smtpd.crt
smtpd_tls_key_file = /etc/postfix/ssl/smtpd.key
smtpd_use_tls = yes
smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache
smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache
myhostname = server.linux
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases
mydestination = server, server.linux, localhost.linux, localhost
#relayhost = server.linux
relayhost = smtp.1und1.de
mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128, 192.168.2.0/24
mailbox_command =
mailbox_size_limit = 0
recipient_delimiter = +
inet_interfaces = all
myorigin = /etc/mailname
inet_protocols = all
smtpd_sasl_local_domain =
smtpd_sasl_auth_enable = yes
smtpd_sasl_security_options = noanonymous
broken_sasl_auth_clients = yes
smtpd_sasl_authenticated_header = yes
smtpd_recipient_restrictions = permit_sasl_authenticated,permit_mynetworks,reject _unauth_destination
smtpd_tls_auth_only = no
smtp_use_tls = yes
smtp_tls_note_starttls_offer = yes
smtpd_tls_CAfile = /etc/postfix/ssl/cacert.pem
smtpd_tls_loglevel = 1
smtpd_tls_received_header = yes
smtpd_tls_session_cache_timeout = 3600s
tls_random_source = dev:/dev/urandom
home_mailbox = Maildir/
#transport_maps = hash:/etc/postfix/transport
# Definiere die Maps der Virtuellen Domains
virtual_alias_maps = hash:/etc/postfix/virtual_alias
virtual_alias_domains = /etc/postfix/virtual_domains




virtual_alias


test@handorf-langenberg.de ingo
ingo@server.linux ingo
root@server.linux ingo



virtual_domains


server.linux,
handorf-langenberg.de,
gmx.de

linuxnetbox
10.08.08, 14:38
hi was sagt denn die mail.err log datei oder die mail.info log datei aus, wenn du eine email verschicken willst ?

Eremit
10.08.08, 15:26
Hallo,

habe noch ein paar Änderungen vorgenommen.
Die eMails werden jetzt versendet bzw. der Versand wird angenommen aber die eMails kommen nicht an.
Die mail.err ist leer aber jetzt steht in der mai.info (emailadressen editiert):

Aug 10 16:20:55 server postfix/smtp[17563]: 5EDD9240E1: to=<............@gmx.de>, relay=smtp.1und1.de[212.227.15.183]:25, delay=2.7, delays=0.02/0/0.6/2.1, dsn=5.0.0, status=bounced (host smtp.1und1.de[212.227.15.183] said: 550 must be authenticated (in reply to RCPT TO command))
Aug 10 16:20:55 server postfix/cleanup[17562]: 2660024139: message-id=<20080810142055.2660024139@server.linux>
Aug 10 16:20:55 server postfix/qmgr[5303]: 2660024139: from=<>, size=2489, nrcpt=1 (queue active)
Aug 10 16:20:55 server postfix/bounce[17604]: 5EDD9240E1: sender non-delivery notification: 2660024139
Aug 10 16:20:55 server postfix/qmgr[5303]: 5EDD9240E1: removed
Aug 10 16:20:55 server postfix/smtp[17563]: certificate verification failed for smtp.1und1.de[212.227.15.167]:25: untrusted issuer /C=ZA/ST=Western Cape/L=Cape Town/O=Thawte Consulting cc/OU=Certification Services Division/CN=Thawte Premium Server CA/emailAddress=premium-server@thawte.com
Aug 10 16:20:57 server postfix/smtp[17563]: 2660024139: to=<.....@handorf-langenberg.de>, orig_to=<.......@handorf-langenberg.de>, relay=smtp.1und1.de[212.227.15.167]:25, delay=2.7, delays=0.01/0/0.61/2.1, dsn=5.0.0, status=bounced (host smtp.1und1.de[212.227.15.167] said: 550 must be authenticated (in reply to RCPT TO command))
Aug 10 16:20:57 server postfix/qmgr[5303]: 2660024139: removed


Eremit

marce
10.08.08, 15:28
da scheint irgendwas mit der Authentifizierung am Relay-Host nicht zu stimmen...

linuxnetbox
10.08.08, 16:26
hast du vielleicht das vergessen einzufügen ?


relayhost = smtp.1und1.de
smtp_sasl_auth_enable = yes
smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd
smtp_sasl_security_options = noanonymous
smtp_sasl_mechanism_filter = plain, login

dann noch die datei /etc/postfix/sasl_passwd erstellen und folgendes eingeben

smtp.1und1.de username:passwort

und danach
postmap hash:/etc/postfix/sasl_passwd
zum schluß /etc/init.d/postfix restart

dann sollten auch mails über dein dein relay host zustellbar sein

Eremit
10.08.08, 18:28
Hallo,
danke für die Antwort.
Ich hatte das nicht vergessen diese Datei anzulegen. In dem Tutorial stand es leider nicht drin.
Na ja. Leider geht es trotzdem nicht. Die Meldung lautet jetzt aber etwas anders:

Aug 10 19:19:01 server postfix/smtpd[9911]: connect from eremitpc.linux[192.168.2.2]
Aug 10 19:19:01 server postfix/smtpd[9911]: setting up TLS connection from eremitpc.linux[192.168.2.2]
Aug 10 19:19:01 server postfix/smtpd[9911]: Anonymous TLS connection established from eremitpc.linux[192.168.2.2]: TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)
Aug 10 19:19:01 server postfix/smtpd[9911]: EA4252413E: client=eremitpc.linux[192.168.2.2], sasl_method=PLAIN, sasl_username=ingo
Aug 10 19:19:01 server postfix/cleanup[9915]: EA4252413E: message-id=<489F2303.40500@handorf-langenberg.de>
Aug 10 19:19:01 server postfix/qmgr[9556]: EA4252413E: from=<...........@handorf-langenberg.de>, size=656, nrcpt=1 (queue active)
Aug 10 19:19:01 server postfix/smtpd[9911]: disconnect from eremitpc.linux[192.168.2.2]
Aug 10 19:19:02 server postfix/smtp[9916]: certificate verification failed for smtp.1und1.de[212.227.15.167]:25: untrusted issuer /C=ZA/ST=Western Cape/L=Cape Town/O=Thawte Consulting cc/OU=Certification Services Division/CN=Thawte Premium Server CA/emailAddress=premium-server@thawte.com
Aug 10 19:19:02 server postfix/smtp[9916]: EA4252413E: SASL authentication failed; server smtp.1und1.de[212.227.15.167] said: 535 Error: authentication failed
Aug 10 19:19:03 server postfix/smtp[9916]: certificate verification failed for smtp.1und1.de[212.227.15.183]:25: untrusted issuer /C=ZA/ST=Western Cape/L=Cape Town/O=Thawte Consulting cc/OU=Certification Services Division/CN=Thawte Premium Server CA/emailAddress=premium-server@thawte.com
Aug 10 19:19:03 server postfix/smtp[9916]: EA4252413E: to=<...........@gmx.de>, relay=smtp.1und1.de[212.227.15.183]:25, delay=1.6, delays=0.02/0/1.6/0, dsn=4.0.0, status=deferred (SASL authentication failed; server smtp.1und1.de[212.227.15.183] said: 535 Error: authentication failed)

Statt Fehlermeldung 500 nun 535.....

Eremit

linuxnetbox
10.08.08, 19:52
gib mal in deiner main.cf smtpd_use_tls = no ein. der fehler kommt daher, weil du ein eigenes zertifikat benutzt und das 1und1 nicht kennt.

Eremit
10.08.08, 21:07
Hallo,

funktioniert leider immer noch nicht.
Hier die Meldung aus der mail.info:

Aug 10 21:54:45 server postfix/smtp[7761]: certificate verification failed for smtp.1und1.de[212.227.15.167]:25: untrusted issuer /C=ZA/ST=Western Cape/L=Cape Town/O=Thawte Consulting cc/OU=Certification Services Division/CN=Thawte Premium Server CA/emailAddress=premium-server@thawte.com
Aug 10 21:54:45 server postfix/smtp[7761]: C1BE92406D: SASL authentication failed; server smtp.1und1.de[212.227.15.167] said: 535 Error: authentication failed
Aug 10 21:54:46 server postfix/smtp[7761]: certificate verification failed for smtp.1und1.de[212.227.15.183]:25: untrusted issuer /C=ZA/ST=Western Cape/L=Cape Town/O=Thawte Consulting cc/OU=Certification Services Division/CN=Thawte Premium Server CA/emailAddress=premium-server@thawte.com
Aug 10 21:54:46 server postfix/smtp[7761]: C1BE92406D: to=<ingo@handorf-langenberg.de>, orig_to=<ingo.busse@handorf-langenberg.de>, relay=smtp.1und1.de[212.227.15.183]:25, delay=2.1, delays=0.06/0.09/2/0, dsn=4.0.0, status=deferred (SASL authentication failed; server smtp.1und1.de[212.227.15.183] said: 535 Error: authentication failed)

Ich habe diese Datei ungekürzt gesendet. Man beachte die orig_to und to selber. ingo@handorf-langenberg.de gibt es nicht. Außerdem kommt immer noch der Fehler 535: authentication failed.

Können wir die main.cf noch mal genau durchegehen? Wie müsste sie genau aussehen?

Eremit

kworx
11.08.08, 08:28
Aug 10 21:54:45 server postfix/smtp[7761]: certificate verification failed for smtp.1und1.de[212.227.15.167]:25: untrusted issuer /C=ZA/ST=Western Cape/L=Cape Town/O=Thawte Consulting cc/OU=Certification Services Division/CN=Thawte Premium Server CA/emailAddress=premium-server@thawte.com
Aug 10 21:54:45 server postfix/smtp[7761]: C1BE92406D: SASL authentication failed; server smtp.1und1.de[212.227.15.167] said: 535 Error: authentication failed


Bei der Fehlersuche würde ich erst einmal ganz oben beginnen und einen Fehler nach dem anderen beseitigen.

1. Dir fehlen die CA Zertifikate. Somit traut dein Postfix dem Server auf der anderen Seite nicht.

Das Problem würde ich als erstes beseitigen. Die CA Zertifikate sollten bei jeder Distri als Paket verfügbar sein.

Bei Debian genügt ein


apt-get install ca-certificates

Eremit
11.08.08, 16:43
Hallo,

die Zertifikate waren schon installiert:

Reading state information... Fertig
ca-certificates ist schon die neueste Version.
0 aktualisiert, 0 neu installiert, 0 zu entfernen und 0 nicht aktualisiert.


Kann es denn nicht am mydomain oder irgend etwas aus der main.cf liegen?
Ich bin mir bei den Variablen nicht sicher. Der eMail-Server hat ja eingentlich keine Domain, oder? Ist halt ein lokaler Rechner, der seine eMails an 1und1 weiterleiten soll.


Eremit

kworx
11.08.08, 23:07
Domain hat er immer. Auch wenn nur lokal. :)

Da du ja wahrscheinlich inzwischen nach den Tips von z.B. linuxnetbox einiges geändert hast fasse ich mal die wichtigsten Punkte zusammen.

Ausgehend für die Authentifizierung sind die wichtig:



smtp_sasl_auth_enable = yes
smtp_sasl_password_maps = hash:/etc/postfix/sasl/sasl_passwd
smtp_sasl_security_options = noanonymous
smtp_use_tls = yes
smtp_tls_CAfile = /etc/postfix/ssl/cacert.pem # <- die fehlt bei dir (Name je nach Distrie)
smtp_tls_loglevel = 1



Die /etc/postfix/sasl/sasl_passwd wie von linuxnetbox angegeben.


smtp.1und1.de username:passwort


Dann würde ich dir noch folgende zwei in der main.cf empfehlen.


sender_canonical_maps = hash:/etc/postfix/sender_canonical
sender_dependent_relayhost_maps = hash:/etc/postfix/sender_relay




#/etc/postfix/sender_canonical
lokaler_Benutzername email@1und1.de
lokaler_Benutzername2 email@gmx.de




#/etc/postfix/sender_relay
@1und1.de smtp.1und1.de
@gmx.de mail.gmx.net


Dafür entfernst du dann den "relayhost = smtp.1und1.de" aus der main.cf.
Das hat den Grund, dass so nicht alle Mails über smtp.1und1.de verschickt werden,
sondern nur die in der sender_canonical umgeschriebenen. Ansonsten kann es passieren,
das die Mail-Admins von 1und1 deine cron Mails oder bounces deiner cron Mails bekommen.
Zusätzlich wählt der Postfix anhand des Absenders den richtigen Relayhost.

postmap auf die sasl_passwd, sender_canonical, sender_relay nicht vergessen.


Die virtual Aliases brauchst du eigentlich nicht. Da gehört gmx.de auf keinen Fall rein, handorf-langenberg.de liegt auch extern und server.linux darf da gar nicht auftauchen, da es bereits da steht -> mydestination=...

Also in der main.cf die Zeilen auskommentieren.


# virtual_alias_maps = hash:/etc/postfix/virtual_alias
# virtual_alias_domains = /etc/postfix/virtual_domains


Ich denke, du wolltest damit erreichen was eigentlich der Job von fetchmail ist...


#fetchmailrc
...user "email@1und1.de" with pass "passwort" is "lokaler_benutzername" here options flush
...user "email@gmx.de" with pass "passwort" is "lokaler_benutzername" here options flush


Wie du siehst schreibt fetchmail hier schon die Adressen um und dein postfix Server sieht die externen Adressen nie.



Ist halt ein lokaler Rechner, der seine eMails an 1und1 weiterleiten soll.

Dann klemm den Dienst nur an die Loopback Schnittstelle und nicht an alle...

inet_interfaces = all ändern nach
inet_interfaces = 127.0.0.1

Thovan
12.08.08, 07:16
Aug 10 21:54:46 server postfix/smtp[7761]: C1BE92406D: to=<ingo@handorf-langenberg.de>, orig_to=<ingo.busse@handorf-langenberg.de>, relay=smtp.1und1.de[212.227.15.183]:25, delay=2.1, delays=0.06/0.09/2/0, dsn=4.0.0, status=deferred (SASL authentication failed; server smtp.1und1.de[212.227.15.183] said: 535 Error: authentication failed)

Man beachte die orig_to und to selber. ingo@handorf-langenberg.de gibt es nicht.

Dein Server ist da aber anderer Meinung (und das, weil Du ihm das anders gesagt hast):



virtual_alias


test@handorf-langenberg.de ingo
ingo@server.linux ingo
root@server.linux ingo



Zumindest existieren mit dieser virtual_alias_map die E-Mail-Adressen ingo@handorf-langenberg.de und ingo@server.linux.

Ich vermute, auf Deinem System wurde die virtual_alias_map noch erweitert um den Fall aus Deines Logs abzudecken.

Eremit
12.08.08, 16:37
Danke für die Infos.

Was soll ich nun sagen....
Es lief jedenfalls kurz.
Dann habe ich noch etwas rumgetüftelt und nun geht wieder nichts. Die configs habe ich natürlich nicht gesichert. Ich wollte es noch einstellen, daß gmx und 1und1 als Verteiler zuständig sind. Je nach Absenderadresse.
Momentan scheint 1und1 mich aber als Spammer zu sehen, da ich ein paar Testnachrichten zu viel verschickt habe.
status=deferred (delivery temporarily suspended: host mx01.schlund.de[212.227.15.150] refused to talk to me: 554 RBL rejection: http://www.spamhaus.org/query/bl?ip=91.96.237.229)
Aug 12 17:35:37 server postfix/smtpd[18315]: idle timeout -- exiting

Mal sehen wie lange die Pause dauert.

Ich melde mich dann aber heute Abend noch mal.

Eremit

Eremit
12.08.08, 17:24
So.. jetzt läuft es.
Wahrscheinlich sind immer noch ein paar Sachen falsch aber wenigstens stellt er die eMails zu.

3 Fragen habe ich aber noch:
1. Wie bekomme ich es hin, dass automatisch der richtige SMTP-Server genommen wird (gmx oder 1und1)?
2. Kann ich fetchmail dazu bringen alle eMails von Domain 1 nach 180 Sekunden und eMails von Domain 2 nach 300 Sekunden abzufragen?
3. Der Server ist immer noch nicht mit dem Zertifikat einverstanden. Scheinbar läuft es aber. Würdet ihr das noch ändern?


Eremit



Was würdet ihr an den Einstellungen konkret ändern? Habe jetzt so viel rumgepfuscht, daß ich auch nicht mehr genau weiß wie es am besten konfiguriert ist.
Hier meine aktuellen configs:

main.cf:


myhostname = server.linux
smtpd_banner = $myhostname ESMTP $mail_name.
biff = no
append_dot_mydomain = no
delay_warning_time = 4h
readme_directory = no
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases
mydestination = server, server.linux, localhost.linux, localhost
#relayhost =
mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128, 192.168.2.0/24
#mailbox_command = procmail -a "$EXTENSION"
mailbox_command =
mailbox_size_limit = 0
recipient_delimiter = +
inet_interfaces = all
#inet_interfaces = 127.0.0.1
myorigin = handorf-langenberg.de
inet_protocols = all

smtpd_tls_cert_file = /etc/postfix/ssl/smtpd.crt
smtpd_tls_key_file = /etc/postfix/ssl/smtpd.key
smtpd_use_tls = no
smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache
smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache
smtp_sasl_auth_enable = yes
smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd
smtp_sasl_security_options = noanonymous
smtp_sasl_mechanism_filter = plain, login
smtpd_sasl_local_domain =
smtpd_sasl_auth_enable = yes
smtpd_sasl_security_options = noanonymous
broken_sasl_auth_clients = yes
smtpd_sasl_authenticated_header = yes
smtpd_recipient_restrictions = permit_sasl_authenticated,permit_mynetworks,reject _unauth_destination
smtpd_tls_auth_only = yes
smtp_use_tls = yes
smtp_tls_note_starttls_offer = yes
smtpd_tls_CAfile = /etc/postfix/ssl/cacert.pem
smtpd_tls_loglevel = 1
smtpd_tls_received_header = yes
smtpd_tls_session_cache_timeout = 3600s
tls_random_source = dev:/dev/urandom

home_mailbox = Maildir/
virtual_alias_maps = hash:/etc/postfix/virtual_alias
virtual_alias_domains = /etc/postfix/virtual_domains
#sender_canonical_maps = hash:/etc/postfix/sender_canonical
sender_dependent_relayhost_maps = hash:/etc/postfix/sender_relay
#transport_maps = hash:/etc/postfix/transport




sasl_passwd


smtp.1und1.de ingo.buse@handorf-langenberg.de:passwort
mail.gmx.de 4020400:passwort



sender_canonical (nicht aktiv)


ingo ingo.busse@handorf-langenberg.de



sender_relay


@handorf-langenberg.de smtp.1und1.de
@gmx.de mail.gmx.de




transport (nicht aktiv)


1und1.de smtp:[smtp.1und1.de]
gmx.de smtp:[mail.gmx.net]




virtual_alias


root@server.linux ingo
postmaster@server.linux ingo




virtual_domains


server.linux

kworx
12.08.08, 19:22
1. Wie bekomme ich es hin, dass automatisch der richtige SMTP-Server genommen wird (gmx oder 1und1)?


Das erledigt deine sender_relay. Wenn der Absender @handorf-langenberg.de ist, dann geht es über smtp.1und1.de. Falls der Absender @gmx.de ist geht es über mail.gmx.de. <- Sollte das nicht mail.gmx.net sein? Falls ja, dann auch in der sasl_passwd anpassen.



2. Kann ich fetchmail dazu bringen alle eMails von Domain 1 nach 180 Sekunden und eMails von Domain 2 nach 300 Sekunden abzufragen?

Am einfachsten mit zwei configs und zwei cron Jobs.



3. Der Server ist immer noch nicht mit dem Zertifikat einverstanden. Scheinbar läuft es aber. Würdet ihr das noch ändern?


Ja. Ist ja nur ein Eintrag in der main.cf.
smtp_tls_CAfile = /etc/postfix/ssl/cacert.pem

Ansonsten die beiden noch deaktivieren.


#virtual_alias_maps = hash:/etc/postfix/virtual_alias
#virtual_alias_domains = /etc/postfix/virtual_domains

Vor allem die virtual_alias_domains verweist auf server.linux. Der steht aber bereits in der main.cf als mydestination = ..., server.linux,...
Das ist doppelt gemoppelt und somit falsch.
Die Einträge aus der virtual_alias_maps gehören in die aliases als


root: ingo

Eremit
17.08.08, 09:06
Hallo,

erst mal vielen Dank für eure Hilfe.
Nachdem mein Router sich zerlegt hatte komme ich mit dem neuen Router nun endlich wieder ins Internet.

Nun funktioniert eingentlich (fast) alles.

Nur der inet_interface-befehl geht noch nicht. Stelle ich ihn auf die 127er-Nummer um, nimmt das Mail-Programm keinen Kontakt auf.


Eremit

kworx
18.08.08, 07:12
Nur der inet_interface-befehl geht noch nicht. Stelle ich ihn auf die 127er-Nummer um, nimmt das Mail-Programm keinen Kontakt auf.


Sorry, mein Fehler. Ich bin davon ausgegangen, dass du nur von der lokalen Maschine aus versenden willst.

Falls das aus dem gesamten lokalen Netz gehen soll, nimmst du auch die interne IP Adresse mit in die config.