Wir gestallten die mail-Routine so um, daß aus den verschickten Mails das Script erkennbar wird.
Wir erstellen einen sendmail-wrapper welches erstens einen extra Header in die Email schreibt und zweitens ein Logfile in /tmp/ erstellt.
#!/bin/sh
TODAY=`date -Iseconds`
echo $TODAY sendmail-wrapper called $USER from $PWD >>/tmp/mail.send
(echo X-Additional-Header: $(dirname $PWD);cat) | /usr/lib/sendmail-real "$@"
Anmerkung: Im Header setzten wir ganz bewust einen dirname ein weil sonst evtl. interne Geheimnisse aus geplaudert werden könnten.)
Danach muß der Wrapper noch in die Abarbeitung eingeführt werden:
chmod +x sendmail-wrappermv /usr/lib/sendmail /usr/lib/sendmail-realmv sendmail-wrapper /usr/lib/sendmail
Was tun, wenn sich nix tut?
Ob es funktioniert ist leicht mit einem kleine PHP-Script, welches ein Email verschickt zu überprüfen. Falls das Logfile nicht geschrieben wird, einfach mal prüfen, ob PHP überhaupt Sendmail nutzt und welcher sendmail_path in phpinfo() angezeigt wird. Ggf. kommen auch andere Pfade in Frage. Dann handelt man damit einfach analog zu oben.
Warum reicht das?
a) Weil die meisten Installationen von PHP oder CGI-Scripten sendmail nutzten.
b) Weil auch bei ausgeschalteten Mailserver das Logfile geschrieben wird.
Wie mach ich das Rückgängig?
einfach die sendmail-real wieder statt den Wrapper einsetzen:
mv /usr/lib/sendmail-real /usr/lib/sendmail
Was kann man noch tun?
Grundsätzlich sollte man hin und wieder mal testen, ob man nicht einen offenen Relay-Server unterhält.