Ubuntu sendmail “Relaying denied. Nome do Ip possivelmente forjado ”(em resposta a rcpt to command)

3

Quando tento enviar um email (de um servidor diferente) para uma conta local no meu servidor, recebo o seguinte erro:

Relaying denied. IP name possibly forged [W.X.Y.Z]

Veja o que eu faço:

[email protected]:~$ telnet subdomain.domain.com 25
Trying A.B.C.D...
Connected to subdomain.domain.com.
Escape character is '^]'.
220 subdomain.domain.com ESMTP Sendmail 8.14.4/8.14.4/Debian-2ubuntu1; ...
HELO a-different-domain.com
250 subdomain.domain.com Hello ...
MAIL FROM: <[email protected]>
250 2.1.0 <[email protected]>... Sender ok
RCPT TO: <[email protected]>
550 5.7.1 <[email protected]>... Relaying denied. IP name possibly forged [W.X.Y.Z]

O problema é que posso enviar emails bem se usar RCPT TO: <[email protected]> em vez de RCPT TO: <[email protected]>

Por favor, veja abaixo a configuração que eu uso atualmente.

Configuração do DNS:

Host                 Type  Priority  Redirect to
subdomain.domain.com MX    10        mail.subdomain.domain.com
subdomain.domain.com A     10        A.B.C.D

Configuração do servidor de email:

OS: Ubuntu
Email Server: sendmail

Em / etc / mail / access eu tenho (entre outros):

mail.subdomain.domain.com
subdomain.domain.com

/ etc / mail / local-host-names:

localhost
mail.subdomain.domain.com
subdomain.domain.com

Sobre o mascaramento aqui está o que eu tenho em /etc/mail/sendmail.mc:

MASQUERADE_AS('subdomain.domain.com')dnl
MASQUERADE_DOMAIN('subdomain.domain.com.')dnl
MASQUERADE_DOMAIN(localhost)dnl
MASQUERADE_DOMAIN(localhost.localdomain)dnl

Apenas para esclarecimentos: mail.subdomain.domain.com e subdomain.domain.com apontam para o mesmo endereço IP.

================= UPDATE1 =================

@Andrzej A. Filip

Sim, reiniciei o sendmail.

Aqui está a saída de echo '$=w' | sendmail -Am -bt :

root@subdomain:/etc/mail# echo '$=w' | sendmail -Am -bt
ADDRESS TEST MODE (ruleset 3 NOT automatically invoked)
Enter <ruleset> <address>
> [A.B.C.D]
mail.subdomain.domain.com
[ip6-loopback]
localhost
subdomain
ip6-localhost
[127.0.0.1]
[127.0.0.2]
subdomain.domain.com
[ip6-localhost]
ip6-loopback

================= UPDATE2 =================

Eu testei e descobri (sem alterar a configuração do DNS) que se eu adicionar subdomainXXX.domain.com (onde subdomainXXX é qualquer string) a / etc / mail / local-host-names e então testarei o envio de um email de um servidor remoto, simplesmente funciona:

user@remote-server:/# telnet subdomain.domain.com 25
Trying A.B.C.D...
Connected to subdomain.domain.com.
Escape character is '^]'.
220 subdomain.domain.com ESMTP Sendmail 8.14.4/8.14.4/Debian-2ubuntu1; ...
HELO remote-server
250 subdomain.domain.com Hello ....
MAIL FROM: <...>
250 2.1.0 <...>... Sender ok
RCPT TO: <[email protected]>
250 2.1.5 <[email protected]>... Recipient ok

Por isso, funciona para qualquer subdomínio, exceto para o que me interessa (subdomínio.domínio.com - que é, na verdade, o nome do host do servidor).

    
por Razvan 15.03.2013 / 18:18

3 respostas

0

E .. depois de várias horas eu encontrei o problema:

localhost.localdomain precisa ser colocado junto com subdomain.domain em /etc/mail/local-host-names .

Portanto, o conteúdo correto para /etc/mail/local-host-names deve ser:

localhost
localhost.localdomain
subdomain.domain.com

Não NÃO FUNCIONA se você usar somente:

localhost
subdomain.domain.com
    
por 15.03.2013 / 23:50
1

"Relaying denied" sugere que o sendmail em mail.subdomain.domain.com não trata subdomain.domain.com como um domínio de email local, um domínio de email hospedado por ele.

Você reiniciou / recarregou o servidor sendmail depois de modificar o arquivo / etc / mail / local-host-name no host mail.subdomain.domain.com?

SIM = > O que é reportado pelo comando abaixo executado pela raiz no host mail.subdomain.domain.com?

echo '$=w' | sendmail -Am -bt
    
por 15.03.2013 / 18:41
1

Eu dei uma olhada no meu sendmail.cf. A mensagem de erro informada por Relaying denied. IP name possibly forged ocorre no conjunto de regras Relay_ok . Relay_ok é executado por Basic_check_rcpt , que por sua vez é executado por checkrcpt , que por sua vez é executado por check_rcpt (confuso, eu sei). O erro ocorre quando o valor de $&{client_resolve} é FORGED, o que significa que a pesquisa direta não corresponde à pesquisa reversa de DNS.

Portanto, a pergunta é: se tudo que você alterar é incluir ou remover localhost.localdomain de /etc/mail/local-host-names , por que Relay_ok rejeita ou aceita e-mails com base nesse fato? As linhas interessantes em Relay_ok são:

SRelay_ok
R$*                     $: $&{client_addr}
:
R$*                     $: < $&{client_resolve} >

Quando localhost.localdomain não está incluído em /etc/mail/local-host-name , recebemos uma resposta <FORGED> de $&{client_resolve} . Quando está incluído, não percebemos isso. Portanto, a decisão sobre a retransmissão acontece antes de chamar Relay_ok . Isso significa que Rcpt_ok (novamente chamado em Basic_check_rcpt antes de Relay_ok ) decide isso.

Agora, a partir da descrição que o OP fornece, o sendmail do Ubuntu parece não incluir automaticamente nomes em /etc/hosts em $ = w e é por isso que localhost.localdomain precisa ser incluído especificamente. Mas por quê?

[Se o post original tivesse postado o sendmail.mc completo, teria ajudado muito]

    
por 17.03.2013 / 01:59