Saya ingin menyingkirkan Google sebagai penyedia email, dan mengatur solusi email lengkap di server khusus saya. Masalahnya: Saya berharap pengaturan menjadi sesederhana mungkin, sehingga tidak akan merepotkan untuk mengatur semuanya lagi jika ada masalah.
Prasyarat
- Hanya satu akun pengguna di mesin.
- (nama
diti
; email utama[email protected]
; alias lain dialihkan tetapi klien email dapat mengelola alias yang berbeda dan bereaksi sesuai itu)
- (nama
- Lebih disukai tidak menggunakan MySQL.
- (dalam hal cadangan & pemulihan data serta untuk kesederhanaan, lebih baik jika seseorang tidak menginstal & mengamankan MySQL sebelum mendapatkan server e-mail fungsional)
- E-mail dapat diakses (IMAP dan SMTP) dari luar.
- Enkripsi SSL / TLS untuk otentikasi IMAP dan SMTP (Saya menggunakan sertifikat CAcert , apakah itu penting?).
Saya percaya bahwa kesederhanaan, akses IMAP / SMTP, dan autentikasi yang aman, adalah fitur "dasar" yang semua orang ingin hengkang dari Google / apa pun yang diinginkan. Jika saya salah dan ada solusi yang lebih sederhana (misalnya, solusi likeCloud-like, dengan semua yang disertakan), saya akan senang mendengarnya.
Saya pikir kombinasi Postfix dan Dovecot akan menjadi jalan yang harus ditempuh. Ngomong-ngomong, saya menjalankan Debian.
Info yang saya temukan sejauh ini
- Sebuah artikel Perancis menjelaskan dalam sangat panjang Rincian cara mengatur lengkap, solusi aman e-mail. Itu panjang, sulit untuk dirawat, lebih sulit untuk backup & restore, dll. Selain itu, apakah cache DNS diperlukan?
- Wiki Gentoo (
Complete_Virtual_Mail_Server/SSL_Certificates
halaman) menyebutkan penggunaan sertifikat CAcert, tetapi tidak jelas tentang hal itu (apakah semuaSubjectAltName
subdomain itu diperlukan?), Juga tidak menggunakan Postfix (saya pernah membaca bahwa Kurir lebih sulit). - Berbagai tutorial tentang hosting sendiri, semuanya berbeda, jarang menggambarkan apa yang mereka lakukan dan mengapa (email yang dihosting sendiri dengan akses jarak jauh tampaknya rumit untuk disiapkan, jadi mengapa hanya menyediakan daftar perintah tanpa penjelasan untuk "boneka?") .
Saya harap saya telah menanyakan hal yang benar, dan mereka tidak terlalu konyol.
Jawaban:
Tidak, tidak perlu membuat cache DNS di server. Server harus menggunakan resolver caching DNS yang ada di suatu tempat di dekatnya, tetapi sebagian besar perusahaan hosting sudah menjalankan resolver mereka sendiri untuk seluruh pusat data dan mengonfigurasi server untuk menggunakannya secara default.
Secara default, Postfix dan Dovecot menggunakan akun lokal untuk semuanya. Jika Anda memiliki nama akun Linux
diti
, Anda dapat masuk ke Dovecot dengannya, dan Anda dapat mengatur Postfix untuk memvalidasi login SMTP terhadap Dovecot .Jika Anda baik-baik saja dengan membuat semua email masuk ke akun yang sama, Anda dapat mengatur alias biasa (seperti dalam,
/etc/aliases
) untuk mengarahkan ulang surat kekra@
ataupostmaster@
kediti
akun.Semua subjectAltNames itu tidak perlu. Satu-satunya yang Anda butuhkan adalah nama domain yang akan Anda gunakan , misalnya
mail.diti.me
atauglaux.diti.me
. Saya tidak yakin apakah Anda perlu memasukkan domain itu sendiri (yaituditi.me
).Berikut ini mengasumsikan bahwa domain sudah memiliki catatan MX yang dikonfigurasi untuk menunjuk pada server ini. Saya biasanya mencoba untuk menjaga konfigurasi saya cukup jelas, karena saya selalu bertanya-tanya "untuk apa ini" beberapa bulan kemudian.
1. Pertama, instal paket
postfix
dandovecot-imapd
. Ketika ditanya tentang konfigurasi Postfix, pilih opsi "Situs Internet" dan masukkanditi.me
sebagai nama email. Pada titik ini, Anda sudah dapat mengirim dan menerima email sebagai[email protected]
, dan mungkin bahkan terhubung ke IMAP.Namun, ia belum memiliki SSL, juga tidak mengizinkan pengiriman surat melalui SMTP dari luar, atau tempat yang waras untuk menyimpan surat (standarnya adalah file mbox
/var/mail
, yang tidak dapat diandalkan dan memberikan kinerja yang buruk, terutama dengan IMAP).2. Jika Anda sudah memiliki sertifikat SSL, masukkan
/etc/ssl/private/diti.me.pem
, dan kunci pribadi/etc/ssl/private/diti.me.key
. Lokasi tepatnya sebenarnya tidak penting, tetapi di/etc/ssl/private
sanalah Debian menyimpannya.Pastikan kedua file dimiliki oleh dan dapat dibaca oleh
ssl-cert
grup, sehingga Postfix dan Dovecot dapat mengaksesnya. Juga tambahkan akun kedua daemon ke grup itu menggunakangpasswd -a
.3. Postfix yang dibuat secara otomatis Debian
main.cf
juga sedikit berantakan, jadi saya akan memposting versi minimal yang sudah dibersihkan:Untuk Dovecot, Debian hanya menggunakan contoh konfigurasi standar, dan mereka cukup bagus, dengan masing-masing opsi dijelaskan.
Setiap kali Anda mengubah konfigurasi, muat ulang daemon dengan
postfix reload
dan / ataudoveadm reload
.4. Secara default, Postfix mengirimkan mail ke
/var/mail/$USER
dalam format mbox , yang cukup sederhana (Anda dapat dengan mudah melihatnya dengan editor teks) tetapi memiliki banyak masalah, terutama dengan IMAP, karena seluruh file harus ditulis ulang setiap kali Anda memindahkan pesan atau bahkan tandai satu sebagai "baca" atau "belum dibaca".Ubah kedua daemon untuk menggunakan Maildir. (Ada format lain, tetapi mereka cenderung spesifik untuk MTA atau MDA atau server IMAP atau apa pun; Maildir didukung secara luas.)
Di
/etc/postfix/main.cf
, tambahkan berikut ini ke bagian "Pengiriman":Konfigurasikan Dovecot untuk menggunakan jalur yang sama, di
/etc/dovecot/conf.d/10-mail.conf
:5. Pada titik tertentu, Anda perlu memberi tahu Dovecot untuk menggunakan SSL juga. Pengaturan yang relevan ada di
/etc/dovecot/conf.d/10-ssl.conf
. Bahkan, paket Debian untuk Dovecot sudah menggunakan SSL, meskipun dengan sertifikat yang ditandatangani sendiri yang sebagian besar tidak berguna. Konfigurasikan untuk menggunakan sertifikat Anda sendiri:6. Sekarang Anda dapat mengirim email ke luar dan menerimanya. Masih perlu mengkonfigurasi Postfix untuk memungkinkan Anda mengirim dari luar dengan menghubungkan dengan klien email Anda melalui SMTP.
Pertama beri tahu Postfix untuk menggunakan Dovecot untuk memverifikasi login. Instruksi berikut sebagian besar diambil dari wiki Dovecot .
/etc/dovecot/conf.d/10-master.conf
Kebutuhan Dovecot untuk mendengarkan pada soket yang dapat diakses Postfix; konfigurasi default sudah memiliki contoh komentar:Dan Postfix perlu menggunakannya -
/etc/postfix/main.cf
lagi:7. Perhatikan bahwa hal di atas tidak diatur di
smtpd_sasl_auth_enable
mana pun. Konvensi saat ini adalah untuk tidak mengaktifkan SMTP auth secara global, tetapi untuk menjaga tcp / 25 murni sebagai port SMTP "server-ke-server". Sementara itu, pesan baru dari pengguna diterima melalui SMTP pada tcp / 587, port "pengiriman surat", yang memerlukan otentikasi. Beberapa ISP bahkan memblokir tcp / 25 karena spam, tetapi tetap membuka tcp / 587 karena biasanya lebih aman.Aktifkan port "Submission"
/etc/postfix/master.cf
, dengan SASL auth. Defaultnyamaster.cf
sudah memiliki baris yang diperlukan yang hanya perlu dihapus komentar, meskipun beberapa dari mereka masih harus ditinggalkan.Jika Anda memiliki klien email yang memerlukan port "implisit SSL" gaya lama (tcp / 465), Anda dapat menghapus komentar pada
smtps
barismaster.cf
- jika Anda melakukannya, pertahankan pengaturan yang serupa dengansubmission
port.8. Akhirnya siapkan alias untuk akun Anda, dengan mengedit
/etc/aliases
. Thepostmaster
alias pada dasarnya diperlukan; itu adalah titik kontak jika ada masalah dengan server email Anda. Menunjukroot
dan alias serupa lainnya juga bagus.Format dasar didokumentasikan dalam alias (5):
Gunakan
postalias
ataunewaliases
untuk memperbarui basis data hash/etc/aliases.db
setiap kali Anda mengedit file ini.Sekarang, Anda masih memiliki satu akun
diti
sejauh Postfix dan Dovecot diperhatikan, tetapi surat yang dikirimkra@...
juga diteruskan ke sana. Beberapa klien email (mis. Thunderbird) mendukung banyak "identitas" atau "personas" untuk satu server email, sehingga Anda dapat memilih di antara berbagai alamat "Dari:".Itu saja. Saya mungkin kembali dengan instruksi untuk procmail, domain virtual, SPF, dan / atau DKIM nanti.
sumber
mail.diti.me
(= alamat IP server saya) untuk IMAP dan SMTP, domain saya sudah memiliki data MX. Apakah saya melakukan sesuatu yang salah selama pengaturan server saya, atau apakah saya hanya memiliki masalah Thunderbird?ps auxw | grep "dovecot"
? Saya membandingkan dengan salah satu pengaturan kompleks teman saya, dan dia memilikidovecot-auth
danimap-login
yang tidak saya miliki. Mungkinkah port benar-benar terbuka (saya tidak ingat sendiri menggunakan firewall), tetapi tanpa daemon yang diatur untuk mendengarkan port-port itu dari luar, atau apa? Ketika saya jalankanopenssl s_client -connect mail.diti.me:993
di server, ia berfungsi (dan mengatakan "Dovecot ready."), Tetapi tidak ada yang dari luar. Mungkin saya harus mencoba memasang firewall dan secara eksplisit mengizinkan port-port itu?dovecot
,dovecot/anvil
,dovecot/log
, dan lain-lain. Juga, beberapa proses hanya dimulai ketika seseorang terhubung, atau hanya ketika memverifikasi detail otentikasi.iptables -n -v -L
untuk memeriksa apakah ada aturan untuk menjatuhkan paket.