Cara menerima email eksternal di server email

0

Sejauh ini saya memiliki server email yang diatur menggunakan postfix / dovecot pada raspberry pi (debian). Saya dapat mengirim email secara eksternal dan internal tanpa masalah namun hanya dapat menerima email dari dalam server saya.

Saya pikir itu karena saya sudah menyiapkan semuanya untuk TLS tetapi belum memiliki sertifikat yang valid untuk server saya namun untuk mendapatkan sertifikat yang valid, saya memerlukan alamat email yang valid untuk server saya ([email protected]). Semacam loop saya terjebak dalam jika saya memerlukan alamat email untuk sertifikat dan memerlukan sertifikat untuk alamat email!

Untuk alasan ini, bagaimana saya bisa mengizinkan server saya untuk sementara waktu menerima koneksi dan email TIDAK memerlukan TLS (pada dasarnya tidak ada keamanan sampai saya mendapatkan sertifikat saya)? Apakah ini cara yang tepat untuk melakukannya? Mungkin saya berada di bidang kiri, tetapi semua yang saya coba adalah menerima email ....

Berikut ini adalah pengaturan saya di bawah ini:

masukkan deskripsi gambar di sini

File main.cf saya:

# 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/

File master.cf saya:

#
# 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}

masukkan deskripsi gambar di sini

Eric F
sumber

Jawaban:

0

Saya pikir itu karena saya sudah menyiapkan semuanya untuk TLS tetapi belum memiliki sertifikat yang valid

Pertama Anda harus memeriksa Postfix log - dan log firewall Anda - memastikan bahwa sebenarnya adalah masalah.

Untuk alasan ini, bagaimana saya bisa mengizinkan server saya untuk sementara waktu menerima koneksi dan email TIDAK memerlukan TLS (pada dasarnya tidak ada keamanan sampai saya mendapatkan sertifikat saya)?

Itu tergantung pada bagaimana Dynu mengirim email kepada Anda. Perhatikan bahwa menurut diagram dan catatan DNS Anda, server Anda tidak seharusnya menerima koneksi langsung dari pengirim surat, hanya dari relai Dynu.

Diagram Anda mengatakan bahwa Anda telah mengkonfigurasi Dynu untuk mengirimkan email ke server Anda pada port 465. Karena ini hanya port TLS, Anda harus terlebih dahulu memeriksa konfigurasi di Dynu untuk tidak mengharapkan sertifikat yang valid. Bergantung pada opsi apa yang ditawarkannya, konfigurasikan layanan Dynu untuk menerima sertifikat yang tidak valid (yang sudah Anda miliki), atau untuk menyampaikan email pada port lain (port 2525 bukan TLS dalam konfigurasi Anda).

  • Jika Dynu dikonfigurasi untuk mengirimkan email ke port 465 di server Anda, sertifikat yang ditandatangani sendiri yang ada harus bekerja cukup baik untuk berbicara TLS.

  • Jika Dynu dikonfigurasi untuk mengirimkan email ke port 2525 di server Anda, hapus parameter "memerlukan TLS" yang telah Anda tambahkan, secara khusus smtpd_use_tls. Sebenarnya, itu tidak boleh ditetapkan secara global di tempat pertama - port yang berbeda memiliki persyaratan yang berbeda tentang apakah akan menegakkan TLS. (Perhatikan bagaimana layanan 'pengiriman' dan 'smtps' sudah memiliki -ogaris opsi untuk menegakkan TLS per port.)

Perhatikan bahwa nama sertifikat harus cocok dengan domain (sub) aktual yang terhubung dengan klien SMTP lainnya - tidak dibandingkan dengan @domain di alamat email Anda. Tidak apa-apa jika keduanya identik dalam kasus Anda, tetapi untuk domain kebanyakan orang tidak.

Dalam pengiriman langsung, sertifikat harus cocok dengan nama dalam catatan MX. Misalnya, jika sudah MX 0 mail.finendale.com., Anda perlu sertifikat untuk "mail.finendale.com".

Tetapi karena Anda hanya menerima email melalui relai Dynu, sertifikat harus cocok dengan nama host apa pun yang dimasukkan dalam konfigurasi Dynu.

Berikut ini adalah pengaturan saya di bawah ini

Label porta pada diagram tidak masuk akal. Domain Anda tidak menerima email di port apa pun atau meneruskannya di port lain. Data MX di finendale.com sebaliknya memberitahu pengirim untuk secara langsung mengirimkan email masuk ke mx1.dynu.comport 25.

grawity
sumber
Terima kasih atas respon yang mendetail. Jadi saya telah hash smtpd_use_tls dan dynu dialihkan ke 2525 (sementara). Melihat mail.log menunjukkan mx1.dynu.com terhubung kemudian terputus, tanpa kesalahan kali ini (lebih baik dari sebelumnya) tetapi saya tidak melihat email muncul di folder yang saya atur. Jika itu hanya menunjukkan "terhubung" maka "putuskan" apakah itu berarti bahwa postfix melakukan tugasnya? Jika demikian maka apa lagi yang bisa menghentikan surat mencapai foldernya?
Eric F
Jika Postfix tidak mencatat entri antrian, maka tidak ada pesan yang dikirim. Dalam hal ini, itu lebih cenderung sesuatu yang spesifik untuk bagaimana Dynu melakukan relaying.
grawity