Meu servidor está enviando spam

1

Eu tenho um servidor dedicado com o CentOS + MySQL instalado em godaddy.com. Recentemente eu tive alguns problemas muito estranhos: eu instalei uma aplicação PHP que tem um thread que consulta um banco de dados MySQL para endereços de e-mail e depois manda e-mails via comando sendmail. Mais tarde eu parei esse segmento, excluí o arquivo de origem do programa e também reiniciei meu servidor.

No entanto, meu servidor ainda envia muitos e-mails e funciona como um servidor de e-mail de spam agora. Eu também vi erros do MySQL que dizem algo como "muitas conexões" algumas vezes ao tentar abrir meu site. Minha percepção é que algo está consumindo as conexões do MySQL lentamente, mas nunca se desconecta, então, eventualmente, todas as conexões estão ocupadas e meu website pára de funcionar.

Veja o que eu fiz:

  1. Eu verifiquei minhas tarefas do cron no servidor, mas não encontrei nada relacionado a esse problema

  2. Eu verifiquei / var / log / maillog e encontrei o seguinte fragmento típico:

    Mar 30 18:25:57 ip-<my-server-ip> master[2501]: process 8739 exited, status 0
    Mar 30 18:34:40 ip-<my-server-ip> postfix/pickup[7556]: D44BCF280BE: uid=48 from=<apache>
    Mar 30 18:34:40 ip-<my-server-ip> postfix/cleanup[9426]: D44BCF280BE: message-id=<20110330223440.D44BCF280BE@ip-<my-server-ip>.ip.secureserver.net>
    Mar 30 18:34:40 ip-<my-server-ip> postfix/qmgr[29799]: D44BCF280BE: from=<apache@ip-<my-server-ip>.ip.secureserver.net>, size=1661, nrcpt=1 (queue active)
    Mar 30 18:34:40 ip-<my-server-ip> postfix/pickup[7556]: EC91FF280C3: uid=48 from=<apache>
    Mar 30 18:34:40 ip-<my-server-ip> postfix/cleanup[9426]: EC91FF280C3: message-id=<20110330223440.EC91FF280C3@ip-<my-server-ip>.ip.secureserver.net>
    Mar 30 18:34:40 ip-<my-server-ip> postfix/qmgr[29799]: EC91FF280C3: from=<apache@ip-<my-server-ip>.ip.secureserver.net>, size=1928, nrcpt=1 (queue active)
    Mar 30 18:34:41 ip-<my-server-ip> postfix/smtp[9428]: D44BCF280BE: to=<[email protected]>, relay=p3smtpout.secureserver.net[208.109.80.54]:25, delay=0.34, delays=0.04/0.01/0.15/0.13, dsn=2.0.0, status=sent (250 Accepted message qp 12288 bytes 1821)
    Mar 30 18:34:41 ip-<my-server-ip> postfix/qmgr[29799]: D44BCF280BE: removed
    Mar 30 18:34:41 ip-<my-server-ip> postfix/smtp[9431]: EC91FF280C3: to=<[email protected]>, relay=p3smtpout.secureserver.net[208.109.80.54]:25, delay=0.32, delays=0.01/0.01/0.08/0.22, dsn=2.0.0, status=sent (250 Accepted message qp 7308 bytes 2085)
    Mar 30 18:34:41 ip-<my-server-ip> postfix/qmgr[29799]: EC91FF280C3: removed
    
  3. Parei o serviço postfix. então há muitos arquivos gerados em /var/spool/postfix/maildrop assim:

       1BCBEF280BE  apache  postdrop    rwxr–r–  2 KB    8:01 PM
    

Eu verifiquei o arquivo maillog novamente e o fragmento de log descrito em # 2 desapareceu. No entanto, ainda recebe os mesmos emails todos os dias!

Eu também notei que o timestamp em maillong mostra que os e-mails foram enviados durante todo o dia, mas sempre recebe e-mails às 17h.

Parece que o programa PhH que eu deletei ainda está em execução, e algo está enviando e-mails diariamente, embora o postfix tenha sido interrompido.

Agora, estou suspeitando de uma das seguintes possibilidades:

  1. alguns arquivos em cache no meu aplicativo PHP não foram excluídos com sucesso e eles ainda executam o trabalho antigo de > sendmail e o sendmail não foi tratado pelo postfix

  2. Parece que os apaches pegaram os pedidos do sendmail de algum lugar e depois os encaminharam para o postfix. mas onde é que "algum lugar"?

Eu fiquei totalmente confuso. não sei o que fazer, mas veja meu servidor continuar enviando e-mails estúpidos.

Por favor, derramar alguma luz sobre mim. Todas as sugestões / ideias são muito apreciadas!

=== update === Eu não sei porque eu ainda não posso comentar sobre as respostas às minhas perguntas ... aqui está alguma atualização:

Eu limpei a fila de mensagens como sugerido pelas respostas. mailq retornou vazio, mas meu servidor ainda enviou e-mails!

também tenho que manter o serviço de correspondência em execução. A parte restante da aplicação PHP ainda precisa dela.

Quaisquer outras direções que eu deveria tentar?

    
por Xiaoning Warald 12.04.2011 / 06:04

2 respostas

3

Para liberar a fila do postfix:

postsuper -d ALL

para o sendmail:

sendmail -q

    
por 12.04.2011 / 08:28
1

Parece que o email foi enfileirado no spool do sendmail. Não tem nada a ver com o script PHP que originalmente enviou os emails.

i.e. Quando você executou o script, ele teria enviado todos os emails para o Sendmail. Esses e-mails teriam sido enfileirados no spool de correio. O spooler de emails está tentando limpar a fila. É por isso que os e-mails estão sendo enviados mesmo depois de uma reinicialização.

Você deve tentar excluir o spool de correio para limpar a fila

Desculpe, mas não tenho certeza qual é o melhor método para fazer isso.

Talvez isso ajude: link

Alguém mais sabe como?

Boa sorte!

    
por 12.04.2011 / 06:14