• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

Internet-Mailserver mit postfix/cyrus

Status
Für weitere Antworten geschlossen.
Let's focus on the parameters and values that we need to pass when we create users in sasldb.

There are three parameters that we must provide when adding users to the sasldb. We begin our statement with the option -c and tell saslpasswd to create a new entry, then we add the already mentioned realm with -u realmname add the task with -a smtpauth and finally we provide the username. If you need a little more information read man saslpasswd.

saslpasswd2 -c -u mail.example.com test
 
OP
S

S_O

saslpasswd2 -c ich@main.domain ?
Habe jetzt benutzer gelöscht und benutzer@mein-domain.de angelegt, immer noch das gleiche (ich logge mich auch als benutzer@mein-domain.de ein).

Nachtrag: Und er akzeptiert emails emails an den benutzer auch nicht.
 
OP
S

S_O

So, nachdem ich Tequila beigebracht habe saslpasswd2 zu finden kann ich damit nun auch benutzer erstellen, löschen etc.
Auch das versenden von mails geht via Postfix oder NeoMail.
Leider richtet Tequila mir die Server aber doch nicht ein, es kann sie nur verwalten und das empfangen geht noch nicht. Obwohl Postfix meine Mails die ich versende akzeptiert, verweigert es die Annahme der Mails.

Ich glaube, ich habe zumindest ein Teil des Problems schon gefunden:

virtual_maps =

In der tequila installation steht drin auf was ich das setzen muss, doch bei postconf -n wird diese Einstellung nie aufgeführt, ich habe etwas gegoogelt und gelesen das diese Einstellung seit 2.1 nicht mehr verfügbar ist und durch virtual_alias_domains sowie virtual_alias_maps ersetzt wurde. Was mache ich nun?
Der Eintrag steht auf "hash:/opt/tequila/domains/teq_virtual_summary", Inhalt der Datei:
Code:
mein-domain.de                      virtual
benutzer@mein-domain.de             benutzer~mein-domain.de
test@mein-domain.de                 test~mein-domain.de
Welchen der neuen Konfigurationsparameter soll ich verwenden?

Nachtrag:
Ich habe jetzt einfach mal virtual_alias_maps verwendet, hier meine aktuelle Konfiguration, geht aber immer noch nicht (versenden ja, empfangen nicht):
Code:
alias_database = hash:/opt/tequila/domains/teq_aliases_summary
alias_maps = hash:/opt/tequila/domains/teq_aliases_summary
broken_sasl_auth_clients = yes
command_directory = /usr/sbin
config_directory = /etc/postfix
daemon_directory = /usr/lib/postfix
debug_peer_level = 2
default_privs = nobody
html_directory = /usr/share/doc/packages/postfix/html
inet_interfaces = all
mail_owner = postfix
mail_spool_directory = /var/spool/mail
mailq_path = /usr/bin/mailq
manpage_directory = /usr/share/man
mydestination = mein-domain.de, xyz.evanzo-server.de, localhost
mydomain = mein-domain.de
myhostname = mail.mein-domain.de
myorigin = mein-domain.de
newaliases_path = /usr/bin/newaliases
queue_directory = /var/spool/postfix
readme_directory = /usr/share/doc/packages/postfix/README_FILES
sample_directory = /usr/share/doc/packages/postfix/samples
sendmail_path = /usr/sbin/sendmail
setgid_group = maildrop
smtpd_banner = $myhostname ESMTP
smtpd_recipient_restrictions = permit_sasl_authenticated, reject
smtpd_sasl_auth_enable = yes
smtpd_sasl_local_domain = mein-domain.de
smtpd_sasl_security_options = noanonymous
unknown_local_recipient_reject_code = 550
virtual_alias_maps = hash:/opt/tequila/domains/teq_virtual_summary
 
postconf -n listet nur die geänderten Variablen in main.cf

mit dem Link den ich dir geschickt habe, Kapitel 16 SMTP Authentication for Mail servers, solltest du weiterkommen ;)
 
OP
S

S_O

postconf -n listet nur die geänderten Variablen in main.cf
Merkwürdig, bei listet er immer alle auf. Liegt das aran, das ich die datei immer von meinem Windows-Rechner neu hochlade, nachdem ich sie editiert habe?

mit dem Link den ich dir geschickt habe, Kapitel 16 SMTP Authentication for Mail servers, solltest du weiterkommen
Sicher? Mir sieht das danach aus, als ob Postfix hier so konfiguriert werden soll, dass er die Mails über einen anderen smtp verschickt, aber das soll er ja nicht. Das Problem ist, der gmx stellt eine Verbindung zu meinem server her um eine Mail zu übergeben, aber meiner lehnt das ab, weil er die mail-adresse nicht kennt (wie im telnet szenario). Versenden geht wunderbar, also wenn mein Rechner mit Mozilla Thunderbird meinem postfix-server eine mail übergibt nachdem er sich eingeloggt hat mit benutzername/passwort übergibt mein postfix-server die an den gmx-server (oder an irgend einen anderen, je nachdem wo die mail hin soll), wo ich die mail dann abrufen kann. Funktioniert perfekt.
 
