PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : postfix verschluckt Mails



Cocos
02.04.06, 13:12
Aloha zusammen! :)
Ich habe folgendes Problem:
Ich habe seit ungefähr 4 Monaten einen Root mit Web-, Mail- und Gameservern. Das funktionierte auch eigentlich alles ganz gut, bis ich auf einmal feststellen musste, dass ich keine Mails mehr per SMTP-Server verschicken kann.
Sofern ich über Confixx Mails sende (sei es an meine eigene Adresse oder an andere) kommen diese ohne Probleme an, ich kann sie sogar per POP3-Server abrufen. Nur bei SMTP-Verbindung via MozillaMail/Outlook scheint postfix die E-Mails zu verschlucken, sogar wenn ich eine Mail von einer anderen Adresse an die besagte ****@rgetv.de schicke, wird diese verschluckt (s.u.).
Es kann nicht an meinem "privaten" Rechner liegen, da das Abrufen & Versenden über diverse andere Anbieter (web/gmx) ganz wunderbar klappt.

Ich hab' ein wenig in den mail.log's gegraben, und das ist der aktuelle Stand der Dinge:



Beim Versuch, per SMTP eine Mail an eine EXTERNE Adresse zu versenden:



Apr 2 14:06:30 t240 smtpd[5666]: SMTP HELO from dslb-084-062-062-027.pools.arcor-ip.net(84.62.62.27) as "[192.168.0.2]"
Apr 2 14:06:30 t240 smtpd[5666]: mail from <***@rgetv.de>
Apr 2 14:06:30 t240 smtpd[5666]: smtp connection from UNKNOWN@dslb-084-062-062-027.pools.arcor-ip.net(84.62.62.27) MAIL FROM: <***@rgetv.de> RCPT TO: <***@web.de>, allowed by line 1 of /etc/smtpd_check_rules
Apr 2 14:06:30 t240 smtpd[5666]: Recipient <***@web.de>
Apr 2 14:06:30 t240 smtpd[5666]: Received 381 bytes of message body from dslb-084-062-062-027.pools.arcor-ip.net(84.62.62.27)


Beim Versuch, per SMTP eine Mail von EXTERN an eine INTERNE Adresse zu versenden:


Apr 2 14:05:01 t240 smtpd[5654]: SMTP HELO from fmmailgate05.web.de(217.72.192.243) as "fmmailgate05.web.de"
Apr 2 14:05:01 t240 smtpd[5654]: mail from <***@web.de>
Apr 2 14:05:01 t240 smtpd[5654]: smtp connection from UNKNOWN@fmmailgate05.web.de(217.72.192.243) MAIL FROM: <***@web.de> RCPT TO: <***@rgetv.de>, allowed by line 2 of /etc/smtpd_check_rules
Apr 2 14:05:01 t240 smtpd[5654]: Recipient <***@rgetv.de>
Apr 2 14:05:01 t240 smtpd[5654]: Received 790 bytes of message body from fmmailgate05.web.de(217.72.192.243)


Schließlich die Ausgabe bei einem Versenden über Confixx:


Apr 2 14:10:05 t240 postfix/pickup[5646]: 75034615158: uid=33 from=<***@rgetv.de>
Apr 2 14:10:05 t240 postfix/cleanup[5693]: 75034615158: message-id=<20060402121005.75034615158@mail.rgetv.de>
Apr 2 14:10:05 t240 postfix/qmgr[5647]: 75034615158: from=<***@rgetv.de>, size=509, nrcpt=1 (queue active)
Apr 2 14:10:05 t240 postfix/smtp[5739]: 75034615158: to=<***@web.de>, relay=mx-ha01.web.de[217.72.192.149], delay=0, status=sent (250 OK id=1FQ1PC-0004kU-00)
Apr 2 14:10:05 t240 postfix/qmgr[5647]: 75034615158: removed


meine /etc/postfix/main.cf:


# see /usr/share/postfix/main.cf.dist for a commented, fuller
# version of this file.

# Do not change these directory settings - they are critical to Postfix
# operation.
command_directory = /usr/sbin
daemon_directory = /usr/lib/postfix
program_directory = /usr/lib/postfix

