Tutorial ini akan menunjukkan kepada Anda cara mengatur beberapa domain email (hosting virtual) di server CentOS/RHEL dengan PostfixAdmin, yang merupakan antarmuka berbasis web sumber terbuka untuk mengonfigurasi dan mengelola server email berbasis Postfix untuk banyak domain dan pengguna.
Prasyarat
Untuk mengikuti tutorial ini, diperlukan
- Anda telah mengonfigurasi PostfixAdmin dengan satu domain email.
- Anda telah mengikuti bagian 4 untuk menyiapkan SPF dan DKIM.
- Anda telah menginstal Roundcube Webmail.
Setelah persyaratan di atas terpenuhi, ikuti petunjuk di bawah ini.
Yang Harus Anda Lakukan
Jika Anda ingin meng-host beberapa domain email, maka Anda perlu
- Tambahkan domain email dan pengguna baru di panel berbasis web PostfixAdmin.
- Buat data MX, A, dan SPF untuk domain email baru.
- Siapkan penandatanganan DKIM untuk domain baru.
- Buat Data DMARC untuk domain baru.
- Siapkan RoundCube Webmail, Postfix, dan Dovecot untuk beberapa domain
Langkah 1:Menambahkan Domain Tambahan di Panel PostfixAdmin
Masuk ke panel PostfixAdmin dengan akun postmaster. (https://postfixadmin.your-domain.com/
) Lalu pergi ke Domain List
-> New Domain
untuk menambahkan domain baru.
Perhatikan bahwa domain baru harus memiliki catatan DNS A, atau PostfixAdmin akan menampilkan pesan galat berikut. Anda dapat memeriksa status propagasi DNS di dnsmap.io.
Invalid domain domain2.com, and/or not discoverable in DNS
Selanjutnya, tambahkan pengguna di bawah domain baru.
Langkah 2:Membuat data MX, A, dan SPF untuk domain email baru
Di pengelola DNS Anda, tambahkan data MX untuk domain baru seperti di bawah ini.
Record Type Name Value MX @ mail.domain2.com
Catatan A menunjuk ke alamat IP server email Anda.
Record Type Name Value A mail IP-address-of-mail-server
Jika server Anda menggunakan alamat IPv6, pastikan untuk menambahkan data AAAA.
Kemudian buat data SPF agar host MX dapat mengirim email untuk domain email baru.
Record Type Name Value TXT @ v=spf1 mx ~all
Langkah 3:Menyiapkan penandatanganan DKIM untuk domain baru
Kami telah menginstal dan mengonfigurasi OpenDKIM untuk satu domain di bagian 4 dari seri tutorial ini. Sekarang kita perlu memberi tahu OpenDKIM untuk menandatangani setiap email keluar untuk domain email baru.
Edit file tabel penandatanganan OpenDKIM.
sudo nano /etc/opendkim/SigningTable
Tambahkan domain kedua seperti di bawah ini.
*@domain1.com 20200308._domainkey.domain1.com *@domain2.com 20200308._domainkey.domain2.com
Edit file tabel kunci.
sudo nano /etc/opendkim/KeyTable
Tambahkan domain kedua seperti di bawah ini.
20200308._domainkey.domain1.com domain1.com:20200308:/etc/opendkim/keys/domain1.com/20200308.private 20200308._domainkey.domain2.com domain2.com:20200308:/etc/opendkim/keys/domain2.com/20200308.private
Edit file host tepercaya.
sudo nano /etc/opendkim/TrustedHosts
Tambahkan domain kedua seperti di bawah ini.
127.0.0.1 localhost *.domain1.com *.domain2.com
Selanjutnya, kita perlu membuat pasangan kunci priavte/publik untuk domain kedua. Buat folder terpisah untuk domain kedua.
sudo mkdir /etc/opendkim/keys/domain2.com
Buat kunci menggunakan opendkim-genkey
alat.
sudo opendkim-genkey -b 2048 -d domain2.com -D /etc/opendkim/keys/domain2.com -s 20200308 -v
Perintah di atas akan membuat kunci 2048 bit. -d (domain)
menentukan domain. -D (directory)
menentukan direktori tempat kunci akan disimpan dan kami menggunakan 20200308
(tanggal saat ini) sebagai selector (-s)
. Setelah perintah dijalankan, kunci pribadi akan ditulis ke 20200308.private
file dan kunci publik akan ditulis ke 20200308.txt
berkas.
Buat opendkim
sebagai pemilik kunci pribadi.
sudo chown opendkim:opendkim /etc/opendkim/keys/domain2.com/20200308.private
Tampilkan kunci publik
sudo cat /etc/opendkim/keys/domain2.com/20200308.txt
String setelah p
parameter adalah kunci publik.
Di pengelola DNS Anda, buat data TXT untuk domain kedua. Masukkan 20200308._domainkey
di kolom Nama. Salin semua yang ada di dalam tanda kurung dan tempel ke bidang nilai. Hapus semua tanda kutip ganda. (Anda dapat menempelkannya ke editor teks terlebih dahulu, menghapus semua tanda kutip ganda, lalu menyalinnya ke manajer DNS Anda. Manajer DNS Anda mungkin meminta Anda untuk menghapus karakter tidak valid lainnya, seperti carriage return.)
Setelah menyimpan perubahan Anda. Periksa data TXT dengan perintah ini.
dig TXT 20203008._domainkey.domain2.com
Sekarang Anda dapat menjalankan perintah berikut untuk menguji apakah data DNS DKIM Anda benar.
sudo opendkim-testkey -d domain2.com -s 20200308 -vvv
Jika semuanya OK, Anda akan melihat
opendkim-testkey: using default configfile /etc/opendkim.conf opendkim-testkey: checking key '20203008._domainkey.domain2.com' opendkim-testkey: key secure opendkim-testkey: key OK
Jika Anda melihat "Kunci tidak aman", jangan panik. Ini karena DNSSEC tidak diaktifkan pada nama domain Anda. DNSSEC adalah standar keamanan untuk kueri DNS yang aman. Sebagian besar nama domain belum mengaktifkan DNSSEC. Anda dapat terus mengikuti panduan ini.
Mulai ulang OpenDKIM sehingga akan mulai menandatangani email untuk domain kedua.
sudo systemctl restart opendkim
Langkah 4:Membuat Data DMARC Untuk Domain Baru
Untuk membuat data DMARC, buka pengelola DNS Anda dan tambahkan TXT catatan. Di bidang nama, masukkan _dmarc
. Di bidang nilai, masukkan yang berikut ini. Perhatikan bahwa Anda perlu membuat [email protected]
alamat email.
v=DMARC1; p=none; pct=100; rua=mailto:[email protected]
Data DMARC di atas adalah titik awal yang aman. Jika Anda ingin membaca penjelasan rinci tentang DMARC, silakan baca artikel berikut.
- Membuat Data DMARC untuk Melindungi Nama Domain Anda Dari Email Spoofing
Langkah 5:Menyiapkan RoundCube, Postfix, dan Dovecot untuk Beberapa Domain
Saya berasumsi Anda menginstal Roundcube Webmail untuk domain email pertama.
Masuk akal untuk membiarkan pengguna domain pertama menggunakan mail.domain1.com
dan pengguna domain kedua menggunakan mail.domain2.com
saat menggunakan email web RoundCube. Saya akan menunjukkan cara melakukannya dengan Apache dan Nginx.
Apache
Jika Roundcube dilayani oleh server web Apache, maka buat host virtual untuk domain kedua.
sudo nano /etc/httpd/conf.d/mail.domain2.com.conf
Masukkan teks berikut ke dalam file.
<VirtualHost *:80> ServerName mail.domain2.com DocumentRoot /var/www/roundcube/ ErrorLog /var/log/httpd/mail.domain2.com_error.log CustomLog /var/log/httpd/mail.domain2.com_access.log combined <Directory /> Options FollowSymLinks AllowOverride All </Directory> <Directory /var/www/roundcube/> Options FollowSymLinks MultiViews AllowOverride All Order allow,deny allow from all </Directory> </VirtualHost>
Simpan dan tutup file. Muat ulang Apache agar perubahan diterapkan.
sudo systemctl reload httpd
Nginx
Jika Roundcube dilayani oleh server web Nginx, maka buat host virtual untuk domain kedua.
sudo nano /etc/nginx/conf.d/mail.domain2.com.conf
Masukkan teks berikut ke dalam file.
server { listen 80; server_name mail.domain2.com; root /var/www/roundcube/; index index.php index.html index.htm; error_log /var/log/nginx/roundcube.error; access_log /var/log/nginx/roundcube.access; location / { try_files $uri $uri/ /index.php; } location ~ \.php$ { try_files $uri =404; fastcgi_pass unix:/run/php-fpm/www.sock; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; } location ~ /.well-known/acme-challenge { allow all; } location ~ ^/(README|INSTALL|LICENSE|CHANGELOG|UPGRADING)$ { deny all; } location ~ ^/(bin|SQL)/ { deny all; } # A long browser cache lifetime can speed up repeat visits to your page location ~* \.(jpg|jpeg|gif|png|webp|svg|woff|woff2|ttf|css|js|ico|xml)$ { access_log off; log_not_found off; expires 360d; } }
Simpan dan tutup file. Kemudian uji konfigurasi Nginx.
sudo nginx -t
Jika pengujian berhasil, muat ulang Nginx agar perubahan diterapkan.
sudo systemctl reload nginx
Mendapatkan Sertifikat TLS
Sekarang gunakan Certbot untuk mendapatkan sertifikat TLS untuk semua domain email Anda, jadi Anda akan memiliki satu sertifikat TLS dengan beberapa nama domain di dalamnya dan klien email tidak akan memberikan peringatan keamanan.
Apache
sudo certbot --apache --agree-tos --redirect --hsts --staple-ocsp -d mail.domain1.com,mail.domain2.com --cert-name mail.domain1.com --email [email protected]
Nginx
sudo certbot --nginx --agree-tos --redirect --hsts --staple-ocsp -d mail.domain1.com,mail.domain2.com --cert-name mail.domain1.com --email [email protected]
Perhatikan bahwa pada perintah di atas, kami menentukan nama sertifikat menggunakan domain email pertama, yang akan digunakan di jalur file, jadi Anda tidak perlu mengubah jalur file di file konfigurasi Postfix atau Dovecot.
Saat ditanya apakah Anda ingin memperbarui sertifikat yang ada untuk menyertakan domain baru, jawab U
dan tekan Enter.
Sekarang Anda akan melihat pesan berikut, yang menunjukkan bahwa sertifikat multi-domain berhasil diperoleh.
Muat ulang Apache atau Nginx untuk mengambil sertifikat baru.
sudo systemctl reload httpd sudo systemctl reload nginx
Anda sekarang seharusnya dapat menggunakan domain yang berbeda untuk mengakses email web RoundCube. Juga, Anda perlu memuat ulang server SMTP Postfix dan server IMAP Dovecot agar mereka dapat mengambil sertifikat baru. Hanya itu yang perlu Anda lakukan agar Postfix dan Dovecot melayani banyak domain.
sudo systemctl reload postfix dovecot
Menggunakan Klien Email di Komputer atau Perangkat Seluler Anda
Jalankan klien email desktop Anda seperti Mozilla Thunderbird dan tambahkan akun email dari domain kedua.
- Di bagian server masuk, pilih protokol IMAP, masukkan
mail.domain2.com
sebagai nama server, pilih port 143 dan STARTTLS. Pilihnormal password
sebagai metode otentikasi. - Di bagian keluar, pilih protokol SMTP, masukkan
mail.domain2.com
sebagai nama server, pilih port 587 dan STARTTLS. Pilihnormal password
sebagai metode otentikasi.
Petunjuk :Anda juga dapat menggunakan port 993 dengan enkripsi SSL/TLS untuk IMAP, dan menggunakan port 465 dengan enkripsi SSL/TLS untuk SMTP. Anda seharusnya tidak gunakan port 25 sebagai port SMTP untuk mengirimkan email keluar.
Meskipun server SMTP Postfix dan server IMAP Dovecot menggunakan nama host dari domain email pertama (mail.domain1.com) saat berkomunikasi dengan orang lain, mereka sekarang menggunakan sertifikat multi-domain, sehingga klien email tidak akan menampilkan peringatan sertifikat.
Pemeriksaan SPF dan DKIM
Sekarang Anda dapat menggunakan klien email desktop atau klien email web untuk mengirim email percobaan ke [email protected]
dan dapatkan laporan autentikasi email gratis. Ini laporan yang saya dapatkan dari port25.com
Jangan lupa untuk menguji skor email Anda di https://www.mail-tester.com dan juga menguji penempatan email dengan GlockApps.
Jika pemeriksaan DKIM gagal, Anda dapat membuka https://www.dmarcanalyzer.com/dkim/dkim-check/ untuk melihat apakah ada kesalahan dengan data DKIM Anda.
Bagaimana jika Email Anda Masih Ditandai sebagai Spam?
Saya memiliki lebih banyak tips untuk Anda dalam artikel ini: 7 tips efektif untuk menghentikan email Anda ditandai sebagai spam. Meskipun memerlukan waktu dan usaha, email Anda pada akhirnya akan ditempatkan di kotak masuk setelah menerapkan tips ini.
rDNS untuk Beberapa Domain Email?
Reverse DNS (rDNS), alias catatan PTR, digunakan untuk memeriksa apakah alamat IP pengirim cocok dengan nama host HELO. Anda tidak perlu menambahkan data PTR lain saat menambahkan domain email baru. rDNS Anda harus disetel ke hanya satu nama host, yaitu nama host yang disetel di Postfix, yang dapat ditampilkan dengan perintah berikut.
postconf myhostname
rDNS adalah catatan untuk alamat IP. Ini bukan catatan untuk nama domain. Jika Anda hanya memiliki satu alamat IP, maka Anda hanya perlu satu data rDNS yang menunjuk ke satu nama host. Pemeriksaan DNS terbalik tidak memverifikasi apa From:
domain ada di email Anda, selama alamat IP Anda memiliki catatan rDNS dan nama host dapat menyelesaikan kembali ke alamat IP yang sama, Anda dapat melewati pemeriksaan DNS terbalik.
Selain itu, Anda tidak perlu mengubah pengaturan berikut di Postfix saat menghosting beberapa domain di satu server.
- namahostsaya
- asal saya
- tujuan yang salah
Layanan email yang dihosting seperti G Suite dan Microsoft Exchange Online semua menggunakan satu nama host untuk server untuk mengirim email untuk pelanggan mereka. Semua email yang dikirim dari pengguna G Suite menggunakan google.com
di nama host dan email yang dikirim dari pengguna Microsoft Exchange Online semuanya menggunakan outlook.com
dalam nama host. Hal ini juga berlaku untuk penyedia layanan email lain seperti Mailchimp, SendinBlue, SendPluse, dll. Mereka semua menggunakan satu nama host untuk satu server dan satu alamat IP hanya memiliki satu catatan rDNS.