Android

Instale e integre o rspamd

Rspamd integration into FreeBSD.org mail infrastructure

Rspamd integration into FreeBSD.org mail infrastructure

Índice:

Anonim

Esta é a terceira parte da nossa instalação e configuração de um servidor de correio. Neste tutorial, abordaremos a instalação e configuração do sistema de filtragem de spam Rspamd e sua integração ao servidor de correio, criando registros DNS DKIM e DMARC.

Você pode perguntar por que escolhemos usar o Rspamd e não o Spamassassin. O Rspamd é mantido e escrito mais ativamente em C e é muito mais rápido que o Spamassassin, escrito em Perl. Outro motivo é que o Rspamd vem com um módulo de assinatura DKIM, para que não tenhamos que usar outro software para assinar nossos e-mails enviados.

Pré-requisitos

Antes de continuar com este tutorial, verifique se você está conectado como um usuário com privilégios sudo.

Instale o Redis

O Redis será usado como um sistema de armazenamento e armazenamento em cache pelo Rspamd, para instalá-lo, basta executar:

sudo apt install redis-server

Instalar não vinculado

O Unbound é um resolvedor de DNS validador, recursivo e de cache muito seguro.

O principal objetivo da instalação deste serviço é reduzir o número de solicitações DNS externas. Esta etapa é opcional e pode ser ignorada.

sudo apt update sudo apt install unbound

As configurações padrão de Não vinculado devem ser suficientes para a maioria dos servidores.

Para definir como ilimitado como o resolvedor DNS primário do servidor, execute os seguintes comandos:

sudo echo "nameserver 127.0.0.1" >> /etc/resolvconf/resolv.conf.d/head sudo resolvconf -u Se você não estiver usando o resolvconf , precisará editar o arquivo /etc/resolv.conf manualmente.

Instalar Rspamd

Vamos instalar a versão estável mais recente do Rspamd a partir de seu repositório oficial.

Comece instalando os pacotes necessários:

sudo apt install software-properties-common lsb-release sudo apt install lsb-release wget

Adicione a chave GPG do repositório ao seu chaveiro apt sources usando o seguinte comando wget:

wget -O- https://rspamd.com/apt-stable/gpg.key | sudo apt-key add -

Ative o repositório Rspamd executando:

echo "deb http://rspamd.com/apt-stable/ $(lsb_release -cs) main" | sudo tee -a /etc/apt/sources.list.d/rspamd.list

Depois que o repositório estiver ativado, atualize o índice do pacote e instale o Rspamd usando os seguintes comandos:

sudo apt update sudo apt install rspamd

Configurar Rspamd

Em vez de modificar os arquivos de configuração de estoque, criaremos novos arquivos no diretório /etc/rspamd/local.d/local.d/ , que substituirá a configuração padrão.

Por padrão, normal worker do Rspamd, o trabalhador que verifica as mensagens de email escuta em todas as interfaces na porta 11333. Crie o seguinte arquivo para configurar o trabalhador normal do Rspamd para escutar apenas a interface localhost:

/etc/rspamd/local.d/worker-normal.inc

bind_socket = "127.0.0.1:11333";

O proxy worker escuta na porta 11332 e suporta o protocolo milter. Para que o Postfix se comunique com o Rspamd, precisamos ativar o modo milter:

/etc/rspamd/local.d/worker-proxy.inc

bind_socket = "127.0.0.1:11332"; milter = yes; timeout = 120s; upstream "local" { default = yes; self_scan = yes; }

Em seguida, precisamos configurar uma senha para o servidor de controller worker do controller worker que forneça acesso à interface da web do Rspamd. Para gerar uma senha criptografada, execute:

rspamadm pw --encrypt -p P4ssvv0rD

A saída deve ser algo como isto:

$2$khz7u8nxgggsfay3qta7ousbnmi1skew$zdat4nsm7nd3ctmiigx9kjyo837hcjodn1bob5jaxt7xpkieoctb Não se esqueça de alterar a senha ( P4ssvv0rD ) para algo mais seguro.

Copie a senha do seu terminal e cole-a no arquivo de configuração:

/etc/rspamd/local.d/worker-controller.inc

password = "$2$khz7u8nxgggsfay3qta7ousbnmi1skew$zdat4nsm7nd3ctmiigx9kjyo837hcjodn1bob5jaxt7xpkieoctb";

