Como eu mudo o primary_hostname do Exim4 em uma caixa Debian?

23

Algum servidor SMTP remoto Estou tentando entregar mensagens para recusar a aceitação do HELO do meu servidor:

504 5.5.2 <localhost>: Helo command rejected: need fully-qualified hostname

Aparentemente, meu servidor Exim4 envia localhost como seu FQDN. Pesquisando na net e em vários arquivos de configuração, aprendi que o valor enviado como FQDN durante o HELO é extraído da variável de configuração primary_hostname .

Minha pergunta é: qual é a maneira correta de mudar esta variável em um sistema Debian? Eu acho que posso simplesmente codificar um valor nos arquivos de configuração do Exim4, mas parece que faria mais sentido se o valor automagicamente correspondesse a /etc/mailname ou alguma outra configuração de nome centralizada.

Tenho a sensação de que a resposta à minha pergunta pode ser encontrada neste texto em o wiki do Debian :

The name used by Exim in EHLO/HELO is pulled from configuration option primary_hostname. Debian's exim4 default configuration does not set primary_hostname. Exim then defaults to uname() to find the host name. If that call only returns one component, gethostbyname() or getipnodebyname() is used to obtain the fully qualified host name.

If your Exim HELOs as localhost.localdomain, then you have most probably a misconfigured /etc/hosts created by some versions of the Debian installer. In this case, please fix your /etc/hosts.

Infelizmente, não estou familiarizado o suficiente com a administração do servidor Linux para saber exatamente o que isso significa: (

    
por Jørn Schou-Rode 27.07.2009 / 17:35

7 respostas

21

Seu arquivo / etc / hosts deve ter pelo menos dois registros. O primeiro registro deve ser da seguinte forma:

<IP_ADDRESS> <HOST_FQDN> <HOSTNAME>

o segundo deve estar no formato:

127.0.0.1 localhost

Você também precisa ter certeza de que seu arquivo / etc / hostname contém o FQDN do servidor, e que o hostname -f retorne o FQDN de seus servidores. Se você tiver certeza de que tudo está correto, e reinicie o Exim, você deve começar a vê-lo corretamente.

    
por 27.07.2009 / 17:45
7

Se você usar um único arquivo de configuração, defina a variável PRIMARY_HOST_NAME com o nome desejado:

Por exemplo, em /etc/exim4/exim4.conf:

PRIMARY_HOST_NAME = mybox.mydomain.com

ou defina MAIN_HARDCODE_PRIMARY_HOSTNAME em update-exim4.conf.conf se você estiver usando a configuração do arquivo dividido.

Por segurança, reinicie o Exim.

    
por 27.07.2009 / 18:56
4

O nome do host primário é solicitado durante a instalação do exim4. Você pode executar o comando

sudo dpkg-reconfigure exim4-config

para passar pelos prompts novamente.

Tanto quanto eu sei, se você já estiver usando a 'configuração dividida' (muitos pequenos arquivos sob /etc/exim4/conf.d) e optar por ficar com isso quando solicitado, o dpkg-reconfigure não deve Sobrescreva qualquer uma das suas alterações de configuração existentes, exceto as configurações que ele solicita, mas, como sempre, você deve fazer um backup primeiro para estar seguro.

    
por 27.07.2009 / 18:00
1

depois de adicionar a mesma string em / etc / hosts, o hostname -f retornará seu FQDN

    
por 12.12.2010 / 12:02
1

A variável primary_hostname é preenchida de acordo com o nome de domínio totalmente qualificado (FQDN) do sistema. No Debian e nos sistemas relacionados, isso geralmente é formado usando o conteúdo dos arquivos /etc/hostname e /etc/hosts . O arquivo de nome de host deve conter o nome de host abreviado (por exemplo, foo ), e o arquivo de hosts deve conter uma entrada que resolve foo into foo.bar.baz , ou seja, hostname com seu sufixo de domínio (normalmente correspondente a uma entrada DNS).

A saída do comando hostname (sem nenhum parâmetro) retornará o primeiro, e a saída hostname -f retornará o último.

O arquivo hostname é normalmente preenchido durante a instalação, e o arquivo hosts pode ser editado para ter um outro registro nele ao lado dos registros padrão do host local - deve ser da forma:

<IP address> <hostname FQDN> <hostname>

As três colunas devem estar separadas por espaços ou tabulações, não importa. O endereço IP pode ser 127.0.0.1, assim como o localhost, mas a parte do nome do host corresponde ao nome do host do sistema e a parte do meio deve ser o FQDN, ou seja, o nome do host com um sufixo de domínio.

Para verificar se a linha está funcionando, basta executar hostname -f e verificar se ela retorna o FQDN do seu servidor.

Por fim, reinicie o Exim, por exemplo com:

sudo service exim4 restart

Depois você deve começar a ver o HELO corretamente. Sua variável pode ser verificada executando:

/usr/sbin/exim4 -bP primary_hostname

(NB: Eu originalmente fiz isso como uma edição para a resposta de 2009, mas foi rejeitada. As coisas que eu estava originalmente corrigindo são: não havia necessidade de repetir o registro localhost padrão, apenas explicar o que o a adição deve ser; explicar qual endereço IP pode ser usado; explicar o que é FQDN; explicar como verificar o próprio exim.)

    
por 26.12.2017 / 13:22
0

Eu tenho o mesmo problema. Eu preciso alterar o nome do host de e-mail, porque alguns e-mails falham, quando eles foram enviados. Com esse erro:

host receiver.server.com [200.200.200.200]: 550 <[email protected]>: Sender address rejected: Domain not found

Então eu mudo para o /etc/exim.config do parâmetro primary_hostname

Algum código deste arquivo:

smtp_connect_backlog = 50
smtp_accept_max = 100

#primary_hostname = myhostname.com 
deliver_queue_load_max = 3
    
por 15.02.2012 / 14:53
0

no WHM para o Exim Configuration Manager - > Editor Avançado

role para baixo até encontrar "Adicionar configurações adicionais" (um grande botão azul) e clique nele.

na nova linha, adicione [primary_hostname] = [mydomain.com]

role até o final e clique em Salvar.

    
por 23.03.2016 / 16:40