QMail, SMTP (Auth) Dialog mit loggen

Postfix, QMail, Sendmail, Dovecot, Cyrus, Courier, Anti-Spam
souldrinker
Posts: 32
Joined: 2004-11-30 13:22

QMail, SMTP (Auth) Dialog mit loggen

Post by souldrinker » 2006-11-21 17:29

Hallo zusammen,

da ich langsam die Nerven verliere, dachte ich mir: fragst Du mal nach, bist sicherlich nicht der einzige mit dem Problem...

Der Stand der Dinge:
Auf einem Host wird PLESK 7 irgendwas reloaded betrieben, mit ausgeliefert wird dort bekanntermaßen QMail. Dieses liegt in der "aktuellen Version" vor und läuft munter vor sich hin.
Rechenzentrumsbetreiber sendet dem Kunden eine Beschwerde weiter, dass der Server Spam verschickt.

Mein Tun:
Kleiner, zuständiger Administrator guckt sich nach unsicheren Kontaktformularen um, indem er die HTTPd-Logfiles auswertet und nach häufigen Zugriffen guckt, darüber hinaus wird jede Datei im Webspace die die PHP mail() Funktion benutzt geprüft. Es kommt nichts dabei raus.

Die E-Mail, die mir weitergeleitet wurde enthält signifikante Outlook Express Header, ich denke deswegen dass jemand an das Kennwort eines der SMTP-Benutzer gekommen ist.

Was zu Tun ist:
Ich möchte gerne den kompletten SMTP-Dialog für eine Zeit lang mit schneiden, da der Server immer noch Spam zu verschicken scheint. Das ist die einzige Möglichkeit herauszufinden, welcher Benutzeraccount diese E-Mails verschickt.
Nun lese ich im Internet, dass hierfür Q-Mail über das Tool tcpserver betrieben werden muss - das ist in der Version wie sie dort auf dem Server und bestimmt auch bei allen anderen mit PLESK ausgelieferten Installationen nicht der Fall.

Hat es also irgendjemand schon geschafft, QMail mehr Informationen über den Absender von E-Mails zu entlocken? Die Absenderadresse, die im Logfile aufgezeichnet wird ist natürlich falsch. Ich habe schon probiert ein eigenes Tool zum loggen zu schreiben, qmail-send selbst schickt aber scheinbar keine Infos über den Benutzer der die E-Mail versendet hat. Ich bin bald wirklich am verzweifeln und wäre für eine Antwort sehr dankbar und drüber sehr froh.

lucki2
Posts: 427
Joined: 2006-10-03 01:31

Re: QMail, SMTP (Auth) Dialog mit loggen

Post by lucki2 » 2006-11-21 17:56

Nun lese ich im Internet, dass hierfür Q-Mail über das Tool tcpserver betrieben werden muss
Jain, einen tcpwrapper: bei Plesk imho xinetd.
ucspi-tcp(wird als tcpserver aufgerufen) muss nicht betrieben werden. Das ist nur ein Ersatz für xinitd, der angeblich resourcenschonender und für qmail etwas besser zu konfigurieren ist. Letzteres würde ich bestätigen.

Du mußt einfach in der Konfiguration von xinetd das eingeben, was in Deiner Beschreibung(Ja: Glaskugelproblem), steht, daß Du mit tcpserver machen sollst. Da dürfte sowieso schon ein ganzer Summs an Kommandos hintereinanderstehen, so daß Du das leicht erkennen solltest.

souldrinker
Posts: 32
Joined: 2004-11-30 13:22

Re: QMail, SMTP (Auth) Dialog mit loggen

Post by souldrinker » 2006-11-22 10:57

Moin,

vielleicht liegts dran dass ich mittlerweile fast resigniert habe, ich bekomme es aber nicht hin folgende Lösung mittels xinetd anzuwenden, vielleicht hat ja jemand einen Tipp oder das ganze schon einmal gemacht:

Code: Select all

This is for general info/the list archives although I couldn't find one when I
looked for one ...

I came up with a way to log who is authing into your server, we had a problem
with people setting up bots on chinese servers and stuff we didn't have a way
of tracking who though until I stole this idea from a pop3s script and modded
it a bit.

1) create wrapper script like so:

cat /var/qmail/bin/qmail-smtp-auth-wrapper.sh
#!/bin/sh

if [ "$USER" != "" ]; then
echo "qmail-smtpd: user $USER logged in from $TCPREMOTEIP:$TCPREMOTEPORT" >&7
fi
$@

make sure you make this script executable!

2) modify runline of /service/qmail-smtpd/run (this is a symlink to
/var/qmail/supervise/qmail-smtpd/run)

This is the last line(s) in the file, hopefully what is changed from your
working configuration is obvious.
comment out your original working lines if you are wise and replace with
something like this:

exec /usr/local/bin/softlimit -m 4000000 
    /usr/local/bin/tcpserver -v -R -l "$LOCAL" -x /etc/tcp.smtp.cdb -c
"$MAXSMTPD" 
        -u "$QMAILDUID" -g "$NOFILESGID" 0 smtp /var/qmail/bin/qmail-smtpd 
        "$LOCAL" /bin/checkpassword  /var/qmail/bin/qmail-smtp-auth-wrapper.sh 
2>&1 7>&1

Restart qmail. that's it.
Mein Ansatz war, die Zeile mit /bin/checkkpassword in /etc/xinetd.d/smtp_psa hinter das "/var/qmail/bin/qmail-smtpd" einzufügen - xinetd neu gestartet, mailserver funktioniert, gelogt wird aber nix...

Zusatz:
[root@ds80-237-207-31 xinetd.d]# cat smtp_psa

service smtp
{
socket_type = stream
protocol = tcp
wait = no
disable = no
user = root
instances = UNLIMITED
server = /var/qmail/bin/tcp-env
server_args = -Rt0 /var/qmail/bin/relaylock /var/qmail/bin/qmail-smtpd /var/qmail/bin/smtp_auth /var/qmail/bin/true /var/qmail/bin/cmd5checkpw /var/qmail/bin/true
}

souldrinker
Posts: 32
Joined: 2004-11-30 13:22

Re: QMail, SMTP (Auth) Dialog mit loggen

Post by souldrinker » 2006-11-22 14:23

Hallo zusammen,

die letztendliche Lösung des Problems war doch einfacher als ich dachte. Da wir das QMail mit syslog betreiben (standard plesk konfiguration) muss man dort lediglich die facility auth loggen lassen, dann bekommt man auch alle logins für das modul smtp_auth.

Es gibt Tage, an denen könnte ich in die Tischkante beissen und alles was zwischen den Zähnen ist runterschlucken. Danke für die Hilfe!

lucki2
Posts: 427
Joined: 2006-10-03 01:31

Re: QMail, SMTP (Auth) Dialog mit loggen

Post by lucki2 » 2006-11-22 15:39

Wenn ich das richtig sehe *wäre* in
/var/qmail/bin/cmd5checkpw /var/qmail/bin/true
das da:

Code: Select all

/var/qmail/bin/true
durch

Code: Select all

/var/qmail/bin/qmail-smtp-auth-wrapper.sh"
Zu Ersetzen gewesen. Dann würde der wrapper u.U. von cmd5checkpw aufgerufen. Allerdings ist der Parameter ein Relikt und wird manchmal einfach ignoriert. Ob cmd5checkpw den Parameter ignoriert oder wirklich aufruft müßte ich nachsehen. Aber ist ja schon gelöst.