"erst user such, dann mail annehmen"-patch für qma

Postfix, QMail, Sendmail, Dovecot, Cyrus, Courier, Anti-Spam
funnydingo
Posts: 160
Joined: 2002-12-07 14:40
Location: Münster

"erst user such, dann mail annehmen"-patch für qma

Post by funnydingo » 2004-04-18 22:56

Hallo zusammen,

mal wieder was zu Qmail ;-)

Mir ist aufgefallen das jeder der eine Email an eine nicht existierende Email-Adresse auf einem Qmail-Server schickt, die komplett von Qmail generierte Mail zurück bekommt. Schicke ich aber, zum Beispiel, eine Email an eine nicht existierende Email-Adresse bei web.de, bekomme ich eine Mail von von meinem Qmail mit der Fehlermeldung des anderen Servers zurück.

Nach einigen überlegen wurde mir auch klar warum: Qmail nimmt zu erst die komplette Email an (wenn die entsprechende Domain gültig ist) und prüft erst dann, ob das Postfach existiert. Daher MUSS Qmail eine eigene Fehlermeldung zurück schicken, da die Verbindung mit der Gegenseite ja bereits geschlossen ist.

Nun zu meiner Frage: Ist jemandem ein Patch bekannt mit dem ich Qmail anweisen kann, erst zu prüfen ob das Postfach existiert und nur im positiven Fall die Email anzunehmen?

Ich habe lange gesucht, bin aber nicht fündig geworden (selbst auf qmail.org ist kein entsprechender Patch aufgeführt).

Gruß, bin für jeden Tip dankbar!


Funny

kenzo
RSAC
Posts: 530
Joined: 2003-07-15 20:30

Re: "erst user such, dann mail annehmen"-patch für qma

Post by kenzo » 2004-04-19 00:07

Die Forensuche und Google existieren.

funnydingo
Posts: 160
Joined: 2002-12-07 14:40
Location: Münster

Re: "erst user such, dann mail annehmen"-patch für qma

Post by funnydingo » 2004-04-19 03:25

Klar kenne ich die Forensuche. Hab es aber anscheinend beim ersten mal "über scrollt". Danke ;-)

funnydingo
Posts: 160
Joined: 2002-12-07 14:40
Location: Münster

Re: "erst user such, dann mail annehmen"-patch für qma

Post by funnydingo » 2004-04-19 04:24

Also,

ich habe nun seit knapp einer Stunde versucht qmail mit dem qmail-smtpd-chkusr-Patch zu installieren. Leider vällig ohne erfolg.

Beim patchen bekomme ich folgende Meldungen:
patching file qmail-smtpd-x.c
Hunk #2 FAILED at 34.
Hunk #3 FAILED at 99.
Hunk #4 succeeded at 136 (offset -73 lines).
Hunk #5 succeeded at 217 (offset -84 lines).
Hunk #6 FAILED at 541.
3 out of 6 hunks FAILED -- saving rejects to file qmail-smtpd-x.c.rej
Natürlich, wie soll es auch anders sein, schlägt das kompilieren dann auch fehl (ich habe vor dem kompilieren die qmail-smtpd-x.c wieder in qmail-smtpd.c umbenannt):
./compile qmail-smtpd.c
qmail-smtpd.c: In function `realrcpt_check':
qmail-smtpd.c:224: error: `NULL' undeclared (first use in this function)
qmail-smtpd.c:224: error: (Each undeclared identifier is reported only once
qmail-smtpd.c:224: error: for each function it appears in.)
qmail-smtpd.c:227: error: `DIR' undeclared (first use in this function)
qmail-smtpd.c:227: error: `dir_file' undeclared (first use in this function)
qmail-smtpd.c:257: error: `DEFAULT_DOMAIN' undeclared (first use in this function)
qmail-smtpd.c:312: warning: assignment makes pointer from integer without a cast
qmail-smtpd.c:317: error: dereferencing pointer to incomplete type
qmail-smtpd.c:317: error: `BOUNCE_MAIL' undeclared (first use in this function)
qmail-smtpd.c:349: error: `F_OK' undeclared (first use in this function)
qmail-smtpd.c: In function `main':
qmail-smtpd.c:598: warning: return type of `main' is not `int'
make: *** [qmail-smtpd.o] Error 1
Es ist auch egal ob ich "frische" qmail-Sourcen benutze oder bereits mit qmail-smtpd-auth-0.31 und qmail-smtpd-auth-close3 gepatchede Sourcen. Hat jemand eine Ahnung was das Problem sein könnte?