smtpd_banner = $myhostname ESMTP $mail_name (Debian/GNU)
setgid_group = postdrop
biff = no

# appending .domain is the MUA's job.
append_dot_mydomain = no
myhostname = mail.rgetv.de
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases
myorigin = $mydomain
mydestination = $myhostname, localhost.$mydomain, localhost
mydomain = rgetv.de
relayhost =
mynetworks = 127.0.0.0/8, 192.168.0.0/24
mailbox_command = procmail -a "$EXTENSION"
mailbox_size_limit = 0
recipient_delimiter = +

smtpd_helo_required = yes
strict_rfc821_envelopes = yes
disable_vrfy_command = yes
smtpd_delay_reject = yes
smtpd_sasl_auth_enable = yes
broken_sasl_auth_clients = no
smtpd_sasl_security_options = noanonymous
smtpd_recipient_restrictions = permit_sasl_authenticated,permit_auth_destination, reject_unauth_destination,permit_mynetworks
smtpd_sender_restrictions = reject_unknown_sender_domain
smtpd_sasl_application_name = smtpd
smtpd_use_tls = no
smtpd_enforce_tls = no

### CONFIXX POSTFIX ENTRY ###

virtual_maps = hash:/etc/postfix/confixx_virtualUsers, hash:/etc/postfix/confixx_localDomains

### /CONFIXX POSTFIX ENTRY ###


Wie gesagt, an dieser Stelle bin ich mit meinem Latein am Ende... Wäre klasse, wenn mir einer von euch hierbei helfen könnte :)

MfGreeetz,

Cocos! :rolleyes:

RapidMax
02.04.06, 16:16
Was für eine Version von Debian und Postfix ist das?

Mir kommen diese Einträge komisch vor:

Apr 2 14:05:01 t240 smtpd[5654]: SMTP HELO from fmmailgate05.web.de(217.72.192.243) as "fmmailgate05.web.de"
Meiner Erfahrung nach müssten diese so aussehen:

Apr 2 08:43:05 sirius postfix/smtpd[15791]: connect from mx0.gmx.de[213.165.64.100]

Man beachte das smtpd gegenüber dem postfix/smtpd. Ich hätte noch gern einen Blick in die master.cf geworfen.

Für jede Mail müsste es zumindest eine Zeile in der Logdatei geben, welche das Relay bezeichnet, so wie hier:

Apr 2 14:10:05 t240 postfix/smtp[5739]: 75034615158: to=<***@web.de>, relay=mx-ha01.web.de[217.72.192.149], delay=0, status=sent (250 OK id=1FQ1PC-0004kU-00)
Als Relay kommt hier bei lokalen auch LMTP, procmail oder andere in der master.cf konfigurierte transports in Frage.
Ist das Relaying nicht erlaubt, erscheint eine Zeile wie diese:

