Como montar um servidor de e-mail com Postfix, Dovecot, PostfixAdmin, SpamAssassin, Amavis, Clamav, RoundCube, SPF, DKIM, DMARC, Fail2Ban

Neste tutorial vou ensinar como configurar um servidor de e-mail com domínios virtuais com integração dos usuários/domínios no banco de dados MariaDB/MySQL. Nele vamos ter filtros entre varias otimizações.

Postfix Postfix é um agente de transferência de e-mails livre e de código aberto que encaminha e entrega e-mails, e tem como objetivo ser uma alternativa segura ao Sendmail.
Dovecot é um servidor de IMAP e POP3 open source para sistemas Linux e UNIX, escrito primariamente com segurança em mente.
Postfixadmin Interface web para o gerenciamento de contas de e-mails e domínios.
Spamassassin é um programa de computador licenciado através da licença Apache e utilizado como filtro de spam enviado através de mensagem eletrônica. O filtro SpamAssassin funciona dando uma pontuação a cada mensagem que entra, baseado em diferentes “testes” que faz analisando todo o conteúdo da mensagem.
Clamav é um antivírus open source gratuito feito especialmente para Linux, mas que conta também com uma versão gratuita para Windows e outra paga para Mac OS.
Amavis é um filtro de conteúdo de código aberto para correio eletrônico, implementando transferência de mensagens, decodificação, algum processamento e verificação e interface com filtros de conteúdo externos para fornecer proteção contra spam, vírus e outros malwares.
RoundCube é um cliente de email IMAP baseado na Web (Webmail).
SPF (Sender Policy Framework) é um sistema que identifica para os servidores de email quais hosts têm permissão para enviar email para um determinado domínio. A configuração do SPF ajuda a impedir que seu email seja classificado como spam.
DKIM (DomainKeys Identified Mail) é um sistema que permite que seus servidores de email oficiais adicionem uma assinatura aos cabeçalhos dos emails de saída e identifique a chave pública do seu domínio para que outros servidores de email possam verificar a assinatura. Assim como no SPF, o DKIM ajuda a impedir que seu email seja considerado spam. Também permite que os servidores de correio detectem quando o seu correio foi adulterado em trânsito.
DMARC (Autenticação, Relatório e Conformidade de Mensagens de Domínio) permite anunciar aos servidores de email quais são as políticas do seu domínio em relação a emails que falham nas validações SPF e / ou DKIM. Além disso, permite solicitar relatórios de mensagens com falha dos servidores de email.
Fail2Ban é uma estrutura de software de prevenção de intrusões que protege os servidores de computadores contra ataques de força bruta.

REQUISITOS

0 – Saber que esse procedimento exige conhecimento 🙂
1 – Ter configurado DNS Autoritativo e Reverso sobre seus IPS.
2 – Debian 10 Buster instalação limpa
3 – Não ter seu endereço IP listado em backlist.

Você pode verificar se seu IP está em uma blacklist nos sites:
https://mxtoolbox.com/blacklists.aspx
http://www.anti-abuse.org/multi-rbl-check-results/
https://viewdns.info/spamdblookup/

AJUSTES

IP ex. do servidor: 45.80.50.6 / 2804:f123:bebe:cafe::6
Sendo que o reverso deste ips apontam para mail.remontti.com.br
Entradas MX, TXT e SPF configuradas.
Ex autoritativo:

Ex reverso:

Ajuste o nome do servidor alterando alguns parâmetros do sistema.

Configure sua interface de rede. Vou deixar um modelo, onde o bloco de IPv4 é um /28 (255.255.255.240) e um /64 para IPv6.

Reinicie seu servidor

APACHE2, MARIADB E PHP7

Vamos habilitar o mod_rewrite.

A página que vimos ao abri o ip do nosso servidor no navegador fica no diretório /var/www/html, isso está sendo informado no arquivo default do apache que fica em /etc/apache2/sites-enabled/000-default.conf, e para que nosso mod_rewrite funcione corretamente será necessário adicionar alguma linhas.