kenzo
RSAC
Posts: 530
Joined: 2003-07-15 20:30

Re: "erst user such, dann mail annehmen"-patch für qma

Post by kenzo » 2004-04-19 10:47

Versuch's mal hiermit (diesen Link hättest Du über die vpopmail-Archive gefunden):
http://marc.theaimsgroup.com/?l=vchkpw& ... 427682&w=2 oder gleich
http://www.kendzorra.de/uploads/media/chkusr.txt

funnydingo
Posts: 160
Joined: 2002-12-07 14:40
Location: Münster

Re: "erst user such, dann mail annehmen"-patch für qma

Post by funnydingo » 2004-04-19 12:38

Also,

nach dem der Schlaf etwas gestärkt hat, habe ich die letzten 1 1/2 Stunden gebastelt, getestet, kompiliert, installiert, korrigiert... qmail-smtpd.c und Makefile wurde entsprechend angepasst.

Ich bin nun soweit das ich die geänderte qmail-smtpd.c kompiliert bekomme (inklusive smtp-auth). Ich habe dann noch in der xinetd-Config-File den Aufruf geändert, das er nun das "qmail-smtpd-chkusr"-Binary benutzt. Leider funktioniert es nicht! Ich bekomme immer noch die Bouncemail.

Ich muss aber dabei sagen, das mir beim ändern der qmail-smtpd.c etwas aufgefallen ist. In der genannten Anleitung http://www.kendzorra.de/uploads/media/chkusr.txt steht

Code: Select all

