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!