Monitorar usuário nobody no envio de e-mails PHP

Olá pessoal,

Já tive problemas no passado para identificar de qual site hospedado em meu servidores estava partindo SPAM, já que todos os e-mails na fila tinha o usuário nobody.
O SPAM em sites php pode ser enviados pelo próprio dono do site ou por uma vulnerabilidade na programação, que permite o spammer fazer um include de um código para evio de e-mails.
Um exemplo:
http://www.exemplo.com/index.php?pagina=http://www.uol.com.br
Se acessar um endereço assim e abria a página do UOL no meio do site, ele está vulnerável!
Depois de muito procurar, encontrei uma solução genial na internet, e acom algumas modificações estou espondo aqui.
Pena que não lembro o site onde encontrei. Poderia por as referências.

Mãos a obra!

1 – Logar como root no servidor.
2 – Criar um arquivo que será o repsonsável por chamar o sendmail e gravar os logs.
vi /usr/sbin/sendmail.exe
#!/usr/local/bin/perl

use Env;
my $date = `date`;
chomp $date;
open (INFO, “>>/var/log/spam_log”) || die “Failed to open file: $!”;
my $uid = $>;
my @info = getpwuid($uid);
if($REMOTE_ADDR) {
        print INFO “$date – $REMOTE_ADDR ran $SCRIPT_NAME at $SERVER_NAME \n”;
}
else {
       print INFO “$date – $PWD –  @info \n”;
}
my $mailprog = ‘/usr/sbin/sendmail’;
foreach  (@ARGV) {
        $arg=”$arg” . ” $_”;
}
close (INFO);

open (MAIL,”|$mailprog $arg”) || die “cannot open $mailprog: $! \n”;
while (<STDIN> ) {
        print MAIL;
}
close (MAIL);

3 – Permissão no arquivo:
chmod +x /usr/sbin/sendmail.exe

4 – Vamos criar o arquivo onde será gravado o log:
touch /var/log/spam_log
chmod 0777 /var/log/spam_log

5 – Abra o php.ini e edite a linha correspondente ao programa de e-mail:
vi /usr/lib/php.ini
Edite o que estiver como:
sendmail_path = /usr/sbin/sendmail
Para:
sendmail_path = /usr/sbin/sendmail.exe

6 – Restart no apache e pronto!

Para ver os logs de quem envia o e-mail digite:
tail -f /var/log/spam_log

Pra sair dos logs, é só apertar CTRL+C

PS: Mesmo que você não utilize o sendmail como servidor de e-mails, pode seguir o mesmo procedimento, apenas alterando para as definições de seu servidor (Exim, Qmail, Postfix, etc).

Abraços!