problem mit smtp

Postfix, QMail, Sendmail, Dovecot, Cyrus, Courier, Anti-Spam
User avatar
pi88el
Posts: 6
Joined: 2007-09-27 21:12
Location: Konstanz
 

problem mit smtp

Post by pi88el »

hallo leute,
hab irgendwie ein kleines problem mit smtp und bekomme es nicht hin.
also follgendes. ich habe postfix eingerichtet und das fuktioniert auch wunderbar bis jetzt. also mails empfangen meine ich. nur versenden kann ich nicht raus aus dem lokalen netz.
meine daten:
main.cf

Code: Select all

# See /usr/share/postfix/main.cf.dist for a commented, more complete version

# Debian specific:  Specifying a file name will cause the first
# line of that file to be used as the name.  The Debian default
# is /etc/mailname.
#myorigin = /etc/mailname

smtpd_banner = $myhostname ESMTP $mail_name (Ubuntu)
biff = no

# appending .domain is the MUA's job.
append_dot_mydomain = no

# Uncomment the next line to generate "delayed mail" warnings
#delay_warning_time = 4h

# TLS parameters
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:${queue_directory}/smtpd_scache
smtp_tls_session_cache_database = btree:${queue_directory}/smtp_scache

# See /usr/share/doc/postfix/TLS_README.gz in the postfix-doc package for
# information on enabling SSL in the smtp client.

myhostname = <meine domain.tld>
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases
myorigin = /etc/mailname
mydestination = localhost.localdomain, localhost.localdomain, , localhost
relayhost =
mynetworks = 127.0.0.0/8
mailbox_size_limit = 0
recipient_delimiter = +
inet_interfaces = all
home_mailbox = Maildir/

virtual_mailbox_domains = /etc/postfix/vhosts
virtual_mailbox_base = /home/vmail
virtual_mailbox_maps = hash:/etc/postfix/vmaps
virtual_minimum_uid = 1000
virtual_uid_maps = static:7000
virtual_gid_maps = static:7000
smtpd_sasl_local_domain =
smtpd_sasl_auth_enable = yes
smtp_sasl_password_maps = hash:/etc/postfix/smtp_auth
smtpd_sasl_security_options = noanonymous
smtpd_sasl_tls_security_options = noanonymous
broken_sasl_auth_clients = 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
wie man sieht wird postfix mit virtuellen usern ausgeführt.
smtp wird mit ssl zertifiziert.
die paswörter stehen in "hash:/etc/postfix/smtp_auth" was aber, wenn ich es richtig verstanden habe nur für saslauthd eine rolle spielt.
ich habe es probiert mit

Code: Select all

pwcheck_method: saslauthd
mech_list: PLAIN LOGIN
und mit

Code: Select all

pwcheck_method: sasldb
mech_list: PLAIN LOGIN
ich habe die user mit "saslpasswd2" in die db für sasldb, eingetragen und ein passsword vergeben.
aber wenn ich mich mit telnet anmelde:

Code: Select all

telnet localhost 25
Trying 127.0.0.1...
Connected to localhost.localdomain.
Escape character is '^]'.
220 <mydomain.tld> ESMTP Postfix (Ubuntu)
ehlo localhost
250-mydomain.tld
250-PIPELINING
250-SIZE 10240000
250-VRFY
250-ETRN
250-STARTTLS
250-AUTH LOGIN PLAIN
250-AUTH=LOGIN PLAIN
250 8BITMIME
auth login
334 VXNlcm5hbWU6
<base64 codet user>
334 UGFzc3dvcmQ6
<base64 codet password>
535 Error: authentication failed
oder:

Code: Select all

telnet localhost 25
Trying 127.0.0.1...
Connected to localhost.localdomain.
Escape character is '^]'.
220 <mydomail.tld> ESMTP Postfix (Ubuntu)
ehlo localhost
250-<mydomain.tld>
250-PIPELINING
250-SIZE 10240000
250-VRFY
250-ETRN
250-STARTTLS
250-AUTH LOGIN PLAIN
250-AUTH=LOGIN PLAIN
250 8BITMIME
auth plain
334
<user>:<password>
501 Error: malformed authentication response
oder wen ich versuche mit mich mit den benutzern vom dovecot anzumelden kommt auch:

Code: Select all

