Siapkan ParseDMARC di Ubuntu 20.04 untuk Menganalisis Laporan DMARC

Siapkan ParseDMARC di Ubuntu 20.04 untuk Menganalisis Laporan DMARC

ParseDMARC adalah penganalisis laporan DMARC sumber terbuka yang dihosting sendiri. Bagi yang belum tahu, DMARC adalah standar keamanan email yang dapat melindungi nama domain Anda dari spoofing email dan juga mengidentifikasi email palsu yang masuk untuk melindungi pengguna akhir. Di artikel sebelumnya, kita membahas cara membuat data DNS DMARC untuk nama domain Anda dan menggunakan alat pihak ketiga yang disebut PostMark untuk menganalisis laporan DMARC. Dalam tutorial ini, kita akan mengatur ParseDMARC di server Ubuntu 20.04 sehingga kita dapat menganalisis laporan DMARC tanpa harus membagikan data dengan pihak ketiga.

Prasyarat

Diasumsikan bahwa Anda telah membuat data DNS DMARC untuk nama domain Anda .

Untuk menghasilkan data yang divisualisasikan, ParseDMARC mengandalkan Elasticsearch dan Kibana, keduanya haus RAM. Mereka akan menggunakan sekitar 2G RAM setelah instalasi dan membutuhkan lebih banyak RAM untuk memproses data. Jadi, Anda membutuhkan server dengan setidaknya RAM 3G . Anda juga disarankan untuk menggunakan server dengan setidaknya 4 inti CPU .

Anda dapat mengklik tautan khusus ini untuk mendapatkan kredit gratis $ 100 di DigitalOcean. (Hanya untuk pengguna baru). Jika Anda sudah menjadi pengguna DigitalOcean, maka Anda dapat mengklik tautan khusus ini untuk mendapatkan kredit gratis $ 50 di Vultr (hanya untuk pengguna baru). Setelah Anda memiliki akun di DigitalOcean atau Vultr, instal Ubuntu 20.04 di server Anda dan ikuti petunjuk di bawah ini.

Menginstal ParseDMARC di Ubuntu 20.04 Server

ParseDMARC adalah program Python dan dapat diinstal dari repositori perangkat lunak PyPI (Python Package Index). Pertama, kita perlu menginstal penginstal paket Python di Ubuntu 20.04. Pada perintah berikut, kami menginstal python3-pippaket karena ParseDMARC hanya dapat bekerja dengan Python 3. geoipupdatePaket tersebut digunakan untuk memperbarui database MaxMind GeoIP.

sudo apt menginstal python3-pip geoipupdate

Kemudian instal versi stabil terbaru ParseDMARC dengan perintah berikut.

sudo -H pip3 install -U parsedmarc

Untuk mengecek informasi tentang parsedmarcpaket tersebut, Anda bisa menjalankan

pip3 show -f parsedmarc

Untuk melihat opsi baris perintah, jalankan

parsedmarc --help

Menginstal Elasticsearch dan Kibana di Ubuntu 20.04

ParseDMARC adalah program baris perintah, yang menghasilkan keluaran yang sulit dibaca. Jika Anda ingin melihat laporan DMARC yang divisualisasikan dalam antarmuka berbasis web, Anda perlu memasang dua program sumber terbuka lainnya: Elasticsearchdan Kibana. Elasticsearch adalah mesin pencari dan analitik dan Kibana memungkinkan pengguna untuk memvisualisasikan data dengan bagan dan grafik di Elasicsearch.

Kami dapat menginstal Elasticsearch dan Kibana dari repositori resmi dengan perintah berikut. Elasticsearch ditulis dalam bahasa pemrograman Java, jadi kami juga menginstal paket default-jre-headless(Java runtime environment) di perintah terakhir.

sudo apt-get install -y apt-transport-https

wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add -

echo "deb https://artifacts.elastic.co/packages/7.x/apt stable main" | sudo tee -a /etc/apt/sources.list.d/elastic-7.x.list

