Cara Mengkonfigurasi Postfix dan Dovecot dengan Pengguna Domain Maya di Linux - Bahagian 2

Cara Mengkonfigurasi Postfix dan Dovecot dengan Pengguna Domain Maya di Linux - Bahagian 2

Dalam artikel sebelumnya dalam siri ini, kami menerangkan bagaimana untuk menubuhkan dan menguruskan pangkalan data pelayan mel dengan selamat menggunakan phpmyadmin.

Keperluan:

  1. Pasang Pelayan Mel Postfix dan Dovecot dengan MariaDB - Bahagian 1
Konfigurasikan Postfix dan Dovecot dengan Pengguna Domain Maya - Bahagian 2

Kini sudah tiba masanya untuk mengkonfigurasi program dalaman yang akan membuat penghantaran dan menerima e -mel menjadi kenyataan: Postfix dan Dovecot (untuk mengendalikan e -mel keluar dan masuk, masing -masing).

Mengkonfigurasi Pelayan Mel Postfix

Sebelum anda mula mengkonfigurasi Postfix, Ia akan bernilai dan baik untuk melihat halaman lelaki di sini, meletakkan penekanan khusus pada bahagian bertajuk "Maklumat untuk pengguna postfix baru". Sekiranya anda berbuat demikian, anda akan merasa lebih mudah diikuti dengan tutorial ini.

Dalam beberapa perkataan, anda harus tahu bahawa terdapat dua fail konfigurasi untuk Postfix:

  1. /etc/postfix/utama.cf (Parameter konfigurasi postfix, rujuk Man 5 Postconf untuk maklumat lanjut).
  2. /etc/postfix/tuan.cf (Postfix Master Daemon Configuraton, lihat lelaki 5 tuan untuk maklumat lanjut).

Dalam /etc/postfix/utama.cf, Cari (atau tambah, jika perlu) baris berikut dan pastikan ia sepadan dengan nilai yang ditunjukkan di bawah:

utama.cf
append_dot_mydomain = no biff = no config_directory = /etc/postfix dovecot_destination_recipient_limit = 1 message_size_limit = 4194304 readme_directory = no smtp_tls_session_cache_database = btree:$data_directory/smtp_scache smtpd_banner = $myhostname ESMTP $mail_name (CentOS) smtpd_tls_cert_file = /etc/pki/dovecot/ sijil/dovecot.PEM SMTPD_TLS_KEY_FILE =/etc/pki/dovecot/swasta/dovecot.PEM SMTPD_TLS_SESSION_CACHE_DATABASE = btree: $ data_directory/smtpd_scache smtpd_use_tls = ya virtual_transport = dovecot smtpd_sasl_type = 

Tiga tetapan seterusnya adalah sangat penting. Dalam fail yang ditunjukkan dalam kuning kita akan mengkonfigurasi akses postfix ke Domains_tbl, Users_tbl, dan Alias_tbl Jadual:

virtual_mailbox_domains = mysql:/etc/postfix/mariadb-vdomains.cf virtual_mailbox_maps = mysql:/etc/postfix/MariaDB-Vusers.cf virtual_alias_maps = mysql:/etc/postfix/Mariadb-valias.cf 

Perhatikan bahawa anda boleh memilih nama fail yang berbeza di atas, selagi anda pastikan untuk membuatnya dan masukkan kandungan berikut di dalamnya. Dalam setiap kes, ganti Kata laluan Awak dengan kata laluan yang anda pilih untuk DBA pengguna masuk Bahagian 1, atau anda juga boleh menggunakan Mariadb kelayakan akar untuk pengguna dan kata laluan di bawah.

Juga, pastikan anda menggunakan nama yang sama dengan pangkalan data pelayan e -mel dan jadual yang dibuat di Bahagian 1.

Dalam /etc/postfix/mariadb-vdomains.cf:

MariaDB-Vdomains.cf
Pengguna = Kata Laluan DBA = Hos Yourpassword = 127.0.0.1 dbName = EmailServer_db query = Pilih 1 dari domains_tbl di mana domainname = "%s" 

Dalam /etc/postfix/MariaDB-Vusers.cf:

MariaDB-Vusers.cf
Pengguna = Kata Laluan DBA = Hos Yourpassword = 127.0.0.1 dbName = EmailServer_db query = Pilih 1 dari users_tbl di mana e -mel = "%s" 

Dalam /etc/postfix/Mariadb-valias.cf:

MariaDB-Valias.cf
Pengguna = Kata Laluan DBA = Hos Yourpassword = 127.0.0.1 dbName = EmailServer_DB pertanyaan = pilih Destinasi dari alias_tbl di mana sumber = "%s" 