Adicione abaixo de “DocumentRoot /var/www/html” o seguinte:

Por segurança recomendo remover a assinatura do servidor, para isso edite:

Agora precisamos restartar o apache2 para que tenha efeito as alterações.

http://[SERVER_IP]/

phpMyAdmin ** Opcional **

Cade ele do repositório?
O PHPMyAdmin não está mais disponível como pacote .deb no Debian 10. Fazendo um pesquisa o motivo é que o “pessoal” que faz empacotamento não tem uma versão estável. https://security-tracker.debian.org/tracker/CVE-2018-19968

Desta forma debian “obriga” com que o usuário instale-o a partir da fonte. https://www.phpmyadmin.net/downloads/

phpMyAdmin 4.9.2 (25/11/2019)

Criaremos o arquivo de configuração do Apache.

Ative a configuração e reinicie o Apache.

Na próxima etapa, vamos configurar o armazenamento de configuração do phpMyadmin (banco de dados).
Faça o login no MariaDB como usuário root:

Criamos um novo banco de dados para o chamado phpmyadmin e um usuario pma (altere para sua senha). Em seguida, concedemos as permissões do banco de dados.
Você pode gerar uma senha acessando https://senhasegura.remontti.com.br/

Carregue as tabelas do banco de dados: (Informe a senha do root do MariaDB)

Agora é necessário ajustar o arquivo de configuração do phpmyadmin.
Definir:
* senha segura (blowfish secret) que deve ter 32 caracteres. Não use o meu exemplo blowfish secreto, defina o seu próprio! Use o gerador https://senhasegura.remontti.com.br
* diretório que o PHPMyAdmin deve usar para armazenar arquivos temporários.
* Descomentar as linhas $cfg[‘Servers’]
– controlhost : localhost
– controlpass : SUA_SENHA

http://[SERVER_IP]/phpmyadmin/

POSTFIX / DOVECOTE / DKIM / SPF

O Postfix é um agente de transferência de emails (MTA = Message Transfer Agent), um software livre para envio e entrega de emails. Rápido e fácil de administrar, muito utilizado em servidores UNIX.
Algumas vantagens:
– Suporte a Ipv6
– Suporte a MIME
– Autenticação SASL
– Canal seguro utilizando TLS
– Suporte a banco de dados(MySQL,PostgreSQL,LDAP,entre outros)
– Verificação a listas RBL
– Extenso suporte a filtros
– Suporte a expressão-regular
– Verificação de cabeçalho
– Verificação no corpo da mensagem
– Suporte a Greylisting e SPF através de plugins.

Dovecot é um servidor de IMAP e POP3 open source para sistemas Linux e UNIX, escrito primariamente com segurança em mente, tem o objetivo primário de ser um servidor de email leve, rápido e de fácil configuração. Dovecot suporta mbox, Maildir e seu próprio formato nativo de alta performance, Dbox. É 100% compatível com clientes de emails acessando as caixas de correio diretamente. Também inclui um agente de entrega de emails com suporte opcional a filtros Sieve, o que acho muito legal!

Vamos a instalação:

Responda:
Site da Internet

Se seu DNS reverso estiver ok ele virá já com o domínio reverso de seu IP, mas isso não é necessariamente ser o nome do ip rever, mas eu recomendo que tenha confurado o reverso para o seu servidor de e-mail.
mail.remontti.com.br

Verifique o arquivo /etc/mailname e sertifique-se que seja seu domínio.

Adicione um e-mail para seu usuário root do Linux

POSTFIXADMIN

PostfixAdmin gerenciará os domínios e e-mail.

Ajuste o tipo do banco para mysqli

Defina o tipo de criptografia para as senhas salvas no BD e o idioma.

Procure pelas seguintes linhas e altere conforme a baixo.

Como existe varias alterações “change-this-to-your.domain.tld” vou usar o comando sed para alterar todas de uma única vez. Não esqueça de substituir pelo seu dominio.

Mais alguns ajustes

Acesse:
http://SEU-DOMINO/postfixadmin/public/setup.php

