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

Postfix и Dovecot: почта отображается в отправленном, но ничего во входящем

Вкратце моя проблема:

У меня есть локальный почтовый сервер (postfix и dovecot и с использованием самоназначенного SSL, openssl) на сервере ubuntu 18.04, я могу войти в систему с другого компьютера в той же сети (только предупреждение о самоназначенном ssl).

Но когда я пытаюсь отправить электронное письмо (тому же пользователю или другому пользователю), я вижу письмо в папке отправленных. но ничего во входящих. вот мой вывод /var/log/mail.log:

May 25 13:44:17 tsun postfix/submission/smtpd[19418]: Anonymous TLS connection established from unknown[192.168.7.17]: TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits)
May 25 13:44:17 tsun postfix/submission/smtpd[19418]: BBA4C802F5: client=unknown[192.168.7.17], sasl_method=PLAIN, sasl_username=veelst
May 25 13:44:17 tsun postfix/cleanup[19425]: BBA4C802F5: message-id=<1c36cd2d-de87-5c32-d053-847623cde2bd@tsun.net>
May 25 13:44:17 tsun postfix/qmgr[19411]: BBA4C802F5: from=<veelst@tsun.net>, size=584, nrcpt=1 (queue active)
May 25 13:44:17 tsun postfix/smtp[19426]: BBA4C802F5: to=<veelst@tsun.net>, relay=none, delay=0.06, delays=0.05/0.01/0/0, dsn=5.4.6, status=bounced (mail for tsun.net loops back to myself)
May 25 13:44:17 tsun postfix/cleanup[19425]: D3AE1802F7: message-id=<20200525134417.D3AE1802F7@mail.tsun.net>
May 25 13:44:17 tsun postfix/submission/smtpd[19418]: disconnect from unknown[192.168.7.17] ehlo=2 starttls=1 auth=1 mail=1 rcpt=1 data=1 quit=1 commands=8
May 25 13:44:17 tsun postfix/bounce[19427]: BBA4C802F5: sender non-delivery notification: D3AE1802F7
May 25 13:44:17 tsun postfix/qmgr[19411]: D3AE1802F7: from=<>, size=2425, nrcpt=1 (queue active)
May 25 13:44:17 tsun postfix/qmgr[19411]: BBA4C802F5: removed
May 25 13:44:17 tsun postfix/smtp[19426]: D3AE1802F7: to=<veelst@tsun.net>, relay=none, delay=0.04, delays=0.04/0/0/0, dsn=5.4.6, status=bounced (mail for tsun.net loops back to myself)
May 25 13:44:17 tsun postfix/qmgr[19411]: D3AE1802F7: removed
May 25 13:44:18 tsun dovecot: imap(veelst)<19277><Nqj5HnmmNMzAqAcR>: Connection closed (IDLE running for 0.001 + waiting input for 0.002 secs, 0.001 in locks, 2 B in + 10 B out, state=wait-input) in=906 out=301$
May 25 13:44:18 tsun dovecot: imap-login: Login: user=<veelst>, method=PLAIN, rip=192.168.7.17, lip=192.168.7.146, mpid=19429, TLS, session=</PPpLHmmhM3AqAcR>

Подробно:

У меня есть локальный почтовый сервер под управлением Ubuntu Server 18.04 с IP-адресом 192.168.7.146

Вывод hostnamectl:

veelst@tsun:/var/mail$ hostnamectl 
   Static hostname: tsun
         ...
  Operating System: Ubuntu 18.04.1 LTS
            Kernel: Linux 4.15.0-101-generic
      Architecture: x86-64

Есть postfix и dovecot:

postconf mail_version
mail_version = 3.3.0
dovecot --version
2.3.10.1 (a3d0e1171)

На другом компьютере у меня установлен DNS-сервер BIND9 со следующей зоной, указывающей для почтового сервера:

$ttl 38400
tsun.net.   IN  SOA thome.local. admin.tsun.net. (
            1589393672
            10800
            3600
            604800
            38400 )
tsun.net.   IN  NS  thome.local.
mail.tsun.net. 3600 IN A   192.168.7.146
tsun.net.      3600 IN MX  0 mail.tsun.net.
tsun.net.      3600 IN TXT "v=spf1 mx ~all"
tsun.net.   IN  A   192.168.7.146

Как я уже сказал выше, я могу нормально войти в систему, используя свой компьютер в той же сети, используя thunderbird. также Porst легко доступны с моего компьютера, вывод команды sudo nmap mail.tsun.net:

Starting Nmap 7.80 ( https://nmap.org ) at 2020-05-25 13:34 +03
Nmap scan report for mail.tsun.net (192.168.7.146)
Host is up (0.00074s latency).
rDNS record for 192.168.7.146: msun
Not shown: 991 closed ports
PORT    STATE SERVICE
22/tcp  open  ssh
25/tcp  open  smtp
80/tcp  open  http
110/tcp open  pop3
143/tcp open  imap
465/tcp open  smtps
587/tcp open  submission
993/tcp open  imaps
995/tcp open  pop3s

Nmap done: 1 IP address (1 host up) scanned in 4.04 seconds

Еще одна полезная информация о моей настройке:

голубь -n:

# 2.3.10.1 (a3d0e1171): /etc/dovecot/dovecot.conf
# OS: Linux 4.15.0-101-generic x86_64 Ubuntu 18.04.1 LTS 
# Hostname: tsun
auth_mechanisms = plain login
mail_location = mbox:~/mail:INBOX=/var/mail/%u
mail_privileged_group = mail
namespace inbox {
  inbox = yes
  location = 
  mailbox Drafts {
    auto = create
    special_use = \Drafts
  }
  mailbox Junk {
    auto = create
    special_use = \Junk
  }
  mailbox Sent {
    special_use = \Sent
  }
  mailbox "Sent Messages" {
    special_use = \Sent
  }
  mailbox Trash {
    auto = create
    special_use = \Trash
  }
  prefix = 
}
passdb {
  driver = pam
}
protocols = imap pop3
service auth {
  unix_listener /var/spool/postfix/private/auth {
    group = postfix
    mode = 0660
    user = postfix
  }
}
service lmtp {
  unix_listener /var/spool/postfix/private/dovecot-lmtp {
    group = postfix
    mode = 0600
    user = postfix
  }
}
ssl_cert = </var/www/cert/certificate.pem
ssl_key = # hidden, use -P to show it
ssl_min_protocol = TLSv1.2
ssl_prefer_server_ciphers = yes
userdb {
  driver = passwd
}

postconf -n:

alias_database = hash:/etc/aliases
alias_maps = hash:/etc/aliases
append_dot_mydomain = no
biff = no
compatibility_level = 2
inet_interfaces = all
inet_protocols = all
mailbox_size_limit = 0
mailbox_transport = lmtp:unix:private/dovecot-lmtp
message_size_limit = 52428800
mydestination = $myhostname, localhost.tsun.net, localhost
myhostname = mail.tsun.net
mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128
myorigin = /etc/mailname
readme_directory = no
recipient_delimiter = +
relayhost =
smtp_tls_loglevel = 1
smtp_tls_mandatory_protocols = !SSLv2, !SSLv3, !TLSv1, !TLSv1.1
smtp_tls_protocols = !SSLv2, !SSLv3, !TLSv1, !TLSv1.1
smtp_tls_security_level = may
smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache
smtpd_banner = $myhostname ESMTP $mail_name (Ubuntu)
smtpd_relay_restrictions = permit_mynetworks permit_sasl_authenticated defer_unauth_destination
smtpd_tls_cert_file = /var/www/cert/certificate.pem
smtpd_tls_key_file = /var/www/cert/key.pem
smtpd_tls_loglevel = 1
smtpd_tls_mandatory_protocols = !SSLv2, !SSLv3, !TLSv1, !TLSv1.1
smtpd_tls_protocols = !SSLv2, !SSLv3, !TLSv1, !TLSv1.1
smtpd_tls_security_level = may
smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache
smtpd_use_tls = yes
smtputf8_enable = no

Также я использовал эти команды для создания своего ssl

$openssl genrsa -out key.pem 2048
$openssl req -new -sha256 -key key.pem -out csr.csr
$sudo openssl req -x509 -sha256 -days 365 -key key.pem -in csr.csr -out certificate.pem
$openssl req -in csr.csr -text -noout | grep -i "Signature.*SHA256" && echo "All is well" || echo "This certificate will stop working in 2017! You must update OpenSSL to generate a widely-compatible certificate"

(у меня вывод "Все хорошо")

После решил мою проблему. в журнале появилась новая ошибка:

[private/dovecot-lmtp]: Connection refused

исправил это, добавив lmtp к протоколам в /etc/dovecot/dovecot.conf:

protocols = imap pop3 lmtp

это исправило ошибку отказа в соединении.

Затем я получил новую ошибку, что пользователь не найден. пришлось исправить это, перейдя в /etc/dovecot/conf.d/10-auth.conf и раскомментировав строку:

auth_username_format = %n

теперь я могу отправлять и получать почту из той же сети!

Postfix точно скажет вам, почему:

status=bounced (mail for tsun.net loops back to myself)

Попробуй добавить tsun.net к mydestination линия в вашем /etc/postfix/main.cf. Строка, в которой вы указываете это, должна быть там для домена «localhost.tsun.net» и «localhost». Может опечатка?

Затем перезапустите демон Postfix:

/etc/init.d/postfix restart