Jump to content
Froxlor Forum
  • 0

Dovecot lda Error


junkpad92

Question

Hallo,

 

seit neustem erhalte ich folgende Error-Logs:

Dec  5 03:05:12 server dovecot: lda(web2): Error: sieve: msgid=<DB86A54CF03A3B7735F9172BBF415CAB@23.89.10.k-mail.sk>: failed to store into mailbox 'Junk': Mailbox doesn't exist: Junk
Dec  5 03:05:12 server dovecot: lda(web2): Error: setegid(privileged) failed: Operation not permitted
Dec  5 03:05:12 server dovecot: lda(web2): Error: open(/var/mail/web2) failed: Permission denied (euid=10001(web2) egid=10001(web2) missing +w perm: /var/mail, we're not in group 8(mail), dir owned by 0:8 mode=0775)
Dec  5 03:05:12 server dovecot: lda(web2): Error: Opening INBOX failed: Mailbox doesn't exist: INBOX
Dec  5 03:05:12 server dovecot: lda(web2): Error: sieve: msgid=<DB86A54CF03A3B7735F9172BBF415CAB@23.89.10.k-mail.sk>: failed to store into mailbox 'INBOX': Internal error occurred. Refer to server log for more information. [2014-12-05 03:05:12]
Dec  5 03:05:12 server dovecot: lda(web2): Error: sieve: script /etc/dovecot/sieve-after.d/discard-junk.sieve failed with unsuccessful implicit keep
Dec  5 03:05:12 server dovecot: lda(web2): Error: setegid(privileged) failed: Operation not permitted
Dec  5 03:05:12 server dovecot: lda(web2): Error: open(/var/mail/web2) failed: Permission denied (euid=10001(web2) egid=10001(web2) missing +w perm: /var/mail, we're not in group 8(mail), dir owned by 0:8 mode=0775)
Dec  5 03:05:12 server dovecot: lda(web2): Error: BUG: Saving failed to unknown storage
Das Seltsame: dovecot sollte eigentlich gar nichts in /var/mail/ zu suchen haben, sondern in /var/customers/mail/. Ich habe gestern die libnss auf die neueste github-Version angepasst.

 

Woran k?nnte das liegen?

 

Und interessant: Ich habe in Testmail an einen web1-User geschrieben (da wird ebenfalls das discard-junk.sieve Skript angewendet), es erscheint kein Fehler im Log und das Mail wird korrekt in den vorhandenen Junk-Ordner geschoben.

 

EDIT: Mails kommen "normal" an - liegt also nicht an einer unvollst?ndigen Config. Au?erdem verwende ich meinen Froxlor-Mailserver nun schon ca. 11 Monate ohne Probleme.

Link to comment
Share on other sites

12 answers to this question

Recommended Posts

Danke! :)

 

Habe nun rausgefunden, warum interne Mails durchgelassen werden. Lag wirklich an permit_mynetworks - allerdings daran, dass permit_mynetworks zuerst angegeben war:

smtpd_recipient_restrictions = check_recipient_access regexp:/etc/postfix/recipient_access,
        permit_mynetworks,
        ...

Schicke ich nun eine Mail mit einer internen Mailadresse an web1@hostname, wird sofort beim Abschicken eine Fehlermeldung ausgegeben, dass die Adresse rejected wurde.

 

Jetzt konnte ich auch den Spammer aus der Slowakei ausschalten. :) Danke f?r deine Hilfe, d00p!

 

---------------------------

 

Nochmal komplett die L?sung:

 

/etc/postfix/main.cf; check_recipient_access MUSS an erster Stelle stehen, wenn auch interne Mails gepr?ft werden sollen!

smtpd_recipient_restrictions = check_recipient_access regexp:/etc/postfix/recipient_access,
        permit_mynetworks,
        ...

/etc/postfix/recipient_access; Domains nat?rlich entsprechend anpassen.

/^web([0-9].*)@(mail|server)\.domain\.net/ REJECT
Link to comment
Share on other sites

Na das liegt an deinem Sieve-Script. Du hast sicher ein script, was spam automatisch in "Junk" verschiebt, diesen Ordner gibt es aber nicht. Versuche es mal mir diesem hier (nat?rlich kannst du "Spam" gerne in "Junk" umbenennen):

require ["fileinto", "mailbox"];

# rule:[X-Spam-Flag-Check]
if header :contains "X-Spam-Flag" "YES" {
        fileinto :create "INBOX.Spam"; stop;
}
Link to comment
Share on other sites