sudo apt-get update

sudo apt-get install -y default-jre-headless elasticsearch kibana

Secara default, layanan systemd Elasticsearch dinonaktifkan. Anda dapat memulai dan mengaktifkannya dengan perintah berikut.

sudo systemctl mulai elasticsearch

sudo systemctl mengaktifkan elasticsearch

Kemudian periksa statusnya.

status systemctl elasticsearch

Kita dapat melihat bahwa sekarang diaktifkan dan berjalan, dan menggunakan RAM 1,3G. ( Petunjuk : Jika perintah ini tidak langsung berhenti, tekan Q untuk membuatnya berhenti.)

Kami juga perlu melakukan hal yang sama untuk Kibaba.

sudo systemctl mulai kibana

sudo systemctl mengaktifkan kibana

Periksa statusnya.

status systemctl kibana

ParseDMARC adalah penganalisis laporan DMARC sumber terbuka yang dihosting sendiri. Bagi yang belum tahu, DMARC adalah standar keamanan email yang dapat melindungi nama domain Anda dari spoofing email dan juga mengidentifikasi email palsu yang masuk untuk melindungi pengguna akhir. Di artikel sebelumnya, kita membahas cara membuat data DNS DMARC untuk nama domain Anda dan menggunakan alat pihak ketiga yang disebut PostMark untuk menganalisis laporan DMARC. Dalam tutorial ini, kita akan mengatur ParseDMARC di server Ubuntu 20.04 sehingga kita dapat menganalisis laporan DMARC tanpa harus membagikan data dengan pihak ketiga.

Prasyarat

Diasumsikan bahwa Anda telah membuat data DNS DMARC untuk nama domain Anda .

Untuk menghasilkan data yang divisualisasikan, ParseDMARC mengandalkan Elasticsearch dan Kibana, keduanya haus RAM. Mereka akan menggunakan sekitar 2G RAM setelah instalasi dan membutuhkan lebih banyak RAM untuk memproses data. Jadi, Anda membutuhkan server dengan setidaknya RAM 3G . Anda juga disarankan untuk menggunakan server dengan setidaknya 4 inti CPU .

Anda dapat mengklik tautan khusus ini untuk mendapatkan kredit gratis $ 100 di DigitalOcean. (Hanya untuk pengguna baru). Jika Anda sudah menjadi pengguna DigitalOcean, maka Anda dapat mengklik tautan khusus ini untuk mendapatkan kredit gratis $ 50 di Vultr (hanya untuk pengguna baru). Setelah Anda memiliki akun di DigitalOcean atau Vultr, instal Ubuntu 20.04 di server Anda dan ikuti petunjuk di bawah ini.

Menginstal ParseDMARC di Ubuntu 20.04 Server

ParseDMARC adalah program Python dan dapat diinstal dari repositori perangkat lunak PyPI (Python Package Index). Pertama, kita perlu menginstal penginstal paket Python di Ubuntu 20.04. Pada perintah berikut, kami menginstal python3-pippaket karena ParseDMARC hanya dapat bekerja dengan Python 3. geoipupdatePaket tersebut digunakan untuk memperbarui database MaxMind GeoIP.

sudo apt menginstal python3-pip geoipupdate

Kemudian instal versi stabil terbaru ParseDMARC dengan perintah berikut.

sudo -H pip3 install -U parsedmarc

Untuk mengecek informasi tentang parsedmarcpaket tersebut, Anda bisa menjalankan

pip3 show -f parsedmarc

Untuk melihat opsi baris perintah, jalankan

parsedmarc --help

Menginstal Elasticsearch dan Kibana di Ubuntu 20.04

ParseDMARC adalah program baris perintah, yang menghasilkan keluaran yang sulit dibaca. Jika Anda ingin melihat laporan DMARC yang divisualisasikan dalam antarmuka berbasis web, Anda perlu memasang dua program sumber terbuka lainnya: Elasticsearchdan Kibana. Elasticsearch adalah mesin pencari dan analitik dan Kibana memungkinkan pengguna untuk memvisualisasikan data dengan bagan dan grafik di Elasicsearch.

