Rspamd integration into FreeBSD.org mail infrastructure
Índice:
- Pré-requisitos
- Instale o Redis
- Instalar não vinculado
- Instalar Rspamd
- Configurar Rspamd
- Configurar Nginx
- Configurar o Postfix
- Configurar Dovecot
- Crie chaves DKIM
- Configurações de DNS
- Conclusão
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:
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:
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:
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
:
servers = "127.0.0.1"; backend = "redis";
Abra o arquivo
milter_headers.conf
e defina os cabeçalhos do milter:
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:
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
:
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
:
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:
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 DMARCp=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' ouquarantineadkim=raspf=r- alinhamentoDKIMeSPF,rpara Relaxedspara 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 rspamdEsta 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 WebmailNirLauncher: Integre o SysInternal Suite com utilitários NirSoft
O NirLauncher é um pacote com mais de 100 utilitários freeware portáteis para Windows, todos desenvolvidos para o site da NirSoft nos últimos anos.
Integre a verificação ortográfica em todos os aplicativos do Windows com o tinyspell
Aprenda como integrar a verificação ortográfica em todos os aplicativos do Windows com tinySpell.
Integre o dropbox ao e-mail do yahoo para enviar anexos grandes
Aqui está como integrar o Dropbox com o Yahoo Mail para enviar arquivos grandes como anexos de e-mail.