Mar 18 18:32:40 sirius postfix/smtpd[18254]: NOQUEUE: reject: RCPT from hagrid.hogwarts.local[192.168.1.4]: 554 <harry@hogwarts.local>: Relay access denied; from=<sirius@hogwarts.local> to=<harry@hogwarts.local> proto=SMTP helo=<hagrid.hogwarts.local>
Beides erscheint bei dir nicht. Könntest du das mal von Hand testen, wie hier (http://rapidmax.homelinux.net/src/debian-postfix-sieve-cyrus/debian-postfix-sieve-cyrus.html#id2497648) beschrieben?

Das verlinkte Dokument ist ein HOWTO an dem ich gerade arbeite. Es ist noch nicht offiziell freigegeben: Postfix Mailserver basierend auf Debian Sarge (http://rapidmax.homelinux.net/src/debian-postfix-sieve-cyrus/debian-postfix-sieve-cyrus.html)

tschloss
02.04.06, 18:35
Für den Teil "extern per SMTP an deinen Postfix-SMTP, Ziel ****@web.de" könnte die Erklärung sein, dass große Mailservices Mails von fremden SMTP-Servern nur sehr eingeschränkt annehmen (z.B. gültiger Domain-Record gegen reverse lookup).

Es erklärt aber nicht, warum die Zustellung von extern auf deinen Server als Zielsystem nicht klappt.
Außerdem müßte es dann auch Fehlermeldungen geben. Postfix verschluckt nämlich niemals etwas.

Ein anderer Problembereich betrifft die Relaying-Einstellungen. Aber laut Deinem Log werden die Verbindungen in beiden Fällen aktzeptiert, wenn du die richtigen Auszüge aus deinen Logs geholt hast. (Allerdings müßten da jeweils noch ein paar Zeilen kommen....). Das sind diese Einträge:
smtpd_recipient_restrictions = permit_sasl_authenticated,permit_auth_destination, reject_unauth_destination,permit_mynetworks
smtpd_sender_restrictions = reject_unknown_sender_domain
und diese Datei (die ich nicht kenne) /etc/smtpd_check_rules

(Irgendwie sieht so eine Confixx verseuchte config anders aus....)

Vielleicht gräbst du noch ein wenig....

Greetz
Thomas

Cocos
03.04.06, 13:28
[...] Könntest du das mal von Hand testen, wie hier (http://rapidmax.homelinux.net/src/debian-postfix-sieve-cyrus/debian-postfix-sieve-cyrus.html#id2497648) beschrieben?

Das verlinkte Dokument ist ein HOWTO an dem ich gerade arbeite. Es ist noch nicht offiziell freigegeben: Postfix Mailserver basierend auf Debian Sarge (http://rapidmax.homelinux.net/src/debian-postfix-sieve-cyrus/debian-postfix-sieve-cyrus.html)

Ich hab's getestet... was dabei rausgekommen ist, seht ihr im folgenden:


t240:~# telnet localhost 25
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
220 t240 Sendmail ready.
HELO FranzVonAssisi
250 t240 pleased to meet you, FranzVonAssisi
MAIL FROM: <>
250 sender is <>, sender OK
RCPT TO: <abc@rgetv.de>
250 recipient <abc@rgetv.de>, recipient OK
DATA
354 OK End with <CRLF>.<CRLF>
Subject: Warum klappt das alles nicht? :(

Body
Das ist hier eben die Frage...
.
250 Message accepted for delivery
QUIT
221 Closing connection
Connection closed by foreign host.
t240:~#

Und - Was soll ich sagen? - keine Mail im Posteingang... :(
(Btw: warum erhalte ich kein "queued as"? :confused: )

achja: Auf dem Root läuft Debian Sarge mit dem 2.6.12.4 'er-Kernel.

Zu Tschloss:

Die Datei /etc/smtpd_check_rules
sieht bei mir folgendermaßen aus:


allow:ALL:*@rgetv.de:ALL
allow:ALL:ALL:*@rgetv.de

Diese Datei begutachtet die Mails, die über den Server laufen, und fängt sie dementsprechend ab, falls sie nicht erlaubt sind (beugt also SPAM vor).
In meinem Fall lässt sie alle Mails passieren, die von einer E-Mail-Adresse namens *@rgetv.de kommen oder dorthin gehen sollen. der Rest wird gestoppt. (In dieser Datei kann die Fehlerquelle auch nicht liegen, da ich schon mehrfach "allow:ALL:ALL:ALL" reingeschrieben habe und sich nix tat... Außerdem steht ja im Log: "allowed by line 1 of /etc/smtpd_check_rules" etc.

Die master.cf schaut folgendermaßen aus:


# ================================================== ========================
# service type private unpriv chroot wakeup maxproc command + args
# (yes) (yes) (yes) (never) (50)
# ================================================== ========================
smtp inet n - n - - smtpd
#628 inet n - - - - qmqpd
pickup fifo n - - 60 1 pickup
cleanup unix n - - - 0 cleanup
qmgr fifo n - - 300 1 qmgr
#qmgr fifo n - - 300 1 nqmgr
rewrite unix - - - - - trivial-rewrite
bounce unix - - - - 0 bounce
defer unix - - - - 0 bounce
flush unix n - - 1000? 0 flush
smtp unix - - - - - smtp
showq unix n - - - - showq
error unix - - - - - error
local unix - n n - - local
virtual unix - n n - - virtual
lmtp unix - - n - - lmtp
#
# Interfaces to non-Postfix software. Be sure to examine the manual
# pages of the non-Postfix software to find out what options it wants.
# The Cyrus deliver program has changed incompatibly.
#
cyrus unix - n n - - pipe
flags=R user=cyrus argv=/usr/sbin/cyrdeliver -e -m ${extension} ${user}
uucp unix - n n - - pipe
flags=Fqhu user=uucp argv=uux -r -n -z -a$sender - $nexthop!rmail ($recipient)
ifmail unix - n n - - pipe
flags=F user=ftn argv=/usr/lib/ifmail/ifmail -r $nexthop ($recipient)
bsmtp unix - n n - - pipe
flags=Fq. user=bsmtp argv=/usr/lib/bsmtp/bsmtp -d -t$nexthop -f$sender $recipient
scalemail-backend unix - n n - 2 pipe
flags=R user=scalemail argv=/usr/lib/scalemail/bin/scalemail-store ${nexthop} ${user} ${extension}

# only used by postfix-tls
#smtps inet n - n - - smtpd -o smtpd_tls_wrappermode=yes -o smtpd_sasl_auth_enable=yes
#587 inet n - n - - smtpd -o smtpd_enforce_tls=yes -o smtpd_sasl_auth_enable=yes
proxymap unix - - n - - proxymap
trace unix - - - - 0 bounce
verify unix - - - - 1 verify
relay unix - - n - - smtp
# -o smtp_helo_timeout=5 -o smtp_connect_timeout=5


An ihr hab ich bis jetzt noch keine Änderungen vorgenommen, da ich noch nicht ganz dahinter gestiegen bin ;) .
Die letzte Zeile

# -o smtp_helo_timeout=5 -o smtp_connect_timeout=5
hat keine Auswirkungen (ob auskommentiert oder nicht) auf mein Problem, ich habs schon getestet :)


Vielen Dank erstmal für alle bisherigen (und hoffentlich auch zukünftigen) Antworten :) Ihr seid echte Helden :D

tschloss
03.04.06, 20:22
Sorry, diese smtpd_check_rules Dazei ist mir vom Namen wie vom Inhalt unbekannt. Ist meiner Ansicht nach kein Bestandteil eines "normalen" Postfix (möglicherweise ein Confixx-Thema oder sonst eine Erweiterung).

Aber nochmals: eigentlich verliert Postfix nichts: entweder er wird was los (dann müßte es das nächste System verloren haben) oder er wird etwas nicht los, dann versucht er es wieder und/oder protokolliert in jedem Fall etwas.

Bin da jetzt keine Hilfe, weil ich die UMgebung nicht kenne.

Viel Erfolg
Thomas

bla!zilla
03.04.06, 20:40
SMTP verliert bei Design keine Mails. Entweder sie werden zugestellt oder es gibt eine non delivery Mail.

Wie wäre es wenn du deine ganzen Restriction aus der /etc/postfix/main.cf erstmal entfernst? Gleichzeitig solltest du deine /etc/hosts.allow und /etc/hosts.deny runterstrippen.

RapidMax
03.04.06, 20:50
Sorry, diese smtpd_check_rules Dazei ist mir vom Namen wie vom Inhalt unbekannt. Ist meiner Ansicht nach kein Bestandteil eines "normalen" Postfix (möglicherweise ein Confixx-Thema oder sonst eine Erweiterung).
Dito. Kenne ich nicht. Wird die wirklich verwendet? Dann müsste es doch zumindest eine Option in der main.cf geben, welche auf diese verlinkt.

Deine SMTP-Handarbeit-Session sieht aus dieser Sicht gut aus. Interessant sind die dazu gehörigen Log-Einträge die du unterschlagen hast.

Ansonsten rate ich dir auch wie bla!zilla es vorgeschlagen hat, alle Restriktionen mal temporär zu entfernen.

Gruss, Andy

Cocos
04.04.06, 13:23
Vielen, vielen Dank erstmal :)
(Nicht, dass das Problem schön gelöst wäre, aber ich habe endlich wieder das Gefühl, der Sache mit eurer Hilfe auf die Schliche zu kommen).

Der log-Eintrag für die Telnet-Session (nicht für GENAU die, sondern für eine, die ich grade nochmal versucht habe) sieht folgendermaßen aus:


Apr 4 14:14:45 t240 smtpd[24253]: No reverse mapping for address 127.0.0.1 (2)
Apr 4 14:14:56 t240 smtpd[24253]: SMTP HELO from UNKNOWN(127.0.0.1) as "FranzVonAssisi"
Apr 4 14:15:09 t240 smtpd[24253]: mail from <>
Apr 4 14:15:33 t240 smtpd[24253]: smtp connection from UNKNOWN@UNKNOWN(127.0.0.1) MAIL FROM: <> RCPT TO: <cocos@rgetv.de>, allowed by line 2 of /etc/smtpd_check_rules
Apr 4 14:15:33 t240 smtpd[24253]: Recipient <abc@rgetv.de>
Apr 4 14:15:52 t240 smtpd[24253]: Received 20 bytes of message body from UNKNOWN(127.0.0.1)


Da fehlt defininitiv nichts, bei der ersten Zeil bin ich mir sogar nicht sicher, ob sie dazu gehört :P

Ich werde jetzt sofort (nach eurer Anweisung) die main.cf, hosts.allow & hosts.deny abspecken...
Das geht doch mit einem einfachen "#" vor jeder überflüssigen Zeile? (Ich weiß, doofe Frage, aber ich will nicht, dass der ganze Fehler nachher an nem falsch-gesetzten "#" liegt :ugly: )

Ergebnisse Folgen!

THX@all,

Yours Cocos! :)

tschloss
04.04.06, 13:27
Dito. Kenne ich nicht. Wird die wirklich verwendet? Dann müsste es doch zumindest eine Option in der main.cf geben, welche auf diese verlinkt.
Gruss, Andy

Ich hatte mal auf nem V-Server so ein ähnliches Tool wie Confixx - das biegt einem alles um, da sieht nichts mehr aus, wie normal :ugly:

Da läuft vielleicht ein Dämon, der diese smtd_..Datei regelmäßig in Postfix-maps umwandelt? Alles schon dagewesen.

Greetz
Thomas

Cocos
04.04.06, 13:34
Ich hab jetzt so ziemlich alles abgespeckt, was abzuspecken ging... Es geht immernochnicht.

Jedoch sind mir ein paar Log-Zeilen aufgefallen, aus denen ich nicht ganz schlau werde:


Apr 2 14:08:55 t240 postfix/pickup[5646]: 5070A615158: uid=33 from=<cocos@rgetv.de>
Apr 2 14:08:55 t240 postfix/cleanup[5693]: 5070A615158: message-id=<20060402120855.5070A615158@mail.rgetv.de>
Apr 2 14:08:55 t240 postfix/qmgr[5647]: 5070A615158: from=<cocos@rgetv.de>, size=496, nrcpt=1 (queue active)
Apr 2 14:08:55 t240 postfix/error[5695]: 5070A615158: to=<web0p1@rgetv.de>, orig_to=<cocos@rgetv.de>, relay=none, delay=0, status=bounced (User unknown in virtual alias table)
Apr 2 14:08:55 t240 postfix/cleanup[5693]: 6255D615149: message-id=<20060402120855.6255D615149@mail.rgetv.de>
Apr 2 14:08:55 t240 postfix/qmgr[5647]: 6255D615149: from=<>, size=2264, nrcpt=1 (queue active)
Apr 2 14:08:55 t240 postfix/qmgr[5647]: 5070A615158: removed
Apr 2 14:08:55 t240 postfix/error[5695]: 6255D615149: to=<web0p1@rgetv.de>, orig_to=<cocos@rgetv.de>, relay=none, delay=0, status=bounced (User unknown in virtual alias table)
Apr 2 14:08:55 t240 postfix/qmgr[5647]: 6255D615149: removed

Demnach hat postfix ein paar Mails gestoppt, weil der Benutzername nicht in den Virtual-Tables nekannt ist...
Welcher Nutzer eigentlich genau? und wieso/warum? :P

Die momentane main.cf sieht folgendermaßen aus:

command_directory = /usr/sbin
daemon_directory = /usr/lib/postfix
program_directory = /usr/lib/postfix

smtpd_banner = $myhostname ESMTP $mail_name (Debian/GNU)
setgid_group = postdrop
biff = no

# appending .domain is the MUA's job.
append_dot_mydomain = no
myhostname = mail.rgetv.de
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases
myorigin = $mydomain
mydestination = $myhostname, localhost.$mydomain, localhost
mydomain = rgetv.de
relayhost =
mynetworks = 127.0.0.0/8, 192.168.0.0/24
mailbox_command = procmail -a "$EXTENSION"
mailbox_size_limit = 0
recipient_delimiter = +

smtpd_helo_required = no #yes
strict_rfc821_envelopes = no # yes
disable_vrfy_command = no #yes
smtpd_delay_reject = no #yes
smtpd_sasl_auth_enable = no #yes
broken_sasl_auth_clients = yes #no
smtpd_sasl_security_options = #noanonymous
smtpd_recipient_restrictions = #permit_sasl_authenticated,permit_auth_destination ,reject_unauth_destination,permit_mynetworks
smtpd_sender_restrictions = #reject_unknown_sender_domain
smtpd_sasl_application_name = smtpd
smtpd_use_tls = no
smtpd_enforce_tls = no

### CONFIXX POSTFIX ENTRY ###

virtual_maps = hash:/etc/postfix/confixx_virtualUsers, hash:/etc/postfix/confixx_localDomains

### /CONFIXX POSTFIX ENTRY ###

hosts.allow bzw. hosts.deny waren beide (bis auf die auskommentierten Kommentare) leer. :confused:

Wir kriegen das schon irgedwie hin ;)


EDIT: Es kann doch eigentlich nicht schaden, den Server einfach mal zu rebooten, oder? 0:-)

