Appunti Sparsi, Linux
No Comments Monitorare da quale script php vengono inviate le e-mail
Quando un sito viene bucato e viene utilizzato per inviare tonnellate di email di spam, la prima cosa che si deve affrontare, oltre alla pulizia della coda di postfix, è l’individuazione del responsabile.
Le cose diventano difficili quando su un server sono presenti decine e decine di siti, in quanto il file colpevole dell’invio di spam non è facilmente identificabile.
Con questa piccola modifica si potrà avere un log più dettagliato delle e-mail provenienti dai vari siti, permettendoci di identificare il colpevole.
Per prima cosa creiamo due file col seguente contenuto
/usr/local/bin/sendmail-php
#!/bin/sh
logger -p mail.info sendmail-php: site=${HTTP_HOST}, client=${REMOTE_ADDR}, script=${SCRIPT_NAME}, filename=${SCRIPT_FILENAME}, docroot=${DOCUMENT_ROOT}, pwd=${PWD}, uid=${UID}, user=$(whoami)
/usr/sbin/sendmail -t -i $*
/var/www/tpl.php
<?php
putenv("PATH_INFO=". $_SERVER["PATH_INFO"]);
putenv("SCRIPT_NAME=". $_SERVER["SCRIPT_NAME"]);
putenv("SCRIPT_FILENAME=". $_SERVER["SCRIPT_FILENAME"]);
putenv("REMOTE_ADDR=". $_SERVER["REMOTE_ADDR"]);
putenv("HTTP_HOST=". $_SERVER["HTTP_HOST"]);
?>
Impostiamo i permessi:
chmod +x /usr/local/bin/phpsendmail chmod +rx /var/www/tpl.php
Ora non ci resta che modificare il file php.ini (in Debian si trova in /etc/php5/apache2/php.ini ) modificando/aggiungendo le seguenti righe:
sendmail_path = /usr/local/bin/sendmail-php -t -i auto_prepend_file = /var/www/tpl.php
Dopo aver riavviato apache, nel file mail.log, troveremo righe di questo tipo:
Mar 30 09:30:25 web1 logger: sendmail-php: site=www.xxxx.it, client=31.184.244.18, script=/includes/.cfwqkt.php, filename=/var/customers/webs/xxx/www/includes/.cfwqkt.php, docroot=/var/customers/webs/xxx/www/, pwd=/var/customers/webs/xxx/www/includes, uid=33, user=www-data
Che ci permetterà di individuare istantaneamente il colpevole
Fonti:
http://serverfault.com/questions/130069/find-the-php-script-thats-sending-mails
http://forum.directadmin.com/showthread.php?t=36311
