Пока у меня есть почтовый сервер, настроенный с использованием postfix / dovecot на Raspberry Pi (Debian). Я могу отправлять письма извне и изнутри без проблем, но могу получать письма только с моего сервера.

Я думаю, это потому, что у меня все настроено для TLS, но у меня еще нет действительного сертификата для моего сервера, однако для получения действительного сертификата мне нужен действующий адрес электронной почты для моего сервера (admin@myserver.com). Что-то вроде петли, в которой я застрял, если мне нужен адрес электронной почты для сертификата и требуется сертификат для адреса электронной почты!

По этой причине, как я могу временно разрешить моему серверу принимать соединения и электронные письма, НЕ требующие TLS (по сути, никакой безопасности, пока я не получу свой сертификат)? Это правильный путь? Возможно, я нахожусь в левом поле, но все, что я пытаюсь, это получать электронные письма ....

Вот мои настройки ниже:

Мой файл main.cf:

# See /usr/share/postfix/main.cf.dist for a commented, more complete version


# Debian specific:  Specifying a file name will cause the first
# line of that file to be used as the name.  The Debian default    
# is /etc/mailname.
#myorigin = /etc/mailname

smtpd_banner = $myhostname ESMTP $mail_name (Debian/GNU)
biff = no

# appending .domain is the MUA's job.
append_dot_mydomain = no

# Uncomment the next line to generate "delayed mail" warnings
#delay_warning_time = 4h

readme_directory = no

# TLS parameters
smtpd_tls_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem
smtpd_tls_key_file=/etc/ssl/private/ssl-cert-snakeoil.key
#smtpd_tls_CAfile = /etc/postfix/ssl/caroot.crt
smtpd_use_tls=yes
smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache
smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache

# See /usr/share/doc/postfix/TLS_README.gz in the postfix-doc package for
# information on enabling SSL in the smtp client.

myhostname = finendale.com
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases
myorigin = /etc/mailname
mydestination = localhost, finendale.com, localhost.finendale.com
smtp_sasl_auth_enable = yes
broken_sasl_auth_clients = yes
smtp_sasl_password_maps = hash:/etc/postfix/sasl_password
smtp_sasl_security_options = noanonymous
relayhost = [relay.dynu.com]:2525
smtp_generic_maps = hash:/etc/postfix/generic
mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128
mailbox_size_limit = 0
recipient_delimiter = +
inet_interfaces = all
inet_protocols = ipv4
smtpd_recipient_restrictions =
permit_sasl_authenticated,
 permit_mynetworks,
 reject_unauth_destination
smtpd_helo_required = yes
smtpd_helo_restrictions = 
permit_mynetworks,
permit_sasl_authenticated,
reject_invalid_helo_hostname,
reject_non_fqdn_helo_hostname,
reject_unknown_help_hostname
check_helo_access hash:/etc/postfix/helo_access
smtpd_sasl_type = dovecot
smtpd_sasl_path = private/auth
smtpd_sasl_auth_enable = yes
#smtpd_tls_auth_only = yes
home_mailbox = Maildir/

Мой файл master.cf:

#
# Postfix master process configuration file.  For details on the format
# of the file, see the master(5) manual page (command: "man 5 master").
#
# Do not forget to execute "postfix reload" after editing this file.
#
# ==========================================================================
# service type  private unpriv  chroot  wakeup  maxproc command + args
#               (yes)   (yes)   (yes)   (never) (100)
# ==========================================================================
2525      inet  n       -       -       -       -       smtpd
#smtp      inet  n       -       -       -       1       postscreen
#smtpd     pass  -       -       -       -       -       smtpd
#dnsblog   unix  -       -       -       -       0       dnsblog
#tlsproxy  unix  -       -       -       -       0       tlsproxy
submission inet n       -       y       -       -       smtpd
#  -o syslog_name=postfix/submission
#  -o smtpd_tls_security_level=encrypt
#  -o smtpd_sasl_auth_enable=yes
#  -o smtpd_client_restrictions=permit_sasl_authenticated,reject
#  -o milter_macro_daemon_name=ORIGINATING
smtps     inet  n       -       -       -       -       smtpd
 -o syslog_name=postfix/smtps
 -o smtpd_tls_wrappermode=yes
#  -o smtpd_recipient_restrictions=permit_sasl_authenticated,reject 
#  -o smtpd_sasl_auth_enable=yes
#  -o smtpd_client_restrictions=permit_sasl_authenticated,reject
#  -o milter_macro_daemon_name=ORIGINATING
#628       inet  n       -       -       -       -       qmqpd
pickup    fifo  n       -       -       60      1       pickup
cleanup   unix  n       -       -       -       0       cleanup
qmgr      fifo  n       -       n       300     1       qmgr
#qmgr     fifo  n       -       n       300     1       oqmgr
tlsmgr    unix  -       -       -       1000?   1       tlsmgr
rewrite   unix  -       -       -       -       -       trivial-rewrite
bounce    unix  -       -       -       -       0       bounce
defer     unix  -       -       -       -       0       bounce
trace     unix  -       -       -       -       0       bounce
verify    unix  -       -       -       -       1       verify 
flush     unix  n       -       -       1000?   0       flush
proxymap  unix  -       -       n       -       -       proxymap
proxywrite unix -       -       n       -       1       proxymap
smtp      unix  -       -       -       -       -       smtp
relay     unix  -       -       -       -       -       smtp
#       -o smtp_helo_timeout=5 -o smtp_connect_timeout=5
showq     unix  n       -       -       -       -       showq
error     unix  -       -       -       -       -       error
retry     unix  -       -       -       -       -       error
discard   unix  -       -       -       -       -       discard
local     unix  -       n       n       -       -       local
virtual   unix  -       n       n       -       -       virtual
lmtp      unix  -       -       -       -       -       lmtp
anvil     unix  -       -       -       -       1       anvil
scache    unix  -       -       -       -       1       scache
#
# ====================================================================
# Interfaces to non-Postfix software. Be sure to examine the manual
# pages of the non-Postfix software to find out what options it wants.
#
# Many of the following services use the Postfix pipe(8) delivery
# agent.  See the pipe(8) man page for information about ${recipient}
# and other message envelope options.
# ====================================================================
#
# maildrop. See the Postfix MAILDROP_README file for details.
# Also specify in main.cf: maildrop_destination_recipient_limit=1
#
maildrop  unix  -       n       n       -       -       pipe
  flags=DRhu user=vmail argv=/usr/bin/maildrop -d ${recipient}
