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 [email protected]
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 [email protected] ke [email protected] 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 [email protected] menggunakan Thunderbird yang sedang masuk ke [email protected] , 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 [email protected] 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.
sumber
postconf -n
bagiannya. Salin dan tempel menghasilkan satu file sertifikat dan kunci yang tidak terkait dan berfokus pada output yang biarkan saya melihat kesalahan ketik pada file konfigurasi yang sudah saya periksa tetapi tidak terjawab ...Instruksi-instruksi itu
chmod o= /etc/ssl/private/postfix.pem
tetapi tidak mengatakan apa-apa tentang pengguna mana yang memiliki file.Di kotak saya,
smtpd
proses berjalan sebagaipostfix
pengguna. Periksa apakahpostfix
pengguna dapat mengakses/etc/ssl/private/postfix.pem
. Atau mungkin sajachown postfix:postfix /etc/ssl/private/postfix.pem
.Masalah jelas lainnya adalah apa yang dikatakan pesan kesalahan: Tidak ada kunci RSA yang valid dalam file itu. Lihat
/etc/ssl/private/postfix.pem
dan pastikan itu mengandung setidaknya sesuatu yang terlihat seperti kunci RSA. Jangan tempelkan ke pertanyaan Anda.Sebenarnya, saya hanya memperhatikan bahwa pesan kesalahannya adalah untuk
/etc/ssl/certs/postfix.pem
, bukan/etc/ssl/private/postfix.pem
. Periksa kepemilikan, izin, dan konten/etc/ssl/certs/postfix.pem
juga.Pesan kesalahan itu agak membingungkan. Dikatakan
cannot get RSA private key from file /etc/ssl/certs/postfix.pem
tetapi kunci pribadi harus dalam/etc/ssl/private/postfix.pem
. Saya tidak memiliki pengalaman yang cukup dengan Postfix menggunakan TLS untuk mengetahui apakah ini adalah bug Postfix atau kesalahan dalam konfigurasi Anda.sumber
Cert harus cocok dengan kunci, dalam kasus saya tidak ada hubungannya dengan izin
buat sertifikat dan kunci yang ditandatangani sendiri https://msol.io/blog/tech/create-a-self-signed-ssl-certificate-with-openssl/
Semoga ini membantu
sumber
periksa apakah kunci tersebut tidak memiliki kata sandi di dalamnya. Anda dapat menghapusnya dengan
jika mereka digunakan bersama
Frasa sandi akan mengeluarkan peringatan pada log yang mengatakan bahwa itu tidak bisa mendapatkan kunci pribadi RSAA, yang pada gilirannya menonaktifkan dukungan TLS. Semoga ini bisa membantu seseorang!
sumber