was antwortet dein postfix denn auf ein EHLO?

telnet dein-server smtp
EHLO

da kommt eine Liste von AUTH Verfahren (LOGIN, DIGEST-MD5, CRAM-MD5, and PLAIN) die probiert dann der gegnerische Sender alle aus bis er einen findet der passt. Wenn keiner passt: REJECT

in der /usr/lib/sasl2/smtpd.conf gibst du mit pwcheck_method= und mech_list= vor welche Mechanismen zu verwenden sind.
 
OP
S

S_O

Code:
250-mail.mein-domain.de
250-PIPELINING
250-SIZE 10240000
250-VRFY
250-ETRN
250-AUTH PLAIN LOGIN DIGEST-MD5 CRAM-MD5
250-AUTH=PLAIN LOGIN DIGEST-MD5 CRAM-MD5
250 8BITMIME
Aber der gmx-server z.B. muss sich doch nicht einloggen? nur die clients die mails versenden wollen, und das funktioniert ja.

mal ne dumme frage, wenn der postfix z.B. nach gmx ne mail sendet, wie macht er das? Ich habe gerade versucht den gmx-smtp mit telnet zu konntakten, um zu sehen was der antwortet, aber er findet den nicht (telnet gmx.net 25). Wie kann denn mein Postfix den denn konntakten?
 
S_O schrieb:
Code:
250-mail.mein-domain.de
250-PIPELINING
250-SIZE 10240000
250-VRFY
250-ETRN
250-AUTH PLAIN LOGIN DIGEST-MD5 CRAM-MD5
250-AUTH=PLAIN LOGIN DIGEST-MD5 CRAM-MD5
250 8BITMIME
Aber der gmx-server z.B. muss sich doch nicht einloggen? nur die clients die mails versenden wollen, und das funktioniert ja.

mal ne dumme frage, wenn der postfix z.B. nach gmx ne mail sendet, wie macht er das? Ich habe gerade versucht den gmx-smtp mit telnet zu konntakten, um zu sehen was der antwortet, aber er findet den nicht (telnet gmx.net 25). Wie kann denn mein Postfix den denn konntakten?

kannst du dich mal entscheiden, incoming oder outgoing mail. Das ist ja das reinste Chaos hier ;=

Wenn dein postfix zum gmx server eine mail abschickt, prüft der gmx-server ob deine Absendeadresse valide ist, falls nein lehnt er dich ab.
Dazu brauchst du in deinem Name-Server die entsprechenden Einträge
(host -t MX dein-server). Sonst könnte ja jeder dort mail abgeben (relayen). Das dient der Spam-Bekämpfung.

Wenn irgendjemand deinen postfix anfunkt, macht dein Postfix das gleiche. Er prüft ob er für die angegebene Domain zuständig ist, falls nicht lehnt er es ab (sollte er jedenfalls tun, sonst wärst du ein offens Relay) diese email zu relayen. Wenn er für die domain zuständig ist, dann prüft er ob das was vor der domain (@) steht ein lokal bekannter User ist. Wenn ja OK, wenn nein, kann evtl noch über alias was geregelt sein. Falls das auch nicht der Fall ist und/oder AUTH falsch, dann lehnt er das ab.
 
snake:~ # host -t MX gmx.net
gmx.net mail is handled by 10 mx0.gmx.net.
gmx.net mail is handled by 10 mx0.gmx.de

snake:~ # telnet mx0.gmx.de 25
Trying 213.165.64.100...
Connected to mx0.gmx.de.
Escape character is '^]'.
220 {mx040} GMX Mailservices ESMTP
EHLO
250-{mx040} GMX Mailservices
250-8BITMIME
250 ENHANCEDSTATUSCODES
QUIT
221 2.0.0 {mx040} GMX Mailservices
Connection closed by foreign host.
 
OP
S

S_O

kannst du dich mal entscheiden, incoming oder outgoing mail. Das ist ja das reinste Chaos hier ;=
Es geht im incomming mail, also z.B. eine mail von xyz@gmx.de nach benutzer@mein-domain.de und darum, warum mein postfix die nicht annimmt.

host -t MX gmx.net
Ah, das wusste ich nicht. habe mir gerade eben per telnet ne mail geschickt, ist sogar angekommen.

Wenn dein postfix zum gmx server eine mail abschickt, prüft der gmx-server ob deine Absendeadresse valide ist, falls nein lehnt er dich ab.
Dazu brauchst du in deinem Name-Server die entsprechenden Einträge
(host -t MX dein-server). Sonst könnte ja jeder dort mail abgeben (relayen). Das dient der Spam-Bekämpfung.
Das funktioniert zum Glück ja sogar.