#
# ====================================================================
#
# Recent Cyrus versions can use the existing "lmtp" master.cf entry.
#
# Specify in cyrus.conf:
#   lmtp    cmd="lmtpd -a" listen="localhost:lmtp" proto=tcp4 
#
# Specify in main.cf one or more of the following:
#  mailbox_transport = lmtp:inet:localhost
#  virtual_transport = lmtp:inet:localhost
#
# ====================================================================
#
# Cyrus 2.1.5 (Amos Gouaux)
# Also specify in main.cf: cyrus_destination_recipient_limit=1
#
#cyrus     unix  -       n       n       -       -       pipe
#  user=cyrus argv=/cyrus/bin/deliver -e -r ${sender} -m ${extension} ${user}
#
# ====================================================================
# Old example of delivery via Cyrus.
#
#old-cyrus unix  -       n       n       -       -       pipe
#  flags=R user=cyrus argv=/cyrus/bin/deliver -e -m ${extension} ${user}
#
# ====================================================================
#
# See the Postfix UUCP_README file for configuration details.
#
uucp      unix  -       n       n       -       -       pipe
  flags=Fqhu user=uucp argv=uux -r -n -z -a$sender - $nexthop!rmail ($recipient)
#
# Other external delivery methods.
#
ifmail    unix  -       n       n       -       -       pipe
  flags=F user=ftn argv=/usr/lib/ifmail/ifmail -r $nexthop ($recipient)
bsmtp     unix  -       n       n       -       -       pipe
  flags=Fq. user=bsmtp argv=/usr/lib/bsmtp/bsmtp -t$nexthop -f$sender $recipient
scalemail-backend unix  -   n   n   -   2   pipe
  flags=R user=scalemail argv=/usr/lib/scalemail/bin/scalemail-store ${nexthop} ${user} ${extension}
mailman   unix  -       n       n       -       -       pipe
  flags=FR user=list argv=/usr/lib/mailman/bin/postfix-to-mailman.py
  ${nexthop} ${user}

1 ответ1

0

Я думаю, это потому, что у меня есть все настройки для TLS, но у меня еще нет действующего сертификата

Вы должны сначала проверить журналы Postfix - и ваши журналы брандмауэра - чтобы убедиться , что на самом деле проблема.

По этой причине, как я могу временно разрешить моему серверу принимать соединения и электронные письма, НЕ требующие TLS (по сути, никакой безопасности, пока я не получу свой сертификат)?

Это зависит от того, как Dynu доставляет вам почту. Обратите внимание, что в соответствии с вашей диаграммой и записями DNS ваш сервер не должен получать никаких прямых подключений от отправителей почты, только от ретранслятора Dynu.

На вашей диаграмме написано, что вы настроили Dynu для пересылки почты на ваш сервер через порт 465. Поскольку это только порт TLS, вы должны сначала проверить конфигурацию в Dynu, чтобы не ожидать действительный сертификат. В зависимости от того, какие опции он предлагает, либо настройте службу Dynu для приема недействительных сертификатов (которые у вас уже есть), либо для пересылки почты на другой порт (порт 2525 не является TLS в вашей конфигурации).

  • Если Dynu настроен на доставку почты через порт 465 на вашем сервере, существующий самозаверяющий сертификат должен работать достаточно хорошо, чтобы говорить по TLS.

  • Если Dynu настроен на доставку почты на порт 2525 на вашем сервере, удалите добавленные вами параметры "require TLS", в частности smtpd_use_tls . На самом деле, его не следует устанавливать глобально, во-первых, разные порты предъявляют разные требования к применению TLS. (Обратите внимание, что службы 'submission' и 'smtps' уже имеют строки параметров -o для принудительного применения TLS для каждого порта.)

Обратите внимание, что имя сертификата должно совпадать с фактическим (под) доменом, к которому подключаются другие SMTP-клиенты, - он не сравнивается с @domain в вашем адресе электронной почты. Хорошо, если в вашем случае они идентичны, но для доменов большинства людей это не так.

При прямой доставке сертификат должен совпадать с именем в записях MX. Например, если у вас был MX 0 mail.finendale.com. , вам потребуется сертификат для "mail.finendale.com".

Но поскольку вы получаете почту только через ретранслятор Dynu, сертификат должен соответствовать любому имени хоста, введенному в конфигурации Dynu.

Вот моя установка ниже

Метки портов на диаграмме не имеют смысла. Ваш домен не получает почту ни на один порт и не пересылает ее на любой другой порт. Вместо этого записи MX на finendale.com сообщают отправителям напрямую доставлять входящую почту на порт 25 mx1.dynu.com .

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .