IP Rotativo no CPanel + Exim
Este tutorial apresenta uma solução para realizar a rotação de IPs em servidores que utilizam cPanel e Exim para envio de e-mails. É importante seguir as instruções com cuidado e responsabilidade.
Introdução
Este tutorial apresenta uma solução para realizar a rotação de IPs em servidores que utilizam cPanel e Exim para envio de e-mails. É importante seguir as instruções com cuidado e responsabilidade.
O que você precisa saber antes de começar?
- Esta solução foi testada no cPanel 11, Exim 4 e servidor Linux CentOS 6.
- O uso deste script é de sua total responsabilidade.
- É essencial obedecer às regras de boas maneiras no uso de e-mails e evitar práticas de SPAM.
- A rotação de IPs pode ajudar a melhorar a performance do servidor, distribuindo a carga de envio de e-mails entre IPs diferentes.
- Além da rotação de IPs, outras configurações como rDNS, SPF e DKIM também são fundamentais para garantir uma boa entrega de e-mails.
- Acesso root via terminal é necessário para implementar esta solução.
Passos para Configuração
Passo 1: Configuração do cPanel
Antes de iniciar, é necessário fazer algumas configurações no cPanel:
- Desative a opção Send mail from account’s dedicated IP address.
- Ative as opções Reference /etc/mailhelo for outgoing SMTP HELO e Reference /etc/mailips for outgoing SMTP connections.
- Para alterar essas opções, acesse o WHM e vá para Service Configuration > Exim Configuration Manager > Domain and IPs. Consulte a documentação do cPanel para mais detalhes.
Passo 2: Script de Rotação de IPs
A seguir está o script que realiza a rotação de IPs:
#!/bin/bash
# Script para mudar o IP de saída do e-mail pelo Exim
# Adicione esta linha no crontab
# */15 * * * * sh /seu_caminho/eximrandomips.sh
# Powered by Tiago Matos – web developer :: www.tiagomatos.com
# Caminho
caminho=/etc/mailips
# Lista de IPs
ips=("XXX.XXX.XXX.XXX" "YYY.YYY.YYY.YYY")
# Lê o IP atual
ip_atual=$(head -n 1 ${caminho} | cut -d ' ' -f 2)
# Remove o IP atual da lista de IPs
for i in ${!ips[@]}; do
if [ "${ips[$i]}" == "${ip_atual}" ]; then
unset ips[$i]
fi
done
# Embaralha os IPs restantes
ips_embaralhados=($(shuf -e ${ips[*]}))
# Escreve o novo IP no arquivo mailips
echo "*: ${ips_embaralhados[0]}" > ${caminho}
Explicação do Script
- No caminho especificado (
/etc/mailips
), o script define o arquivo onde o cPanel lê as personalizações de IPs para envio de e-mails. - A lista de IPs válidos para rotação é definida na linha 11 (
ips=("XXX.XXX.XXX.XXX" "YYY.YYY.YYY.YYY")
). Adicione todos os IPs que deseja utilizar. - O script lê o IP atualmente em uso, exclui esse IP da lista de rotação e escolhe aleatoriamente um novo IP da lista restante.
- O IP escolhido é então escrito no arquivo
mailips
para ser utilizado pelo cPanel.
Configuração do Cron Job
Adicione a seguinte linha ao seu crontab para executar o script de rotação a cada 15 minutos:
*/15 * * * * sh /seu_caminho/eximrandomips.sh
Substitua /seu_caminho/eximrandomips.sh
pelo caminho completo onde você salvou o script.
Conclusão
Com este script, você poderá distribuir a carga de envio de e-mails entre diferentes IPs, melhorando a performance e evitando possíveis bloqueios por sobrecarga em um único IP. Lembre-se sempre de seguir boas práticas de envio de e-mails para garantir uma alta taxa de entrega.
Para mais detalhes e atualizações, você pode acessar o código fonte do script no GitHub: GitHub - Rotação de IPs cPanel + Exim.
Qual é a sua reação?