----------------------------------------------------
Fourth piece - be sure to include the line marked by "+" exactly within the 
routine addrallowed():
----------------------------------------------------
int addrallowed()
   {
    .........................
    .........................
     else
     if (!addrallowed()) { err_nogateway(); return; }
+    if (!realrcpt_check()) { err_realrcpt(); return; }
     if (!stralloc_cats(&rcptto,"T")) die_nomem();
     if (!stralloc_cats(&rcptto,addr.s)) die_nomem();
     if (!stralloc_0(&rcptto)) die_nomem();
Jedoch kann ich das nicht in die Funktion addrallowed() einfügen, da die hier beschriebenen Zeilen in der Funktion smtp_rcpt() liegen. Ich habe das dann entsprechend dort eingefügt, aber es funktioniert einfach nicht. Das Binary wird auch korrekt ausgetauscht, bzw von xinetd benutzt (habe mal den Text "sorry, that domain isn't in my list of allowed rcpthosts" geändert).

Bin ich den echt zu blöd so einen _kleinen_ Patch einzuspielen?

kenzo
RSAC
Posts: 530
Joined: 2003-07-15 20:30

Re: "erst user such, dann mail annehmen"-patch für qma

Post by kenzo » 2004-04-19 17:25

Jedoch kann ich das nicht in die Funktion addrallowed() einfügen, da die hier beschriebenen Zeilen in der Funktion smtp_rcpt() liegen.
Absolut richtig, die Anleitung ist da "etwas" fehlerhaft.
Ich habe das dann entsprechend dort eingefügt, aber es funktioniert einfach nicht.
Nimm es da wieder raus und setze es an die Stelle, die in der Anleitung gezeigt wird (sollte ca. Zeile 260 sein).

funnydingo
Posts: 160
Joined: 2002-12-07 14:40
Location: Münster

Re: "erst user such, dann mail annehmen"-patch für qma

Post by funnydingo » 2004-04-19 17:32

Das meinte ich mit "Ich habe das dann entsprechend dort eingefügt, aber es funktioniert einfach nicht.", sorry etwas unverständlich ausgedruckt.

Ich habe es dort eingefügt wo man laut Code-Ausschnitt folgende Zeilen findet:

Code: Select all

if (!addrallowed()) { err_nogateway(); return; }
if (!stralloc_cats(&rcptto,"T")) die_nomem();
if (!stralloc_cats(&rcptto,addr.s)) die_nomem();
if (!stralloc_0(&rcptto)) die_nomem();
Das sieht nun so aus:

Code: Select all

if (!addrallowed()) { err_nogateway(); return; }
if (!realrcpt_check()) { err_realrcpt(); return; }
if (!stralloc_cats(&rcptto,"T")) die_nomem();
if (!stralloc_cats(&rcptto,addr.s)) die_nomem();
if (!stralloc_0(&rcptto)) die_nomem();
Da man die o.g. vier Zeilen nur einmal in der qmail-smtpd.c findet, kann die Stelle ja nur richtig sein (auch wenn es in meiner qmail-smtpd.c Zeile 494 bis 498 ist, was aber wohl an ein paar anderen Patches liegen wird (smtpd-auth, smtpd-auth-close3, ...).

Also sollte doch alles passen, oder?

kenzo
RSAC
Posts: 530
Joined: 2003-07-15 20:30

Re: "erst user such, dann mail annehmen"-patch für qma

Post by kenzo » 2004-04-19 17:52

Also sollte doch alles passen, oder?
Richtig - übrigens, wo Du gerade am Patchen bist: Du solltest nicht mehr den alten smtp-auth Patch benutzen, sondern: http://www.fehcom.de/qmail/smtpauth.html

funnydingo
Posts: 160
Joined: 2002-12-07 14:40
Location: Münster

Re: "erst user such, dann mail annehmen"-patch für qma

Post by funnydingo » 2004-04-19 17:59

kenzo wrote:
Also sollte doch alles passen, oder?
Richtig
Also o.g. qmail-smtpd.c ist meine AKTUELLE. Die, die kompiliert nicht funktioniert :-(

Zum neuen smtp-auth Patch: Danke ;-)

Ich werde jetzt einfach noch mal ein "jungfreuliches" Qmail nehmen, den neuen Auth-Path drauf packen und es dann noch mal versuchen. Werde meinen (Miss-)Erfolg dann hier bekannt geben...

funnydingo
Posts: 160
Joined: 2002-12-07 14:40
Location: Münster

Re: "erst user such, dann mail annehmen"-patch für qma

Post by funnydingo » 2004-04-19 18:50

Es funktioniert einfach nicht. Mail von web.de an meinen Server:
<nouser@domain.tld>:
Sorry, no mailbox here by that name. vpopmail (#5.1.1)
Liegt das vielleicht an vpopmail 5.4? Ich habe auch

Code: Select all

/* Check if domain is a real domain */

         if (!stralloc_0 (&domain)) die_nomem();
         vget_real_domain(domain.s, domain.a);
         domain.len = strlen (domain.s);
         if (domain.len > (domain.a - 1)) die_nomem();

/* Let's get domain's real path */
wie in der "original" Anleitung steht (das man das für vpopmail "5.3.25 & following" enternen oder kommentieren soll) mal raus genommen. Egal ob mit oder ohne o.g. Code ausschnitt, es geht nicht.

Es liegt ja wohl nicht daran das ich das über xinetd laufen lasse!? (Ja ja, in der xinet.d/qmail habe ich für smtp{} auch qmail-smtpd mit qmail-smtpd-chkusr ersetzt ;-))

funnydingo
Posts: 160
Joined: 2002-12-07 14:40
Location: Münster

Re: "erst user such, dann mail annehmen"-patch für qma

Post by funnydingo » 2004-04-19 19:09

Jetzt habe ich noch ein anderes Problem: SMTP AUTH funktioniert nicht mehr! Er sagt mir immer, das Benutzername oder Kennwort falsch sei *fluch* POP funktiniert aber weiterhin...

kenzo
RSAC
Posts: 530
Joined: 2003-07-15 20:30

Re: "erst user such, dann mail annehmen"-patch für qma

Post by kenzo » 2004-04-19 20:58

Liegt das vielleicht an vpopmail 5.4?
Die Geschichte mit SMTP-Auth - möglicherweise.
chkusr? Sicher nicht.
Egal ob mit oder ohne o.g. Code ausschnitt, es geht nicht.
Hast Du es schon mal lokal getestet, indem Du einfach per ./qmail-smtpd-chkusr sichergehst, das richtige Binary zu nutzen?
Es liegt ja wohl nicht daran das ich das über xinetd laufen lasse!?
Wer weiß? xinetd ist zumindest nicht "the recommended way".
Jetzt habe ich noch ein anderes Problem: SMTP AUTH funktioniert nicht mehr!
Im alten auth-patch sowie in vpopmail vor 5.4 war die Auth-Routine flashc. Mit vpopmail >= 5.4.0 sollte es funktionieren, hier tut es mit 5.4.3 hervorragend.

funnydingo
Posts: 160
Joined: 2002-12-07 14:40
Location: Münster

Re: "erst user such, dann mail annehmen"-patch für qma

Post by funnydingo » 2004-04-19 21:17

Pff,

also wenn ich qmail-smtp-chkusr lokal ausführe, funktiniert es bestens. Wenn ich via telnet auf Port 25 zugreife, zeigt auch ps die "eigentlich" richtige Ausgabe:

Code: Select all

19246 ?        S      0:00 /var/qmail/bin/qmail-smtpd-chkusr servername /var/qmail/vpopmail/bin/vchkpw /bin/true
Ich weiß nicht wo ran das liegt...

Zur SMTP AUTH Geschichte: Es ist defintiv. Nutze ich den 0.31 geht es, nutze ich 0.42, geht es nicht. Vielleicht liegt es an meiner vpopmail cfg!

Ich glaube ich werde mir dann jetzt mal ein wenig Zeit nehmen und qmail wie im Qmail-Toaster beschrieben installieren. Mal sehen wie weit ich da komme.

funnydingo
Posts: 160
Joined: 2002-12-07 14:40
Location: Münster

Re: "erst user such, dann mail annehmen"-patch für qma

Post by funnydingo » 2004-04-19 21:28

Ich glaube ich lasse es jetzt einfach, so langsam nervt es mich. Ich bekomme die daemontools nicht kompiliert. Das kann doch nicht sein. Ich versuche jetzt noch das Problem mit dem SMTP AUTH geregelt zu bekommen und dann hab ich die Schn*** voll. Ich war so begeistern von Qmail, aber so langsam wird das immer weniger.

funnydingo
Posts: 160
Joined: 2002-12-07 14:40
Location: Münster

Re: "erst user such, dann mail annehmen"-patch für qma

Post by funnydingo » 2004-04-19 22:17

Also,

das ist nun mein Abschluss.

qmail-smtp-chkusr
Lokal (/var/qmail/bin/qmail-smtpd-chkusr) funktioniert, über xinetd (mit korrektem Aufruf) funktioniert es nicht.

SMTP AUTH 0.43
Funktioniert bei mir mit vpopmail 5.4.0 nicht. Egal ob ich

Code: Select all

#define CRAM_MD5
kommentiere oder nicht. Egal ob ich vpopmail mit "--disable-md5-passwords" kompiliere oder nicht, die Authentifizierung (Client: MS Outlook 2003) schlägt jedes mal fehl.

Fazit
Ich bin kurz davor mich nach einem anderen Mail-Server um zu sehen.

Danke für die Hilfe,


Funny

kenzo
RSAC
Posts: 530
Joined: 2003-07-15 20:30

Re: "erst user such, dann mail annehmen"-patch für qma

Post by kenzo » 2004-04-19 23:11

Lokal (/var/qmail/bin/qmail-smtpd-chkusr) funktioniert, über xinetd (mit korrektem Aufruf) funktioniert es nicht.
Nimm tcpserver.
SMTP AUTH 0.43
Funktioniert bei mir mit vpopmail 5.4.0 nicht.
Versuch's mit 5.4.3. Sieh nach, ob Dein runskript wirklich korrekt ist.

funnydingo
Posts: 160
Joined: 2002-12-07 14:40
Location: Münster

Re: "erst user such, dann mail annehmen"-patch für qma

Post by funnydingo » 2004-04-20 00:09

Hm, mit dem tcpserver scheint es doch tatsächlich zu funktionieren (ein kleiner Testlauf war erfolgreich). Habe heute aber nicht mehr die Nerven das ganze noch passen zu setzten (das aktuelle qmail-smtpd-chkusr-Binary passt nicht ganz). Werde das dann morgen inklusive vpopmail 5.4.3 testen.

Aber im voraus noch mal eine Frage: Wenn ich das über den tcpserver laufen lasse, braucht es ein paar Sekunden (ca 3-4) bis die Antwort von qmail-smtpd(-chkusr) kommt. Ist das "normal"?

funnydingo
Posts: 160
Joined: 2002-12-07 14:40
Location: Münster

Re: "erst user such, dann mail annehmen"-patch für qma

Post by funnydingo » 2004-04-20 11:53

Ich verstehe es nicht!
Versuch's mit 5.4.3
Oh man, auch da funktioniert es nicht! Egal ob über xinetd (was ja wegfallen wird, wegen tcpserver) noch über tcpserver. Immer schlägt die Authentifizierung fehl. Ich hab in keinem Log einen Eintrag über den Auth-Vorgang!

Code: Select all

# cd ./vpopmail.5.4.3
# ./configure       (auch mit ./configure --disable-md5-passwords getestet)
# make
# make install-strip
# chown root.root /var/qmail/vpopmail/bin/vchkpw
# chmod 4755 /var/qmail/vpopmail/bin/vchkpw
# cd ../qmail-1.03
# cp ../auth-patch-043/* ./
# ./install_auth.sh
# patch ../patches/qmail-1.03.errno.patch
=== 
chkusr laut http://www.kendzorra.de/uploads/media/chkusr.txt einrichten
===
# make
# make setup check
Ã?ber den tcpserver funktioniert chkusr dann, aber die Authentifizierung schlägt bei beiden (xinetd und tcpserver) immer noch fehl. WAS MACHE ICH FALSCH?

Mein Script das den tcpserver startet sieht so aus:

Code: Select all

#!/bin/sh

VPOPMAIL_UID=`id -u vpopmail`
VCHKPW_GID=`id -g vpopmail`

PATH="/var/qmail/bin:/usr/local/bin"
tcpserver -t 5 -v -p -u $VPOPMAIL_UID -g $VCHKPW_GID -l mail.domain.tld 0 26 qmail-smtpd-chkusr splooger smtpd > /var/qmail/tcp.log 2>&1 &
Ist da vielleicht ein Fehler drin?

PS: Port 26 nutze ich nur, weil der Mail-Server auf 25 erreichbar bleiben muss, so kann ich ich Ruhe auf Port 26 via tcpserver testen.

kenzo
RSAC
Posts: 530
Joined: 2003-07-15 20:30

Re: "erst user such, dann mail annehmen"-patch für qma

Post by kenzo » 2004-04-20 12:08

Ist da vielleicht ein Fehler drin?
Sieht so aus - woher soll in Deinem Fall qmail-smtpd-chkusr wissen, ob der sich authentifizierende User existent/berechtigt/wasauchimmer ist? Von splooger (das anscheinend außerdem flashc geschrieben ist)?
Hints: Volle Pfadnamen verwenden; letzten Teil Deines Skriptes mit etwas wie

Code: Select all

/pfad/zu/qmail-smtpd-chkusr /pfad/zu/vchkpw /bin/true 2>&1
tauschen.

funnydingo
Posts: 160
Joined: 2002-12-07 14:40
Location: Münster

Re: "erst user such, dann mail annehmen"-patch für qma

Post by funnydingo » 2004-04-20 12:59

Danke! Ã?ber den tcpserver läuft es nun mit qmail-smtpd-chkusr und SMPT-Auth 0.4.3! Ich kann dir gar nicht sagen wie dankbar ich dir bin.

Also geht es jetzt daran das ganze endgültig auf tcpserver umzusetzten, bin ja mal gespannt.

tobi^
Posts: 57
Joined: 2003-07-04 16:09

Re: "erst user such, dann mail annehmen"-patch für qma

Post by tobi^ » 2004-04-21 21:28

kann mir das noch jemand kurz erklären was ich mit meinem qmail machen muss damit das mit dem chkusr geht?

kenzo
RSAC
Posts: 530
Joined: 2003-07-15 20:30

Re: "erst user such, dann mail annehmen"-patch für qma

Post by kenzo » 2004-04-22 02:09

Lies diesen Thread.

funnydingo
Posts: 160
Joined: 2002-12-07 14:40
Location: Münster

Re: "erst user such, dann mail annehmen"-patch für qma

Post by funnydingo » 2004-04-22 11:43

Da ich mich beim nächsten mal nicht noch mal mit diesem Problem beschäftigen wollte, habe ich eine recht ausführliche Anleitung zur Installation von qmail über tcpserver mit SMTP AUTH, chk-usr und vpopmail 5.4.3 (inlusive passendem RC-Script, das aber bestimmt nocht eine Ã?berarbeitung gebrauchen kann) geschrieben. Ich kann nur keine Garantie übernehmen das die Anleitung zu 100% stimmt, da ich diese noch nicht auf einem nackten System testen konnte, aber vielleicht hilft es weiter:

http://www.funnydingo.de/projects/qmail-install/

kenzo
RSAC
Posts: 530
Joined: 2003-07-15 20:30

Re: "erst user such, dann mail annehmen"-patch für qma

Post by kenzo » 2004-04-22 12:40

(...) habe ich eine recht ausführliche Anleitung zur Installation von qmail (...)
Nur zur Info: lwq existiert und ist die allgemein anerkannte sowie empfohlene Anleitung zur Installation von qmail - außerdem sollte man auf Hilfsmittel wie die "daemontools" (auch softlimit) nicht verzichten, denn sie machen einem das Leben deutlich leichter ...
Der Rest (patches, Anpassungen etc.) ist davon absolut unabhängig, kann also z.B. wie in Deiner Anleitung eingefügt werden.