"erst user such, dann mail annehmen"-patch für qma
-
funnydingo
- Posts: 160
- Joined: 2002-12-07 14:40
- Location: Münster
- Contact:
"erst user such, dann mail annehmen"-patch für qma
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
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
Re: "erst user such, dann mail annehmen"-patch für qma
Die Forensuche und Google existieren.
-
funnydingo
- Posts: 160
- Joined: 2002-12-07 14:40
- Location: Münster
- Contact:
Re: "erst user such, dann mail annehmen"-patch für qma
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
- Contact:
Re: "erst user such, dann mail annehmen"-patch für qma
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:
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:
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):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
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?./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
Re: "erst user such, dann mail annehmen"-patch für qma
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
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
- Contact:
Re: "erst user such, dann mail annehmen"-patch für qma
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
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?
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();Bin ich den echt zu blöd so einen _kleinen_ Patch einzuspielen?
Re: "erst user such, dann mail annehmen"-patch für qma
Absolut richtig, die Anleitung ist da "etwas" fehlerhaft.Jedoch kann ich das nicht in die Funktion addrallowed() einfügen, da die hier beschriebenen Zeilen in der Funktion smtp_rcpt() liegen.
Nimm es da wieder raus und setze es an die Stelle, die in der Anleitung gezeigt wird (sollte ca. Zeile 260 sein).Ich habe das dann entsprechend dort eingefügt, aber es funktioniert einfach nicht.
-
funnydingo
- Posts: 160
- Joined: 2002-12-07 14:40
- Location: Münster
- Contact:
Re: "erst user such, dann mail annehmen"-patch für qma
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:
Das sieht nun so aus:
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?
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();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();Also sollte doch alles passen, oder?
Re: "erst user such, dann mail annehmen"-patch für qma
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.htmlAlso sollte doch alles passen, oder?
-
funnydingo
- Posts: 160
- Joined: 2002-12-07 14:40
- Location: Münster
- Contact:
Re: "erst user such, dann mail annehmen"-patch für qma
Also o.g. qmail-smtpd.c ist meine AKTUELLE. Die, die kompiliert nicht funktioniert :-(kenzo wrote:RichtigAlso sollte doch alles passen, oder?
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
- Contact:
Re: "erst user such, dann mail annehmen"-patch für qma
Es funktioniert einfach nicht. Mail von web.de an meinen Server:
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 ;-))
Liegt das vielleicht an vpopmail 5.4? Ich habe auch<nouser@domain.tld>:
Sorry, no mailbox here by that name. vpopmail (#5.1.1)
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 */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
- Contact:
Re: "erst user such, dann mail annehmen"-patch für qma
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...
Re: "erst user such, dann mail annehmen"-patch für qma
Die Geschichte mit SMTP-Auth - möglicherweise.Liegt das vielleicht an vpopmail 5.4?
chkusr? Sicher nicht.
Hast Du es schon mal lokal getestet, indem Du einfach per ./qmail-smtpd-chkusr sichergehst, das richtige Binary zu nutzen?Egal ob mit oder ohne o.g. Code ausschnitt, es geht nicht.
Wer weiß? xinetd ist zumindest nicht "the recommended way".Es liegt ja wohl nicht daran das ich das über xinetd laufen lasse!?
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.Jetzt habe ich noch ein anderes Problem: SMTP AUTH funktioniert nicht mehr!
-
funnydingo
- Posts: 160
- Joined: 2002-12-07 14:40
- Location: Münster
- Contact:
Re: "erst user such, dann mail annehmen"-patch für qma
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:
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.
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/trueZur 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
- Contact:
Re: "erst user such, dann mail annehmen"-patch für qma
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
- Contact:
Re: "erst user such, dann mail annehmen"-patch für qma
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 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
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_MD5Fazit
Ich bin kurz davor mich nach einem anderen Mail-Server um zu sehen.
Danke für die Hilfe,
Funny
Re: "erst user such, dann mail annehmen"-patch für qma
Nimm tcpserver.Lokal (/var/qmail/bin/qmail-smtpd-chkusr) funktioniert, über xinetd (mit korrektem Aufruf) funktioniert es nicht.
Versuch's mit 5.4.3. Sieh nach, ob Dein runskript wirklich korrekt ist.SMTP AUTH 0.43
Funktioniert bei mir mit vpopmail 5.4.0 nicht.
-
funnydingo
- Posts: 160
- Joined: 2002-12-07 14:40
- Location: Münster
- Contact:
Re: "erst user such, dann mail annehmen"-patch für qma
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"?
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
- Contact:
Re: "erst user such, dann mail annehmen"-patch für qma
Ich verstehe es nicht!
Ã?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:
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.
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!Versuch's mit 5.4.3
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
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 &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.
Re: "erst user such, dann mail annehmen"-patch für qma
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)?Ist da vielleicht ein Fehler drin?
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-
funnydingo
- Posts: 160
- Joined: 2002-12-07 14:40
- Location: Münster
- Contact:
Re: "erst user such, dann mail annehmen"-patch für qma
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.
Also geht es jetzt daran das ganze endgültig auf tcpserver umzusetzten, bin ja mal gespannt.
Re: "erst user such, dann mail annehmen"-patch für qma
kann mir das noch jemand kurz erklären was ich mit meinem qmail machen muss damit das mit dem chkusr geht?
Re: "erst user such, dann mail annehmen"-patch für qma
Lies diesen Thread.
-
funnydingo
- Posts: 160
- Joined: 2002-12-07 14:40
- Location: Münster
- Contact:
Re: "erst user such, dann mail annehmen"-patch für qma
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/
http://www.funnydingo.de/projects/qmail-install/
Re: "erst user such, dann mail annehmen"-patch für qma
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 ...(...) habe ich eine recht ausführliche Anleitung zur Installation von qmail (...)
Der Rest (patches, Anpassungen etc.) ist davon absolut unabhängig, kann also z.B. wie in Deiner Anleitung eingefügt werden.