GNU/Linux >> Belajar Linux >  >> Panels >> Panels

Cara Menginstal Server Mail dengan PostfixAdmin di Ubuntu 20.04

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 dan mysql 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!


Panels
  1. Cara Menginstal MySQL di Ubuntu 16.04

  2. Cara Menginstal osTicket di Ubuntu 16.04

  3. Cara Menginstal WordPress dengan LAMP Stack di Ubuntu 16.04

  1. Cara Menginstal PHP 7.2 di Ubuntu 16.04

  2. Cara Menginstal MySQL di Ubuntu 18.04

  3. Cara Menginstal NextCloud 15 di Ubuntu 18.04

  1. Cara Menginstal FastPanel di Ubuntu 20.04

  2. Cara Menginstal Server Graylog di Ubuntu 16.04

  3. Cara Memasang Forum Vanilla dengan OpenLiteSpeed ​​di Ubuntu 20.04