Instalação do Antispam Proxmox

Objetivo

 

Aqui falaremos rapidamente sobre os procedimentos que utilizamos para instalar o Proxmox. 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.

Passos/Condutas

 

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

  • Preparar o Ambiente (Servidores):

Antes de iniciar, obtenha a ISO mais atual do Proxmox Mail Gateway no site da proxmox. É importante que o nome DNS esteja funcionando corretamente (neste exemplo os endereços serão quarentena.suaempresa.com.brmail.suaempresa.com.br e mail2.suaempresa.com.br)

Para a montagem do ambiente é importante demonstrar os pré-requisitos necessários para a instalação do, utilizamos a configuração padrão de servidores:

 

Ambiente/Função Nó1 Nó2 Nó3
Nome no HOST DMZ-041-MS DMZ-042-MS DMZ-043-MS
Nome de REDE quarentena.suaempresa.com.br mail2.suaempresa.com.br mail.suaempresa.com.br
Endereço SEU_IP_1 SEU_IP_2 SEU_IP_3
Função Quarentena de e-mail para usuários Filtro de mensagens Filtro de mensagens
Size 4GB de RAM
100GB de Disco
8GB de RAM
30GB de Disco
8GB de RAM
30GB de Disco

 

  • Instalação do SO

Na primeira tela, escolha a opção Install Proxmox Mail Gateway. Na tela de contrato, clique em I agree, na tela seguinte apenas clique em Next. Na tela seguinte, preencha o Pais Brazil, coloque o time zone Americas/Sao_Paulo e o layout de teclado deixe como Brazil-Portuguese. Na tela seguinte, obtenha com a equipe de infraestrutura a senha de root e o e-mail do suporte, informe e clique em Next. Na tela de Management Network Configuration, configure o nome completo do servidor (nome.domínio), o endereço IP (SEU_IP_1, SEU_IP_2 ou SEU_IP_3), a máscara de rede, o Gateway, o DNS Server (coloque apenas um servidor DNS neste momento) e clique em Next. Na tela final, clique em Reboot para reiniciar o servidor virtual.

  • Customizações do SO

Após instalação do sistema operacional, acesse por SSH e execute os comandos:

echo “#deb https://enterprise.proxmox.com/debian/pmg stretch pmg-enterprise” > /etc/apt/sources.list.d/pmg-enterprise.list
echo “deb https://download.proxmox.com/debian/pmg stretch pmg-no-subscription” >> /etc/apt/sources.list.d/pmg-enterprise.list
apt-get clean
apt-get update
apt-get install gcc make ntp ntpdate open-vm-tools snmpd -y
apt-get upgrade -y

Para todas as perguntas que fizer, escolha a opção keep the local version currently installed. Em seguida digite:

apt-get dist-upgrade -y

Caso apareça uma tela sobre a atualização de um produto, escolha sempre keep the local verson currently installed.

sed -i “s/timeout=5/timeout=1/g” /boot/grub/grub.cfg
sed -i “s/0.debian.pool.ntp.org/SEU_NTP_1/g” /etc/ntp.conf
sed -i “s/1.debian.pool.ntp.org/SEU_IP_2/g” /etc/ntp.conf
echo “30 * * * * /usr/sbin/ntpdate SEU_NTP_1 >/dev/null 2>&1″ >> /var/spool/cron/root
systemctl enable ntp
echo “export MIBS=/usr/share/snmp/mibs” >> /etc/default/snmpd
sed -i “s/public/ZAQ@xw2CDE%/g” /etc/snmp/snmpd.conf
/etc/init.d/snmpd restart

  • Serviço BIND

apt-get install bind9 bind9utils bind9-doc -y

cp /etc/bind/named.conf.options /tmp
echo “acl goodclients {” > /etc/bind/named.conf.options
echo ”        localhost;” >> /etc/bind/named.conf.options
echo ”        localnets;” >> /etc/bind/named.conf.options
echo “};” >> /etc/bind/named.conf.options
echo “” >> /etc/bind/named.conf.options
echo “options {” >> /etc/bind/named.conf.options
echo ”        directory \”/var/cache/bind\”;” >> /etc/bind/named.conf.options
echo ”        recursion yes; ” >> /etc/bind/named.conf.options
echo ”        allow-query { goodclients; };” >> /etc/bind/named.conf.options
echo ”        dnssec-validation auto;” >> /etc/bind/named.conf.options
echo ”        auth-nxdomain no;    # conform to RFC1035″ >> /etc/bind/named.conf.options
echo ”        listen-on-v6 { none; };” >> /etc/bind/named.conf.options
echo “};” >> /etc/bind/named.conf.options
sed -i “s/\”-u bind\”/\”-u bind -4\”/g” /etc/default/bind9
named-checkconf
systemctl enable bind9
systemctl restart bind9

  • Customizações

