GNU/Linux >> Belajar Linux >  >> Cent OS

Siapkan OpenDMARC dengan Postfix di CentOS/RHEL untuk Memblokir Email Spoofing

Pada artikel sebelumnya, kami telah membahas beberapa tips efektif untuk memblokir spam email. Tutorial ini akan menunjukkan kepada Anda cara mengatur OpenDMARC dengan server SMTP Postfix di CentOS/RHEL untuk memblokir spoofing email dan spam. OpenDMARC adalah filter kebijakan email DMARC open source untuk MTA (Message Transport Agent, alias server SMTP).

Apa itu DMARC

DMARC (Domain-based Message Authentication, Reporting and Conformance) adalah standar Internet (RFC 7489) yang memungkinkan pemilik domain untuk mencegah nama domain mereka digunakan oleh penipu email. Sebelum DMARC ditemukan, sangat mudah bagi pelaku kejahatan untuk menggunakan nama domain orang lain di alamat Dari.

Jika pemilik domain membuat data DNS DMARC untuk nama domainnya dan server email penerima menerapkan verifikasi DMARC, maka aktor jahat harus melewati penyelarasan SPF atau penyelarasan DKIM untuk lulus verifikasi DMARC. Jika pemeriksaan DMARC gagal, email palsu dapat ditolak. Tidak pernah terlihat oleh pengguna akhir. Sulit bagi pelaku kejahatan untuk melewati SPF atau DKIM, kecuali server email pemilik domain disusupi.

Contoh Spoofing Email

Seorang spammer mengirimi saya email tebusan menggunakan winsaaluminyumankara.com di alamat Dari. Informasi whois dari winsaaluminyumankara.com adalah publik. Jelas bahwa spammer bukanlah orang yang bertanggung jawab atas nama domain ini.

winsaaluminyumankara.com memiliki data DMARC.

Kemudian saya memeriksa header email, yang menunjukkan SPF gagal. Tidak ada tanda tangan DKIM. Jadi pemeriksaan DMARC gagal. Ini adalah email palsu.

Ini menunjukkan bahwa tidak hanya merek besar yang digunakan oleh penipu email, nama domain apa pun di Internet dapat ditiru oleh aktor jahat. Sayangnya kebijakan DMARC untuk nama domain ini adalah p=none , yang memberi tahu server email penerima untuk tidak melakukan hal khusus jika pemeriksaan DMARC gagal. Jika kebijakannya adalah p=reject , maka server SMTP Postfix saya akan menolak email ini dengan OpenDMARC.

Paypal dan Facebook telah membuat reject Kebijakan DMARC untuk nama domain mereka.

Jadi jika aktor jahat mencoba menipu Paypal atau Facebook, server email saya dapat menolak email palsu dengan OpenDMARC. Ada banyak nama domain terkenal lainnya yang menerapkan reject Kebijakan DMARC, seperti yang dapat dilihat pada tabel di bawah ini.

  • bankofamerica.com
  • yahoo.com
  • kejar.com
  • wellsfargo.com
  • facebook.com
  • google.com
  • youtube.com
  • twitter.com
  • reddit.com
  • instagram.com
  • linkedin.com
  • medium.com
  • pinterest.com
  • dropbox.com
  • microsoft.com
  • whatsapp.com

Penyedia kotak surat aman Protonmail menggunakan Postfix dan OpenDMARC untuk melakukan pemeriksaan DMARC pada email masuk dan saya akan menunjukkan cara melakukan hal yang sama pada server SMTP Postfix Anda sendiri.

Prasyarat

Tutorial ini untuk penyedia kotak surat dan siapa saja yang menjalankan server surat mereka sendiri, untuk melindungi pengguna mereka dari penipuan oleh spoofing email. Jika Anda adalah pemilik nama domain dan ingin mencegah nama domain Anda digunakan oleh penipu email, silakan baca artikel ini untuk membuat data DMARC dan menganalisis laporan DMARC. Saya juga menyarankan Anda untuk membaca artikel itu jika Anda tidak sepenuhnya memahami DMARC.