RapidMax
14.04.06, 15:19
Demnach hat postfix ein paar Mails gestoppt, weil der Benutzername nicht in den Virtual-Tables nekannt ist...
Welcher Nutzer eigentlich genau? und wieso/warum? :P

Genau. Die Virtual hosts map sieht so aus:


foo@virtual.host localuser
@other.virtual.host local_catch_all_user

D.h. die Benutzer werden auf lokale Mailboxen mit dem Name "localuser" und "local_catch_all_user" gemappt. Und für diese Namen muss ein lokaler Mail-Account existieren.



Die momentane main.cf sieht folgendermaßen aus:


[...]
virtual_maps = hash:/etc/postfix/confixx_virtualUsers, hash:/etc/postfix/confixx_localDomains


Diese beiden Dateien solltest du dir mal ansehen. Du solltest beachten, dass diese Dateien über den befehl postmap in Hashmaps transformiert werden muss. Postfix läd nur die Dateien confixx_virtualUsers.db und confixx-localDomains.db.


hosts.allow bzw. hosts.deny waren beide (bis auf die auskommentierten Kommentare) leer. :confused:

Das ist korrekt.


EDIT: Es kann doch eigentlich nicht schaden, den Server einfach mal zu rebooten, oder? 0:-)
Schaden bestimmt nicht, aber meiner Erfahrung nach auch nichts nützen...

Du solltest aber postfix nach grösseren Konfigurations-Änderungen neu starten und nicht nur einfach "reloaden": /etc/init.d/postfix restart

Gruss, Andy

Cocos
16.04.06, 18:58
Also, meine /etc/postfix/confixx_virtualUsers ist wie folgt aufgebaut:
In mehreren Zeilen steht

email@dres.se postfach

In meiner /etc/postfix/confixx_localDomains steht nur


rgetv.de confixx

confixx_localDomains.db und confixx_virtualUsers.db existieren beide.

Was kann ich nun tun?
Soll ich einfach
"postmap confixx_localDomains"
bzw. "postmap confixx_virtualUsers" ausführen?

Vielen Dank für die Hilfe,

Cocos :)