Aqui falaremos sobre os procedimentos que utilizamos para instalar o RSPAMD sobre o CentOS (sugerimos que leiam nosso artigo sobre nossa Instalação Padrão do CentOS 7, disponível também nas referências abaixo). Antes de iniciar esse procedimento, recomendamos uma lida em nosso artigo (neste link, ou nas referências abaixo) comparando algumas soluções antispam, para lhe ajudar a decidir se esta solução é a melhor para seu caso.

Lembre-se de alterar as partes em cinza para o padrão de sua empresa.

Antes de iniciar a instalação, verfique o nome DNS que será usado e adaptar a este manual (que aqui será usado como: antispam.suaempresa.com), caso o endereço seja diferente altere em todos os locais com o mesmo realce de cor cinza.

  • Para instalar o antivírus ClamAV, configurar e colocar sua inicialização automática, execute:
yum install amavisd-new clamav clamav-devel clamav-scanner-systemd clamav-server clamav-server-systemd clamav-update --enablerepo=fedora-source -y
sed -i '/^Example/d' /etc/freshclam.conf
sed -i 's/#LogFileMaxSize 2M/LogFileMaxSize 2M/g' /etc/freshclam.conf
sed -i 's/#LogRotate yes/LogRotate yes/g' /etc/freshclam.conf
echo "d /var/run/clamd.amavisd 0755 amavis amavis -" >> /etc/tmpfiles.d/clamd.amavisd.conf
sed -i "1 i\ " /usr/lib/systemd/system/clamd@.service
sed -i "1 i\WantedBy=multi-user.target" /usr/lib/systemd/system/clamd@.service
sed -i "1 i\[Install]" /usr/lib/systemd/system/clamd@.service
sed -i "s/host.example.com/antispam.suaempresa.com/g" /etc/amavisd/amavisd.conf
sed -i "s/example.com/suaempresa.com/g" /etc/amavisd/amavisd.conf
sed -i "s/\# $myhostname/$myhostname/g" /etc/amavisd/amavisd.conf
sed -i "s/\# $notify_method/$notify_method/g" /etc/amavisd/amavisd.conf
sed -i "s/\# $forward_method/$forward_method/g" /etc/amavisd/amavisd.conf
sed -i "s/final_spam_destiny       = D_DISCARD/final_spam_destiny       = D_PASS/g" /etc/amavisd/amavisd.conf
sed -i "s/final_bad_header_destiny = D_BOUNCE/final_bad_header_destiny = D_PASS/g" /etc/amavisd/amavisd.conf
sed -i "s/= D_DISCARD/= D_REJECT/g" /etc/amavisd/amavisd.conf
sed -i "s/= D_BOUNCE/= D_REJECT/g" /etc/amavisd/amavisd.conf
sed -i "s/$sa_tag_level_deflt  = 2.0/$sa_tag_level_deflt  = -9999/g" /etc/amavisd/amavisd.conf
sed -i "s/\*\*\*Spam\*\*\* //g" /etc/amavisd/amavisd.conf
sed -i "$((`grep -n final_virus_destiny /etc/amavisd/amavisd.conf | cut -d: -f1`+1)) i$virus_quarantine_to      = undef;" /etc/amavisd/amavisd.conf
sed -i "$((`grep -n final_banned_destiny /etc/amavisd/amavisd.conf | cut -d: -f1`+1)) i$banned_quarantine_to     = undef;" /etc/amavisd/amavisd.conf
sed -i "$((`grep -n final_bad_header_destiny /etc/amavisd/amavisd.conf | cut -d: -f1`+1)) i$bad_header_quarantine_to      = undef;" /etc/amavisd/amavisd.conf
echo "30  3  *  *  *  /usr/local/bin/freshclam --quiet" >> /var/spool/cron/root
sed -i "s/cpl)/cpl|vbe|com|reg|msi|ps1)/g" /etc/amavisd/amavisd.conf

systemctl enable clamd@amavisd
systemctl start clamd@amavisd

systemctl enable amavisd
systemctl start amavisd
  • Para instalar o RSPAMD, execute:
yum install fann --enablerepo=fedora-source -y

wget -O /etc/yum.repos.d/rspamd.repo http://rspamd.com/rpm-stable/centos-7/rspamd.repo
sed -i "s/enabled=1/enabled=0/g" /etc/yum.repos.d/rspamd.repo
sed -i "s/gpgcheck=1/gpgcheck=0/g" /etc/yum.repos.d/rspamd.repo
sed -i "s/gpgkey/\#gpgkey/g" /etc/yum.repos.d/rspamd.repo
yum install rspamd --enablerepo=rspamd -y