Anda harus menjalankan layanan verifikasi DKIM di server email Anda sebelum menyiapkan OpenDMARC. OpenDMARC harus digunakan bersama dengan OpenDKIM. Jika Anda menggunakan Amavis untuk melakukan penandatanganan dan verifikasi DKIM, maka saya sarankan untuk beralih dari Amavis ke OpenDKIM. Itu karena OpenDMARC tidak bisa membaca hasil verifikasi DKIM dari Amavis. Anda tidak perlu mencopot pemasangan Amavis sepenuhnya. Cukup nonaktifkan DKIM di Amavis, lalu instal dan konfigurasikan OpenDKIM.

Jika Anda tidak ingin beralih ke OpenDKIM, maka Anda perlu mengintegrasikan Amavis dengan Postfix melalui antarmuka milter, yang akan dijelaskan di akhir artikel ini.

Langkah 1:Instal dan Konfigurasi OpenDMARC di CentOS/RHEL

OpenDMARC adalah perangkat lunak sumber terbuka yang dapat melakukan pemeriksaan dan pelaporan DMARC. Anda dapat menginstalnya di CentOS/RHEL dari repositori EPEL.

sudo dnf install epel-releasesudo dnf install opendmarc

Mulai OpenDMARC.

sudo systemctl start opendmarc

Aktifkan mulai otomatis saat boot.

sudo systemctl aktifkan opendmarc

OpenDMARC mendengarkan di 127.0.0.1:8893 . Jalankan perintah berikut untuk memeriksa statusnya.

systemctl status opendmarc

Keluaran:

● opendmarc.service - Otentikasi Pesan Berbasis Domain, Pelaporan &Kesesuaian (DMARC) Milter Dimuat:dimuat (/usr/lib/systemd/system/opendmarc.service; diaktifkan; preset vendor:dinonaktifkan) Aktif:aktif (berjalan ) sejak Sun 2020-03-08 23:52:59 EDT; 1 menit 4 detik yang lalu Dokumen:man:opendmarc(8) man:opendmarc.conf(5) man:opendmarc-import(8) man:opendmarc-reports(8) http://www.trusteddomain.org/opendmarc/ PID Utama:19987 (opendmarc) Tugas:3 (batas:5047) Memori:1.1M CGroup:/system.slice/opendmarc.service 19987 /usr/sbin/opendmarc -c /etc/opendmarc.conf -P /var/run/ opendmarc/opendmarc.pid

Kemudian edit file konfigurasi utama dengan editor teks Anda.

sudo nano /etc/opendmarc.conf

Temukan baris berikut:

# nama AuthservID

Secara default OpenDMARC menggunakan hostname MTA sebagai AuthserveID, tetapi lebih baik menggunakan nama yang berbeda untuk layanan otentikasi, karena Amavisd-new akan menimpa header hasil otentikasi yang ditambahkan oleh OpenDMARC. Anda dapat mengubahnya menjadi berikut ini, yang akan sangat memudahkan Anda untuk melihat program mana yang menambahkan header hasil autentikasi.

AuthservID OpenDMARC

Selanjutnya, tambahkan baris berikut. Ganti nama host dengan nama host Postfix asli Anda. Ini memberitahu OpenDMARC untuk mempercayai hasil otentikasi dengan mail.yourdomain.com di ID-nya. Ini diperlukan ketika Anda menjalankan OpenDKIM untuk melakukan verifikasi DKIM. Jika nama host Postfix tidak disertakan dalam TrustedAuthservIDs , maka OpenDMARC akan mengabaikan header Authentication-Results yang dibuat oleh OpenDKIM.

TrustedAuthservIDs mail.domainanda.com

Kemudian temukan baris berikut.

# IgnoreAuthenticatedClients salah

Ubah nilainya menjadi true untuk mengabaikan klien SMTP yang berhasil diautentikasi melalui SMTP AUTH, yang mencakup klien email desktop/seluler yang mengirimkan email keluar melalui port 587.

IgnoreAuthenticatedClients benar

Kemudian temukan baris ini:

# RejectFailures salah

Secara default, OpenDMARC tidak akan menolak email yang gagal dalam pemeriksaan DMARC, meskipun kebijakan domain disetel ke p=reject . Jika Anda lebih suka menolak email yang gagal DMARC, periksa saat kebijakan domain disetel ke p=reject , lalu batalkan komentar pada baris ini dan ubah false untuk true .