Akhirnya, jangan lupa untuk menukar keizinan ke fail ini 640:

# chmod 640/etc/postfix/mariadb-vdomains.cf # chmod 640/etc/postfix/mariadb-vusers.cf # chmod 640/etc/postfix/mariadb-valias.cf 

Dan pemilikan kepada pengguna akar dan kumpulan Postfix:

# chown root: postfix/etc/postfix/mariadb-vdomains.cf # chown root: postfix/etc/postfix/mariadb-vusers.cf # chown root: postfix/etc/postfix/mariadb-valias.cf 

Seterusnya, untuk membolehkan sambungan selamat, kami perlu memastikan tetapan berikut tidak dapat dikunjungi (atau ditambah, jika perlu) /etc/postfix/tuan.cf:

tuan.cf
submission inet n - n - - smtpd -o syslog_name=postfix/submission -o smtpd_tls_security_level=encrypt -o smtpd_sasl_auth_enable=yes -o smtpd_reject_unlisted_recipient=no -o smtpd_recipient_restrictions=permit_sasl_authenticated,reject -o milter_macro_daemon_name=ORIGINATING pickup unix n - n 60 1 pickup pembersihan unix n - n - 0 pembersihan qmgr unix n - n 300 1 qmgr tlsmgr unix - - n 1000? 1 TLSMGR REWRITE UNIX - - N - - TRIVIAL -REWRITE BOUNCE UNIX - - N - 0 BOUNG DEFER UNIX - - N - 0 BOUNG TRACE UNIX - - N - 0 BOUNG VERIFY UNIX - - N - 1 Sahkan UNIX N - N 1000? 0 flush proxymap unix - - n - - proxymap proxywrite unix - - n - 1 proxymap smtp unix - - n - - smtp relay unix - - n - - smtp showq unix n - n - - showq error unix - - n - - ralat RECRY UNIX - - N - - Ralat Buang UNIX - - N - - Buang Unix Tempatan - N - - #Virtual UNIX Tempatan - N - - LMTP Maya Unix - - N - - LMTP Anvil Unix - - N - 1 Anvil Scache Unix - - n - 1 scache 

Catatan: Lekukan dalam baris bermula dengan -o Pilihan adalah kritikal; Jika tidak, pemeriksaan postfix akan mengembalikan ralat:

Semak konfigurasi postfix

Sebelum anda menyimpan perubahan, tambahkan baris berikut di bahagian bawah fail:

tuan.cf
dovecot unix - n n - - bendera paip = pengguna drhu = vmail: vmail argv =/usr/libExec/dovecot/deliver -f $ sander -d $ penerima 

Pada ketika ini adalah penting untuk memeriksa sama ada Postfix mempunyai akses kepada jadual pangkalan data dan domain, akaun, dan alias yang kami buat Bahagian 1.

Untuk berbuat demikian, kami akan menggunakan postmap Perintah, utiliti untuk menguji komunikasi dengan jadual postfix akan melihat semasa operasi, tetapi yang pertama dan paling utama kita perlu memulakan semula postfix:

# Systemctl Postfix Restart # Postmap -Q ​​LinuxNewz.com mysql:/etc/postfix/mariadb-vdomains.cf # postmap -q SomeOtherDomain.com mysql:/etc/postfix/mariadb-vdomains.cf # postmap -q [dilindungi e -mel] mysql:/etc/postfix/mariadb -vusers.cf # postmap -q [dilindungi e -mel] mysql:/etc/postfix/mariadb -vusers.cf # postmap -q [dilindungi e -mel] mysql:/etc/postfix/mariadb -vusers.cf # postmap -q [dilindungi e -mel] mysql:/etc/postfix/mariadb -valias.cf 

Dalam imej di bawah kita dapat melihat bahawa untuk rekod sedia ada dalam pangkalan data, a 1 dikembalikan. Jika tidak, tiada apa yang dipaparkan kembali ke skrin. Dalam kes pemeriksaan alias, perhatikan bahawa akaun e -mel sebenar alias dipetakan ke dikembalikan:

Semak komunikasi meja postfix

Perhatikan bahawa kita Tidak Mengesahkan terhadap kelayakan yang ditetapkan untuk setiap akaun e -mel, kami hanya menguji keupayaan postfix untuk mengesan rekod tersebut dalam pangkalan data.