501 Error: malformed authentication response
kann mir vielleicht jemand helfen?
ich brauche nur einen (im grunde, aber mehrere wären auch nicht schlecht) benutzer der mit smtp senden kann. also nicht unbedingt eine mysql datenbank (mit der ich es auch schon probiert habe).
ich weis eigentlich nicht warum ich mich mit dem user der eigentlich in der in der sasldb2 liegt nicht anmelden kann. die passwörter übergebe ich bei plain ja einfach als text und mit login als base64 codiert... meine ports sind auch freigeschalten... ich kann mails auf dem localen server versenden auch ohne auth, aber sobald ich raus senden will kommen die mails nicht an (ohne auth, mit kann ich ja eh nicht...). ich schätze dass liegt an "smtpd_recipient_restrictions = permit_sasl_authenticated,permit_mynetworks,reject_unauth_destination" wenn ich aber für alle hosts erlaube kann ja jeder spammer mit meinem smtp senden...
und in der /var/log/mail.warn steht

Code: Select all

ep 28 03:51:40 localhost postfix/smtpd[17742]: warning: localhost.localdomain[127.0.0.1]: SASL plain authenticat
ion failed
wenn ich mit auth versuche mich anzumelden. was ja meiner meinung nach wenigstens ein gutes iechen ist das er es versucht.

kann mir jemand helfen? brauche nur einen user mit dem ich mails senden kann... egal ob saslauthd oder sasldb.

habe:
ubuntu 6.06.1 dapper drake
postfix (Maildir funktion, vhost, vmaps...)
dovecot (pop3, imap, pop3s, imaps, ...)

(kein cyrus, courier oder sonst was)

danke schon mal für die hilfe. wäre echt fein wenn jemand weiter weis...
=D> ich weis nämlich nicht weiter #-o
audio07
Posts: 64
Joined: 2003-12-03 02:32
Location: Mainz
 

Re: problem mit smtp

Post by audio07 »

Da hast du mit der Auth was falsch verstanden.
pwcheck_method: sasldb
mech_list: PLAIN LOGIN
Oder auch
pwcheck_method: saslauthd
mech_list: PLAIN LOGIN
sind Angaben, die in die smtpd.conf gehören. Das ist die Datenbank, gegen die Postfix als Server seine Clients (in diesem Fall dich) authentifiziert. In "etc/postfix/smtp_auth" gehören lediglich die Zugangsdaten, mit denen sich dein Postfix (als Client) bei nem anderen Mailserver authentifziert. Das ist z.B. dann notwendig, wenn du einen Relay-Server angibst, was bei dir ja nicht der Fall ist. Ich gehe also mal davon aus, dass du lediglich smtpd und nicht smtp benötigst.

Wenn du beispielsweise gegen sasldb2 checken willst, dann muss Postfix zuerst mit sasl-Support kompiliert sein. Ist das der Fall, dann trage in die smtpd.conf folgendes ein:
  • pwcheck_method: auxprop
    auxprop_plugin: sasldb
    mech_list: PLAIN LOGIN CRAM-MD5 DIGEST-MD5
Sorge dafür, dass diese Datenbank nur für root und Postfix lesbar ist, da die Passwörter dort im Klartext abspeichert werden (kann man schön mit dem Befehl "strings" testen). Der Rest von deiner Config sollte ansonsten passen. In diesen Einstellung checkt Postfix, wie bereits erwähnt, direkt gegen sasldb2. Eine andere Möglichkeit wäre z.B: saslauthd, welcher dann z.B. gegen pam, shadow und Co. testen kann. Dafür muss saslauthd seinerseits konfiguriert werden. Passwörter im Klartext in der Datenbank haben den Vorteil, dass das Passwort selbst an Postfix verschlüsselt übertragen werden kann. Daher habe ich in der mech_list auch die beiden md5s drin.

Als Tipp folgender Link:
http://www.state-of-mind.de/vortraege/c ... ortrag.pdf

Ach ja, bevor ich es vergesse: ich hatte die Tage ganz viel "Spass" mit cyrus-sasl unter Gentoo, weil es gegenüber berkdb inkompatibel geworden ist (keine Ahnung, ob das auch unter anderen Linux-Distris auftritt). Ich habe dann mit gdbm-Support kompiliert und dann gings wieder. Allerdings durfte ich dafür die DB neu anlegen.
User avatar
pi88el
Posts: 6
Joined: 2007-09-27 21:12
Location: Konstanz
 

Re: problem mit smtp

Post by pi88el »