RejectFailures benar

Temukan baris berikut.

# RequiredHeaders salah

Ubah ke:

RequiredHeaders benar

Ini akan menolak email yang tidak sesuai dengan standar header email seperti yang dijelaskan dalam RFC5322. Misalnya, jika email masuk tidak memiliki From: header atau date: header, itu akan ditolak. A From:bidang yang tidak dapat mengekstrak nama domain juga akan ditolak.

Secara default, OpenDMARC pada CentOS/RHEL akan mengabaikan hasil SPF di header email dan melakukan pemeriksaan SPF itu sendiri. Ini dikendalikan oleh dua parameter berikut.

SPFIgnoreResults trueSPFSSelfValidate true

Jika Anda lebih suka menggunakan layanan pemeriksaan SPF lain di server email Anda, beri tahu OpenDMARC untuk memercayai hasil SPF di header email dan hanya melakukan pemeriksaan SPF jika tidak dapat menemukan hasil SPF di header.

SPFIgnoreResults falseSPFSSelfValidate true

Simpan dan tutup file. Kemudian mulai ulang OpenDMARC agar perubahan diterapkan.

sudo systemctl restart opendmarc

Langkah 2:Integrasikan OpenDMARC dengan Server SMTP Postfix

Jika Anda menggunakan OpenDKIM

Edit file konfigurasi utama Postfix.

sudo nano /etc/postfix/main.cf

Jika Anda mengikuti tutorial DKIM saya di CentOS 8/RHEL 8, maka Anda harus memiliki baris dalam file ini seperti di bawah ini. OpenDKIM mendengarkan di 127.0.0.1:8891 .

# Konfigurasi miltermilter_default_action =acceptmilter_protocol =6smtpd_milters =inet:127.0.0.1:8891non_smtpd_milters =$smtpd_milters

Sekarang Anda hanya perlu menambahkan soket OpenDMARC agar Postfix dapat berbicara dengan OpenDMARC. (Pastikan setelah soket OpenDKIM.) OpenDMARC mendengarkan di 127.0.0.1:8893 .

# Konfigurasi miltermilter_default_action =acceptmilter_protocol =6smtpd_milters =inet:127.0.0.1:8891,inet:127.0.0.1:8893non_smtpd_milters =$smtpd_milters

Simpan dan tutup file. Kemudian restart Postfix agar perubahan diterapkan.

sudo systemctl restart postfix

Jika Anda menggunakan Amavis

Jika Anda menggunakan Amavis untuk penandatanganan dan verifikasi DKIM seperti di iRedMail , maka OpenDMARC tidak bisa membaca hasil verifikasi DKIM dari Amavis. Anda dapat menginstal OpenDKIM untuk memverifikasi tanda tangan DKIM.

Instal OpenDKIM dari repositori EPEL (Paket Ekstra untuk Linux Perusahaan).

sudo dnf install epel-releasesudo dnf install opendkim

Secara default, opendkim paket pada CentOS/RHEL hanya berjalan dalam mode verifikasi. Itu tidak akan menambahkan tanda tangan DKIM ke email keluar. Ini yang kami inginkan karena Amavis akan menambahkan tanda tangan DKIM. Edit file konfigurasi OpenDKIM.

sudo nano /etc/opendkim.conf

Temukan baris berikut.

KeyFile   /etc/opendkim/keys/default.private

Karena kita tidak ingin OpenDKIM menandatangani email keluar, kita perlu mengomentari baris ini, lalu menyimpan dan menutup file.

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 .

# Konfigurasi miltermilter_default_action =acceptmilter_protocol =6smtpd_milters =inet:127.0.0.1:8891,inet:127.0.0.1:8893non_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

Sekarang kita dapat memulai layanan opendkim.

sudo systemctl start opendkim

Dan aktifkan mulai otomatis saat boot.

sudo systemctl aktifkan opendkim

Langkah 3:Menguji Verifikasi OpenDMARC

Sekarang kirim email dari alamat email Anda yang lain ke alamat domain Anda. Setelah itu, periksa header email. Jika OpenDMARC berfungsi dengan benar, Anda dapat melihat hasil verifikasi DMARC seperti di bawah ini.