Kami dapat menginstal Elasticsearch dan Kibana dari repositori resmi dengan perintah berikut. Elasticsearch ditulis dalam bahasa pemrograman Java, jadi kami juga menginstal paket default-jre-headless(Java runtime environment) di perintah terakhir.

sudo apt-get install -y apt-transport-https

wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add -

echo "deb https://artifacts.elastic.co/packages/7.x/apt stable main" | sudo tee -a /etc/apt/sources.list.d/elastic-7.x.list

sudo apt-get update

sudo apt-get install -y default-jre-headless elasticsearch kibana

Secara default, layanan systemd Elasticsearch dinonaktifkan. Anda dapat memulai dan mengaktifkannya dengan perintah berikut.

sudo systemctl mulai elasticsearch

sudo systemctl mengaktifkan elasticsearch

Kemudian periksa statusnya.

status systemctl elasticsearch

Kita dapat melihat bahwa sekarang diaktifkan dan berjalan, dan menggunakan RAM 1,3G. ( Petunjuk : Jika perintah ini tidak langsung berhenti, tekan Q untuk membuatnya berhenti.)

parsedmarc-elasticsearch-ubuntu 20.04

Kami juga perlu melakukan hal yang sama untuk Kibaba.

sudo systemctl mulai kibana

sudo systemctl mengaktifkan kibana

Periksa statusnya.

status systemctl kibana

parsedmarc kibana ubuntu 20.04

Menyiapkan Nginx Reverse Proxy untuk Elastic

Server web elastis mendengarkan 127.0.0.1:5601. Kita dapat menggunakan Nginx untuk mengatur proxy balik untuk memungkinkan akses jarak jauh dan juga melindungi antarmuka web Elastis. Jalankan perintah berikut untuk menginstal Nginx dari repositori Ubuntu 20.04.

sudo apt menginstal nginx

Buat file host virtual Nginx untuk Elastic.

sudo nano /etc/nginx/conf.d/elastic.conf

Letakkan baris berikut ke dalam file. Ganti placeholder seperlunya dan Anda harus membuat data DNS A untuk sub-domain.

server {
      dengarkan 80;
      dengarkan [::]: 80; 
      SERVER_NAME dmarc.yourdomain.com ;

      access_log /var/log/nginx/dmarc.access;
      error_log /var/log/nginx/dmarc.error;

      add_header X-Frame-Options SAMEORIGIN; 
      add_header X-Content-Type-Options nosniff;

      lokasi / {
         proxy_pass http://127.0.0.1:5601;
         proxy_set_header Host $ host;
         proxy_set_header X-Real-IP $ remote_addr;
         proxy_set_header X-Forwarded-Untuk $ proxy_add_x_forwarded_for;
      }
}

Simpan dan tutup file. Kemudian uji konfigurasi Nginx.

sudo nginx -t

Jika pengujian berhasil, muat ulang Nginx agar perubahan diterapkan.

sudo systemctl memuat ulang nginx

Sekarang Anda dapat mengakses antarmuka web Elastis di dmarc.yourdomain.com. Klik Explore on my owntombol tersebut.

Mengaktifkan HTTPS

Untuk mengenkripsi lalu lintas HTTP saat Anda mengunjungi antarmuka web Elastic melalui nama domain, kami dapat mengaktifkan HTTPS dengan memasang sertifikat TLS gratis yang dikeluarkan dari Let's Encrypt. Jalankan perintah berikut untuk menginstal Let's Encrypt client (certbot) di server Ubuntu 20.04.

sudo apt menginstal certbot

Jika Anda menggunakan Nginx, Anda juga perlu menginstal plugin Certbot Nginx.

sudo apt menginstal python3-certbot-nginx

