Por que o Postfix não rejeita as tentativas de conexão de um cliente específico?

3

Meu servidor SMTP está sendo investigado. Parece um ataque de força bruta no SASL, onde eles estão passando por um dicionário de senhas.

Tendo visto milhares dessas linhas nos arquivos de log

Sep 18 14:09:52 xxx postfix/smtpd[7412]: connect from ca255.calcit.fastwebserver.de[146.0.42.124]
Sep 18 14:09:55 xxx postfix/smtpd[7412]: warning: ca255.calcit.fastwebserver.de[146.0.42.124]: SASL LOGIN authentication failed: authentication failure
Sep 18 14:09:55 xxx postfix/smtpd[7412]: lost connection after AUTH from ca255.calcit.fastwebserver.de[146.0.42.124]
Sep 18 14:09:55 xxx postfix/smtpd[7412]: disconnect from ca255.calcit.fastwebserver.de[146.0.42.124]

Eu modifiquei meu main.cf assim:

inet_interfaces = all
smtpd_sasl_auth_enable=yes
smtpd_helo_required = yes
smtpd_sender_restrictions = reject_unknown_address

smtpd_client_restrictions =  check_client_access hash:/etc/postfix/maps/access_client,
                             permit_mynetworks,
                             reject

smtpd_recipient_restrictions = check_client_access hash:/etc/postfix/maps/access_client,
                               permit_mynetworks,
                               reject_non_fqdn_sender,
                               reject_non_fqdn_recipient,
                               reject_unknown_sender_domain,
                               reject_unknown_recipient_domain,
                               permit_sasl_authenticated,
                               reject_unauth_pipelining,
                               reject_unauth_destination,
                               reject_rbl_client zen.spamhaus.org,
                               reject_rbl_client list.dsbl.org
                               permit

broken_sasl_auth_clients = yes

E meu / etc / postfix / maps / access_client só tem essa linha:

146.0.42.124 REJECT

No entanto, depois de reiniciar o postfix ainda não há mudança no comportamento, ainda vejo o mesmo erro, portanto o SASL ainda está sendo verificado, embora eu pensasse que com essas configurações o cliente seria rejeitado com base em seu endereço IP antes mesmo de SASL para o jogo?

A segunda questão é - estou transmitindo o tráfego de e-mail de saída de uma máquina para outra na rede interna - além da configuração 'relayhost' na máquina que apenas retransmite, posso manter o restante das configurações do postfix ambos?

    
por patschiboy 18.09.2014 / 06:27

2 respostas

2

O postfix não avalia o smtpd_client_restrictions até que o comando RCPT TO (ou ETRN ) seja enviado.

link

Current Postfix versions postpone the evaluation of client, helo and sender restriction lists until the RCPT TO or ETRN command. This behavior is controlled by the smtpd_delay_reject parameter. Restriction lists are still evaluated in the proper order of (client, helo, etrn) or (client, helo, sender, relay, recipient, data, or end-of-data) restrictions. When a restriction list (example: client) evaluates to REJECT or DEFER the restriction lists that follow (example: helo, sender, etc.) are skipped.

Assim, você pode contornar isso configurando o seguinte no seu main.cf :

smtpd_delay_reject = no

Quanto à sua segunda pergunta, há tantos controles para o postfix, que é quase impossível responder sem ter detalhes completos de sua rede, configuração do postfix e configuração do cliente. A melhor maneira é apenas tentar.

    
por 18.09.2014 / 15:24
0

Se você quiser desabilitar o SASL AUTH para IPs específicos ou intervalos de IP sem os efeitos colaterais de smtpd_delay_reject = no , dê uma olhada no smtpd_discard_ehlo_keyword_address_maps palavra-chave. Exemplo de configuração e explicação:

Configuração

Primeiro, configuramos a palavra-chave em /etc/postfix/main.cf :

smtpd_discard_ehlo_keyword_address_maps = cidr:/etc/postfix/esmtp_cidr

Agora, definimos nossa lista negra em /etc/postfix/esmtp_cidr (o arquivo que acabamos de especificar):

# /etc/postfix/esmtp_cidr
91.200.12.0/24  auth
155.133.82.77   auth
146.0.42.124    auth

Como esse é um arquivo cidr: list, não é necessário postmap run. Mas precisamos dizer ao Postfix para recarregar sua configuração:

service postfix reload

Explicação

Agora, o que isso significa? Para os endereços especificados (IP completo ou um intervalo de IP neste exemplo), dissemos ao Postfix para desativar um recurso ESMTP específico: AUTH . Isso significa que os hosts cobertos não podem mais usar o SASL. Vamos verificar o log:

Aug 11 22:37:39 xxx postfix/smtpd[32630]: connect from unknown[91.200.12.98]
Aug 11 22:37:39 xxx postfix/smtpd[32630]: discarding EHLO keywords: AUTH
Aug 11 22:37:39 xxx postfix/smtpd[32630]: lost connection after AUTH from unknown[91.200.12.98]
Aug 11 22:37:39 xxx postfix/smtpd[32630]: disconnect from unknown[91.200.12.98]

Então, conseguimos o que queremos, sem ter que usar smtpd_delay_reject = no , e, portanto, não precisamos temer os efeitos colaterais do último.

Observação: da mesma maneira, você pode proibir os clientes de usar outros recursos do ESMTP, como pipelining ou starttls. Uma lista de palavras-chave disponíveis pode, por ex. ser encontrado neste artigo da Wikipédia . Com exceção de smtpd_sasl_exceptions_networks , essas palavras-chave não serão apenas anunciadas, mas não serão aceitas em tudo - como mostra o log.

    
por 11.08.2017 / 22:54