Como filtrar corretamente o e-mail de saída?

1

Eu tenho uma plataforma que consiste em muitos servidores da Web que compartilham hospedagem na web. Esses servidores executam o Linux e hospedam toneladas de Wordpress, osCommerce, Joomla e outras plataformas de sites de código aberto.

De vez em quando (leia-se: várias vezes por dia), um desses sites é adquirido, um código malicioso é injetado e o spam é iniciado.

Já tomei várias medidas para evitar isso, mas parece que esses ataques estão aumentando cada vez mais.

Portanto, minha pergunta é para outros administradores de sistemas que cuidam de plataformas de hospedagem compartilhada em grande escala: Como você filtra (e relata?) e-mails de saída de seus servidores web? O e-mail enviado quando os usuários, por exemplo, O PHP usa a função mail () ou o servidor SMTP localhost.

    
por Jeff 28.08.2013 / 08:51

2 respostas

2

Você pode configurar seus próprios servidores SMTP, bloquear a saída de tráfego de SMTP (e envio) dos servidores da Web para qualquer lugar, exceto esse servidor SMTP, e compelir seus clientes a configurá-los como MTA de saída. Em seguida, execute um filtro de spam nesse servidor SMTP (o spamassassin sob postfix pode funcionar, embora eu desabilite os filtros RBL, pois eles seriam inúteis), e faça com que ele solte qualquer coisa que pareça ser spam.

Isso tem várias desvantagens graves, como a possibilidade de, inadvertidamente, você ignorar silenciosamente alguns dos e-mails legítimos de seus clientes, e que alguns spams provavelmente ainda serão transmitidos.

Supondo-se que os servidores que são spam realmente deveriam estar enviando e-mails, a única maneira de evitar isso é protegendo os hosts para que não sejam adquiridos. Isso pode ser extremamente difícil, dependendo da capacidade de exploração das versões do software que você está executando em cada ponto e da facilidade de correção.

As chances são de que, se você estiver se apossando disso com frequência, estará sendo controlado por um processo automatizado que emprega uma exploração pública. Nesse caso, o patch provavelmente reduzirá bastante a incidência desse problema.

    
por 28.08.2013 / 09:09
2

Nas circunstâncias perfeitas (sites diferentes em diferentes contas de usuário), você pode usar a Política de postfix . Ele permite que você estrangule e limite o e-mail por usuário.

Se você usa mod_php e os sites estão sendo executados como o mesmo usuário do Apache, você terá que seguir uma abordagem diferente.

Uma maneira seria ativar o cabeçalho PHP X-Originating-Script mail colocando mail.add_x_header=1 em seu arquivo php.ini. Em seguida, coloque algo como qpsmtpd para lidar com os e-mails enviados e escreva um pequeno plug-in que analisa X-Originating-Script header e armazena o caminho do script de envio (ou apenas a parte do nome de usuário) para um banco de dados, aumentando o valor do contador de mensagens enviadas a cada vez. Se o valor for maior que o limite que você deseja ter, como "mais de 100 e-mails por hora", faça o script retornar "Desculpe, sua cota de e-mails de saída foi temporariamente excedida".

Criar esses scripts não é tão difícil, dê uma olhada nos exemplos do qpsmtpd. Uma vez fiz isso com o Perl, a duração total do script era de cerca de 100-200 linhas.

E, desnecessário dizer, a filtragem de spam também é necessária, mas presumo que você já possua SpamAssassin ou semelhante.

    
por 28.08.2013 / 09:13