also erstmal danke audio07 für die hilfe. meine authentifizierung läuft jetzt wunderbar. aber ich habe jetzt immer noch ein problem damit mails zu versenden.
wenn ich so vorgehe:

Code: Select all

$ telnet <domain.tld> 25
Trying <lokale ip adr>...
Connected to <domain.tld>.
Escape character is '^]'.
220 <domain.tld> ESMTP Postfix
ehlo mail.gmx.net
250-<domain>
250-PIPELINING
250-SIZE 10240000
250-VRFY
250-ETRN
250-STARTTLS
250-AUTH LOGIN PLAIN DIGEST-MD5 CRAM-MD5
250-AUTH=LOGIN PLAIN DIGEST-MD5 CRAM-MD5
250 8BITMIME
auth plain <base64 coded user:pass>
235 Authentication successful
MAIL FROM:<user@domain.tld>
250 Ok
RCPT TO:<user>@gmx.de
250 Ok
data
354 End data with <CR><LF>.<CR><LF>
FROM:<me>
TO:<you>
SUBJECT:test telnet
testtest testtest
.
250 Ok: queued as C696E207032
quit
221 Bye
Connection closed by foreign host.
aber die nachricht kommt nicht an. muss ich eigentlich ehlo <meine.domain.tld> oder, wie oben, die zieldomain angeben. (habe beides versucht und keins ging)
meine mail.err und mail.warn sagen nichts, nur die mail.info sagt böse sachen zu mir:

Code: Select all

Oct  3 10:43:08 localhost postfix/smtpd[24676]: connect from <domain.tld>[<lokale ip>]
Oct  3 10:43:39 localhost postfix/trivial-rewrite[24679]: warning: do not list domain <domain.tld> in BOTH mydestination and virtual_mailbox_domains
Oct  3 10:43:48 localhost postfix/smtpd[24676]: 2EE74207037: client=<domain.tld>[<lokale ip>], sasl_method=plain, sasl_username=<user@domain.tld>
Oct  3 10:44:06 localhost postfix/cleanup[24680]: 2EE74207037: message-id=<20071003084348.2EE74207037@<domain.tld>>
Oct  3 10:44:06 localhost postfix/qmgr[23423]: 2EE74207037: from=<<user@domain.tld>>, size=433, nrcpt=1 (queue active)
Oct  3 10:44:06 localhost postfix/smtp[24681]: connect to mx0.gmx.net[213.165.64.100]: server dropped connection without sending the initial SMTP greeting (port 25)
Oct  3 10:44:07 localhost postfix/smtp[24681]: connect to mx0.gmx.de[213.165.64.100]: server dropped connection without sending the initial SMTP greeting (port 25)
Oct  3 10:44:07 localhost postfix/smtp[24681]: 2EE74207037: to=<<user>@gmx.de>, relay=none, delay=28, status=deferred (connect to mx0.gmx.de[213.165.64.100]: server dropped connection without sending the initial SMTP greeting)
Oct  3 10:44:09 localhost postfix/smtpd[24676]: disconnect from <domain.tld>[<lokale ip>]
dass mit mydestination and virtual_mailbox_domains ist ja schnell geändert...
liegt es jetzt an meinem server oder am server von gmx warum die verbindung ge-"dropped" wird, und was kann ich dagegen machen?
User avatar
pi88el
Posts: 6
Joined: 2007-09-27 21:12
Location: Konstanz
 

Re: problem mit smtp

Post by pi88el »

ich habe gerade gelesen das gmx neuerdings keine mails mehr von (bestimmten) dynamischen ip-addressen annimmt. das wird es ja wohl dann auch sein... ich habe probiert an echo@tu-berlin.de eine mail zu senden. dieser mail-server sendet die gesendete mail sofort zurück. bekomme aber eine mail zurück, in der drin steht das ich eine dynamische ip habe:
<echo@tu-berlin.de>: host mail2.zrz.tu-berlin.de[130.149.4.14] said:
550-[<meine dynamische ip>] is dynamically assigned IP 550 Please use your ISPs mail
server. (in reply to RCPT TO command)
ich habe ja auch eine dynamische ip!
aber wenigstens sagt mir die tu-berlin warum meine mail da nicht ankommen kann, im gegensatz zu gmx, die senden nämlich nichts...
und ich mache seit zwei wochen an meinem server rum, weis nicht wo der fehler liegt, und dann so ne sch***...
:-# was soll ich dazu noch sagen...