GNU/Linux >> Belajar Linux >  >> Ubuntu

Cara Mengatur Server Email Postfix di Ubuntu 16.04 (Dovecot - MySQL)

Secara umum, semua server surat terdiri dari tiga komponen utama:MTA, MDA dan MUA. Setiap komponen memainkan peran khusus dalam proses pemindahan dan pengelolaan pesan email dan penting untuk memastikan pengiriman email yang tepat. Oleh karena itu, menyiapkan server Mail adalah proses yang sulit yang melibatkan konfigurasi yang tepat dari komponen-komponen ini. Cara terbaik adalah menginstal dan mengonfigurasi setiap komponen satu per satu, memastikan masing-masing berfungsi dan secara bertahap membangun server email Anda.

Pada artikel ini, saya memberikan panduan tentang bagaimana kita dapat mengkonfigurasi Mail Server di server Ubuntu 16.04 dengan Postix (MTA) dan Dovecot (MDA) menggunakan database eksternal (MySQL) untuk mengelola pengguna virtual. Pertama-tama mari kita mulai dengan prasyarat untuk membangun server Mail kita.

Prasyarat

  • Server terinstal MySQL
  • Nama host yang sepenuhnya memenuhi syarat
  • Pemecahan domain ke server Anda

Setelah memenuhi prasyarat kami, kami dapat mulai membangun server Mail kami satu per satu.

Menginstal Paket

Pertama-tama, kita perlu memperbarui paket repositori APT kita dan mulai dengan menginstal paket postfix dan dovecot yang diperlukan.

root@ubuntu:~# apt-get install postfix postfix-mysql dovecot-core dovecot-imapd dovecot-lmtpd dovecot-mysql  

Selama instalasi Postfix, jendela set-up akan muncul untuk konfigurasi awal. Kita perlu memilih "situs internet" dan menetapkan FQDN sebagai nama email sistem kita selama fase instalasi. Ini dilanjutkan dengan instalasi paket-paket yang diperlukan seperti di bawah ini.

Postfix is now set up with a default configuration. If you need to make
changes, edit
/etc/postfix/main.cf (and others) as needed. To view Postfix configuration
values, see postconf(1).

After modifying main.cf, be sure to run '/etc/init.d/postfix reload'.

Running newaliases
Setting up postfix-mysql (3.1.0-3) ...
Processing triggers for libc-bin (2.23-0ubuntu3) ...
Processing triggers for ureadahead (0.100.0-19) ...
Processing triggers for systemd (229-4ubuntu4) ...
Processing triggers for ufw (0.35-0ubuntu2) ...
Processing triggers for dovecot-core (1:2.2.22-1ubuntu2) .. 

Buat Database untuk mengelola pengguna email

Langkah selanjutnya adalah membuat database untuk mengelola pengguna email dan domain di server email kita. Seperti yang saya katakan sebelumnya, kami mengelola pengguna email dengan database MySQL ini. Kita dapat menginstal MySQL jika tidak diinstal dengan menjalankan perintah ini apt-get install mysql-server-5.7 .

Kita akan membuat database bernama "lnmailserver" dengan tiga tabel seperti di bawah ini:

  • Domain virtual :Untuk mengelola domain
  • Pengguna virtual :Untuk mengelola pengguna email
  • Alias ​​Virtual :Untuk menyiapkan Alias

Mari buat database kita dengan semua tabel ini.

  • Membuat database dengan nama lnmailserver.
mysql> CREATE DATABASE lnmailserver;
Query OK, 1 row affected (0.00 sec) 
  • Membuat pengguna DB lnmailuser dan memberikan akses ke database ini dengan kata sandi.
mysql> GRANT SELECT ON lnmailserver.* TO 'lnmailuser'@'127.0.0.1' IDENTIFIED BY 'lnmail123';
Query OK, 0 rows affected, 1 warning (0.00 sec)

mysql> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.01 sec) 
  • Beralih ke database lnmailserver dan membuat tiga tabel kami yaitu virtual_domains, virtual_users dan virtual_aliases dengan spesifikasi dan format tabel.