Digite os seguintes comandos:

echo “00 01 * * * root /usr/bin/sa-update” >> /var/spool/cron/root
echo “00 01 * * * root /usr/bin/freshclam” >> /var/spool/cron/root
cp /usr/share/javascript/pmg-gui/js/pmgmanagerlib.js /tmp
vi /usr/share/javascript/pmg-gui/js/pmgmanagerlib.js

Digite /Proxmox Mail Gateway Login para localizar essa linha, pressione INSERT do teclado para entrar em modo de edição e altere para Mail Gateway Login. Em seguida pressione ESC para sair do modo de edição.

Logo abaixo da linha modificada, localize manualmente a linha fieldLabel: gettext(‘User name’), , altere de  ‘User name’ para ‘E-mail’. Logo abaixo, localize a seção proxmoxLanguageSelector  e comente (utilizando /* no ínicio e */ no fim) toda a parte, deixando da seguinte forma:

/*
                        {
                            xtype: ‘proxmoxLanguageSelector’,
                            fieldLabel: gettext(‘Language’),
                            value: Ext.util.Cookies.get(‘PMGLangCookie’) || ‘en’,
                            name: ‘lang’,
                            submitValue: false
                        },
*/

 

Para salvar e sair do documento, pressiona a tela ESC do teclado e digite :wq!

  • Desabilitando o Pop-up de assinatura

cp /usr/share/javascript/pmg-gui/js/pmgmanagerlib.js /tmp
vi /usr/share/javascript/pmg-gui/js/pmgmanagerlib.js

Digite /pmgSubscription e pressiona a tecla n (isso vai fazer ele percorrer o arquivo em cada local onde foi encontrado o texto pesquisado) até localizar a linha localize a linha mainview.getController().redirectTo(‘pmgSubscription’); pressione INSERT do teclado para entrar em modo de edição e comente essa linha (para comentar adicione /* no inicio da linha e */ no final da linha) para desabilitar o pop-up. Em seguida pressione ESC para sair do modo de edição e digite :wq! para salvar e sair.

vi /usr/share/javascript/proxmox-widget-toolkit/proxmoxlib.js

Digite /No valid subscription para localizar essa linha, pressione INSERT do teclado para entrar em modo de edição e comente toda a parte, deixando da seguinte forma:

 

/*
                  Ext.Msg.show({
                        title: gettext(‘No valid subscription’),
                        icon: Ext.Msg.WARNING,
                        msg: Proxmox.Utils.getNoSubKeyHtml(data.url),
                        buttons: Ext.Msg.OK,
                        callback: function(btn) {
                            if (btn !== ‘ok’) {
                                return;
                            }
                            orig_cmd();
                        }
                    });
*/

 

  • Configurando o Certificado SSL

Obtenha com a equipe de rede os certificados SSL, caso não possua o arquivo .PEM o mesmo pode ser gerado a partir dos arquivos .CRT e .KEY. Com o arquivo .PEM coloque em todos os servidores Proxmox como /etc/pmg/pmg-api.pem (substitua o arquivo original). Em seguida, reinicie os servidores Proxmox.

  • Alterando as imagens para o da sua empresa

Altere as imagens de /usr/share/javascript/pmg-gui/images/ pelo padrão de sua empresa. Substitua pelas imagens da empresa.

  • Configurando o Proxmox

Reinicie o servidor (após todas as customizações) e em seguida acesse o proxmox, pelo endereço https://IP_SERVIDOR:8006 (usuário root e senha definida na instalação). Na tela informando não possuir uma assinatura do produto apenas clique em OK.

Antes de começar qualquer configuração, clique em Configuration, dentro edite a configuração DNS e deixe apenas os IPs dos servidores Proxmox, ao final clique em OK. Em seguida, clique na aba Backup/Restore e faça um Backup do servidor ou restore se uma configuração anterior, se necessário (para restaurar, copie o backup para a pasta /var/lib/pmg/backup antes).

Clique em Mail Proxy (dentro de Configuration), na aba Relaying altere Default Relay para relay.suaempresa.com.br, na aba Relay Domains crie o domínio suaempresa.com.br.

Na aba Options, faça seguinte:

– Altere Message Size (bytes) para 20971520
– Habilite Reject Unknown Senders
– Habilite SMTP HELO checks
– Em DNSBL Sites adicione pelos os servidores de BLACK LISTS spamcop.net,zen.spamhaus.org,bl-ns.rbl.scrolloutf1.com,bl-ip.rbl.scrolloutf1.com,b.barracudacentral.org,dnsbl.spfbl.net,dnsbl-2.uceprotect.net,dnsbl-3.uceprotect.net,ips.backscatterer.org,bl.nosolicitado.org,dnsbl.zapbl.net,rhsbl.zapbl.net
– Caso deseje, consulte https://www.anti-abuse.org/multi-rbl-check/ para mais servidores de black lists;
– Altere também o SMTPD Banner para Message Gateway