Oleh itu, jika anda mendapat output yang berbeza daripada di atas, pastikan anda menggunakan pasangan pengguna / kata laluan yang sah di MariaDB-Vdomains.cf, MariaDB-Vusers.cf, dan MariaDB-Valias.cf (atau apa sahaja yang anda pilih untuk memanggil fail tersebut).

Mengkonfigurasi dovecot

Sebagai Imap / POP3 pelayan, dovecot menyediakan cara untuk pengguna melalui a Ejen pengguna mel (Mua, atau juga dikenali sebagai pelanggan), seperti Thunderbird atau Pandangan, Untuk menamakan beberapa contoh untuk mengakses surat mereka.

Untuk memulakan, mari buat pengguna dan kumpulan untuk mengendalikan e -mel (kami memerlukan ini kerana akaun e -mel kami tidak dikaitkan dengan pengguna sistem). Anda boleh menggunakan yang lain Uid dan Gid (Selain itu 5000 Seperti yang kita lakukan di bawah) selagi ia tidak digunakan dan nombor yang tinggi:

# GroupAdd -G 5000 Vmail # useradd -g Vmail -u 5000 Vmail -d /home /vmail -m 

Tetapan untuk Dovecot dibahagikan kepada beberapa fail konfigurasi (pastikan baris berikut tidak dikunjungi dan / atau mengeditnya untuk memadankan tetapan yang ditunjukkan di bawah).

Dalam /etc/dovecot/dovecot.Conf:

