adminForge

free | no tracking | no logging | no advertising

Das ist unser Motto. Mit adminForge bieten wir kostenlose Dienste an. Unser Ziel ist es, eine freie und datensparsame Alternative zu bekannten Diensten bereitzustellen. Seit 2014 betreiben wir adminForge gemeinsam mit Spaß an der Technik und an Open-Source.

Spamerkennung per Sendmail Wrapper und X-Header

In der Mail-Queue lagern hunderte E-Mails, ohne Authentifizierung im Header oder Logfile? Die E-Mails werden meist über ein Malware PHP Script verschickt. Es gibt zwei Möglichkeiten den Verursacher dingfest zu machen.

Methode 1: Sendmail Wrapper

Der Klassiker ist und bleibt der Sendmail Wrapper, die Sendmail Binary wird umhüllt und mit einem zusätzlichen Mail-Header versehen.
Auf den meisten Systemen ist es der Pfad /usr/sbin/sendmail, prüft das bitte nach und passt ggf. den Pfad an.

mv /usr/sbin/sendmail /usr/sbin/sendmail.orig
touch /tmp/mail.send
echo '#!/bin/sh' > /usr/sbin/sendmail
echo '(echo X-Additional-Header: $PWD ;cat)|tee -a /tmp/mail.send|/usr/sbin/sendmail.orig "$@"' >> /usr/sbin/sendmail
chmod 755 /usr/sbin/sendmail

Ab sofort wird in der Datei /tmp/mail.send der Pfad mitgeloggt indem ein PHP mail() ausgeführt wurde. Weiter wird ein Header in der E-Mail eingefügt.

X-Additional-Header: /var/www/vhosts/example.org/httpdocs/

Methode 2: mail.add_x_header ab PHP 5.3.0

Neuere PHP Versionen haben diese Funktion bereits von Haus aus.
Prüft zunächst ob die PHP Version 5.3.0 oder höher vorhanden ist.

# php -v
PHP 5.3.3-7+squeeze18 with Suhosin-Patch (cli) (built: Dec 12 2013 09:20:04)
Copyright (c) 1997-2009 The PHP Group
Zend Engine v2.3.0, Copyright (c) 1998-2010 Zend Technologies
    with the ionCube PHP Loader v4.2.2, Copyright (c) 2002-2012, by ionCube Ltd.
    with Suhosin v0.9.32.1, Copyright (c) 2007-2010, by SektionEins GmbH

Nun prüfen wir ob die Variable in unserer php.ini existiert.

Debian

# grep "mail.add_x_header" /etc/php5/*/php.ini
/etc/php5/apache2/php.ini:mail.add_x_header = On
/etc/php5/cli/php.ini:mail.add_x_header = On
/etc/php5/fpm/php.ini:mail.add_x_header = On

CentOS

# grep "mail.add_x_header" /etc/php.ini
mail.add_x_header = On

Sollte keine Variable vorhanden sein, fügen wir unter [mail function] die Zeile hinzu.

[mail function]
; Add X-PHP-Originating-Script: that will include uid of the script followed by the filename
mail.add_x_header = On

Das Ergebnis schaut dann zum Beispiel so aus.

X-PHP-Originating-Script: 501:example_script.php