Selanjutnya, jalankan perintah berikut untuk mendapatkan dan menginstal sertifikat TLS.

sudo certbot --nginx --agree-tos --redirect --hsts --staple-ocsp --email you@example.com -d dmarc.yourdomain.com
Sertifikat sekarang harus diperoleh dan dipasang secara otomatis

Membatasi Akses ke Antarmuka Web Elastis

Secara default, Elastic tidak menyediakan autentikasi pengguna. Untuk mengizinkan hanya pengguna tepercaya yang mengakses Elastic, kami dapat mengaktifkan otentikasi dasar HTTP di Nginx. Pertama, kita perlu menginstal apache2-utilspaket yang menyediakan alat pembuat htpasswdfile kata sandi.

sudo apt menginstal apache2-utils

Kemudian jalankan perintah berikut untuk membuat adminpengguna. Anda perlu menyetel kata sandi.

sudo htpasswd -c / etc / nginx / htpasswd admin

Selanjutnya, edit file host virtual Elastis.

sudo nano /etc/nginx/conf.d/elastic.conf

Tambahkan dua baris berikut di listen 443 sslblok server.

auth_basic "Login diperlukan";
auth_basic_user_file / etc / nginx / htpasswd;

Simpan dan tutup file. Kemudian uji konfigurasi Nginx.

sudo nginx -t

Jika pengujian berhasil, muat ulang Nginx agar perubahan diterapkan.

sudo systemctl memuat ulang nginx

Sekarang jika Anda memuat ulang Elastic di browser web Anda, Anda akan diminta untuk memasukkan nama pengguna dan kata sandi

Mengonfigurasi ParseDMARC

Untuk menggunakan ParseDMARC dan mengirim data ke elastisearch, kita perlu membuat file konfigurasi.

sudo nano /etc/parsedmarc.ini

Letakkan baris berikut di file. Ganti pemegang palceholder seperlunya.

[umum]
# Simpan laporan agregat dan forensik ke Elasticsearch
save_aggregate = Benar
save_forensic = Benar

[imap]
# Masuk ke alamat email laporan DMARC dan unduh data.
host = mail.yourdomain.com
port = 993
ssl = Benar
pengguna = dmarc@yourdomain.com 
password = your_password_here
jam tangan = Benar

[elasticsearch]
# Kirim data ke Elastichsearch, yang mendengarkan pada port 9200.
host = 127.0.0.1:9200
ssl = Salah

[smtp]
# Untuk mengirim email
host = mail.yourdomain.com
port = 587
ssl = Benar
pengguna = dmarc@yourdomain.com 
password = your_password_here 
from = dmarc@yourdomain.com

# kirim hasil ke alamat ini
to = admin@yourdomain.com

Simpan dan tutup file.

Menjalankan ParseDMARC sebagai Layanan Systemd

Kita dapat menjalankan ParseDMARC secara manual dengan parsedmarc -c /etc/parsedmarc.ini(Jangan jalankan perintah ini dulu), tetapi akan lebih mudah untuk menjalankan ParseDMARC sebagai layanan systemd di latar belakang. Buat file unit layanan systemd untuk ParseDMARC dengan perintah berikut.

sudo nano /etc/systemd/system/parsedmarc.service

Letakkan baris berikut ke dalam file.

[Satuan]
Description = parsedmarc mailbox watcher
Dokumentasi = https: //domainaware.github.io/parsedmarc/
Wants = network-online.target
Setelah = network.target network-online.target elasticsearch.service

[Layanan]
ExecStart = / usr / local / bin / parsedmarc -c /etc/parsedmarc.ini
Pengguna = parsedmarc
Grup = parsedmarc
Mulai ulang = selalu
RestartSec = 5m

[Install]
WantedBy = multi-user.target

Simpan dan tutup file. Layanan systemd ini akan dijalankan sebagai parsedmarcpengguna, jadi kita perlu membuat pengguna dengan perintah berikut.