was vor der domain (@) steht ein lokal bekannter User ist. Wenn ja OK, wenn nein, kann evtl noch über alias was geregelt sein.
Da liegt das problem! Er kennt die benutzer nicht! Er antwortet mit 554.
 
hier noch ein guter link für die ganzen smtp* Optionen:
http://www.pl-berichte.de/t_netzwerk/postfix-UCE-HOWTO-de.html
 
OP
S

S_O

und zu diesem Problem, noch mal die zwei logs posten.
und alle smtp* options die du derzeit in deiner main.cf stehen hast

Alle smtp*-options:
smtpd_banner = $myhostname ESMTP
smtpd_recipient_restrictions = permit_sasl_authenticated, reject
smtpd_sasl_auth_enable = yes
smtpd_sasl_local_domain = mein-domain.de
smtpd_sasl_security_options = noanonymous

Hier log/messages:
Code:
Jul 30 16:50:23 xyz postfix/smtpd[4705]: connect from pop.gmx.de[213.165.64.20]
Jul 30 16:50:24 xyz postfix/trivial-rewrite[7589]: warning: do not list domain mein-domain.de in BOTH mydestination and virtual_alias_domains
Jul 30 16:50:24 xyz postfix/smtpd[4705]: NOQUEUE: reject: RCPT from pop.gmx.de[213.165.64.20]: 554 <benutzer@mein-domain.de>: Recipient address rejected: Access denied; from=<gmxmail@gmx.net> to=<benutzer@mein-domain.de> proto=SMTP helo=<mail.gmx.net>
Jul 30 16:50:24 xyz postfix/smtpd[4705]: disconnect from pop.gmx.de[213.165.64.20]
 
OP
S

S_O

hier noch ein guter link für die ganzen smtp* Optionen:
http://www.pl-berichte.de/t_netzwerk/postfix-UCE-HOWTO-de.html
Das sieht wirklich gut aus, aber ich vesteh es nicht :(
Was davon bezieht sich nun auf andere SMTP-Server (wie den gmx.net) und was auf die clients?
 
smtpd_recipient_restrictions = permit_sasl_authenticated, reject


du musst auch das ausliefern fuer dein netzwerk/domain erlauben:

smtpd_recipient_restrictions =
permit_mynetworks,
permit_sasl_authenticated,
reject_non_fqdn_sender,
reject_unauth_destination




dazu die postfix.org docu:

reject_unauth_destination
Reject the request unless one of the following is true:

* Postfix is mail forwarder: the resolved RCPT TO address matches $relay_domains or a subdomain thereof, and contains no sender-specified routing (user@elsewhere@domain),
* Postfix is the final destination: the resolved RCPT TO address matches $mydestination, $inet_interfaces, $proxy_interfaces, $virtual_alias_domains, or $virtual_mailbox_domains, and contains no sender-specified routing (user@elsewhere@domain).


alles unter:

http://www.postfix.org/SMTPD_ACCESS_README.html


Restriction list name Status Effect of REJECT or DEFER result
smtpd_client_restrictions Optional Reject all client commands
smtpd_helo_restrictions Optional Reject HELO/EHLO information
smtpd_sender_restrictions Optional Reject MAIL FROM information
smtpd_recipient_restrictions Required Reject RCPT TO information
smtpd_data_restrictions Optional Reject DATA command
smtpd_etrn_restrictions Optional Reject ETRN command
 
nochwas:


ul 30 16:50:24 xyz postfix/trivial-rewrite[7589]: warning: do not list domain mein-domain.de in BOTH mydestination and virtual_alias_domains



du musst dich entscheiden !!! mydestination ODER virtual....
 
perl -MMIME::Base64 -e 'print encode_base64("benutzer\0benutzer\0benutzerpass");'
damit generierst du ein password für deinen benutzer

telnet <dein-server> <port>
EHLO <gmx.net>
AUTH PLAIN <das password von oben>
235 Authentication successful <== das solltest du zurückbekommen
QUIT
Das ist die Sequenz welche beim Empfang abläuft.

in deiner smtpd_recipient_restrictions= fehlt meiner Meinung nach was. du lässt nur sasl_auth zu, aber von draussen nach drin gibt es kein saslauth.

EDIT:
na das hät ich mir sparen können ;)
sorry hab nicht gesehen das derMichel schon was gepostet hat.
 
oc2pus schrieb:
in deiner smtpd_recipient_restrictions= fehlt meiner Meinung nach was. du lässt nur sasl_auth zu, aber von draussen nach drin gibt es kein saslauth.


dazu hab ich oben jede menge geschrieben, und damit sollte das auch klappen...
 
Status
Für weitere Antworten geschlossen.
Oben