Posteriormente, configuraremos o Nginx como um proxy reverso para o servidor da Web do controlador, para que possamos acessar a interface da Web Rspamd.

Defina Redis como um back-end para estatísticas Rspamd adicionando as seguintes linhas ao arquivo classifier-bayes.conf :

/etc/rspamd/local.d/classifier-bayes.conf

servers = "127.0.0.1"; backend = "redis";

Abra o arquivo milter_headers.conf e defina os cabeçalhos do milter:

/etc/rspamd/local.d/milter_headers.conf

use =;

Você pode encontrar mais informações sobre os cabeçalhos do ordenador aqui.

Finalmente, reinicie o serviço Rspamd para que as alterações entrem em vigor:

sudo systemctl restart rspamd

Configurar Nginx

Na primeira parte desta série, criamos um bloco de servidor Nginx para a instância PostfixAdmin.

Abra o arquivo de configuração do Nginx e adicione a seguinte diretiva de local, a destacada em amarelo:

/etc/nginx/sites-enabled/mail.linuxize.com.conf

… location /rspamd { proxy_pass http://127.0.0.1:11334/; proxy_set_header Host $host; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; }…

Recarregue o serviço Nginx para que as alterações entrem em vigor:

sudo systemctl reload nginx

rspamadm pw https://mail.linuxize.com/rspamd/ , digite a senha que você gerou anteriormente usando o comando rspamadm pw e você verá a interface da web do Rspamd.

Configurar o Postfix

Precisamos configurar o Postfix para usar o milp Rspamd.

Execute o seguinte comando para atualizar o arquivo de configuração principal do Postfix:

sudo postconf -e "milter_protocol = 6" sudo postconf -e "milter_mail_macros = i {mail_addr} {client_addr} {client_name} {auth_authen}" sudo postconf -e "milter_default_action = accept" sudo postconf -e "smtpd_milters = inet:127.0.0.1:11332" sudo postconf -e "non_smtpd_milters = inet:127.0.0.1:11332"

Reinicie o serviço Postfix para que as alterações entrem em vigor:

sudo systemctl restart postfix

Configurar Dovecot

Já instalamos e configuramos o Dovecot na segunda parte desta série e agora vamos instalar o módulo de filtragem de sieve e integrar o Dovecot ao Rspamd.

Comece instalando o módulo de filtragem Dovecot:

sudo apt install dovecot-sieve dovecot-managesieved

Após a instalação dos pacotes, abra os seguintes arquivos e edite as linhas destacadas em amarelo.

/etc/dovecot/conf.d/20-lmtp.conf

… protocol lmtp { postmaster_address = [email protected] mail_plugins = $mail_plugins sieve }… /etc/dovecot/conf.d/20-imap.conf

… protocol imap {… mail_plugins = $mail_plugins imap_quota imap_sieve… }… /etc/dovecot/conf.d/20-managesieve.conf

… service managesieve-login { inet_listener sieve { port = 4190 }… }… service managesieve { process_limit = 1024 }… /etc/dovecot/conf.d/90-sieve.conf

plugin {… # sieve = file:~/sieve;active=~/.dovecot.sieve sieve_plugins = sieve_imapsieve sieve_extprograms sieve_before = /var/mail/vmail/sieve/global/spam-global.sieve sieve = file:/var/mail/vmail/sieve/%d/%n/scripts;active=/var/mail/vmail/sieve/%d/%n/active-script.sieve imapsieve_mailbox1_name = Spam imapsieve_mailbox1_causes = COPY imapsieve_mailbox1_before = file:/var/mail/vmail/sieve/global/report-spam.sieve imapsieve_mailbox2_name = * imapsieve_mailbox2_from = Spam imapsieve_mailbox2_causes = COPY imapsieve_mailbox2_before = file:/var/mail/vmail/sieve/global/report-ham.sieve sieve_pipe_bin_dir = /usr/bin sieve_global_extensions = +vnd.dovecot.pipe…. }

Salve e feche os arquivos.

Crie um diretório para os scripts de peneira:

mkdir -p /var/mail/vmail/sieve/global

Crie um filtro de peneira global para mover e-mails marcados como spam para o diretório Spam :

/var/mail/vmail/sieve/global/spam-global.sieve

require; if anyof(header:contains "YES", header:contains "Yes", header:contains "*** SPAM ***") { fileinto:create "Spam"; stop; }

Os dois scripts de peneira a seguir serão acionados sempre que você mover um email para dentro ou para fora do diretório Spam :

/var/mail/vmail/sieve/global/report-spam.sieve

require; pipe:copy "rspamc"; /var/mail/vmail/sieve/global/report-ham.sieve

require; pipe:copy "rspamc";

Reinicie o serviço Dovecot para que as alterações entrem em vigor:

sudo systemctl restart dovecot

Compile scripts de peneira e defina as permissões corretas:

sievec /var/mail/vmail/sieve/global/spam-global.sieve sievec /var/mail/vmail/sieve/global/report-spam.sieve sievec /var/mail/vmail/sieve/global/report-ham.sieve sudo chown -R vmail: /var/mail/vmail/sieve/

Crie chaves DKIM

O DomainKeys Identified Mail (DKIM) é um método de autenticação de email que adiciona uma assinatura criptográfica aos cabeçalhos das mensagens de saída. Ele permite que o destinatário verifique se um e-mail que afirma ser originário de um domínio específico foi realmente autorizado pelo proprietário desse domínio. O principal objetivo disso é evitar mensagens de email falsificadas.

Podemos ter chaves DKIM diferentes para todos os nossos domínios e até várias chaves para um único domínio, mas para simplificar este artigo, usaremos uma única chave DKIM que posteriormente poderá ser usada para todos os novos domínios.

Crie um novo diretório para armazenar a chave DKIM e gerar um novo par de chaves DKIM usando o utilitário rspamadm :

sudo mkdir /var/lib/rspamd/dkim/ rspamadm dkim_keygen -b 2048 -s mail -k /var/lib/rspamd/dkim/mail.key | sudo tee -a /var/lib/rspamd/dkim/mail.pub rspamadm dkim_keygen -b 2048 -s mail -k /var/lib/rspamd/dkim/mail.key | sudo tee -a /var/lib/rspamd/dkim/mail.pub

No exemplo acima, estamos usando o mail como um seletor DKIM.

Agora você deve ter dois novos arquivos no diretório /var/lib/rspamd/dkim/ , mail.key , que é nosso arquivo de chave privada, e mail.pub um arquivo que contém a chave pública DKIM. Atualizaremos nossos registros de zona DNS posteriormente.

Defina a propriedade e as permissões corretas:

sudo chown -R _rspamd: /var/lib/rspamd/dkim sudo chmod 440 /var/lib/rspamd/dkim/*

Agora precisamos informar ao Rspamd onde procurar a chave DKIM, o nome do seletor e a última linha permitirão a assinatura DKIM para endereços de remetente de alias. Para isso, crie um novo arquivo com o seguinte conteúdo:

/etc/rspamd/local.d/dkim_signing.conf

selector = "mail"; path = "/var/lib/rspamd/dkim/$selector.key"; allow_username_mismatch = true;

O Rspamd também oferece suporte à assinatura de assinaturas ARC (Authenticated Received Chain). Você pode encontrar mais informações sobre a especificação ARC aqui.

O Rspamd está usando o módulo DKIM para lidar com assinaturas do ARC, para que possamos simplesmente copiar a configuração anterior:

sudo cp /etc/rspamd/local.d/dkim_signing.conf /etc/rspamd/local.d/arc.conf

Reinicie o serviço Rspamd para que as alterações entrem em vigor:

sudo systemctl restart rspamd

Configurações de DNS

Já criamos um par de chaves DKIM e agora precisamos atualizar nossa zona DNS. A chave pública DKIM é armazenada no arquivo mail.pub . O conteúdo do arquivo deve ficar assim:

cat /var/lib/rspamd/dkim/mail.pub

mail._domainkey IN TXT ("v=DKIM1; k=rsa; " "p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAqdBRCqYzshc4LmmkxUkCH/rcIpSe/QdNIVmBrgqZmZ5zzWQi7ShdFOH7V32/VM1VRk2pkjDV7tmfbwslsymsfxgGhVHbU0R3803uRfxAiT2mYu1hCc9351YpZF4WnrdoA3BT5juS3YUo5LsDxvZCxISnep8VqVSAZOmt8wFsZKBXiIjWuoI6XnWrzsAfoaeGaVuUZBmi4ZTg0O4yl" "nVlIz11McdZTRe1FlONOzO7ZkQFb7O6ogFepWLsM9tYJ38TFPteqyO3XBjxHzp1AT0UvsPcauDoeHUXgqbxU7udG1t05f6ab5h/Kih+jisgHHF4ZFK3qRtawhWlA9DtS35DlwIDAQAB");

v=DKIM1; k=rsa; p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAqdBRCqYzshc4LmmkxUkCH/rcIpSe/QdNIVmBrgqZmZ5zzWQi7ShdFOH7V32/VM1VRk2pkjDV7tmfbwslsymsfxgGhVHbU0R3803uRfxAiT2mYu1hCc9351YpZF4WnrdoA3BT5juS3YUo5LsDxvZCxISnep8VqVSAZOmt8wFsZKBXiIjWuoI6XnWrzsAfoaeGaVuUZBmi4ZTg0O4ylnVlIz11McdZTRe1FlONOzO7ZkQFb7O6ogFepWLsM9tYJ38TFPteqyO3XBjxHzp1AT0UvsPcauDoeHUXgqbxU7udG1t05f6ab5h/Kih+jisgHHF4ZFK3qRtawhWlA9DtS35DlwIDAQAB

Também criaremos uma DMARC (Authentication Message Authentication) baseada em domínio, projetada para informar ao servidor de destino se aceita ou não um email de um remetente específico. Basicamente, ele protegerá seu domínio contra falsificação direta de domínio e melhorará sua reputação.

iremos implementar a seguinte política DMARC:

_dmarc IN TXT "v=DMARC1; p=none; adkim=r; aspf=r;"

Vamos detalhar o registro DMARC acima:

  • v=DMARC1 - Este é o identificador DMARC p=none - Isso informa ao receptor o que fazer com as mensagens que falham no DMARC. No nosso caso, é definido como none, o que significa que não será executada nenhuma ação se uma mensagem falhar no DMARC. Você também pode usar 'rejeitar' ou quarantine adkim=r aspf=r - alinhamento DKIM e SPF , r para Relaxed s para Strict, no nosso caso, estamos usando o Alinhamento Relaxado para DKIM e SPF.

O mesmo de antes, se você estiver executando seu próprio servidor Bind DNS, apenas precisará copiar e colar o registro no arquivo da zona de domínio e, se estiver usando outro provedor DNS, precisará criar um registro TXT com _dmarc como nome v=DMARC1; p=none; adkim=r; aspf=r; v=DMARC1; p=none; adkim=r; aspf=r; como um valor / conteúdo.

Pode demorar um pouco para que as alterações no DNS sejam propagadas. Você pode verificar se os registros foram propagados usando o comando dig:

dig mail._domainkey.linuxize.com TXT +short

"v=DKIM1; k=rsa; p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAqdBRCqYzshc4LmmkxUkCH/rcIpSe/QdNIVmBrgqZmZ5zzWQi7ShdFOH7V32/VM1VRk2pkjDV7tmfbwslsymsfxgGhVHbU0R3803uRfxAiT2mYu1hCc9351YpZF4WnrdoA3BT5juS3YUo5LsDxvZCxISnep8VqVSAZOmt8wFsZKBXiIjWuoI6XnWrzsAfoaeGa" "VuUZBmi4ZTg0O4ylnVlIz11McdZTRe1FlONOzO7ZkQFb7O6ogFdepWLsM9tYJ38TFPteqyO3XBjxHzp1AT0UvsPcauDoeHUXgqbxU7udG1t05f6ab5h/Kih+jisgHHF4ZFK3qRtawhWlA9DtS35DlwIDAQAB"

dig _dmarc.linuxize.com TXT +short

"v=DMARC1; p=none; adkim=r; aspf=r;"

Você também pode inspecionar a política DMARC atual do seu domínio ou criar sua própria política DMARC aqui.

Conclusão

É isso nesta parte do tutorial. Na próxima parte desta série, continuaremos com a instalação e configuração do RoundCube.

servidor de correio postfix dovecot dns rspamd

Esta postagem faz parte da série Instalando e configurando um servidor de correio.

Outras postagens nesta série:

• Configurar um servidor de correio com PostfixAdmin • Instalar e configurar o Postfix e o Dovecot • Instalar e integrar o Rspamd • Instalar e configurar o Roundcube Webmail