Para definir a senha de acesso, execute:

if grep "enable_password" /etc/rspamd/worker-controller.inc > /dev/null; then echo ; else echo "enable_password = \"q2\";" >>/etc/rspamd/worker-controller.inc;fi

sed -i "s/^password.*/password = \"`rspamadm pw`\";/" /etc/rspamd/worker-controller.inc

Para definer a mesma senha de acesso para senha de escrita, execute:

sed -i "s/^enable_password.*/enable_password = `cat /etc/rspamd/worker-controller.inc | grep ^password | cut -d" " -f 3`/" /etc/rspamd/worker-controller.inc

systemctl enable rspamd
systemctl start rspamd
  • Configurando o Postfix: A aplicação RSPAMD filtra as mensagens, mas o envio de e-mails é feito pelo Postfix. Para realizar a configuração básica do postfix siga as etapas abaixo:
echo "# CONFIGURACAO PADRAO" >> /etc/postfix/main.cf
echo "" >> /etc/postfix/main.cf
echo "biff = no" >> /etc/postfix/main.cf
echo "append_dot_mydomain = no" >> /etc/postfix/main.cf
echo "readme_directory = no" >> /etc/postfix/main.cf
echo "myhostname = antispam.suaempresa.com" >> /etc/postfix/main.cf
echo "mydomain = suaempresa.com" >> /etc/postfix/main.cf
echo "myorigin = $mydomain" >> /etc/postfix/main.cf
echo "inet_interfaces = all" >> /etc/postfix/main.cf
echo "relay_domains = suaempresa.com" >> /etc/postfix/main.cf
echo "mynetworks = 127.0.0.0/8 sua_rede/sua_marcara" >> /etc/postfix/main.cf
echo "mailbox_command = procmail -a \"$EXTENSION\"" >> /etc/postfix/main.cf
echo "recipient_delimiter = +" >> /etc/postfix/main.cf
echo "" >> /etc/postfix/main.cf
echo "# REGRA DE TRANSPORTE (PARA O EXCHANGE)" >> /etc/postfix/main.cf
echo "transport_maps = texthash:/etc/postfix/transport" >> /etc/postfix/main.cf

echo "# HARDENING" >> /etc/postfix/main.cf
echo "smtpd_banner = antispam.suaempresa.com ESMTP" >> /etc/postfix/main.cf
echo "disable_vrfy_command = yes" >> /etc/postfix/main.cf
echo "smtpd_helo_required = yes" >> /etc/postfix/main.cf
echo "smtpd_helo_restrictions = permit_mynetworks, reject_non_fqdn_helo_hostname, reject_invalid_helo_hostname" >> /etc/postfix/main.cf

echo "mynetworks_style = host" >> /etc/postfix/main.cf
echo "smtpd_delay_reject = yes" >> /etc/postfix/main.cf
echo "smtpd_error_sleep_time = 1s" >> /etc/postfix/main.cf
echo "smtpd_soft_error_limit = 10" >> /etc/postfix/main.cf
echo "smtpd_hard_error_limit = 20" >> /etc/postfix/main.cf
echo "smtpd_client_connection_count_limit = 10" >> /etc/postfix/main.cf
echo "smtpd_client_connection_rate_limit = 60" >> /etc/postfix/main.cf

echo "" >> /etc/postfix/main.cf
echo "# FILTRO PARA O RSPAMD" >> /etc/postfix/main.cf
echo "smtpd_milters = inet:localhost:11332" >> /etc/postfix/main.cf
echo "milter_protocol = 6" >> /etc/postfix/main.cf
echo "milter_mail_macros = i {mail_addr} {client_addr} {client_name} {auth_authen}" >> /etc/postfix/main.cf
echo "milter_default_action = accept" >> /etc/postfix/main.cf
echo "suaempresa.com smtp:[seu_IP]:25" >> /etc/postfix/transport

systemctl restart postfix

Fontes/Referências

NVLAN – Comparativo Soluções Mail Gateway/Antispam OpenSource (gratuitas)
NVLAN – Instalação padrão do CentOS7

Mais Informações

Esperamos ter ajudado da melhor forma possível e estaremos sempre a disposição para mais informações.

Entre em contato conosco pelo e-mail equipe@nvlan.com.br.

NVLAN - Consultoria