Sebelumnya saya menunjukkan cara mengatur SPF dan DKIM di server email CentOS/RHEL. Dua perangkat lunak umum yang dapat melakukan penandatanganan dan verifikasi DKIM di Linux adalah OpenDKIM dan Amavis. Dalam tutorial itu saya menggunakan Amavis, karena pada saat itu OpenDKIM tidak termasuk dalam repositori CentOS 8/RHEL 8. Sampai sekarang, OpenDKIM termasuk dalam repositori EPEL. Beberapa orang lebih suka menggunakan OpenDKIM jadi saya akan menunjukkan caranya dalam tutorial ini.
Apa itu DKIM?
DKIM (DomainKeys Identified Mail) adalah jenis catatan TXT di DNS yang dapat membantu mencegah spoofing email dan membuat email yang sah dikirim ke kotak masuk penerima alih-alih folder spam. DKIM menggunakan kunci pribadi untuk menambahkan tanda tangan ke email yang dikirim dari domain Anda . Server SMTP penerima memverifikasi tanda tangan dengan menggunakan kunci publik yang sesuai, yang dipublikasikan di data DNS domain Anda.
Menonaktifkan DKIM di Amavis
Jika Anda mengikuti tutorial Amavis saya sebelumnya, tetapi sekarang Anda ingin menggunakan OpenDKIM, Anda harus menonaktifkan DKIM di Amavis. Edit file konfigurasi utama.
sudo nano /etc/amavisd/amavisd.conf
Temukan baris berikut.
$enable_dkim_verification = 1; # enable DKIM signatures verification $enable_dkim_signing = 1; # load DKIM signing code, keys defined by dkim_key
Tambahkan #
karakter di awal setiap baris untuk mengomentarinya.
#$enable_dkim_verification = 1; # enable DKIM signatures verification #$enable_dkim_signing = 1; # load DKIM signing code, keys defined by dkim_key
Simpan dan tutup file. Kemudian mulai ulang Amavis.
sudo systemctl restart amavisd
Langkah 1:Instal dan Konfigurasi OpenDKIM di CentOS 8/RHEL8
Pertama, aktifkan repositori EPEL (Paket Ekstra untuk Linux Perusahaan) dan instal OpenDKIM.
sudo dnf install epel-release sudo dnf install opendkim
Edit file konfigurasi utama OpenDKIM.
sudo nano /etc/opendkim.conf
Temukan baris berikut.
Mode v
Secara default, OpenDKIM berjalan dalam mode verifikasi (v), yang akan memverifikasi tanda tangan DKIM dari pesan email yang masuk. Kami perlu menandatangani email keluar, jadi ubah baris ini menjadi berikut untuk mengaktifkan mode penandatanganan.
Mode sv
Kemudian temukan baris berikut.
## Specifies whether or not the filter should generate report mail back ## to senders when verification fails and an address for such a purpose ## is provided. See opendkim.conf(5) for details. SendReports yes ## Specifies the sending address to be used on From: headers of outgoing ## failure reports. By default, the e-mail address of the user executing ## the filter is used ([email protected]). # ReportAddress "Example.com Postmaster" <[email protected]>
Ketika verifikasi tanda tangan gagal dan tanda tangan menyertakan permintaan pelaporan (“r=y”) dan domain penandatanganan mengiklankan alamat pelaporan (yaitu ra=user) dalam catatan pelaporan di DNS, OpenDKIM akan mengirimkan laporan terstruktur ke alamat tersebut berisi rincian yang diperlukan untuk mereproduksi masalah. Anda mungkin ingin menggunakan alamat email Dari tertentu untuk mengirim laporan. Batalkan komentar pada ReportAddress
parameter dan mengubah alamat email. Perhatikan bahwa ini tidak akan menimbulkan masalah hamburan balik, karena email laporan akan dikirim ke alamat email yang ditentukan dalam data DNS domain pengirim.
Temukan baris berikut dan beri komentar, karena kami akan menggunakan kunci terpisah untuk setiap nama domain.
KeyFile /etc/opendkim/keys/default.private
Selanjutnya, temukan 4 baris berikut dan batalkan komentarnya.
# KeyTable /etc/opendkim/KeyTable # SigningTable refile:/etc/opendkim/SigningTable # ExternalIgnoreList refile:/etc/opendkim/TrustedHosts # InternalHosts refile:/etc/opendkim/TrustedHosts
Simpan dan tutup file.
Langkah 2:Buat Tabel Penandatanganan, Tabel Kunci, dan File Host Tepercaya
Edit tabel penandatanganan berkas.
sudo nano /etc/opendkim/SigningTable
Tambahkan baris berikut di akhir file ini. Ini memberi tahu OpenDKIM bahwa jika pengirim di server Anda menggunakan @your-domain.com
alamat, maka itu harus ditandatangani dengan kunci pribadi yang diidentifikasi oleh 20200308._domainkey.your-domain.com
.
*@your-domain.com 20200308._domainkey.your-domain.com
20200308 adalah pemilih DKIM. Nama domain mungkin memiliki beberapa kunci DKIM. Pemilih DKIM memungkinkan Anda memilih kunci DKIM tertentu. Anda dapat menggunakan nama apa pun untuk pemilih DKIM, tetapi saya merasa nyaman menggunakan tanggal saat ini (8 Maret 2020) sebagai pemilih DKIM. Simpan dan tutup file. Kemudian edit tabel kunci berkas.
sudo nano /etc/opendkim/KeyTable
Tambahkan baris berikut, yang menentukan lokasi kunci pribadi DKIM.
20200308._domainkey.your-domain.com your-domain.com:20200308:/etc/opendkim/keys/your-domain.com/20200308.private
Simpan dan tutup file. Selanjutnya, edit file host terpercaya.
sudo nano /etc/opendkim/TrustedHosts
127.0.0.0.1 dan ::1 disertakan dalam file ini secara default. Sekarang tambahkan baris berikut. Ini memberi tahu OpenDKIM bahwa jika email berasal dari nama domain Anda sendiri, OpenDKIM tidak boleh melakukan verifikasi DKIM pada email tersebut.
*.your-domain.com
Simpan dan tutup file.
Langkah 3:Buat Pasangan Kunci Pribadi/Publik
Karena DKIM digunakan untuk menandatangani pesan keluar dan memverifikasi pesan masuk, kita perlu membuat kunci pribadi untuk penandatanganan dan kunci publik untuk pemverifikasi jarak jauh. Kunci publik akan dipublikasikan di DNS.
Buat folder terpisah untuk domain.
sudo mkdir /etc/opendkim/keys/your-domain.com
Buat kunci menggunakan opendkim-genkey
alat.
sudo opendkim-genkey -b 2048 -d your-domain.com -D /etc/opendkim/keys/your-domain.com -s 20200308 -v
Perintah di atas akan membuat kunci 2048 bit. -d (domain)
menentukan domain. -D (directory)
menentukan direktori tempat kunci akan disimpan. Saya menggunakan 20200308
sebagai pemilih DKIM. Setelah perintah dijalankan, kunci pribadi akan ditulis ke 20200308.private
file dan kunci publik akan ditulis ke 20200308.txt
berkas.
Secara default, hanya root yang dapat membaca dan menulis ke file kunci. Buat opendkim
sebagai pemilik kunci pribadi.
sudo chown opendkim:opendkim /etc/opendkim/keys/ -R
Langkah 4:Publikasikan Kunci Publik Anda di Catatan DNS
Tampilkan kunci publik
sudo cat /etc/opendkim/keys/your-domain.com/20200308.txt
String setelah p
parameter adalah kunci publik.
Di pengelola DNS Anda, buat data TXT, masukkan 20200308._domainkey
di kolom nama. (Anda perlu mengganti 20200308 dengan pemilih DKIM Anda sendiri.) Kemudian kembali ke jendela terminal, salin semua yang ada di dalam tanda kurung dan tempel ke bidang nilai catatan DNS. Anda perlu menghapus semua tanda kutip ganda dan jeda baris di bidang nilai. Jika Anda tidak menghapusnya, pengujian kunci pada langkah berikutnya mungkin akan gagal.
Langkah 5:Uji Kunci DKIM
Masukkan perintah berikut di server CentOS 8/RHEL 8 Anda untuk menguji kunci Anda.
sudo opendkim-testkey -d your-domain.com -s 20200308 -vvv
Jika semuanya OK, Anda akan melihat key OK
pesan.
opendkim-testkey: using default configfile /etc/opendkim.conf opendkim-testkey: checking key '20200308._domainkey.linuxbabe.com' opendkim-testkey: key OK
Perhatikan bahwa data DKIM Anda mungkin perlu waktu untuk menyebar ke Internet. Bergantung pada pencatat domain yang Anda gunakan, data DNS Anda mungkin disebarkan secara instan, atau mungkin perlu waktu hingga 24 jam untuk disebarkan. Anda dapat pergi ke https://www.dmarcanalyzer.com/dkim/dkim-check/, masukkan 20200308
sebagai pemilih dan masukkan nama domain Anda untuk memeriksa propagasi data DKIM.
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.
Sekarang kita dapat memulai layanan opendkim.
sudo systemctl start opendkim
Dan aktifkan mulai otomatis saat boot.
sudo systemctl enable opendkim
OpenDKIM mendengarkan 127.0.0.1:8891
.
Langkah 6:Hubungkan Postfix ke OpenDKIM
Edit file konfigurasi utama Postfix.
sudo nano /etc/postfix/main.cf
Tambahkan baris berikut di akhir file ini, sehingga Postfix akan dapat memanggil OpenDKIM melalui protokol milter. Perhatikan bahwa Anda harus menggunakan 127.0.0.1
sebagai alamat. Jangan gunakan localhost
.
# Milter configuration milter_default_action = accept milter_protocol = 6 smtpd_milters = inet:127.0.0.1:8891 non_smtpd_milters = $smtpd_milters
Simpan dan tutup file. Kemudian tambahkan postfix
pengguna ke opendkim
grup.
sudo gpasswd -a postfix opendkim
Mulai ulang postfix
layanan.
sudo systemctl restart postfix
Langkah 7: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. Berikut laporan yang saya dapatkan dari port25.com.
Anda juga dapat mengirim email percobaan dari server email ke akun Gmail Anda untuk melihat apakah pemeriksaan SPF dan DKIM lulus. Di sisi kanan pesan email yang dibuka di Gmail, jika Anda mengklik show original
dari menu tarik-turun, Anda dapat melihat hasil autentikasi.
Jika pesan Anda tidak ditandatangani dan pemeriksaan DKIM gagal, Anda mungkin ingin memeriksa log postfix (/var/log/maillog
) untuk melihat apa yang salah dalam konfigurasi Anda.
Server email Anda juga akan melakukan verifikasi DKIM pada email yang masuk. Anda dapat melihat hasilnya di header email. Berikut ini adalah pemeriksaan SPF dan DKIM pada pengirim yang menggunakan Gmail.
Received-SPF: Pass (mailfrom) identity=mailfrom; client-ip=2607:f8b0:4864:20::c2d; helo=mail-yw1-xc2d.google.com; [email protected]; receiver=<UNKNOWN> Authentication-Results: email.linuxbabe.com; dkim=pass (2048-bit key; unprotected) header.d=gmail.com [email protected] header.b="XWMRd2co"; dkim-atps=neutral
Cara Mengonfigurasi OpenDKIM Untuk Beberapa Domain
Saya telah menulis panduan untuk menghosting banyak domain di server email CentOS 8/RHEL 8 dengan PostfixAdmin. Dalam artikel itu, saya menggunakan Amavis untuk penandatanganan dan verifikasi DKIM. Jika Anda menggunakan OpenDKIM, maka Anda harus melewati langkah 3 dalam artikel tersebut.
Untuk mengonfigurasi OpenDKIM untuk beberapa domain, Anda perlu menambahkan domain lain di tabel penandatanganan, tabel kunci, dan file host tepercaya seperti di bawah ini.
Tabel penandatanganan:
*@domain1.com 20200308._domainkey.domain1.com *@domain2.com 20200308._domainkey.domain2.com
Tabel kunci:
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
Host tepercaya:
127.0.0.1 localhost *.domain1.com *.domain2.com
Kemudian buat pasangan kunci Pribadi/Publik DKIM dan tambahkan kunci publik DKIM di DNS seperti yang disebutkan di langkah 3, langkah 4, dan langkah 5 untuk domain lain. Mulai ulang OpenDKIM dan selesai.
sudo systemctl restart opendkim
Langkah Selanjutnya
Saya harap tutorial ini membantu Anda menginstal dan mengkonfigurasi OpenDKIM di server email CentOS 8/RHEL 8. Sekarang Anda mungkin ingin membaca tutorial berikut untuk menyiapkan OpenDMARC guna memblokir spoofing email.
- Mengatur OpenDMARC dengan Postfix di CentOS/RHEL untuk Memblokir Email Spoofing
Seperti biasa, jika menurut Anda postingan ini bermanfaat, berlangganan newsletter gratis kami untuk mendapatkan lebih banyak tips dan trik. Hati-hati