Hasil-Otentikasi:OpenDMARC; dmarc=pass (p=none dis=none) header.from=gmail.com

Saya mengirim email dari akun Gmail saya ke alamat email domain saya dan lolos verifikasi DMARC. Jika Anda tidak melihat header email ini, periksa log email Anda.

sudo nano /var/log/maillog

Anda akan melihat sesuatu seperti di bawah ini, yang berarti OpenDMARC berfungsi.

opendmarc[26495]:61DAA3EA44:gmail.com pass

Jika Anda melihat pesan berikut.

mengabaikan Authentication-Results di 1 dari mail.linuxbabe.com

artinya OpenDMARC mengabaikan hasil verifikasi SPF dan DKIM, jadi OpenDMARC tidak berfungsi. Anda perlu menambahkan baris berikut di /etc/opendmarc.conf file, lalu mulai ulang OpenDMARC.

TrustedAuthservIDs mail.domainanda.com

Jika Anda mengubah myhostname Postfix parameter, ingatlah untuk menambahkan nama host baru ke TrustedAuthservIDs. Anda dapat menambahkan beberapa nama host, dipisahkan dengan koma.

TrustedAuthservIDs mail.domainanda.com,mail2.domainanda.com

Menguji OpenDMARC dengan Telnet

Anda dapat menggunakan telnet untuk menipu nama domain lain, seperti paypal.com. Pertama, jalankan perintah berikut untuk terhubung ke port 25 dari server email Anda.

telnet mail.domainanda.com 25

Kemudian gunakan langkah-langkah berikut untuk mengirim email spoof. (Anda mengetik teks tebal.)

HELO mail.paypal.com 250 mail.domainanda.comMAIL DARI:<[email protected]> 250 2.1.0 OkeRCPT KE:<[email protected]> 250 2.1.5 OkeDATA 354 Akhiri data dengan .Dari:     [email protected] Kepada:       [dilindungi email] Subjek:  Harap perbarui sandi Anda. Klik tautan ini untuk memperbarui sandi Anda. . 550 5.7.1 ditolak oleh kebijakan DMARC untuk paypal.comkeluar 

Seperti yang Anda lihat, server email saya menolak email ini karena tidak lolos pemeriksaan DMARC dan Paypal menerapkan p=reject kebijakan.

Catatan: Jika kebijakan DMARC domain disetel ke p=quarantine , kemudian milter OpenDMARC akan memasukkan email palsu ke antrean tahan Postifx tanpa batas waktu. Postmaster dapat mencantumkan semua pesan dalam antrean dengan postqueue -p perintah dan gunakan postsuper utilitas baris perintah untuk melepaskan pesan dalam antrian tunggu.

(Opsional) Integrasikan Amavis dengan Postfix melalui Milter

Seperti yang dijelaskan di bagian prasyarat, saya sarankan untuk beralih dari Amavis ke OpenDKIM, tetapi jika Anda tidak suka beralih, maka Anda perlu mengintegrasikan Amavis dengan Postfix melalui antarmuka milter, sehingga OpenDMARC dapat membaca hasil verifikasi DKIM dari Amavis.

Instal amavisd-milter paket di CentOS/RHEL.

sudo dnf install amavisd-milter

Mulai layanan.

sudo systemctl start amavisd-milter

Aktifkan mulai otomatis saat boot.

sudo systemctl aktifkan amavisd-milter

Amavisd-milter mendengarkan pada soket Unix di /run/amavisd/amavisd-milter.sock . Edit file konfigurasi utama Postfix.

sudo nano /etc/postfix/main.cf

Tambahkan baris berikut di akhir file. Perhatikan bahwa Anda harus menempatkan soket Unix amavisd-milter sebelum soket OpenDMARC TCP.

# Konfigurasi miltermilter_default_action =acceptmilter_protocol =6smtpd_milters =unix:/run/amavisd/amavisd-milter.sock,inet:127.0.0.1:8893non_smtpd_milters =$smtpd_milters

Juga beri komentar pada baris berikut, sehingga Postfix tidak akan mengirimkan email masuk ke Amavis dua kali.

content_filter =smtp-amavis:[127.0.0.1]:10024