mysql> USE lnmailserver;
Database changed
mysql> CREATE TABLE `virtual_domains` (
-> `id` INT NOT NULL AUTO_INCREMENT,
-> `name` VARCHAR(50) NOT NULL,
-> PRIMARY KEY (`id`)
-> ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
Query OK, 0 rows affected (0.01 sec) 
mysql> CREATE TABLE `virtual_users` (
-> `id` INT NOT NULL AUTO_INCREMENT,
-> `domain_id` INT NOT NULL,
-> `password` VARCHAR(106) NOT NULL,
-> `email` VARCHAR(120) NOT NULL,
-> PRIMARY KEY (`id`),
-> UNIQUE KEY `email` (`email`),
-> FOREIGN KEY (domain_id) REFERENCES virtual_domains(id) ON DELETE CASCADE
-> ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
Query OK, 0 rows affected (0.03 sec) 
mysql> CREATE TABLE `virtual_aliases` (
-> `id` INT NOT NULL AUTO_INCREMENT,
-> `domain_id` INT NOT NULL,
-> `source` varchar(100) NOT NULL,
-> `destination` varchar(100) NOT NULL,
-> PRIMARY KEY (`id`),
-> FOREIGN KEY (domain_id) REFERENCES virtual_domains(id) ON DELETE CASCADE
-> ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
Query OK, 0 rows affected (0.02 sec) 
  • Menambahkan domain, pengguna, dan alias ke setiap tabel ini sesuai dengan persyaratan kami.
mysql> INSERT INTO `lnmailserver`.`virtual_domains`
-> (`id` ,`name`)
-> VALUES
-> ('1', 'linoxidemail.com'),
-> ('2', 'ubuntu.linoxidemail.com');
Query OK, 2 rows affected (0.00 sec)
Records: 2 Duplicates: 0 Warnings: 0 
mysql> INSERT INTO `lnmailserver`.`virtual_users`
-> (`id`, `domain_id`, `password` , `email`)
-> VALUES
-> ('1', '1', ENCRYPT('blogger123', CONCAT('$6 
mysql> INSERT INTO `lnmailserver`.`virtual_aliases`
-> (`id`, `domain_id`, `source`, `destination`)
-> VALUES
-> ('1', '1', '[email protected]', '[email protected]');
Query OK, 1 row affected (0.00 sec) 
  • Memverifikasi setiap isi tabel
mysql> select * from virtual_domains;
+----+-------------------------+
| id | name |
+----+-------------------------+
| 1 | linoxidemail.com |
| 2 | ubuntu.linoxidemail.com |
+----+-------------------------+
2 rows in set (0.00 sec) 
mysql> select * from virtual_users;
+----+-----------+------------------------------------------------------------------------------------------------------------+---------------------------+
| id | domain_id | password | email |
+----+-----------+------------------------------------------------------------------------------------------------------------+---------------------------+
| 1 | 1 | $6$da4aa6fc680940d4$jt1plE8Lvo4hcjdP3N0pNxSC/o1ZsN4mpJ4WCcwk2mSqyY7/2l4ayyI7GcipeTf0uwzk5HnWbjddvv/jGomh41 | [email protected] |
| 2 | 1 | $6$36d2dc2e68ab56f6$L2b/D44yuT7qXsw22kTFPfxTbEbUuRDhr0RDoBnRc/q/LGcRF3NsLQCyapXdYKyA2zkSE9MJIXL7nHAbbCmlO. | [email protected] |
+----+-----------+------------------------------------------------------------------------------------------------------------+---------------------------+
2 rows in set (0.00 sec) 
mysql> select * from virtual_aliases;
+----+-----------+-----------------------+---------------------------+
| id | domain_id | source | destination |
+----+-----------+-----------------------+---------------------------+
| 1 | 1 | [email protected] | [email protected] |
+----+-----------+-----------------------+---------------------------+
1 row in set (0.00 sec)

mysql > exit 

Mengonfigurasi Postfix

Langkah kita selanjutnya adalah memodifikasi konfigurasi Postfix sesuai dengan rencana konfigurasi kita tentang bagaimana kita perlu menerima koneksi SMTP. Sebelum membuat perubahan apa pun pada konfigurasi, selalu disarankan untuk membuat cadangan untuk file tersebut.

root@ubuntu:~# cp -rp /etc/postfix/main.cf /etc/postfix/main.cf-bkp 

Sekarang kita dapat membuka file dan membuat perubahan berikut.

  • Ubah entri berikut untuk mengaktifkan dukungan TLS bagi pengguna untuk terhubung, tentukan sertifikat SSL yang digunakan untuk mengamankan koneksi.
This section is modified from:

#smtpd_tls_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem
#smtpd_tls_key_file=/etc/ssl/private/ssl-cert-snakeoil.key
#smtpd_use_tls=yes
#smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache
#smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache

To :

smtpd_tls_cert_file=/etc/ssl/certs/dovecot.pem
smtpd_tls_key_file=/etc/ssl/private/dovecot.key
smtpd_use_tls = yes
smtpd_tls_auth_only = yes 

Saya menggunakan sertifikat SSL Dovecot gratis yang ditentukan di sini. Kami dapat membuat sertifikat SSL yang ditandatangani sendiri oleh dovecot dengan perintah di bawah ini. Jika Anda memiliki sertifikat SSL yang valid untuk nama host Anda, Anda dapat menentukannya sebagai gantinya.

openssl req -new -x509 -days 1000 -nodes -out "/etc/ssl/certs/dovecot.pem" -keyout "/etc/ssl/private/dovecot.key" 
  • Kita perlu menambahkan parameter TLS ini ke konfigurasi Postfix yang membuat Postfix menggunakan Dovecot untuk autentikasi dan untuk menginisialisasi koneksi.
smtpd_sasl_type = dovecot
smtpd_sasl_path = private/auth
smtpd_sasl_auth_enable = yes
smtpd_recipient_restrictions = permit_sasl_authenticated permit_mynetworks reject_unauth_destination 
  • Kami perlu mengomentari entri default "mydestination" dan memperbaruinya untuk menggunakan "localhost" saja.
mydestination = localhost 
  • Konfirmasi bagian myhostname, apakah sudah disetel dengan benar sebagai nama host FQDN kami.
root@ubuntu:~# grep myhostname /etc/postfix/main.cf
smtpd_banner = $myhostname ESMTP $mail_name (Ubuntu)
myhostname = ubuntu.linoxidemail.com 
  • Memodifikasi parameter ini memungkinkan Postfix menggunakan LMTP Dovecot sebagai ganti LDA-nya sendiri untuk menyimpan email ke kotak surat lokal, sehingga memungkinkan pengiriman email lokal untuk semua domain yang terdaftar di database MySQL.
    virtual_transport = lmtp:unix:private/dovecot-lmtp 
  • Terakhir, namun tidak kalah pentingnya, kita perlu memberi tahu Postfix bahwa kita menggunakan database eksternal untuk mengelola domain, pengguna, dan alias. Kita perlu menambahkan jalur konfigurasi untuk mengambil detail ini dari tabel database.
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 

Sekarang kita perlu membuat file-file yang disebutkan di atas satu per satu. Silakan lihat detail file saya di bawah ini:

/etc/postfix/mysql-virtual-mailbox-domains.cf

root@ubuntu:~# cat /etc/postfix/mysql-virtual-mailbox-domains.cf
user = lnmailuser
password = lnmail123
hosts = 127.0.0.1
dbname = lnmailserver
query = SELECT 1 FROM virtual_domains WHERE name='%s'
root@ubuntu:~# 

/etc/postfix/mysql-virtual-mailbox-maps.cf

root@ubuntu:~# cat /etc/postfix/mysql-virtual-mailbox-maps.cf
user = lnmailuser
password = lnmail123
hosts = 127.0.0.1
dbname = lnmailserver
query = SELECT 1 FROM virtual_users WHERE email='%s'
root@ubuntu:~# 

/etc/postfix/mysql-virtual-alias-maps.cf

root@ubuntu:~# cat /etc/postfix/mysql-virtual-alias-maps.cf
user = lnmailuser
password = lnmail123
hosts = 127.0.0.1
dbname = lnmailserver
query = SELECT destination FROM virtual_aliases WHERE source='%s' 

File-file ini menjelaskan bagaimana Postfix terhubung dengan database eksternal. Kita perlu memulai ulang Postfix setelah melakukan perubahan ini.

root@ubuntu:~# service postfix restart 

Kita perlu menjalankan perintah berikut untuk mengonfirmasi konektivitas dan memeriksa apakah Postfix dapat mengambil informasi yang diperlukan dari database.

  • Untuk memeriksa apakah Postfix menemukan domain Anda dari database, kita dapat menjalankan ini. Ini akan mengembalikan '1' jika upaya berhasil.
root@ubuntu:/etc/ssl/certs# postmap -q linoxidemail.com mysql:/etc/postfix/mysql-virtual-mailbox-domains.cf
1 
  • Untuk memeriksa apakah Postfix menemukan alamat email yang Anda butuhkan dari database, kita dapat menjalankan ini. Ini juga harus mengembalikan '1' jika berhasil.
root@ubuntu:/etc/ssl/certs# postmap -q [email protected] mysql:/etc/postfix/mysql-virtual-mailbox-maps.cf
1 
  • Untuk memeriksa apakah Posfix menemukan penerus email Anda dari database, kita dapat menjalankan ini. Ini akan mengembalikan set penerusan email Anda jika upaya berhasil.
root@ubuntu:/etc/ssl/certs# postmap -q [email protected] mysql:/etc/postfix/mysql-virtual-alias-maps.cf
[email protected] 

Harap Dicatat :Anda dapat terhubung secara aman dengan klien email Anda menggunakan Postfix pada port 587, Anda dapat membuka port tersebut dengan menghapus komentar pada bagian berikut dalam konfigurasi master Postfix :/etc/postfix/master.cf.

Anda perlu me-restart Postfix setelah melakukan perubahan pada konfigurasi. Dengan menggunakan perintah telnet, Anda dapat mengonfirmasi apakah port terbuka.

Mengonfigurasi Dovecot

Langkah kita selanjutnya adalah mengkonfigurasi MDA kita untuk mengizinkan protokol POP3 atau IMAP dan pengaturan konfigurasi lainnya untuk terhubung ke database eksternal dan Postfix. Kami terutama memodifikasi file-file berikut.

/etc/dovecot/dovecot.conf
/etc/dovecot/conf.d/10-mail.conf
/etc/dovecot/conf.d/10-auth.conf
/etc/dovecot/conf.d/auth-sql.conf.ext
/etc/dovecot/dovecot-sql.conf.ext
/etc/dovecot/conf.d/10-master.conf
/etc/dovecot/conf.d/10-ssl.conf 

Itu selalu disarankan untuk mengambil cadangan untuk file-file ini sebelum membuat perubahan konfigurasi. Kita dapat memodifikasi setiap file satu per satu.

Memodifikasi file konfigurasi utama dovecot :/etc/dovecot/dovecot.conf

  • Setelan berikut tidak diberi komentar secara default. Tapi kita perlu memastikan bahwa itu tidak dikomentari.
!include conf.d/*.conf 
  • Kami dapat mengaktifkan semua protokol yang diperlukan dalam arahan ini. Jika Anda perlu mengaktifkan POP3, kami dapat menambahkan pop3 ke baris ini dan juga memastikan untuk menginstal paket dovecot "dovecot-pop3d" yang diperlukan untuk mengaktifkannya.
!include_try /usr/share/dovecot/protocols.d/*.protocol
protocols = imap lmtp 

Memodifikasi file konfigurasi Dovecot Mail :/etc/dovecot/conf.d/10-mail.conf

  • Kita perlu menemukan parameter "mail_location" berikut dalam konfigurasi dan memperbarui dengan jalur penyimpanan email kita. Saya memiliki folder email saya yang terletak di dalam folder "/var/mail/vhosts/". Oleh karena itu, saya memodifikasi jalur file seperti di bawah ini:
mail_location = maildir:/var/mail/vhosts/%d/%n 
  • Kita perlu menyetel "mail_privileged_group " parameter ke "email ".
mail_privileged_group = mail 

Setelah ini selesai, kita perlu mengatur kepemilikan dan izin yang tepat untuk folder email kita. Buat folder email untuk setiap domain yang telah kita daftarkan di tabel MySQL di dalam folder ini "/var/mail/vhosts" dan atur kepemilikan/izin yang tepat.

root@ubuntu:~# ls -ld /var/mail
drwxrwsr-x 2 root mail 4096 Apr 21 16:56 /var/mail
root@ubuntu:~# mkdir -p /var/mail/vhosts/linoxidemail.com

Created a separate user/group named "vmail" with an id 5000 and changed the mail folders ownerships to that.
root@ubuntu:~# groupadd -g 5000 vmail
root@ubuntu:~# useradd -g vmail -u 5000 vmail -d /var/mail
root@ubuntu:~# chown -R vmail:vmail /var/mail 

Memodifikasi file otentikasi Dovecot :/etc/dovecot/conf.d/10-auth.conf

  • Nonaktifkan autentikasi teks biasa untuk memastikan keamanan dengan mengubah parameter di bawah menjadi "ya".
disable_plaintext_auth = yes 
  • Ubah parameter "auth_mechanisms" seperti di bawah ini:
auth_mechanisms = plain login 
  • Kita perlu mengomentari baris yang disebutkan dan mengaktifkan otentikasi MySQL dengan menghapus komentar pada baris auth-sql.conf.ext seperti di bawah ini:
#!include auth-system.conf.ext
!include auth-sql.conf.ext 

Memodifikasi file SQL otentikasi :/etc/dovecot/conf.d/auth-sql.conf.ext

Pastikan file otentikasi MySQL Anda terlihat seperti ini.

Memodifikasi file konfigurasi Dovecot + MySQL :/etc/dovecot/dovecot-sql.conf.ext

  • Kita perlu menghapus komentar pada parameter "driver" dan menyetel ke MySQL seperti di bawah ini:
driver = mysql 
  • Ubah dan atur parameter koneksi sesuai nama database dan pengguna kami.
connect = host=127.0.0.1 dbname=lnmailserver user=lnmailuser password=lnmail123 
  • Ubah default_pass_scheme menjadi SHA-512 dan baris password_query seperti di bawah ini:
default_pass_scheme = SHA512-CRYPT
password_query = SELECT email as user, password FROM virtual_users WHERE email='%u'; 

Harap diperhatikan :Setel izin pada direktori /etc/dovecot agar pengguna vmail dapat menggunakannya.

chown -R vmail:dovecot /etc/dovecot
chmod -R o-rwx /etc/dovecot 

Memodifikasi file konfigurasi Dovecot Master :/etc/dovecot/conf.d/10-master.conf

Kami memodifikasi empat bagian dalam file konfigurasi ini. Bagian IMAP, bagian transfer surat lokal, bagian otentikasi dan bagian proses pekerja otentikasi terakhir. Silakan lihat tangkapan layar setiap bagian di bawah ini untuk melihat modifikasi:

Memodifikasi konfigurasi SSL :/etc/dovecot/conf.d/10-ssl.conf

Kami memodifikasi bagian ini untuk mengaktifkan SSL untuk koneksi masuk/keluar. Pengaturan konfigurasi ini bersifat opsional. Tapi saya akan merekomendasikan ini untuk keamanan lebih.

  • Ubah parameter SSL menjadi wajib
ssl = required 
  • Tentukan sertifikat SSL dan lokasi file kunci untuk konfigurasi kami. Anda dapat melihat tangkapan layar untuk lebih jelasnya.

Anda harus memulai ulang Dovecot setelah semua modifikasi ini.

Itu saja :) Kami telah menyelesaikan pengaturan server Mail kami. Hore! Anda dapat mengakses akun email Anda menggunakan nama pengguna dan kata sandi Anda di salah satu klien email pilihan Anda. Saya berhasil mengakses akun email saya menggunakan pengaturan berikut:

Saya harap Anda menikmati membaca artikel ini. Saya akan merekomendasikan saran dan komentar Anda yang berharga tentang ini.
Semoga harimu menyenangkan!

, SUBSTRING(SHA(RAND()), -16))), '[email protected] '), -> ('2', '1', ENCRYPT('blogger321 ', CONCAT('$6
  
  • Memverifikasi setiap isi tabel
  
  
  

Mengonfigurasi Postfix

Langkah kita selanjutnya adalah memodifikasi konfigurasi Postfix sesuai dengan rencana konfigurasi kita tentang bagaimana kita perlu menerima koneksi SMTP. Sebelum membuat perubahan apa pun pada konfigurasi, selalu disarankan untuk membuat cadangan untuk file tersebut.

  

Sekarang kita dapat membuka file dan membuat perubahan berikut.

  • Ubah entri berikut untuk mengaktifkan dukungan TLS bagi pengguna untuk terhubung, tentukan sertifikat SSL yang digunakan untuk mengamankan koneksi.
  

Saya menggunakan sertifikat SSL Dovecot gratis yang ditentukan di sini. Kami dapat membuat sertifikat SSL yang ditandatangani sendiri oleh dovecot dengan perintah di bawah ini. Jika Anda memiliki sertifikat SSL yang valid untuk nama host Anda, Anda dapat menentukannya sebagai gantinya.

  
  • Kita perlu menambahkan parameter TLS ini ke konfigurasi Postfix yang membuat Postfix menggunakan Dovecot untuk autentikasi dan untuk menginisialisasi koneksi.
  
  • Kami perlu mengomentari entri default "mydestination" dan memperbaruinya untuk menggunakan "localhost" saja.
  
  • Konfirmasi bagian myhostname, apakah sudah disetel dengan benar sebagai nama host FQDN kami.
  
  • Memodifikasi parameter ini memungkinkan Postfix menggunakan LMTP Dovecot sebagai ganti LDA-nya sendiri untuk menyimpan email ke kotak surat lokal, sehingga memungkinkan pengiriman surat lokal untuk semua domain yang terdaftar di database MySQL.
     
  • Terakhir, namun tidak kalah pentingnya, kita perlu memberi tahu Postfix bahwa kita menggunakan database eksternal untuk mengelola domain, pengguna, dan alias. Kita perlu menambahkan jalur konfigurasi untuk mengambil detail ini dari tabel database.
  

Sekarang kita perlu membuat file-file yang disebutkan di atas satu per satu. Silakan lihat detail file saya di bawah ini:

/etc/postfix/mysql-virtual-mailbox-domains.cf

  

/etc/postfix/mysql-virtual-mailbox-maps.cf

  

/etc/postfix/mysql-virtual-alias-maps.cf

  

File-file ini menjelaskan bagaimana Postfix terhubung dengan database eksternal. Kita perlu memulai ulang Postfix setelah melakukan perubahan ini.

  

Kita perlu menjalankan perintah berikut untuk mengonfirmasi konektivitas dan memeriksa apakah Postfix dapat mengambil informasi yang diperlukan dari database.

  • Untuk memeriksa apakah Postfix menemukan domain Anda dari database, kita dapat menjalankan ini. Ini akan mengembalikan '1' jika upaya berhasil.
  
  • Untuk memeriksa apakah Postfix menemukan alamat email yang Anda butuhkan dari database, kita dapat menjalankan ini. Ini juga harus mengembalikan '1' jika berhasil.
  
  • Untuk memeriksa apakah Posfix menemukan penerus email Anda dari database, kita dapat menjalankan ini. Ini akan mengembalikan set penerusan email Anda jika upaya berhasil.
  

Harap Dicatat :Anda dapat terhubung secara aman dengan klien email Anda menggunakan Postfix pada port 587, Anda dapat membuka port tersebut dengan menghapus komentar pada bagian berikut dalam konfigurasi master Postfix :/etc/postfix/master.cf.

Anda perlu me-restart Postfix setelah melakukan perubahan pada konfigurasi. Dengan menggunakan perintah telnet, Anda dapat mengonfirmasi apakah port terbuka.

Mengonfigurasi Dovecot

Langkah kita selanjutnya adalah mengkonfigurasi MDA kita untuk mengizinkan protokol POP3 atau IMAP dan pengaturan konfigurasi lainnya untuk terhubung ke database eksternal dan Postfix. Kami terutama memodifikasi file-file berikut.

  

Itu selalu disarankan untuk mengambil cadangan untuk file-file ini sebelum membuat perubahan konfigurasi. Kita dapat memodifikasi setiap file satu per satu.

Memodifikasi file konfigurasi utama dovecot :/etc/dovecot/dovecot.conf

  • Setelan berikut tidak diberi komentar secara default. Tapi kita perlu memastikan bahwa itu tidak dikomentari.
  
  • Kami dapat mengaktifkan semua protokol yang diperlukan dalam arahan ini. Jika Anda perlu mengaktifkan POP3, kami dapat menambahkan pop3 ke baris ini dan juga memastikan untuk menginstal paket dovecot "dovecot-pop3d" yang diperlukan untuk mengaktifkannya.
  

Memodifikasi file konfigurasi Dovecot Mail :/etc/dovecot/conf.d/10-mail.conf

  • Kita perlu menemukan parameter "mail_location" berikut dalam konfigurasi dan memperbarui dengan jalur penyimpanan email kita. Saya memiliki folder email saya yang terletak di dalam folder "/var/mail/vhosts/". Oleh karena itu, saya memodifikasi jalur file seperti di bawah ini:
  
  • Kita perlu menyetel "mail_privileged_group " parameter ke "email ".
  

Setelah ini selesai, kita perlu mengatur kepemilikan dan izin yang tepat untuk folder email kita. Buat folder email untuk setiap domain yang telah kita daftarkan di tabel MySQL di dalam folder ini "/var/mail/vhosts" dan atur kepemilikan/izin yang tepat.

  

Memodifikasi file otentikasi Dovecot :/etc/dovecot/conf.d/10-auth.conf

  • Nonaktifkan autentikasi teks biasa untuk memastikan keamanan dengan mengubah parameter di bawah menjadi "ya".
  
  • Ubah parameter "auth_mechanisms" seperti di bawah ini:
  
  • Kita perlu mengomentari baris yang disebutkan dan mengaktifkan otentikasi MySQL dengan menghapus komentar pada baris auth-sql.conf.ext seperti di bawah ini:
  

Memodifikasi file SQL otentikasi :/etc/dovecot/conf.d/auth-sql.conf.ext

Pastikan file otentikasi MySQL Anda terlihat seperti ini.

Memodifikasi file konfigurasi Dovecot + MySQL :/etc/dovecot/dovecot-sql.conf.ext

  • Kita perlu menghapus komentar pada parameter "driver" dan menyetel ke MySQL seperti di bawah ini:
  
  • Ubah dan atur parameter koneksi sesuai nama database dan pengguna kami.
  
  • Ubah default_pass_scheme menjadi SHA-512 dan baris password_query seperti di bawah ini:
  

Harap diperhatikan :Setel izin pada direktori /etc/dovecot agar pengguna vmail dapat menggunakannya.

  

Memodifikasi file konfigurasi Dovecot Master :/etc/dovecot/conf.d/10-master.conf

Kami memodifikasi empat bagian dalam file konfigurasi ini. Bagian IMAP, bagian transfer surat lokal, bagian otentikasi dan bagian proses pekerja otentikasi terakhir. Silakan lihat tangkapan layar setiap bagian di bawah ini untuk melihat modifikasi:

Memodifikasi konfigurasi SSL :/etc/dovecot/conf.d/10-ssl.conf

Kami memodifikasi bagian ini untuk mengaktifkan SSL untuk koneksi masuk/keluar. Pengaturan konfigurasi ini bersifat opsional. Tapi saya akan merekomendasikan ini untuk keamanan lebih.

  • Ubah parameter SSL menjadi wajib
  
  • Tentukan sertifikat SSL dan lokasi file kunci untuk konfigurasi kami. Anda dapat melihat tangkapan layar untuk lebih jelasnya.

Anda harus memulai ulang Dovecot setelah semua modifikasi ini.

Itu saja :) Kami telah menyelesaikan pengaturan server Mail kami. Hore! Anda dapat mengakses akun email Anda menggunakan nama pengguna dan kata sandi Anda di salah satu klien email pilihan Anda. Saya berhasil mengakses akun email saya menggunakan pengaturan berikut:

Saya harap Anda menikmati membaca artikel ini. Saya akan merekomendasikan saran dan komentar Anda yang berharga tentang ini.
Semoga harimu menyenangkan!

, SUBSTRING(SHA(RAND()), -16))), '[email protected]'); Query OK, 2 rows affected, 2 warnings (0.01 sec) Records: 2 Duplicates: 0 Warnings: 2 
  
  • Memverifikasi setiap isi tabel
  
  
  

Mengonfigurasi Postfix

Langkah kita selanjutnya adalah memodifikasi konfigurasi Postfix sesuai dengan rencana konfigurasi kita tentang bagaimana kita perlu menerima koneksi SMTP. Sebelum membuat perubahan apa pun pada konfigurasi, selalu disarankan untuk membuat cadangan untuk file tersebut.

  

Sekarang kita dapat membuka file dan membuat perubahan berikut.

  • Ubah entri berikut untuk mengaktifkan dukungan TLS bagi pengguna untuk terhubung, tentukan sertifikat SSL yang digunakan untuk mengamankan koneksi.
  

Saya menggunakan sertifikat SSL Dovecot gratis yang ditentukan di sini. Kami dapat membuat sertifikat SSL yang ditandatangani sendiri oleh dovecot dengan perintah di bawah ini. Jika Anda memiliki sertifikat SSL yang valid untuk nama host Anda, Anda dapat menentukannya sebagai gantinya.

  
  • Kita perlu menambahkan parameter TLS ini ke konfigurasi Postfix yang membuat Postfix menggunakan Dovecot untuk autentikasi dan untuk menginisialisasi koneksi.
  
  • Kami perlu mengomentari entri default "mydestination" dan memperbaruinya untuk menggunakan "localhost" saja.
  
  • Konfirmasi bagian myhostname, apakah sudah disetel dengan benar sebagai nama host FQDN kami.
  
  • Memodifikasi parameter ini memungkinkan Postfix menggunakan LMTP Dovecot sebagai ganti LDA-nya sendiri untuk menyimpan email ke kotak surat lokal, sehingga memungkinkan pengiriman surat lokal untuk semua domain yang terdaftar di database MySQL.
     
  • Terakhir, namun tidak kalah pentingnya, kita perlu memberi tahu Postfix bahwa kita menggunakan database eksternal untuk mengelola domain, pengguna, dan alias. Kita perlu menambahkan jalur konfigurasi untuk mengambil detail ini dari tabel database.
  

Sekarang kita perlu membuat file-file yang disebutkan di atas satu per satu. Silakan lihat detail file saya di bawah ini:

/etc/postfix/mysql-virtual-mailbox-domains.cf

  

/etc/postfix/mysql-virtual-mailbox-maps.cf

  

/etc/postfix/mysql-virtual-alias-maps.cf

  

File-file ini menjelaskan bagaimana Postfix terhubung dengan database eksternal. Kita perlu memulai ulang Postfix setelah melakukan perubahan ini.

  

Kita perlu menjalankan perintah berikut untuk mengonfirmasi konektivitas dan memeriksa apakah Postfix dapat mengambil informasi yang diperlukan dari database.

  • Untuk memeriksa apakah Postfix menemukan domain Anda dari database, kita dapat menjalankan ini. Ini akan mengembalikan '1' jika upaya berhasil.
  
  • Untuk memeriksa apakah Postfix menemukan alamat email yang Anda butuhkan dari database, kita dapat menjalankan ini. Ini juga harus mengembalikan '1' jika berhasil.
  
  • Untuk memeriksa apakah Posfix menemukan penerus email Anda dari database, kita dapat menjalankan ini. Ini akan mengembalikan set penerusan email Anda jika upaya berhasil.
  

Harap Dicatat :Anda dapat terhubung secara aman dengan klien email Anda menggunakan Postfix pada port 587, Anda dapat membuka port tersebut dengan menghapus komentar pada bagian berikut dalam konfigurasi master Postfix :/etc/postfix/master.cf.

Anda perlu me-restart Postfix setelah melakukan perubahan pada konfigurasi. Dengan menggunakan perintah telnet, Anda dapat mengonfirmasi apakah port terbuka.

Mengonfigurasi Dovecot

Langkah kita selanjutnya adalah mengkonfigurasi MDA kita untuk mengizinkan protokol POP3 atau IMAP dan pengaturan konfigurasi lainnya untuk terhubung ke database eksternal dan Postfix. Kami terutama memodifikasi file-file berikut.

  

Itu selalu disarankan untuk mengambil cadangan untuk file-file ini sebelum membuat perubahan konfigurasi. Kita dapat memodifikasi setiap file satu per satu.

Memodifikasi file konfigurasi utama dovecot :/etc/dovecot/dovecot.conf

  • Setelan berikut tidak diberi komentar secara default. Tapi kita perlu memastikan bahwa itu tidak dikomentari.
  
  • Kami dapat mengaktifkan semua protokol yang diperlukan dalam arahan ini. Jika Anda perlu mengaktifkan POP3, kami dapat menambahkan pop3 ke baris ini dan juga memastikan untuk menginstal paket dovecot "dovecot-pop3d" yang diperlukan untuk mengaktifkannya.
  

Memodifikasi file konfigurasi Dovecot Mail :/etc/dovecot/conf.d/10-mail.conf

  • Kita perlu menemukan parameter "mail_location" berikut dalam konfigurasi dan memperbarui dengan jalur penyimpanan email kita. Saya memiliki folder email saya yang terletak di dalam folder "/var/mail/vhosts/". Oleh karena itu, saya memodifikasi jalur file seperti di bawah ini:
  
  • Kita perlu menyetel "mail_privileged_group " parameter ke "email ".
  

Setelah ini selesai, kita perlu mengatur kepemilikan dan izin yang tepat untuk folder email kita. Create the mail folders for each domains which we've registered in the MySQL table inside this folder "/var/mail/vhosts" and set proper ownerships/permissions.

 

Modifying the Dovecot authentication file :/etc/dovecot/conf.d/10-auth.conf

  • Disable plain text authentication to ensure security by modifying the below parameter to "yes".
 
  • Modify the "auth_mechanisms" parameter as below:
 
  • We need to comment the mentioned line and enable the MySQL authentication by uncommenting the auth-sql.conf.ext line as below:
 

Modifying the authentication SQL file :/etc/dovecot/conf.d/auth-sql.conf.ext

Make sure your MySQL authentication file looks like this.

Modifying the Dovecot + MySQL configuration file :/etc/dovecot/dovecot-sql.conf.ext

  • We need to uncomment the "driver" parameter and set to MySQL as below:
 
  • Modify and set the connection parameters as per our database name and user.
 
  • Modify the default_pass_scheme to SHA-512 and password_query line as below:
 

Please note :Set permissions on the /etc/dovecot directory so the vmail user can use it.

 

Modifying Dovecot Master configuration file :/etc/dovecot/conf.d/10-master.conf

We are modifying four sections in this configuration file. IMAP section, local mail transfer section, authentication section and last authenticating worker process section. Please see the screenshots of each section below to view the modifications:

Modifying the SSL configuration :/etc/dovecot/conf.d/10-ssl.conf

We're modifying this section to enable SSL for the incoming/outgoing connections. This configuration settings are optional. But I'd recommend these for more security.

  • Change the SSL parameter to required
 
  • Specify the SSL cert and key file location for our configuration. You can view the screenshot for more details.

You need to restart Dovecot after all these modification.

That's all :) We've completed with our Mail server setup. Hore! You can access your email account using your username and password on any of your preferred email client. I could successfully access my email account using these settings below:

Saya harap Anda menikmati membaca artikel ini. Saya akan merekomendasikan saran dan komentar Anda yang berharga tentang ini.
Have a Nice day!


Ubuntu
  1. Cara menginstal DKIM di server Ubuntu

  2. Cara Setup Zimbra Mail Server di Ubuntu 16

  3. Cara Menginstal Server MySQL di Ubuntu 16.04

  1. Cara mengatur server OpenVPN di Ubuntu 20.04

  2. Setup Rsyslog Server di Ubuntu 20.04 - Bagaimana cara melakukannya?

  3. Cara Menginstal Server MySQL di Ubuntu 17.04

  1. Cara Menginstal MySQL di Ubuntu 18.04

  2. Cara Menginstal MySQL 8.0 di Ubuntu 18.04

  3. Cara mengatur OpenVPN di Server Ubuntu