No primeiro acesso suas tabelas já serão criadas no seu bd, você deve ter todas as dependências OK.

Bem no final temos: Change setup password
Preencha os campos Setup password com uma senha e repita (Essa senha será necessária pra criar administradores do PostfixAdmin) e clique em Generate password hash

Voce vai receber uma mensagem parecida com essa:
If you want to use the password you entered as setup password, edit config.inc.php or config.local.php and set
$CONF[‘setup_password’] = ‘ca06e6cd4df066ac8e7999616a773b00:51508f16ca5ef631a5ed23ccc44160d934375ec5’;

screenshot_20161017_134710

Esta senha criptografada, será necessários informar no arquivo config.inc.php antes de prosseguir. Então vamos a edição.

Localize:

Altere para:

Salve se arquivo e volte para seu navegador. Em Create superadmin account vamos criar nosso usuário administrador do PostfixAdmin.

Nos campos:
Setup password = Informe a senha q você gerou no passo anterior.
Administrador: = um endereço email que será o seu login (postmaster@remontti.com.br)
screenshot_20161017_134743
Clique em Criar administrador

Deve retornar a mensagem:

Acesse: http://SEU-DOMINO//postfixadmin/public/

Já é possível acessa-lo com nosso usuários administrador, e adicionar seus domínios e contas de e-mails.
Domínios => Criar Domínio
Virtual => Criar conta de Email

Dando continuidade criaremos nosso usuários vmail que será o “cara” responsável pelo trabalho.

Edite o arquivo /etc/postfix/main.cf

Altere e adicione como descrito abaixo.

RBL/RHSBL: Caso não queira utilizar alguma das rbl/sbl ou utilizar outras sinta-se a vontade.

Aproveitamos já iremos criar uma lista Negra / Branca, crie um arquivo chamado white-black-list

Nele adicione os dominos/emails com OK que você confia e REJECT para os que deseja descartar, ex.:

Agora você precisa executar o comando postmap no seu arquivo white-black-list ele irá gerar um novo arquivo white-black-list.db

Mais informações você encontra em:
http://www.postfix.org/VIRTUAL_README.html#virtual_mailbox

Precisamos criar 4 arquivos que farão a conexão com o BD, pra facilitar criamos nossa variável MINHASENHA

Vamos criar uma variável com o valor da senha que foi informada na instalação do postfixadmin, assim ira facilitar.

Não use $ ou # em sua senha

mysql_virtual_alias_maps.cf

mysql_virtual_mailbox_maps.cf

mysql_sender_login_maps.cf

mysql_virtual_domains_maps.cf

Acesse o diretório de instalação e verifique se os arquivos com as iniciais mysql_* foram criados. Depois altere as permissões e grupos.

Vamos as alterações no master.cf.

Faça um backup do arquivo original antes e adicione no final:

Adicione ao final:

Localize as seguintes linhas e descomente-as:

Descomente e altere os valores de smtpd_client_restrictions, os originais são diferentes. (veja na imagem abaixo como fica)

screenshot_20161017_143502

Configurando o Dovecot

Vou usar o comando sed para fazer as alterações necessárias em vez de ficarmos abrindo arquivo e editando.

Adicionamos ao final do arquivo /etc/dovecot/dovecot.conf mais algumas conf:

Certifique-se que sua senha do postfixadmin ainda esta salva na variável $MINHASENHA.

Vamos inserir algumas linhas ao final de dovecot-sql.conf.ext.

Alterações dos arquivos 10-auth.conf / 10-logging.conf / 10-ssl.conf

Em 10-master.conf ficou complicado fazer alteração com sed então vamos no braço.