Ainda no mesmo menu Mail Proxy, na aba Transports, crie um relay para o domínio suaempresa.com.br apontando para o host relay.suaempresa.com.br na porta 25 sem usar o MX. Na aba Networks crie a rede confiável SUA_REDE/SUA_MASCARA com o comentário PRODUCAO.

Agora vamos configurar o cluster, assim toda configuração feita irá replicar entre os hosts. Para isso, do servidor que será o MASTER (neste caso será o servidor de quarenta, o 41) clique no menu Cluster (dentro de Configuration) e clique em Create. Clique no cluster criado, clique em Add e copie o Fingerprint (será necessário para adicionar os demais nós).

Acesse os demais nós, clique no menu Cluster (dentro de Configuration) e clique em Create. Na tela seguinte informe o IP do servidor, a senha do root e o Fingerprint copiado do nó master, Em seguida clique em OK. Repita o procedimento nos demais nós existentes. Aguarde alguns instantes e atualize a página, caso dê erro (o correto é ficar em status syncing por cinco minutos, em seguida ficar como ativo), clique em Administration, vá na aba Services, clique uma vez em pmgmirror e clique em Syslog.

Agora clique em Spam Detector (dentro de Configuration), vá na aba Quarantine, clique em Authentication modee clique em Edit, altere para LDAP or Ticket.

  • Configurando o LDAP

Vá em User Management (dentro de Configuration), clique na aba LDAP e clique em Create, em seguida configure o Profile Name (coloque suaempresa.com.br), o Protocol (LDAP), o Servers (IPs dos DCs), o User Name (precisa ser o e-mail) e o Password. Por fim, clique no botão Users of ‘suaempresa‘ (embaixo) e verifique se listou todos os usuários.

  • Configurando a quarentena

Clique em ConfigurationSpam Detector, vá na aba Quarantine, em seguida:

– Edite Authentication mode para LDAP.
– Edite Quarantine Host e informe o endereço quarentena.suaempresa.com.br.
– Edite EMail ‘From:’ coloque [email protected]

Para redirecionar o site para o endereço de quarentena, acesse o servidor de quarentena via SSH e digite os seguintes comandos:

apt-get install apache2 -y
a2enmod rewrite
echo “<VirtualHost *:80>” >> /etc/apache2/sites-available/000-default.conf
echo ”        ServerName quarentena.suaempresa.com.br” >> /etc/apache2/sites-available/000-default.conf
echo ”        Redirect permanent / https://quarentena.suaempresa.com.br:8006/quarantine” >> /etc/apache2/sites-available/000-default.conf
echo “</VirtualHost>” >> /etc/apache2/sites-available/000-default.conf
systemctl restart apache2

  • Sugestão de regras iniciais para usar em seu Proxmox:

Em Actions Objects (dentro de Mail Filter) o objeto Notify Quarentine deve conter pelo menos o seguinte conteúdo:

Tipo Valor
Receiver: __RECEIVERS__
Subject: Mensagem em Quarenta: __SUBJECT__
Body: A seguinte mensagem se encontra em quarentena: 

 

De:   __SENDER__

Para: __RECEIVERS__

Assunto:  __SUBJECT__

 

 

Para liberar esta mensagem:

 

– Acesse o endereço https://quarentena.suaempresa.com.br

– Selecione a(s) mensagem(ns) que deseja receber

– Clique no botão DELIVER

 

Caso tenha alguma dúvida, entre em contato com a equipe da COINF.

 

 

 

 

————————————————————————————————————————–

INFORMACOES ADICIONAIS:

 

Matching Rule: __RULE__

__RULE_INFO__

__VIRUS_INFO__

__SPAM_INFO__

————————————————————————————————————————–

 

Em Who Objects (dentro de Mail Filter) o objeto Blacklist deve conter pelo menos o seguinte conteúdo:

Tipo Valor
Domain sapo.ao
Domain cursosiob.com.br

 

Em Who Objects (dentro de Mail Filter) o objeto Whitelist deve conter pelo menos o seguinte conteúdo:

Tipo Valor
E-Mail [email protected]

 

Em What Objects (dentro de Mail Filter) crie o objeto SS_Blocked_Files, nele deve conter pelo menos o seguinte conteúdo:

