Saya hanya mengikuti tutorial ini untuk mengatur mailserver postfix dengan dovecot dan mysql sebagai backend untuk pengguna virtual.
Sekarang saya membuat sebagian besar komponen berfungsi, saya dapat terhubung ke POP3 (S) dan IMAP (S).
Menggunakan
echo TEST-MAIL | mail myaccount@hotmail.com
berfungsi dengan baik, ketika saya masuk ke akun hotmail saya itu menunjukkan email.
Ia juga bekerja secara terbalik maka entri MX saya untuk example.com akhirnya telah disebarkan, jadi saya dapat menerima email yang dikirim dari myaccount@hotmail.com ke myvirtualuser@example.com dan melihatnya di Thunderbird menggunakan STARTTLS via IMAP.
Melakukan sedikit riset lebih lanjut setelah saya mendapatkan pesan kesalahan " 5.7.1: Akses relay ditolak " ketika mencoba mengirim email ke myaccount@hotmail.com menggunakan Thunderbird yang sedang masuk ke myvirtualuser@example.com , saya menemukan bahwa server saya bertindak sebagai "Open Mail Relay", yang - tentu saja - merupakan hal yang buruk.
Menggali lebih dalam bagian opsional tutorial seperti komentar ini dan turorial lainnya , saya memutuskan untuk menyelesaikan langkah-langkah ini juga untuk dapat mengirim email melalui myvirtualuser@example.com melalui Mozilla Thunderbird, tidak mendapatkan pesan kesalahan " 5.7.1 : Akses relay ditolak "lagi (karena server surat umum menolak email yang diteruskan terbuka).
Tapi sekarang saya mengalami kesalahan saat mencoba memperbaiki postfix dengan SMTPS, di /var/log/mail.log bunyinya
Sep 28 17:29:34 domain postfix/smtpd[20251]: warning: cannot get RSA private key from file /etc/ssl/certs/postfix.pem: disabling TLS support
Sep 28 17:29:34 domain postfix/smtpd[20251]: warning: TLS library problem: 20251:error:0906D06C:PEM routines:PEM_read_bio:no start line:pem_lib.c:650:Expecting: ANY PRIVATE KEY:
Sep 28 17:29:34 domain postfix/smtpd[20251]: warning: TLS library problem: 20251:error:140B0009:SSL routines:SSL_CTX_use_PrivateKey_file:PEM lib:ssl_rsa.c:669:
Kesalahan itu dicatat tepat setelah saya mencoba mengirim surat dari server surat saya yang baru diinstal menggunakan SMTP SSL / TLS melalui port 465 di Thunderbird. Thunderbird kemudian memberitahuku waktu tunggu habis.
Google memiliki beberapa hasil mengenai masalah itu, namun saya tidak bisa menyelesaikannya dengan semua itu. Saya akan menautkan beberapa dari mereka di sini tetapi sebagai pengguna baru saya hanya diperbolehkan menggunakan dua hyperlink.
/Etc/postfix/master.cf saya terlihat seperti
smtp inet n - - - - smtpd
smtps inet n - - - - smtpd
-o smtpd_tls_wrappermode=yes
-o smtpd_sasl_auth_enable=yes
dan nmap memberitahuku
PORT STATE SERVICE
[...]
465/tcp open smtps
[...]
/etc/postfix/main.cf saya terlihat seperti
smtpd_banner = $myhostname ESMTP $mail_name (Debian/GNU)
biff = no
append_dot_mydomain = no
readme_directory = no
#smtpd_tls_cert_file = /etc/ssl/certs/postfix.pem #default postfix generated
#smtpd_tls_key_file = /etc/ssl/private/ssl-cert-snakeoil.key #default postfix generated
smtpd_tls_cert_file = /etc/ssl/certs/postfix.pem
smptd_tls_key_file = /etc/ssl/private/postfix.pem
smtpd_use_tls = yes
smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache
smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache
smtpd_sasl_type = dovecot
smtpd_sasl_path = private/auth
smptd_sasl_auth_enable = yes
smtpd_recipient_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_unauth_destination
myhostname = example.com
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases
myorigin = /etc/mailname
mydestination = localhost.com, localhost
relayhost =
mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128
mailbox_size_limit = 0
recipient_delimiter = +
inet_interfaces = all
virtual_mailbox_domains = mysql:/etc/postfix/mysql-virtual-mailbox-domains.cf
virtual_mailbox_maps = mysql:/etc/postfix/mysql-virtual-mailbox-maps.cf
virtual_alias_maps = mysql:/etc/postfix/mysql-virtual-alias-maps.cf
virtual_transport = dovecot
dovecot_destination_recipient_limit = 1
mailbox_command = /usr/lib/dovecot/deliver
File * .pem dibuat seperti dijelaskan dalam tutorial di atas, menggunakan
Postfix
To create a certificate to be used by Postfix use:
openssl req -new -x509 -days 3650 -nodes -out /etc/ssl/certs/postfix.pem -keyout /etc/ssl/private/postfix.pem
Do not forget to set the permissions on the private key so that no unauthorized people can read it:
chmod o= /etc/ssl/private/postfix.pem
You will have to tell Postfix where to find your certificate and private key because by default it will look for a dummy certificate file called "ssl-cert-snakeoil":
postconf -e smtpd_tls_cert_file=/etc/ssl/certs/postfix.pem
postconf -e smtpd_tls_key_file=/etc/ssl/private/postfix.pem
Saya rasa saya tidak perlu memasukkan /etc/dovecot/dovecot.conf di sini, karena login via imaps dan pop3s berfungsi dengan baik sesuai dengan log. Satu-satunya masalah adalah membuat postfix dengan benar menggunakan sertifikat yang dibuat sendiri dan ditandatangani sendiri.
Bantuan apa pun dihargai!
EDIT: Saya baru saja mencoba tutorial berbeda ini tentang menghasilkan sertifikat yang ditandatangani sendiri untuk postfix, masih mendapatkan kesalahan yang sama. Saya benar-benar tidak tahu harus diuji apa lagi.
Saya juga memeriksa pustaka SSL, tetapi semua tampaknya baik-baik saja:
root@domain:~# ldd /usr/sbin/postfix
linux-vdso.so.1 => (0x00007fff91b25000)
libpostfix-global.so.1 => /usr/lib/libpostfix-global.so.1 (0x00007f6f8313d000)
libpostfix-util.so.1 => /usr/lib/libpostfix-util.so.1 (0x00007f6f82f07000)
libssl.so.0.9.8 => /usr/lib/libssl.so.0.9.8 (0x00007f6f82cb1000)
libcrypto.so.0.9.8 => /usr/lib/libcrypto.so.0.9.8 (0x00007f6f82910000)
libsasl2.so.2 => /usr/lib/libsasl2.so.2 (0x00007f6f826f7000)
libdb-4.8.so => /usr/lib/libdb-4.8.so (0x00007f6f8237c000)
libnsl.so.1 => /lib/libnsl.so.1 (0x00007f6f82164000)
libresolv.so.2 => /lib/libresolv.so.2 (0x00007f6f81f4e000)
libc.so.6 => /lib/libc.so.6 (0x00007f6f81beb000)
libdl.so.2 => /lib/libdl.so.2 (0x00007f6f819e7000)
libz.so.1 => /usr/lib/libz.so.1 (0x00007f6f817d0000)
libpthread.so.0 => /lib/libpthread.so.0 (0x00007f6f815b3000)
/lib64/ld-linux-x86-64.so.2 (0x00007f6f83581000)
Setelah mengikuti petunjuk Ansgar Wiechers akhirnya berhasil.
postconf -n
berisi garis-garis sebagaimana mestinya. Pemeriksaan sertifikat / kunci melalui openssl memang menunjukkan bahwa kedua file tersebut valid.
Jadi memang sudah menjadi masalah izin! Tidak tahu bahwa chown'ing file /etc/ssl/*/postfix.pem ke postfix: postfix tidak cukup bagi postfix untuk membaca file.