em :service auth {
COMENTE tudo de unix_listener auth-userdb

Vamos criar um filtro para que todas as mensagens marcada com spam sejam movida para o diretórios SPAM.

!Exatamente nessa ordem!

Descomente:

Descomente e altere user = dovecot para user = root

Demos permissão e restartamos o serviços.

Comando para ver cota

WEBMAIL ROUNDCUBE

Ajuste o time zone de acordo com sua localidade.

Acesse e baixe a versão mais recente
https://roundcube.net/download/

Hoje (27/Nov/2019) 1.4.1 Complete

Criaremos nosso banco de dados para o roundcubemail.

Será solicitado a senha root do mysql, entre com a senha.

Acesse:
http://SEU-DOMINIO/webmail/installer/

Clique em Next

Será necessário dar permissão para criação do config.inc.php na pasta config,

Itens a serem alterados:

== General configuration ==
product_name: Nome do Webmail
Check client IP in session authorization: MARQUE

== Logging & Debugging ==
log_driver: syslog

== Database setup ==
Database type: MYSQL
Database server: localhost
Database name: roundcubemail
Database user name: roundcube
Database password: SUA-SENHA-BD-ROUND
db_prefix:

== IMAP Settings ==
default_host: tls://mail.remontti.com.br (se vc nao for criar certificado deixe localhost)
username_domain: remontti.com.br

== SMTP Settings ==
smtp_server: tls://mail.remontti.com.br (se vc nao for criar certificado deixe localhost)

== Display settings & user prefs ==
language *: pt_BR
Compose HTML formatted messages: always

== Plugins ==
“De acordo com suas necessidades! Porém vou configurar os seguintes.
– emoticons
– managesieve
– markasjunk
– newmail_notifier
– password
– zipdownload

Agora clique em [CREAT CONFIG]
Vai retornar uma mensagem:
The config file was saved successfully into RCMAIL_CONFIG_DIR directory of your Roundcube installation.

Isso significa que nosso arquivo de configuração do roundcube foi criado (config/config.inc.php)

Agora clique em: [CONTINUE]
Agora em: [Inicialize database]

Irá retornar:
Check DB config
DSN (write): OK
DB Schema: OK
DB Write: OK
DB Time: OK

Por seguração deixe as permissões para o root novamente, e para www-data apenas para pasta temp

Se você já criou uma conta de email você pode testa-la [Check login]

Como recomendações, mova o diretório installer para outro nome ou remova.

After completing the installation and the final tests please remove the whole installer folder from the document root of the webserver or make sure that enable_installer option in config.inc.php is disabled.

Acesse o diretório dos plugins do roundcube.

== newmail_notifier ==

== zipdownload ==

== markasjunk ==

= managesieve =
Faz emails identificado com spam cair na pasta spam.

Altere: (atençao para o caminho)

Crie o arquivo default.sieve

== password ==
Permite usuário alterar sua senha.

Altere:

Plugins extra

== contextmenu ==
Baixe a versão mais recente

== dovecot_ident ==
Como webmail é um acesso localhost, nos logs de acesso IMAP não queremos isso e sim o IP do usuário que esta acessando, para isso:

Descomente incluindo:

Restarte os serviços

Agora precisamos adicionar nossos plugins extrar nas configurações do Round.

Procure por:

Inclua os plugins contextmenu e contextmenu ficando:

Adicione também check_all_folders, para verificar novos e-mails em todas as pastas, bom caso você criar algum filtro personalizado, ex todas as mensagems contendo x assunto ou de um domínio/email… assim se cair uma mensagem ela fica uma notificação numérica além da pasta principal.

Seu servidor de e-mail já está funcionado, logue em seu webmail, envie algum e-mails.
Acesse: http://SEU-DOMINIO/webmail/

PEGANDO A ULTIMA VEZ QUE USUÁRIO LOGOU E O IP

Se você é administrador de um servidor de e-mail certamente vai querer isso!
Primeiramente vamos adicionar alguns campos extrar nassa tabela mailbox (last_login_date last_login_ip last_login_proto)

Vamos ensinar o dovecot a alimentar esses campos.
10-master.conf

Crie o arquivo postlogin-imap.sh

Atenção para SENHA.

Crie o arquivo postlogin-pop.sh

Atenção para SENHA.

Acesse sua conta de e-mail e apos consulte a tabela mailbox (SELECT * FROM mailbox)

Até este ponto nosso servidor está 100%, agora falta apenas um Anti-Spam e um Anti-Vírus para ficar perfeito, Então vamos nessa 🙂

SPAMASSASSIN

Vamos começar pelo SpamAssassin

Alguns ajustes

Adicione ==> -o content_filter=spamassassin

E no final do arquivo:

Vamos instalar o Razor Pyzor para ajudar no bloquei dos Spam.

Inclua antes da ultima linha (endif # Mail::SpamAssassin::Plugin::Shortcircuit)

ANTIVIRUS AMAVIS / CLAMAV

Você precisa ter nos repositórios os pacotes contrib non-free

(exemplo)

#(Descomente)

Adicionar !! Atenção para SENHA

Altere:

Comente:

Descomente:

Personalização Amavis

Eu comento sa_spam_subject_tag, assim as mensagens que forem spam não terão o assunto trocado, pois elas já irão cair na caixa de spam.

Comente se não desejar receber as menssagens de erro.

Não comente final_bad_header_destiny (se não os spam não serão entregues)

Se não quiser que seu email postmaster receba um email com todos os emails q ele discartou, comente:

Habilitar o amavis no postfix

Adicionar ao final

Ajuste o SPF para que execute seus testes.

Inclua em main.cf policyd-spf_time_limit = 3600 para aumentar o tempo limite impedirá o Postfix de interromper o agente se as transações forem um pouco lentas.

Alguns pacotes que o amavis utiliza já não estão mais no debian buster então vamos baixa-los e instala-los.

Restarte todos os serviços e verifique se tudo esta ok.

Simular o envio de um spam:

Não podemos esquecer de definir a senha do usuário root do mariadb/mysql

HTTPS / SSL / CERTIFICADO VÁLIDO

Sugestão é você configurar seu domínios virtuais (ou mais de um) e configurar o Let’s Encrypt
Leitura recomendada:
Criando certificado grátis com Let’s Encrypt para o Apache no Debian 10
Como ter diversos sub/domínios no mesmo servidor? (Domínios virtuais com Apache2)

Vou fazer um exemplo bem simples editando o 000-default.conf

Descomente a linha ServerName e adicione o domínio do seu servidor

Restarte o apache

Instale o letsencrypt e cerbot

Antes de gerar o certificado para “mail.remontti.com.br” pare o apache

Agora já temos uma acesso seguro em “mail.remontti.com.br”, interessante que agora temos certificados válidos que podemos usar no nosso serviço de e-mail, então vamos ajustar!

Adicione smtp_tls_security_level, smtp_tls_CAfile e smtp_tls_loglevel em main.cf

Restart os serviços

DKIM

Adicione usuário postfix ao opendkimgrupo para que o Postfix possa acessar o soquete do OpenDKIM quando for necessário.

Altere

Adicione ao final do arquivo

Crie o diretório do soquete OpenDKIM na área de trabalho do Postfix e verifique se ele possui a propriedade correta, em seguida edite o caminho para o soquete é diferente do padrão, porque no Debian 10 o processo Postfix lida com uma prisão chroot e não pode acessar o local normal.

Altere

Crie a tabela de assinatura /etc/dkimkeys/signing.table. Ele precisa ter uma linha por domínio para a qual você lida com o email. Cada linha deve ficar assim:

Substitua *@remontti.com.br por seu domínio e remontti por um nome abreviado para o domínio. O primeiro campo é um padrão que corresponde aos endereços de email. O segundo campo é um nome para a entrada da tabela de chaves que deve ser usada para assinar emails desse endereço.

Substitua remontti pelo valor que você usou para o domínio na tabela de assinatura. Substitua remontti.com.br por seu nome de domínio e substitua 201911 ano atual de 4 dígitos e mês de 2 dígitos (isso é chamado de seletor). O primeiro campo conecta as tabelas de assinatura e chave.

O segundo campo é dividido em 3 seções separadas por dois pontos.
1- A primeira seção é o nome de domínio para o qual a chave é usada.
2- A segunda seção é um seletor usado ao procurar registros importantes no DNS.
3- A terceira seção nomeia o arquivo que contém a chave de assinatura do domínio.

Crie o arquivo de hosts confiáveis.

Ao criar o arquivo, mude “mail” para o nome do seu servidor e substitua remontti.com.br pelo seu próprio nome de domínio. Estamos identificando os hosts pelos quais os usuários enviarão mensagens e devem ter as mensagens enviadas assinadas, que para configurações básicas será o seu próprio servidor de email.

Gere chaves para cada domínio:

opendkim-genkey: generating private key
opendkim-genkey: private key written to 201911.private
opendkim-genkey: extracting public key
opendkim-genkey: DNS TXT record written to 201911.txt

Criamos uma atalho e alteramos as permissões

Restart e verifique se o OpenDKIM iniciou corretamente.

Configurar DKIM no seu DNS

Como no SPF, o DKIM usa registros TXT para armazenar informações sobre a chave de assinatura de cada domínio.
Usando o AAAAMM como acima, é necessário criar um registro TXT para o host YYYYMM._domainkeyde de cada domínio para o qual você lida com o correio. Seu valor pode ser encontrado no arquivo 201911.txt. Esses arquivos são assim:

Remova os parênteses, e as quebras de linhas. E h=rsa-sha256 altere para h=sha256. O resultado ficaria:

Você pode adicionar uma política ADSP ao seu domínio, dizendo que todos os emails do seu domínio devem ser assinados por DKIM. Como de costume, isso é feito com um registro TXT para host _adsp._domainkeyem seu domínio com um valor de dkim=all. Você não precisa configurar isso, mas isso dificulta a falsificação de emails de seus domínios, porque os servidores de e-mail do destinatário verão a falta de uma assinatura DKIM e rejeitarão a mensagem.

Relatório e conformidade de mensagens de domínio (DMARC). O registro DNS do DMARC pode ser adicionado para informar aos servidores de correio o que você acha que eles devem fazer com os e-mails que afirmam pertencer ao seu domínio e que falham na validação com SPF e/ou DKIM. O DMARC também permite solicitar relatórios sobre mensagens que não passam em uma ou mais verificações de validação. O DMARC deve ser configurado apenas se você tiver o SPF e o DKIM configurados e operando com êxito. Se você adicionar o registro DNS DMARC sem o SPF e o DKIM, as mensagens do seu domínio falharão na validação, o que pode fazer com que sejam descartadas ou relegadas a uma pasta de spam.

O registro DMARC é um registro TXT para host _dmarcem seu domínio que contém os seguintes valores recomendados:

Isso solicita que os servidores de correio em quarentena (não descartem, mas separem das mensagens regulares) qualquer email que falhe nas verificações de SPF ou DKIM. Nenhum relatório é solicitado. Pouquíssimos servidores de correio implementam o software para gerar relatórios sobre mensagens com falha; portanto, é desnecessário solicitá-las. Se você deseja solicitar relatórios, o valor seria semelhante a este exemplo, adicionado como uma única sequência:

Os registros DMARC têm um número de tags e opções disponíveis. Essas tags são usadas para controlar suas configurações de autenticação:

v especifica a versão do protocolo, neste caso DMARC1.
p determina a política para o domínio raiz, como “example.com”. As opções disponíveis:
quarantine instrui que, se um email falhar na validação, o destinatário deve separá-lo para processamento.
reject solicita que o servidor de email receptor rejeite os emails que falham na validação.
none solicita que o destinatário não tome nenhuma ação se um email não passar na validação.

sp determina a política para subdomínios, como “subdomínio.exemplo.com”. Ele usa os mesmos argumentos que a p tag.

adkim especifica o modo de alinhamento para DKIM, que determina com que rigor os registros DKIM são validados. As opções disponíveis são:
r modo de alinhamento relaxado, a autenticação DKIM é aplicada com menos rigor.
s modo de alinhamento estrito. Somente uma correspondência exata com a entrada DKIM para o domínio raiz será vista como validada.

aspf determina o modo de alinhamento para verificação do SPF. Leva os mesmos argumentos que adkim.

Adicione nas configurações do seu arquivo DNS autoritativo e restart seu DNS. Ex (bind):

Teste as chaves para a assinatura e verificação corretas usando o opendkim-testkeycomando:

Se tudo estiver correto, você não deverá obter nenhuma saída. Se você quiser ver mais informações, adicione -vvvno final do comando. Isso produz saída de depuração detalhada. A última mensagem deve ser “tecla OK”. Pouco antes disso, você poderá ver a mensagem “chave não segura”. Isso é normal e não indica um erro, apenas significa que seu domínio ainda não está configurado para DNSSEC.

Adicione

Rotação da chave DKIM

(Não faça isso agora! Leia com atenção)

O motivo pelo qual o formato AAAAMM é usado é que a prática recomendada exige a alteração das chaves de assinatura DKIM de vez em quando (recomenda-se mensalmente, e não mais que a cada 6 meses). Para fazer isso sem interromper as mensagens em trânsito, você gera as novas chaves usando um novo seletor. O processo é:

Gere novas chaves como anteriormente no /etc/dkimkeys/. Use o ano e o mês atuais para o valor do seletor AAAAMM, para que seja diferente do seletor atualmente em uso.

Use o .txt gerado para adicionar as novas chaves ao seu DNS, usando o novo seletor AAAAMM nos nomes de host. Não remova ou altere os registros DKIM TXT existentes. Feito isso, verifique os novos dados da chave usando o seguinte comando:

Pare o Postfix e o OpenDKIM para que eles não processem e-mails enquanto você estiver trocando as chaves.

Remova o link anterior do “remontti.private” e link ao novo “202006.private” arquivo gerado e defina as permissões corretas:

Altere o antigo valores de AAAAMM em key.table para o novo seletor e salve o arquivo.

Inicie o OpenDKIM e o Postfix

Certifique-se de que ambos iniciem sem erros.

Espere algumas semanas para remover o antigo registro pois algum servidor pode estar ainda usando a antiga chave. (Eu normalmente removo apenas quando crio uma nova)

FAIL2BAN + NFTABLES

Fail2Ban é uma estrutura de software de prevenção de intrusões que protege os servidores de computadores contra ataques de força bruta, que opera monitorando arquivos de logs. Sendo o mais comum usado para bloquear endereços IPs selecionados que podem pertencer a hosts que estão tentando violar a segurança.

Como o iptables está sendo substituído por nftables começando com o Debian Buster, vamos configurar o Fail2Ban para usar o nftables como padrão.
Mas vou ir além em vez de usar o filtro multiport vou setar allports e modifica-lo para que quando uma tentativa de violação acontecer o Fail2Ban crie uma regra de firewall que dropa definitivamente o IP e não apenas fechando a porta do serviço para “invasor”.

Procure por “banaction = iptables-multiport” e “banaction_allports = iptables-allports” e altere seu valor para “nftables-allports”:

Altere o modo de bloqueio em nftables-allports.conf para fazer que ele de um “drop all”.

Procure por nftables_mode = meta l4proto e altere deixando seu valor vazio:

Em nftables-common.conf alteraremos o padrão de reject para drop

Procure por “blocktype = reject” e altere seu valor para “drop”.

Ativamos alguns filtros. Se desejar ajustar o tempo te banimento altere o valor de bantime, e os numeros de erros/tentativas em maxretry.

Adicione no arquivo:

Ativamos o nftables e restartamos os serviços:

Para visualizar seu firewall use o comando:

Alguns comandos do fail2ban
Status:

Status do filtro:

Remover um IP bloqueado de um filtro:

Ufaaaa acabamos, espero que tenha gostado! 🙂

Se quiser fazer uma doação para o café ficarei muito feliz pelo seu reconhecimento!

Se não puder doar pode deixar seu agradecimento nos comentário também ficarei feliz em saber que ajudei. Se tiver qualquer pergunta deixe-a também. Se preferir entrar em Contato clique aqui.

Abraço!

Rudimar Remontti

Trabalho atualmente como Gerente de Redes em um Provedor de Internet no Rio Grande do Sul.

Você pode gostar...

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *