Dengan mengikuti tutorial ini, Anda dapat menambahkan domain virtual domains, users, and
aliases .Selain itu, server virtual Anda akan aman dari spam hub.
PERSYARATAN
Sebelum mengatur server surat Anda, perlu VPS Anda memiliki yang berikut:
* User dengan hak akses root (setup user baru- hilangkan langkah 5)
Menginstal paket sebagai pengguna root berguna karena Anda memiliki semua hak akses.
sudo -i
Masukkan kata sandi user Anda. Setelah berhasil, Anda akan melihat bahwa $ simbol berubah
menjadi #.
Setelah instalasi selesai, kita akan membuat database MySQL untuk mengkonfigurasi tiga tabel
berbeda: satu untuk domain, satu untuk user dan yang terakhir untuk aliases.
Kami akan memberi nama servermail database, tetapi Anda dapat menggunakan nama apa pun
yang Anda inginkan.
Buat servermail database :
mysql -u root -p
Masukkan kata sandi root MySQL; jika berhasil Anda akan melihat:
mysql >
Pertama-tama kita perlu membuat user baru, khusus untuk otentikasi email, dan kami akan
memberikan SELECT permission.
Setelah itu, kita perlu memuat ulang hak akses MySQL untuk memastikan izin itu berhasil
diterapkan
Akhirnya kita perlu menggunakan database untuk membuat tabel dan memasukkan data
Kami akan membuat tabel untuk spesifict domain yang dikenali sebagai official domain.
Kita akan membuat tabel untuk memasukkan user. Di sini Anda akan menambahkan alamat
email dan kata sandi. Penting untuk mengaitkan setiap user dengan domain.
Akhirnya kita akan membuat tabel virtual aliases untuk menentukan semua email yang akan
Anda teruskan ke email lainnya.
Virtual Domain
Di sini kita akan memperkenalkan domain Anda di dalam tabel virtual_domains. Anda dapat
menambahkan semua domain yang Anda inginkan, tetapi dalam tutorial ini kami akan
memperkenalkan hanya domain utama (example.com) dan FQDN Anda
(hostname.example.com).
Virtual Email
Kita akan memasukkan alamat email dan kata sandi yang terkait untuk setiap domain. Pastikan
Anda mengubah semua info dengan informasi spesifik Anda.
Kami akan memasukkan alamat email (source) yang akan kami teruskan ke alamat email lain
(destination).
Kita akan mengkonfigurasi Postfix untuk menghandle koneksi SMTP dan mengirim pesan setiap
user memasukkan database MySQL.
Pertama, kita perlu membuat salinan file default, jika Anda ingin kembali ke konfigurasi default.
cp /etc/postfix/main.cf /etc/postfix/main.cf.orig
nano /etc/postfix/main.cf
Pertama kita perlu mengomentari Parameter TLS dan menambahkan parameter lainnya. Dalam
tutorial ini, kami menggunakan sertifikat SSL Gratis dan jalur yang disarankan dalam tutorial
(link), tetapi Anda dapat memodifikasi tergantung konfigurasi pribadi Anda.
# TLS parameters
#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
smtpd_tls_cert_file=/etc/ssl/certs/dovecot.pem
smtpd_tls_key_file=/etc/ssl/private/dovecot.pem
smtpd_use_tls=yes
smtpd_tls_auth_only = yes
Kemudian kita akan menambahkan parameter berikut di bawah pengaturan TLS yang telah kita
ubah pada langkah sebelumnya:
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
Kita perlu mengomentari pengaturan default mydestination dan menggantinya dengan localhost.
Perubahan ini memungkinkan VPS Anda untuk menggunakan domain virtual di dalam tabel
MySQL.
myhostname = hostname.example.com
Tambahkan baris berikut untuk pengiriman local mail ke semua virtual domain yang terdaftar di
dalam tabel MySQL.
virtual_transport = lmtp:unix:private/dovecot-lmtp
Terakhir, kita perlu menambahkan tiga parameter ini untuk menunjukkan Postfix untuk
mengkonfigurasi domain virtual, user, dan aliases.
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
https://www.dropbox.com/s/x9fpm9v1dr86gkw/etc-postfix-main.cf.txt
Kita akan membuat tiga file terakhir yang kita tambahkan di file main.cf untuk menunjukkan
Postfix bagaimana terhubung dengan MySQL.
nano /etc/postfix/mysql-virtual-mailbox-domains.cf
user = usermail
password = mailpassword
hosts = 127.0.0.1
dbname = servermail
query = SELECT 1 FROM virtual_domains WHERE name='%s'
Restart Postfix
Kita perlu memastikan bahwa Postfix menemukan domain Anda, jadi kita perlu mengujinya
dengan perintah berikut. Jika berhasil, itu harus return 1:
nano /etc/postfix/mysql-virtual-mailbox-maps.cf
user = usermail
password = mailpassword
hosts = 127.0.0.1
dbname = servermail
query = SELECT 1 FROM virtual_users WHERE email='%s'
Saat ini kita akan memastikan Postfix menemukan alamat email pertama Anda dengan perintah
berikut. Ini harus return 1 jika berhasil:
Kita akan buat file terakhir untuk mengkonfigurasi koneksi antara Postfix dan MySQL.
nano /etc/postfix/mysql-virtual-alias-maps.cf
user = usermail
password = mailpassword
hosts = 127.0.0.1
dbname = servermail
query = SELECT destination FROM virtual_aliases WHERE source='%s'
Restart Postfix
Kita perlu memverifikasi Postfix dapat menemukan aliases Anda. Masukkan perintah berikut dan
itu akan mengembalikan mail yang diteruskan ke aliases:
Jika Anda ingin mengaktifkan port 587 untuk terhubung dengan aman dengan klien email, Anda
perlu memodifikasi file /etc/postfix/master.cf
nano /etc/postfix/master.cf
Kita perlu menghapus tanda komentar pada baris ini dan menambahkan parameter lainnya:
Dalam beberapa kasus, kita perlu me-restart Postfix untuk memastikan port 587 terbuka.
Kita akan menyalin 7 file yang akan dimodifikasi, sehingga Anda dapat mengembalikannya ke
default jika perlu. Masukkan perintah berikut satu per satu:
cp /etc/dovecot/dovecot.conf /etc/dovecot/dovecot.conf.orig
cp /etc/dovecot/conf.d/10-mail.conf /etc/dovecot/conf.d/10-mail.conf.orig
cp /etc/dovecot/conf.d/10-auth.conf /etc/dovecot/conf.d/10-auth.conf.orig
cp /etc/dovecot/dovecot-sql.conf.ext /etc/dovecot/dovecot-
sql.conf.ext.orig
cp /etc/dovecot/conf.d/10-master.conf /etc/dovecot/conf.d/10-
master.conf.orig
cp /etc/dovecot/conf.d/10-ssl.conf /etc/dovecot/conf.d/10-ssl.conf.orig
nano /etc/dovecot/dovecot.conf
SpamAssassin akan menilai setiap mail dan jika ia menentukan email ini lebih besar dari 5.0
pada cek spamnya, maka secara otomatis akan dianggap sebagai spam. Anda bisa menggunakan
parameter berikut untuk mengonfigurasi aturan anti-spam:
Kita perlu mengubah file /etc/postfix/master.cf Postfix untuk memberi tahu bahwa setiap email
akan diperiksa dengan SpamAssassin.
nano /etc/postfix/master.cf
Maka kita perlu menemukan baris berikut dan menambahkan filter spamassassin:
!include conf.d/*.conf
Kita akan mengaktifkan protokol (tambahkan pop3 jika Anda mau) di bawah! Include_try
/usr/share/dovecot/protocols.d/*.protocol line .
!include_try /usr/share/dovecot/protocols.d/*.protocol
protocols = imap lmtp
https://www.dropbox.com/s/wmbe3bwy0vcficj/etc-dovecot-dovecot.conf.txt
nano /etc/dovecot/conf.d/10-mail.conf
mail_privileged_group = mail
https://www.dropbox.com/s/hnfeieuy77m5b0a/etc.dovecot.conf.d-10-
mail.conf.txt
IZIN VERIFIKSI
Enter command
ls -ld /var/mail
Kita akan membuat folder untuk setiap domain yang kami daftarkan di tabel MySQL:
mkdir -p /var/mail/vhosts/example.com
nano /etc/dovecot/conf.d/10-auth.conf
disable_plaintext_auth = yes
#!include auth-system.conf.ext
https://www.dropbox.com/s/4h472nqrj700pqk/etc.dovecot.conf.d.10-
auth.conf.txt
nano /etc/dovecot/conf.d/auth-sql.conf.ext
passdb {
driver = sql
args = /etc/dovecot/dovecot-sql.conf.ext
}
userdb {
driver = static
args = uid=vmail gid=vmail home=/var/mail/vhosts/%d/%n
}
nano /etc/dovecot/dovecot-sql.conf.ext
driver = mysql
Uncomment pada garis sambungkan dan perkenalkan informasi spesifik MySQL Anda:
default_pass_scheme = SHA512-CRYPT
https://www.dropbox.com/s/48a5r0mtgdz25cz/etc.dovecot.dovecot-
sql.conf.ext.txt
nano /etc/dovecot/conf.d/10-master.conf
unix_listener /var/spool/postfix/private/auth {
mode = 0666
user = postfix
group = postfix
}
unix_listener auth-userdb {
mode = 0600
user = vmail
#group =
}
#unix_listener /var/spool/postfix/private/auth {
# mode = 0666
#}
user = dovecot
}
service auth-worker {
# Auth worker process is run as root by default, so that it can access
# /etc/shadow. If this isn't necessary, the user should be changed to
# $default_internal_user.
user = vmail
}
https://www.dropbox.com/s/g0vnt233obh6v2h/etc.dovecot.conf.d.10-
master.conf.txt
Kita akan memodifikasi file konfigurasi SSL dari Dovecot (lewati langkah ini jika Anda akan
menggunakan konfigurasi default).
# nano /etc/dovecot/conf.d/10-ssl.conf
ssl = required
ssl_cert = </etc/ssl/certs/dovecot.pem
ssl_key = </etc/ssl/private/dovecot.pem
Restart Dovecot
Anda harus memeriksa bahwa port 993 terbuka dan berfungsi (jika Anda mengaktifkan pop3;
Anda juga harus memeriksa port 995).
- Username: email1@example.com
- Password: email1's password
- IMAP: example.com
- SMTP: example.com
nano /etc/default/spamassassin
ENABLED=1
PIDFILE="${SPAMD_HOME}spamd.pid"
Terakhir,Kita perlu menentukan bahwa aturan SpamAssassin akan diperbarui secara otomatis.
CRON=1
https://www.dropbox.com/s/ndvpgc2jipdd4bk/etc.default.spamassassin.txt
nano /etc/spamassassin/local.cf
SpamAssassin akan menilai setiap mail dan jika ia menentukan email ini lebih besar dari 5.0
pada cek spamnya, maka secara otomatis akan dianggap sebagai spam. Anda bisa menggunakan
parameter berikut untuk mengonfigurasi aturan anti-spam:
Kita perlu mengubah file /etc/postfix/master.cf Postfix untuk memberi tahu bahwa setiap email
akan diperiksa dengan SpamAssassin.
nano /etc/postfix/master.cf
Maka kita perlu menemukan baris berikut dan menambahkan filter spamassassin:
Penting untuk memulai SpamAssassin dan memulai kembali Postfix untuk mulai memverifikasi
spam dari email.