Tipo Valor
Content Type Filter application/hta
Content Type Filter application/javascript
Content Type Filter application/octet-stream
Content Type Filter application/sql
Content Type Filter application/vnd\.adobe\.flash\.movie
Content Type Filter application/vnd\.android\.package-archive
Content Type Filter application/vnd\.ms-cab-compressed
Content Type Filter application/x-bittorrent
Content Type Filter application/x-cd-image
Content Type Filter application/x-iso9660-appimage
Content Type Filter application/x-ms-dos-executable
Content Type Filter application/x-msdownload
Content Type Filter application/x-msi
Content Type Filter audio/mp4
Content Type Filter audio/mpeg
Content Type Filter video/mp4
Content Type Filter video/x-matroska
Content Type Filter video/x-msvideo

 

Para definir as regras, clique em Mail Filter. As seguintes regras foram utilizadas no Proxmox:

Nome Prior. Direc. Action Objects From Objects What Objects
Whitelist 99 In Accept Whitelist (ainda sem cadastrar nada nele)  
Blacklist 98 In Block Blacklist (ainda sem cadastrar nada nele)  
Block Viruses 96 In & Out BlockNotify Sender   Virus
Block Files Type 95 In & Out BlockNotify Sender   SS_Blocked_FilesDangerous Content
Block (Spam Level 5) 94 In BlockNotify Sender   Spam (Level 5)
Quarantine (Spam Level 4) 93 In Notify QuarentineQuarantine   Spam (Level 4)

 

  • Para implementar em Produção

Para o funcionamento do Proxmox é necessário liberar no firewall:

– Acesso NTP (123) dos servidores Proxmox (SEU_IP_1 ao 3) aos DCs.
– Acesso LDAP dos servidores Proxmox (SEU_IP_1 ao 3) aos DCs.
– Acesso DNS dos servidores Proxmox (SEU_IP_1 ao 3) aos DCs.
– Acesso RAZOR (2703) dos servidores Proxmox (SEU_IP_1 ao 3) à Internet.
– Acesso na porta 26 dos servidores Exchanges para os servidores Proxmox (SEU_IP_1 ao 3) e dos Proxmox para os Exchanges.

– Acesso da rede interna a porta 8006 dos servidores Proxmox (SEU_IP_1 ao 3).
– NAT na porta 8006 para o servidor SEU_IP_1 (quarentena).
– Acesso dos servidores Proxmox (SEU_IP_1 ao 3) para baixar via https da internet.

Se houver um Servidor Exchange, configure-o da seguinte forma:

– Crie um Conector de envio, com:
– O Nome Outbound-SMARTHOST(TCP26), tipo Personalizado.
      – Configure utilizar smarthosts, adcione os IPs dos servidores Proxmox;
– Nenhuma autenticação;
– Tipo SMTP, Nome FQDN * e custo 1;
– Adicionar todos os servidores Exchange;
– Edite e configure as demais configurações padrão (verifique o default);
– Abra o powershell do exchange como administrador e digite o comando: Set-SendConnector -Identity “Outbound-SMARTHOST(TCP26)” -Port 26
– Desabilite o conector default e renomeie ele para Outbound-SMARTHOST(TCP25)
– Edite o conector de recebimento default
– No conector Default, retire os IPs do Antispam’s antigos.

– Crie um Conector de recebimento, com:
– O Nome Inbound-SMARTHOST(TCP25), Transporte de Front-endPersonalizado;
– Na tela seguinte, deixe padrão
– Na terceira tela, para configurar a parte de configurações de rede remota, informe os endereços os servidores Proxmox;
– Edite e configure as demais configurações padrão (verifique o default);

Fontes/Referências

 

https://www.anti-abuse.org/multi-rbl-check/
https://nvlan.com.br/comunidade/comparativo-solucoes-antispam-opensource-gratuitas/
https://nvlan.com.br/comunidade/instalacao-padrao-do-centos-7/
https://partnerweb.vmware.com/GOSIG/Debian_9.html
https://softwarelivre.org/andre-ferraro/blog/linux-instalando-configurando-e-sincronizando-o-relogio-de-servidores-e-clientes-com-ntp-no-debian-ubuntu-e-windows
https://www.barracudacentral.org/account/register
https://forum.proxmox.com/threads/cluster-rsync-error.41135/
https://forum.proxmox.com/threads/how-to-local-dns-resolver-for-proxmox-mail-gateway.41189/
https://www.proxmox.com/en/training/video-tutorials
https://www.proxmox.com/en/training/video-tutorials/item/introduction-to-proxmox-mail-gateway-5-0
https://www.proxmox.com/en/training/video-tutorials/item/installation-and-configuration-of-proxmox-mail-gateway-5-0
https://www.proxmox.com/en/training/video-tutorials/item/create-a-cluster
https://www.youtube.com/watch?v=Dr3-BeY0V1k
https://www.youtube.com/watch?v=-QpIfm-qx1o&t=58s

Rolar para cima