Назад | Перейти на главную страницу

Что использовать для имени хоста на выделенном сервере Linux?

Я недавно столкнулся с вики Debian, не рекомендуя устанавливать eximс primary_hostname явно. Насколько я могу судить, вот код который выбирает primary_hostname.

В принципе, либо у меня есть полное доменное имя в /etc/hostname (myhostname.example.com), или просто myhostname и линия в /etc/hosts:

ip.add.re.ss  myhostname.example.com  myhostname

Теперь, какой IP-адрес? 127.0.0.1 или внешний?

Я предполагаю, что полное доменное имя указывает на localhost хорошо. Так, myhostname в /etc/hostname, и следующие в /etc/hosts?

127.0.0.1  myhostname.example.com  myhostname  localhost

Для меня это выглядит многообещающим:

$ hostname
myhostname
$ hostname -d
example.com
$ hostname --fqdn
myhostname.example.com

Кроме этого exim вероятно использовал бы myhostname.example.com для приветствия (EHLO). И это может повлиять на то, будут ли электронные письма считаться спамом или нет. Это, или я должен отправить письмо от myhostname.example.comне из example.com?

Может ли кто-нибудь разорвать цикл для меня? И это не только о exim. Есть ли оптимальные настройки, которые сделают всех счастливыми? Или большинство из них?

Не уверен, что согласен с советом не настраивать primary_hostname явно. Конечно, в принципе хорошая идея - настроить имя хоста системы только в одном месте, а затем передать его через остальную систему, но реальность отправки электронной почты 2019 года такова, что вы не можете просто изменить исходящее полное доменное имя и ожидать чего-то чтобы продолжать работать. В идеале обратный DNS вашего исходящего IP-адреса и вашего HELO-имени будут одинаковыми и будут последовательно преобразовываться обратно в IP-адрес. Поэтому очень важно настроить правильный IP-адрес во внешнем DNS для вашего домена. Если вы знаете, что ваш сервер всегда будет иметь надежный доступ к этому внешнему DNS, тогда нет причин помещать что-либо из этого в /etc/hosts и я бы просто придерживался 127.0.0.1 localhost там.

Для Exim я бы лично рекомендовал явную настройку primary_hostname. Кроме того, я хотел бы обратить ваше внимание на qualify_domain параметр, который по умолчанию равен значению primary_hostname но вы также можете явно указать только свое доменное имя.

Теперь, когда я думаю об этом, идея рекомендации может заключаться в том, чтобы не изменять настройку, которая влияет на других. Но лучше измените любой конкретный параметр, который вы хотите изменить. Хочу изменить From заголовок? + Изменить /etc/mailname. HELO имя хоста? + Изменить helo_data. Что в основном сводится к:

/etc/exim4/exim4.conf.localmacros (HELO имя хоста):

REMOTE_SMTP_HELO_DATA = mydomain.com

/etc/mailname (From заголовок):

mydomain.com

затем

# update-exim4.conf
# systemctl reload exim4

проверка

Вы можете подтвердить, что он работает, отправив тестовое письмо на порт 25. средство проверки подлинности:

echo test email | exim check-auth@verifier.port25.com  # replies back
echo test email | exim check-auth2@verifier.port25.com  # replies back
echo test email | exim check-auth-jsmith=yourdomain.com@verifier.port25.com  \
    # replies to jsmith@yourdomain.com

В полученном отчете будет строка:

HELO hostname:  somedomain.com

Или просто добавьте -v вариант:

# echo test email | exim -v root@dst.com
LOG: MAIN
  <= root@src.com U=root P=local S=290
delivering 1hM501-0007Nn-7A
R: dnslookup for root@dst.com
T: remote_smtp for root@dst.com
Connecting to mail.dst.com [ip.add.re.ss]:25 ... connected
  SMTP<< 220 dst.com ESMTP Postfix (Debian/GNU)
  SMTP>> EHLO src.com
  SMTP<< 250-dst.com
         250-PIPELINING
         250-SIZE 10240000
         250-VRFY
         250-ETRN
         250-STARTTLS
         250-ENHANCEDSTATUSCODES
         250-8BITMIME
         250 DSN
  SMTP>> STARTTLS
  SMTP<< 220 2.0.0 Ready to start TLS
  SMTP>> EHLO src.com
  SMTP<< 250-dst.com
         250-PIPELINING
         250-SIZE 10240000
         250-VRFY
         250-ETRN
         250-ENHANCEDSTATUSCODES
         250-8BITMIME
         250 DSN
  SMTP>> MAIL FROM:<root@src.com> SIZE=1322
  SMTP>> RCPT TO:<root@dst.com>
  SMTP>> DATA
  SMTP<< 250 2.1.0 Ok
  SMTP<< 250 2.1.5 Ok
  SMTP<< 354 End data with <CR><LF>.<CR><LF>
  SMTP>> writing message and terminating "."
  SMTP<< 250 2.0.0 Ok: queued as 0019EEC0B6D
  SMTP>> QUIT
LOG: MAIN
  => root@dst.com R=dnslookup T=remote_smtp H=mail.dst.com [ip.add.re.ss] X=TLS1.0:RSA_AES_256_CBC_SHA1:32 DN="CN=dst.com"
LOG: MAIN
  Completed

Кроме того, вы можете проверить почтовый ящик назначения:

получено exim:

Received: from [ip.add.re.ss] (helo=HELO_HOSTNAME)
    ...

получено postfix:

Received: from HELO_HOSTNAME (myhostname [ip.add.re.ss])
    ...

имя хоста и /etc/hosts

Я считаю, что имя хоста должно быть именем хоста, а не полным доменным именем.

Добавлять ли это в /etc/hosts... Я бы не. Судя по тому, что я вижу, программное обеспечение в наши дни не ожидает, что имя хоста будет разрешено ни к чему. Или его можно отменить. (То есть, если вы где-то не используете имя хоста в качестве имени домена.) Это означает, что нужно только это для 127.0.0.1:

127.0.0.1  localhost