sudo adduser --system --no-create-home --group parsedmarc

Kami juga perlu melindungi /etc/parsedmarc.inifile sehingga hanya parsedmarcpengguna root dan grup yang dapat membacanya.

sudo chown parsedmarc /etc/parsedmarc.ini

sudo chmod 600 /etc/parsedmarc.ini

ParseDMARC perlu mendownload database MaxMind GeoIP ke /usr/share/elasticsearch/modules/ingest-geoipdirektori, jadi parsedmarcpengguna harus memiliki izin menulis.

sudo setfacl -R -m "u: parsedmarc: rwx" / usr / share / elasticsearch / modules / ingest-geoip /

Sekarang kita dapat memulai dan mengaktifkan layanan parsedmarc systemd.

sudo systemctl mulai parsedmarc

sudo systemctl mengaktifkan parsedmarc

Periksa status.

status systemctl parsedmarc

ParseDMARC akan mulai mengambil laporan DMARC dari alamat email laporan dan mengirimkannya ke Elasticsearch untuk dianalisis. Jika Anda memiliki banyak email laporan DMARC, harap bersabar untuk membiarkan ParseDMARC menyelesaikan pekerjaannya.

Jika parsedmarclayanan tidak aktif (berjalan), Anda dapat menjalankan perintah berikut untuk melihat apa yang salah.

sudo journalctl -eu parsedmarc

Mengimpor Objek ParseDMARC Di Kibana

Untuk menggunakan dasbor Kibana dengan ParseDMARC, pertama-tama Anda perlu mengimpor objek ParseDMARC. Anda dapat menggunakan perintah berikut untuk mendownloadnya di komputer Linux atau Mac lokal Anda.

wget https://raw.githubusercontent.com/domainaware/parsedmarc/master/kibana/export.ndjson

Jika Anda menggunakan Windows, cukup salin tautan https dan tempel di bilah alamat browser untuk mengunduh data.

Kemudian di halaman Beranda Elastis, klik Kibana untuk mengakses dasbor Kibana

Kemudian di dashboard Kibana, klik Add your datatombol.

Selanjutnya, pilih Saved Objectsdan klik Importtombol untuk mengimpor objek ParseDMARC yang Anda unduh

Menganalisis Laporan DMARC di Kibana

Setelah layanan systemd ParseDMARC selesai membaca email, data laporan DMARC akan muncul di Kibana. Laporan yang paling berguna menurut saya adalah Ringkasan DMARC. Anda dapat memeriksanya dengan membuka Saved Objects-> DMARC Summary. Hal paling berguna yang dapat Anda lakukan dengan ringkasan DMARC adalah mengidentifikasi sumber sah yang gagal dalam pemeriksaan DMARC.

  1. Filter hasil untuk hanya menampilkan pesan yang tidak lolos DMARC.
  2. Kemudian Anda dapat melihat disposisi pesan (Bagaimana server email penerima menanganinya: tidak melakukan apa pun, memasukkan ke karantina, atau menolaknya).
  3. Gulir ke bawah untuk melihat detail penyelarasan SPF dan DKIM untuk mengidentifikasi alasan mengapa beberapa sumber yang sah gagal dalam pemeriksaan DMARC.

Jika pengirim tidak menyertakan tanda tangan DKIM atau tidak memiliki rekam DNS terbalik, maka itu jelas merupakan spam.

Yang mengejutkan saya adalah beberapa penyedia kotak surat menggunakan nama domain mereka sendiri di tanda tangan DKIM saat meneruskan email saya yang sah. Penyedia kotak surat lain menggunakan nama domain saya di tanda tangan DKIM tetapi masih gagal dalam penyelarasan DKIM. Untuk menyelidiki lebih lanjut penyebabnya, Anda dapat memeriksa laporan forensik individu.

Kesimpulan

Sekian tutorial kali ini, jika kamu menemui masalah, silahkan tinggalkan komentar