Dovecot.cf
!termasuk_try/usr/share/dovecot/protokol.d/*.Protokol Protokol = IMAP POP3 LMTP !Sertakan Conf.d/*.Conf !termasuk_try tempatan.Conf 

Dalam /etc/dovecot/conf.D/10-Auth.Conf (Hanya aktifkan pengesahan melalui SQL dan tinggalkan kaedah pengesahan lain yang dikomentari):

10-Auth.Conf
disable_plaintext_auth = ya auth_mechanisms = log masuk biasa !Termasuk Auth-SQL.Conf.ext 

Dalam /etc/dovecot/conf.D/Auth-SQL.Conf.ext (Perhatikan bahawa kami akan menyimpan e -mel dalam direktori yang dinamakan Yourdomain.com dalam /rumah/vmail, yang perlu anda buat jika tidak wujud. Dalam kes kami kami lakukan mkdir/home/vmail/linuxnewz.com untuk menguruskan e -mel untuk domain itu):

Auth-Sql.Conf.ext
passdb driver = sql args =/etc/dovecot/dovecot-sql.Conf.ext userdb driver = static args = uid = vmail gid = vmail home =/home/vmail/%d/%n/maildir 

Kotak Masuk Individu untuk Akaun Pengguna akan dibuat apabila e -mel untuk akaun tersebut pertama kali diterima.

Dalam /etc/dovecot/conf.D/10-mel.Conf:

10-mel.Conf
mail_location = maildir:/home/vmail/%d/%n/maildir namespace inbox inbox = yes mail_priviled_group = mail mbox_write_locks = fcntl 

Dalam /etc/dovecot/conf.D/10-Master.Conf:

10-tuan.Conf
perkhidmatan imap-login inet_listener imap port = 143 inet_listener imaps  perkhidmatan pop3-login inet_listener pop3 port = 110 inet_listener pop3s  mod = 0600 user = postfix group = postfix perkhidmatan auth unix_listener/var/spool/postfix/private/auth mode = 0666 user = postfix group = postfix unix_listener auth-userdb mode = 0600 user = dovecot perkhidmatan auth-worker user = vmail perkhidmatan dict unix_listener dict  

Dalam /etc/dovecot/conf.D/10-SSL.Conf (Gantikan sijil dan laluan utama jika anda merancang menggunakan sijil yang ditandatangani oleh CA):

10-SSL.Conf
ssl = diperlukan ssl_cert =  

Dalam /etc/dovecot/dovecot-sql.Conf.ext Masukkan maklumat pangkalan data anda dan kelayakan pengguna pentadbiran yang dibuat di Bahagian 1.

Penting: Sekiranya kata laluan anda mengandungi asterisk (#), Anda perlu melampirkan rentetan Sambungkan seperti yang ditunjukkan dalam contoh di bawah:

Dovecot-SQL.Conf.ext
pemandu = mysql connect = "host = 127.0.0.1 dbName = e-melServer_db user = dba password = passwith#di sini "default_pass_scheme = sha512-crypt password_query = pilih e-mel sebagai pengguna, kata laluan dari user_tbl di mana e-mel ="%u "; 

Di samping itu, anda boleh mengkonfigurasi pembalakan untuk dovecot terpisah dari postfix di /etc/dovecot/conf.D/10-Logging.Conf:

log_path =/var/log/dovecot.log 

Akhirnya, pastikan log dovecot boleh diakses untuk pengguna Dovecot:

# chown vmail: dovecot/var/log/dovecot.log # chmod 660/var/log/dovecot.log 

Sahkan dan Betulkan Konfigurasi Postifix dan aktifkan SMTP, POP3, dan IMAP dalam Firewall

Sekiranya anda menghadapi sebarang isu semasa mengkonfigurasi postfix dan / atau dovecot, bukannya mengemukakan semua fail konfigurasi untuk meminta bantuan, anda boleh mendapatkan ringkasan konfigurasi (baris yang tidak dikunjungi sahaja) dengan:

# postconf -n # Ringkasan untuk/etc/postfix/utama.cf # postconf -m # ringkasan untuk/etc/postfix/master.cf # doveconf -n # ringkasan semua fail konfigurasi untuk dovecot 

Di samping itu, pastikan peti masuk e -mel boleh dibaca oleh vmail Hanya:

# chown -r vmail: vmail /home /vmail 

Fail konfigurasi juga boleh dibaca oleh vmail dan Dovecot Pengguna:

# chown -r vmail: dovecot /etc /dovecot # chmod -r o -rwx /etc /dovecot 

Akhirnya, pastikan anda membolehkan SMTP, POP3, dan Imap melalui firewall:

# firewall-cmd --add-port = 143/tcp # firewall-cmd --add-port = 143/tcp --permanent # firewall-cmd --add-port = 110/tcp # firewall-cmd --add- port = 110/TCP --ParManent # firewall-cmd --add-port = 587/tcp # firewall-cmd --add-port = 587/tcp --permanent 

Konfigurasikan Thunderbird sebagai pelanggan e -mel untuk Postfix

Setelah mendapat akses melalui firewall untuk pelabuhan yang digunakan dalam komunikasi e -mel, sudah tiba masanya untuk mengkonfigurasi pelanggan e -mel. Menggunakan [dilindungi e -mel] dan kata laluannya yang sepadan, bersama -sama dengan mel.Linuxnewz.com Sebagai IMAP (atau POP3) dan pelayan SMTP, kami sudah bersedia untuk menghantar dan menerima e -mel ke dan dari akaun tersebut:

Postfix: Konfigurasikan pelanggan Thunderbird

Anda dengan selamat boleh mengabaikan mesej amaran yang ditunjukkan kerana anda menggunakan sijil yang tidak ditandatangani oleh CA pihak ke-3 yang dipercayai:

Thunderbird: Tambahkan Pengecualian Keselamatan

Mari buat e -mel ujian ringkas dan klik Hantar:

Tuliskan e -mel di Thunderbird

Apabila diminta untuk menerima sijil yang ditandatangani sendiri untuk pelayan keluar, sahkan sebelum ini seperti dahulu:

Thunderbird: Terima Sijil SSL

Akhirnya, pergi ke e -mel destinasi untuk melihat sama ada anda menerima e -mel yang baru dihantar. Jika ya, balasnya dan lihat apakah ia dihantar kembali ke peti masuk e -mel sumber (jika tidak, rujuk log postfix di /var/log/maillog atau log dovecot di /var/log/dovecot.log untuk maklumat penyelesaian masalah):

Sahkan penghantaran e -mel postfix dan dovecot

Anda kini mempunyai pelayan e -mel Postfix dan Dovecot yang berfungsi dan boleh mula menghantar dan menerima e -mel.

Ringkasan

Dalam artikel ini kami telah menjelaskan cara mengkonfigurasi Postfix dan Dovecot untuk mengendalikan trafik e -mel di pelayan Linux anda. Sekiranya sesuatu tidak berfungsi seperti yang ditunjukkan dalam artikel ini, pastikan anda mengambil masa untuk menyemak dokumentasi Postfix dan Dovecot.

Sila ambil perhatian bahawa walaupun menyediakan pelayan pos postfix bukanlah tugas yang mudah, ini adalah pengalaman yang menggembirakan untuk setiap pentadbir sistem.

Sekiranya selepas melalui dokumen, anda mendapati diri anda masih bergelut dengan Postfix dan / atau Dovecot, Jangan ragu untuk menggugurkan nota kami menggunakan borang komen di bawah dan kami dengan senang hati akan membantu anda (jangan lupa memuat naik ke perkhidmatan storan dalam talian Konfigurasi Postfix dan Dovecot seperti yang diambil dengan menggunakan postconf dan doveconf Seperti yang digariskan dalam artikel ini).