Simpan dan tutup file. Kemudian tambahkan postfix ke amavis grup, sehingga Postfix akan dapat mengakses soket Amavis Unix.

sudo gpasswd -a postfix amavis

Email keluar yang dikirimkan dari pengguna yang diautentikasi tidak boleh diteruskan ke Amavis melalui antarmuka milter, karena Amavis tidak akan menambahkan tanda tangan DKIM. Mereka harus menggunakan 127.0.0.1:10026 seperti biasa, sehingga tanda tangan DKIM akan ditambahkan. Edit file master.cf Postfix.

sudo nano /etc/postfix/master.cf

Temukan submission komponen. Seharusnya terlihat sebagai berikut jika Anda mengikuti tutorial Amavis saya di CentOS/RHEL.

 pengajuan inet n - y - - smtpd -o syslog_name =postfix / penyerahan -o smtpd_tls_security_level =mengenkripsi -o smtpd_tls_wrappermode =tidak ada -o smtpd_sasl_auth_enable =yes -o smtpd_relay_restrictions =permit_sasl_authenticated, menolak -o smtpd_recipient_restrictions =permit_mynetworks, permit_sasl_authenticated, menolak - o smtpd_sasl_type=dovecot -o smtpd_sasl_path=private/auth -o content_filter=smtp-amavis:[127.0.0.1]:10026

Sekarang tambahkan opsi berikut di akhir.

-o smtpd_milters=

Seperti ini:

 pengajuan inet n - y - - smtpd -o syslog_name =postfix / penyerahan -o smtpd_tls_security_level =mengenkripsi -o smtpd_tls_wrappermode =tidak ada -o smtpd_sasl_auth_enable =yes -o smtpd_relay_restrictions =permit_sasl_authenticated, menolak -o smtpd_recipient_restrictions =permit_mynetworks, permit_sasl_authenticated, menolak - o smtpd_sasl_type=dovecot -o smtpd_sasl_path=private/auth -o content_filter=smtp-amavis:[127.0.0.1]:10026 -o smtpd_milters=

Ini akan membuat layanan pengiriman Postfix tidak menggunakan milter sama sekali, sehingga email yang dikirimkan dari pengguna yang diautentikasi tidak akan diteruskan ke Amavis melalui antarmuka milter. Perhatikan bahwa Anda tidak boleh menambahkan spasi sebelum tanda sama dengan (=).

Anda juga harus menambahkan baris ini ke smtps komponen.

Pre> smtps inet n -y - -smtpd -o syslog_name =postfix/smtps -o smtpd_tls_wrappermode =yes -o smtpd_sasl_auth_enable =yes -o smtpd_recipient_restrictions =permit_Auth_aNypat/aUTPD_OCHECICEIT_OCHICEICET_REVICET =PERMITPATH_PEATL_OCICICET_OUTCICET =PRODSICICET_REVICET =PERMICICED_OUTICED_OUTICICED_OUTICET =PROYPD_OUTICICET =o content_filter=smtp-amavis:[127.0.0.1]:10026 -o smtpd_milters=

Simpan dan tutup file. Mulai ulang Postfix agar perubahan diterapkan.

sudo systemctl restart postfix

Sekarang OpenDMARC akan dapat membaca hasil verifikasi DKIM dari Amavis, dan Amavis akan terus menambahkan tanda tangan DKIM untuk pengguna yang diautentikasi.


Cent OS
  1. Cara Mengatur atau Mengubah Nama Host di CentOS 7 / RHEL 7

  2. Cara Menginstal Dan Mengintegrasikan DKIM Dengan OpenDKIM Dan Postfix Pada VPS CentOS 6

  3. Cara Mengatur Nama Antarmuka Kustom dengan NetworkManager di CentOS/RHEL 7

  1. Cara menginstal server email postfix di RHEL 8 / CentOS 8

  2. RHEL 8 / CentOS 8 membuka port FTP 21 dengan firewalld

  3. Cara Mengatur Firewall dengan FirewallD di CentOS 7

  1. Cara Mengatur Blok Server Nginx di CentOS 7

  2. Cara Menginstal WordPress dengan Apache di CentOS 7

  3. Cara Mengatur Blok Server Nginx di CentOS 8