Wie gesagt, bei anderen Postf?chern funktioniert das tadellos. Der Ordner Junk wird autosubscribed von Dovecot. Der Ordner existiert in den Postf?chern und ich habe kein Pr?fix definiert, daher passt nur .Junk schon. Der Ordner Junk liegt NICHT in INBOX.

 

Au?erdem, warum m?chte Dovecot in /var/mail/web2 speichern? Das web2 irritiert mich auch, da m?sste doch ne Mailadresse stehen ...

 

Und die Fehlermeldung kommt nur beim web2-User - nicht bei web1, web3, etc.

Link to comment
Share on other sites

Das kann nat?rlich sein. Wenn Postfix nicht wei?, wohin das Mail soll, stellt er es in /var/mail/web2 zu? Andere angelegte Postf?cher haben ja einen Pfad angegeben (/var/customers/mail/web2/..).

Aber warum wird das Mail ?berhaupt zugestellt, wenn das Postfach nicht existiert? Es sollte abgewiesen werden. Und wenn eine Catchall definiert wurde, dann sollte der Pfad ja passen und nicht /var/mail/web2/ lauten ...

 

EDIT: Ja, liegt definitiv daran, dass jemand eine Mail an web2@hostname schickt. Habe es gerade getestet. Wie kann man das unterbinden? Ich w?rde gerne, dass nur an erstellte Mail-Adressen etwas geschickt werden kann. web2@hostname ist ja nirgendwo definiert worden.

 

Und das nervige: Es ist immer der selbe Absender: k-mail.sk, scheint wirklich Spam zu sein.

Link to comment
Share on other sites

er meckert weil es den user web2 zwar gibt (via libnss aus der froxlor-db) aber halt keine e-mail die web2@hostname lautet. Dann geht er auf default-werte f?r pfade etc. (gleiches passiert z.B. bei "root@hostname") - wenn du web2 mit nem Ziel in die /etc/aliases schreibst, wird es zugestellt.

Link to comment
Share on other sites

K?nnte man das in Froxlor integrieren, dass wenn eine Mail an web2 geht, die Mail an die eingetragene Mailadresse des Accounts weitergeleitet wird?

will ich nicht, das gibt nur mehr spam...

 

Oder k?nnte ich das irgendwie anders verbieten, dass die Mail an user@servername abgewiesen wird?

geht sicher, lies dir dazu die optionen f?r die receiver bei postfix durch, da gibt es einiges
Link to comment
Share on other sites

Ich habe das nun folgenderma?en gel?st:

 

main.cf

smtpd_recipient_restrictions = check_recipient_access hash:/etc/postfix/recipient_access

recipient_access erstellen

web1@servername.domain.com REJECT Dropped
usw. ...

Hash file erstellen

postmap hash:/etc/postfix/recipient_access

Einziges Sch?nheitsproblem jetzt: Ich muss alle Accounts von web1 bis z. B. web100 anlegen. Geht das ganze mit einer mysql-Abfrage?

 

Und ich verstehe noch immer nicht, woher er die webs ?berhaupt hat. Denn die stehen in mail_virtual und mail_users nicht. Postfix m?sste doch die Mails automatisch abweisen.

 

EDIT:

Habe nun folgendes herausgefunden: Ich verwende statt hash regexp:

check_recipient_access regexp:/etc/postfix/recipient_access

Inhalt der recipient_access

/^web([0-9].*)@(mail|server)\.domain\.net/ REJECT

Ein regexp-File mit postmap muss nicht erstellt werden.

 

1. Problem: Wie kann ich server.domain.net/mail.domain.net durch die Variabel ersetzen $mydomain/$myhostname? Einfach $mydomain einsetzen klappt nicht. Klappt nicht - ist aber auch nicht so wichtig.

2. Problem: Der Mailserver l?sst interne Mails automatisch durch und wendet check_recipient_access nicht an. An permit_mynetworks liegt es nicht, habe ich bereits ausprobiert, indem ich es deaktiviert habe.

 

Wie kann ich auch interne Mails dazubringen, check_recipient_access zu durchlaufen?

Link to comment
Share on other sites

Und ich verstehe noch immer nicht, woher er die webs ?berhaupt hat. Denn die stehen in mail_virtual und mail_users nicht. Postfix m?sste doch die Mails automatisch abweisen.

 

Durch libnss sind das "normale" user auf dem system, und genau daher kennt postfix die. Habe ich dir doch schon gesagt.

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.



×
×
  • Create New...