Dalam tutorial ini, kita akan membahas proses pengaturan server email dengan Postfix, Dovecot, Postfixadmin, dan MariaDB pada VPS Ubuntu 20.04. Tapi pertama-tama, apa itu PostfixAdmin?
PostfixAdmin adalah aplikasi berbasis web open-source yang ditulis dalam PHP yang digunakan untuk membuat domain virtual dan akun email untuk server email Postfix. Menggunakan PostfixAdmin, kita dapat mengelola kotak surat &alias, menetapkan kuota, mengkonfigurasi pesan liburan/keluar kantor, dan banyak lagi. Selain itu, antarmuka berbasis web memberi Anda jendela browser yang mudah digunakan dengan UI.
PostfixAdmin memungkinkan kita untuk menggunakan alamat email virtual dan kotak surat virtual, jadi kita tidak perlu membuat akun pengguna sistem baru untuk setiap alamat email. Mempertimbangkan semua detail ini, PostfixAdmin adalah alat serbaguna dan dapat digunakan untuk hampir semua kebutuhan pengiriman surat Anda. Tutorial ini cukup mendalam dan mungkin membutuhkan waktu untuk mengonfigurasi semuanya dengan benar. Mari kita mulai dengan langkah-langkah penginstalan.
Persyaratan Perangkat Keras/Perangkat Lunak
- Server Ubuntu 20.04 atau VPS dengan akses root diaktifkan, atau pengguna dengan hak istimewa sudo. Kami menyediakan semua pengguna kami akan akses root penuh pada VPS mereka.
- Agen transfer surat (MTA) Postfix dan Agen Pengiriman Surat IMAP/POP3 Dovecot harus diinstal.
- Server database (MySQL/MariaDB, PostgreSQL, atau SQLite) perlu diinstal.
- Server web Apache harus diinstal dengan
mod_rewrite
modul diaktifkan. - PHP 7.1 atau yang lebih baru harus diinstal dengan
imap
,mbstring
danmysql
semua ekstensi diaktifkan.
Langkah 1. Memulai
Untuk memulai, kita harus masuk ke server menggunakan SSH. Anda dapat melakukannya dengan memasukkan perintah ini:
ssh root@IP_Address -p Port_Number
Ingatlah untuk mengganti "root" dengan nama pengguna Anda jika Anda tidak menggunakan pengguna root. Ubah nilai dengan warna merah sesuai dengan alamat IP server Anda dan nomor port SSH (nomor defaultnya adalah 22, jadi coba dulu kecuali server Anda menggunakan nomor port khusus).
Setelah Anda masuk, Anda harus memperbarui semua paket Anda ke versi terbaru yang tersedia.
apt-get update -y apt-get upgrade -y
Setelah semua paket diperbarui, mulai ulang server Anda untuk menerapkan perubahan konfigurasi dan pastikan semua perangkat lunak berjalan pada versi terbarunya.
Langkah 2. Buat Akun Pengguna Sistem
PostfixAdmin memiliki kemampuan untuk membuat beberapa domain virtual, pengguna, dan alias. Ini menghemat kerumitan karena harus membuat pengguna sistem baru setiap kali kami membutuhkan akun email baru ditambahkan. Untuk alasan keamanan, kami akan membuat pengguna baru bernama 'vmail' dengan izin untuk menyimpan email di /var/vmail
direktori:
useradd -r -u 150 -g mail -d /var/vmail -s /sbin/nologin -c "Virtual Mail User" vmail mkdir -p /var/vmail chmod -R 770 /var/vmail chown -R vmail:mail /var/vmail
Langkah 3. Instal PHP, Apache, dan Ekstensi yang Diperlukan
PHP 7.4 dan Apache2 disertakan dalam repositori default Ubuntu untuk 20.04. Kita dapat menginstal Apache 2, PHP 7.4 dan ekstensi PHP yang diperlukan menggunakan perintah berikut. Kami juga menyertakan modul PHP dan Apache yang diperlukan dalam perintah:
apt-get install apache libapache2-mod-php php php-common php-mbstring php-imap php-mysql
Langkah 4. Instal Server MariaDB
PostfixAdmin membutuhkan database untuk dapat menyimpan informasi akun email dan domain. Untuk tujuan tutorial ini, kita akan menggunakan sistem database MariaDB, versi open-source MySQL yang mempertahankan paritas fitur. Kita dapat menginstal server MariaDB menggunakan perintah berikut:
apt-get install mariadb-server mariadb-client mariadb-common
Mulai layanan MariaDB dan aktifkan untuk memulai pada server boot menggunakan perintah berikut:
systemctl start mariadb systemctl enable mariadb
Untuk meningkatkan keamanan instalasi MariaDB Anda, jalankan mysql_secure_installation
naskah:
mysql_secure_installation
Saat diminta, Anda dapat menyetel sandi root MariaDB dan menjawab 'Y' dengan aman untuk semua pertanyaan.
Enter current password for root (enter for none): Just press the [Enter] key since there is no default password Set root password? [Y/n]: Y New password: Enter a strong password Re-enter new password: Repeat the same password from before Remove anonymous users? [Y/n]: Y Disallow root login remotely? [Y/n]: Y Remove test database and access to it? [Y/n]: Y Reload privilege tables now? [Y/n]: Y
Jika Anda mengikuti langkah-langkah di atas, maka Anda akan memiliki kata sandi yang ditetapkan untuk pengguna root MariaDB.
Jalankan perintah ini untuk mengakses konsol MySQL:
mysql -u root -p
Dan masukkan kata sandi root yang Anda atur sebelumnya menggunakan mysql_secure_installation
naskah. Jika Anda memilih untuk tidak menjalankan skrip tersebut, tidak ada kata sandi yang ditetapkan, jadi Anda hanya perlu menekan tombol [Enter] satu kali.
Selanjutnya, buat pengguna dan database MariaDB untuk PostfixAdmin:
MariaDB [(none)]> CREATE USER 'postfixadmin'@'localhost' IDENTIFIED BY 'Strong_Password'; MariaDB [(none)]> CREATE DATABASE postfixadmin; MariaDB [(none)]> GRANT ALL PRIVILEGES ON postfixadmin.* TO 'postfixadmin'@'localhost'; MariaDB [(none)]> FLUSH PRIVILEGES; MariaDB [(none)]> \q
Jangan lupa untuk mengganti ‘Strong_Password‘ dengan kata sandi yang bagus dan unik.
Langkah 5. Instal Postfix
Instal Postfix dan postfix-mysql
paket dengan menjalankan perintah di bawah ini:
apt-get install postfix postfix-mysql
Selama instalasi Postfix, Anda akan ditanya jenis konfigurasi email. Pilih 'Situs Internet' dan klik OK untuk melanjutkan. Kemudian, masukkan nama host server di bidang 'nama email sistem'.
Setelah instalasi Postfix selesai, kita harus membuat beberapa file konfigurasi Postfix. Ini akan memakan waktu cukup lama karena ada beberapa file yang harus dibuat dan dikonfigurasi.
mkdir -p /etc/postfix/sql/
Tentukan pengaturan koneksi database untuk kueri peta tangkapan semua domain alias virtual dengan membuat file ini. Kami menggunakan vi
, tetapi Anda dapat menggunakan editor teks apa pun yang Anda inginkan:
vi /etc/postfix/sql/mysql_virtual_alias_domain_catchall_maps.cf
Setelah file dibuat, masukkan konten berikut:
user = postfixadmin password = Strong_Password hosts = localhost dbname = postfixadmin query = SELECT goto FROM alias,alias_domain WHERE alias_domain.alias_domain = '%d' and alias.address = CONCAT('@', alias_domain.target_domain) AND alias.active = 1 AND alias_domain.active='1'
Buat file ini sehingga kami dapat mengatur pengaturan koneksi database untuk kueri peta kotak surat domain alias virtual:
vi /etc/postfix/sql/mysql_virtual_alias_domain_mailbox_maps.cf
Kemudian masukkan konten ini:
user = postfixadmin password = Strong_Password hosts = localhost dbname = postfixadmin query = SELECT maildir FROM mailbox,alias_domain WHERE alias_domain.alias_domain = '%d' and mailbox.username = CONCAT('%u', '@', alias_domain.target_domain) AND mailbox.active = 1 AND alias_domain.active='1'
Setelah itu, tentukan pengaturan koneksi database untuk kueri peta domain alias virtual dengan membuat file ini:
vi /etc/postfix/sql/mysql_virtual_alias_domain_maps.cf
Tambahkan berikut ini:
user = postfixadmin password = Strong_Password hosts = localhost dbname = postfixadmin query = SELECT goto FROM alias,alias_domain WHERE alias_domain.alias_domain = '%d' and alias.address = CONCAT('%u', '@', alias_domain.target_domain) AND alias.active = 1 AND alias_domain.active='1'
Pengaturan selanjutnya adalah untuk pengaturan koneksi database untuk kueri peta alias virtual. Buat file ini:
vi /etc/postfix/sql/mysql_virtual_alias_maps.cf
Tambahkan teks ini:
user = postfixadmin password = Strong_Password hosts = localhost dbname = postfixadmin query = SELECT goto FROM alias WHERE address='%s' AND active = '1'
Ada beberapa lagi untuk pergi. Sekarang, buat file untuk pengaturan koneksi database untuk kueri peta domain virtual:
vi /etc/postfix/sql/mysql_virtual_domains_maps.cf
Pastikan Anda mengatur kata sandi pada semua file yang telah Anda tambahkan ini. Tambahkan isinya:
user = postfixadmin password = Strong_Password hosts = localhost dbname = postfixadmin query = SELECT domain FROM domain WHERE domain='%s' AND active = '1'
Ke file berikutnya. Buat dan tambahkan pengaturan koneksi database untuk kueri peta batas kotak surat virtual:
vi /etc/postfix/sql/mysql_virtual_mailbox_limit_maps.cf
Masukkan ini dan ubah kata sandi:
user = postfixadmin password = Strong_Password hosts = localhost dbname = postfixadmin query = SELECT quota FROM mailbox WHERE username='%s' AND active = '1'
Terakhir, buat file ini dan tambahkan pengaturan koneksi database untuk kueri peta kotak surat virtual:
vi /etc/postfix/sql/mysql_virtual_mailbox_maps.cf
user = postfixadmin password = Strong_Password hosts = localhost dbname = postfixadmin query = SELECT maildir FROM mailbox WHERE username='%s' AND active = '1'
CATATAN : Jangan lupa untuk mengganti ‘Strong_Password‘ dengan kata sandi Anda sendiri di semua file konfigurasi di atas.
Ubah main.cf
File konfigurasi Postfix, yang merupakan inti dari konfigurasi Postfix. Jalankan perintah ini untuk mengedit setiap pengaturan:
postconf -e "myhostname = $(hostname -f)" postconf -e "virtual_mailbox_domains = proxy:mysql:/etc/postfix/sql/mysql_virtual_domains_maps.cf" postconf -e "virtual_alias_maps = proxy:mysql:/etc/postfix/sql/mysql_virtual_alias_maps.cf, proxy:mysql:/etc/postfix/sql/mysql_virtual_alias_domain_maps.cf, proxy:mysql:/etc/postfix/sql/mysql_virtual_alias_domain_catchall_maps.cf" postconf -e "virtual_mailbox_maps = proxy:mysql:/etc/postfix/sql/mysql_virtual_mailbox_maps.cf, proxy:mysql:/etc/postfix/sql/mysql_virtual_alias_domain_mailbox_maps.cf" postconf -e "smtpd_tls_cert_file = /etc/ssl/certs/ssl-cert-snakeoil.pem" postconf -e "smtpd_tls_key_file = /etc/ssl/private/ssl-cert-snakeoil.key" postconf -e "smtpd_use_tls = yes" postconf -e "smtpd_tls_auth_only = yes" postconf -e "smtpd_sasl_type = dovecot" postconf -e "smtpd_sasl_path = private/auth" postconf -e "smtpd_sasl_auth_enable = yes" postconf -e "smtpd_recipient_restrictions = permit_sasl_authenticated, permit_mynetworks, reject_unauth_destination" postconf -e "mydestination = localhost" postconf -e "mynetworks = 127.0.0.0/8" postconf -e "inet_protocols = ipv4" postconf -e "inet_interfaces = all" postconf -e "virtual_transport = lmtp:unix:private/dovecot-lmtp"
Kita juga bisa menginstal Certbot, lalu menginstal Let's encrypt SSL certificate baru untuk nama host server dan mengganti /etc/ssl/certs/ssl-cert-snakeoil.pem
dan /etc/ssl/private/ssl-cert-snakeoil.key
dengan sertifikat SSL dan file kunci publik yang baru dibuat.
Kemudian, edit master.cf
File konfigurasi Postfix, dan modifikasi sebagai berikut:
vi /etc/postfix/master.cf
Tambah atau ubah isinya sehingga file menjadi seperti ini:
smtp inet n - y - - smtpd #smtp inet n - y - 1 postscreen #smtpd pass - - y - - smtpd #dnsblog unix - - y - 0 dnsblog #tlsproxy unix - - y - 0 tlsproxy submission inet n - y - - 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_client_restrictions=$mua_client_restrictions # -o smtpd_helo_restrictions=$mua_helo_restrictions # -o smtpd_sender_restrictions=$mua_sender_restrictions # -o smtpd_recipient_restrictions= # -o smtpd_relay_restrictions=permit_sasl_authenticated,reject -o smtpd_client_restrictions=permit_sasl_authenticated,reject -o milter_macro_daemon_name=ORIGINATING smtps inet n - y - - smtpd -o syslog_name=postfix/smtps # -o smtpd_tls_wrappermode=yes -o smtpd_sasl_auth_enable=yes # -o smtpd_reject_unlisted_recipient=no -o smtpd_client_restrictions=permit_sasl_authenticated,reject # -o smtpd_client_restrictions=$mua_client_restrictions # -o smtpd_helo_restrictions=$mua_helo_restrictions # -o smtpd_sender_restrictions=$mua_sender_restrictions # -o smtpd_recipient_restrictions= # -o smtpd_relay_restrictions=permit_sasl_authenticated,reject -o milter_macro_daemon_name=ORIGINATING
Aktifkan layanan Postfix untuk memulai pada server boot dan restart layanan Postfix:
systemctl enable postfix systemctl restart postfix
Postfix akhirnya terinstal dan dikonfigurasi.
Langkah 6. Instal Dovecot
Dovecot adalah Agen Pengiriman Surat yang memungkinkan pengguna menerima email dengan keamanan lengkap melalui protokol IMAP dan/atau POP3. Kita dapat menginstal Dovecot dan dovecot-mysql
paket menggunakan perintah di bawah ini:
apt-get install dovecot-core dovecot-lmtpd dovecot-imapd dovecot-pop3d dovecot-mysql
Edit /etc/dovecot/conf.d/10-mail.conf
berkas:
vi /etc/dovecot/conf.d/10-mail.conf
Masukkan ini sebagai konten:
mail_location = maildir:/var/vmail/%d/%n mail_privileged_group = mail mail_uid = vmail mail_gid = mail first_valid_uid = 150 last_valid_uid = 150
Buka /etc/dovecot/conf.d/10-auth.conf
berkas:
vi /etc/dovecot/conf.d/10-auth.conf
Edit sehingga file terlihat seperti ini:
auth_mechanisms = plain login #!include auth-system.conf.ext !include auth-sql.conf.ext
Kemudian edit dovecot-sql.conf.ext
file, dan tambahkan baris ini:
vi /etc/dovecot/dovecot-sql.conf.ext
driver = mysql connect = host=localhost dbname=postfixadmin user=postfixadmin password=Strong_Password default_pass_scheme = MD5-CRYPT password_query = SELECT username as user, password, '/var/vmail/%d/%n' as userdb_home, 'maildir:/var/vmail/%d/%n' as userdb_mail, 150 as userdb_uid, 8 as userdb_gid FROM mailbox WHERE username = '%u' AND active = '1' user_query = SELECT '/var/vmail/%d/%u' as home, 'maildir:/var/vmail/%d/%u' as mail, 150 AS uid, 8 AS gid, concat('dirsize:storage=', quota) AS quota FROM mailbox WHERE username = '%u' AND active = '1'
Jangan lupa untuk mengganti Strong_Password dengan kata sandi sebenarnya yang Anda tetapkan sebelumnya di Langkah 4 saat membuat pengguna MariaDB.
Edit /etc/dovecot/conf.d/10-ssl.conf
file, dan aktifkan dukungan SSL:
vi /etc/dovecot/conf.d/10-ssl.conf
ssl = yes
Simpan dan tutup file tersebut, lalu edit /etc/dovecot/conf.d/15-lda.conf
file dan atur postmaster_address
alamat email.
vi /etc/dovecot/conf.d/15-lda.conf
postmaster_address = [email protected]
Pastikan Anda mengubah yourdomain.com menjadi nama domain sebenarnya yang mengarah ke server Anda.
Edit /etc/dovecot/conf.d/10-master.conf
file, cari service lmtp
bagian dan ganti dengan baris berikut:
vi /etc/dovecot/conf.d/10-master.conf
service lmtp { unix_listener /var/spool/postfix/private/dovecot-lmtp { mode = 0600 user = postfix group = postfix } }
Setelah bagian itu diedit, cari service auth
bagian dan ganti dengan cuplikan berikut:
service auth { unix_listener /var/spool/postfix/private/auth { mode = 0666 user = postfix group = postfix } unix_listener auth-userdb { mode = 0600 user = vmail } user = dovecot }
Kemudian ubah service auth-worker
bagian sebagai berikut:
service auth-worker { user = vmail }
Simpan dan tutup file.
Setel izin yang benar dari file konfigurasi Dovecot:
chown -R vmail:dovecot /etc/dovecot chmod -R o-rwx /etc/dovecot
Aktifkan layanan Dovecot untuk memulai pada server boot, dan restart Dovecot sehingga semua file konfigurasi baru ini berlaku:
systemctl enable dovecot systemctl restart dovecot
Langkah 7. Instal PostfixAdmin
Sekarang setelah semua perangkat lunak yang kita butuhkan terinstal dan dikonfigurasi, mari kita instal dan konfigurasi PostfixAdmin dan selesaikan tutorial ini.
Unduh PostfixAdmin versi terbaru yang tersedia dari Github dan ekstrak di /var/www/html/postfixadmin
direktori.
apt-get install git cd /var/www/html/ git clone https://github.com/postfixadmin/postfixadmin.git
Edit /var/www/html/postfixadmin/config.local.php
file dan tambahkan baris ini:
vi /var/www/html/postfixadmin/config.local.php
<?php $CONF['database_type'] = 'mysqli'; $CONF['database_host'] = 'localhost'; $CONF['database_user'] = 'postfixadmin'; $CONF['database_password'] = 'Strong_Password'; $CONF['database_name'] = 'postfixadmin'; $CONF['configured'] = true; $CONF['encrypt'] = 'md5crypt'; ?>
Ganti Strong_Password dengan kata sandi pengguna MariaDB.
mkdir /var/www/html/postfixadmin/templates_c chown -R www-data: /var/www/html/postfixadmin
Buka http://your_server_IP/postfixadmin/public/setup.php
. Periksa apakah semuanya baik-baik saja dan pastikan tidak ada kesalahan:
Gulir ke bawah dan masukkan kata sandi pengaturan baru Anda dua kali. Pastikan untuk memilih yang kuat:
Kemudian klik tombol ‘Buat hash kata sandi’.
Edit config.local.php
file dan tambahkan hash yang dihasilkan ke dalamnya:
$CONF['setup_password'] = '0584cbe2b03cad2e29c8be0127361e37:d41ceb2689b747cf143d1809aec7b8e6bdde983e';
Ganti hash yang ditunjukkan dalam contoh dengan yang dihasilkan untuk instance Anda.
Simpan config.local.php
file, buka halaman setup sekali lagi dan buat akun pengguna admin PostfixAdmin. Kata sandi pengaturan di halaman itu adalah kata sandi yang sama dengan yang Anda gunakan pada langkah sebelumnya, jadi isi bidang lain yang diperlukan seperti alamat email admin dan kata sandi, lalu klik tombol ‘Tambah admin’.
Itu dia! Instalasi PostfixAdmin selesai.
Buka http://your_server_IP/postfixadmin/login.php
di browser web pilihan Anda. Anda akan melihat halaman login:
Masuk sebagai pengguna admin dan tambahkan domain yang dihosting di server:
Setelah Anda melakukannya, Anda dapat membuat alamat email, menetapkan kuota email, dan sebagainya:
Itu saja yang Anda perlukan untuk menginstal, mengonfigurasi, dan mulai menggunakan instalasi PostfixAdmin di Ubuntu 20.04 VPS Anda.
Proses penginstalan ini sangat terlibat dan cukup mudah untuk mengacaukan dan berakhir dengan penginstalan Postfix, Dovecot, atau keduanya yang gagal. Namun, jika Anda memiliki hosting VPS Ubuntu Terkelola bersama kami, Anda tidak perlu melakukan apa pun selain meminta kami untuk menginstalnya untuk Anda, Tim ahli dukungan kami akan sepenuhnya menginstal dan mengkonfigurasi semua aspek server Anda sehingga Postfix, Dovecot, dan PostfixAdmin semuanya bekerja dengan sempurna. Mereka juga dapat membantu menyiapkan pemeliharaan rutin dan mengoptimalkan server Anda untuk memaksimalkan kecepatannya.
Kami akan sangat menghargai Anda membagikan ini di media sosial jika Anda merasa tutorial ini bermanfaat. Atau, Anda dapat menulis komentar untuk memberi tahu kami bagaimana penginstalan berlangsung, dan jika PostfixAdmin membantu Anda mengelola server email dengan lebih mudah. Terima kasih!