MTA-STS adalah standar yang diusulkan
RFC8461 yang telah keluar dari status draf dan diterbitkan secara resmi pada 26 September 2018. Standar ini menawarkan mekanisme untuk mendeteksi kemungkinan menggunakan TLS penuh antara server mail, dengan enkripsi data dan otentikasi server. Artinya, standar ini hampir sepenuhnya melindungi terhadap gangguan dengan lalu lintas email antara server.
Sederhana, esensi standar adalah sebagai berikut:
- Layanan email pendukung menerbitkan kebijakan (1 data TXT dan 1 sumber daya HTTPS untuk setiap domain).
- Layanan surat saat mengirim surat ke domain lain mendeteksi kebijakan domain penerima.
- Layanan mail terhubung ke server mail dari domain penerima, menerapkan batasan TLS yang ditetapkan oleh kebijakan yang terdeteksi, jika ada.
Ada artikel bagus (
misalnya ) yang berbicara tentang standar itu sendiri dan mengapa diperlukan, membandingkan MTA-STS dengan inisiatif serupa lainnya, dan bahkan menunjukkan cara menulis dan menerbitkan kebijakan. Tetapi menemukan cara melampaui langkah pertama tidak sesederhana itu.
Mulai lagi dari awal
Sebelum menerapkan MTA-STS, Anda perlu merapikan sertifikat server surat. Jika tidak, server email yang mempertimbangkan kebijakan STS Anda akan menolak koneksi ke server Anda. Kondisi berikut harus dipenuhi:
- Sertifikat server dikeluarkan oleh otoritas sertifikasi yang diakui (Let's Encrypt is good).
- Rantai sertifikat yang dikirim oleh server mencakup semua sertifikat yang diperlukan dari otoritas sertifikasi perantara.
- Sertifikat memiliki bidang Nama Alternatif Subjek dengan nama DNS server MX Anda.
Anda dapat memverifikasi server yang dikonfigurasi dengan sertifikat dengan perintah berikut:
[ "$(LANG=C openssl s_client -connect MX.EXAMPLE.COM:25 -starttls smtp -verify_hostname MX.EXAMPLE.COM < /dev/null 2>&1 | fgrep 'error')" = "" ] && echo OK || echo FAIL
di mana MX.EXAMPLE.COM adalah nama domain dari server MX Anda. Untuk kepatuhan penuh dengan standar, disarankan untuk memverifikasi bahwa nama domain yang diinginkan hadir tidak hanya dalam Nama Umum sertifikat, tetapi setidaknya dalam Nama Alternatif Subjek.
Posting kebijakan
Untuk menetapkan domain Anda sebagai mendukung koneksi yang aman dengannya, Anda perlu menerbitkan kebijakan MTA-STS. Untuk melakukan ini, lakukan langkah-langkah sederhana berikut dalam urutan yang ditentukan (contoh diberikan untuk domain example.com).
1. Tempatkan di
https://mta-sts.example.com/.well-known/mta-sts.txt
file teks dari formulir:
versi: STSv1
mode: menegakkan
mx: mail.example.com
mx: * .example.net
mx: backupmx.example.com
max_age: 604800
File harus diberikan dengan Content-Type: text / plain. Pengalihan tidak diizinkan. Umpan lini harus LF atau CRLF. Baris kosong tidak diperbolehkan. Baris terakhir dapat diakhiri dengan umpan baris, atau mungkin tidak berakhir dengan itu - kedua opsi diizinkan. Ruang kosong sebelum titik dua dan pada awal garis tidak diperbolehkan. Ruang kosong setelah titik dua diperbolehkan dalam jumlah berapa pun. Ruang putih (spasi, tab, dll.) Di akhir setiap baris diabaikan.
Nilai Bidang:
versi :
versi format. Itu harus selalu sama dengan "STSv1".
mode :
mode kebijakan. Opsi yang memungkinkan: tidak ada, pengujian, menegakkan. Mode Enforce sesuai dengan fungsi normal standar - untuk memerlukan sertifikat yang benar dan koneksi TLS yang stabil saat menghubungkan ke server. Mode pengujian mengharuskan Anda untuk mencoba menggunakan koneksi aman, tetapi dalam kasus kesalahan mengirim email dalam hal apa pun dengan pemberitahuan administrator melalui mekanisme TLSRPT. Mode tidak ada yang sesuai dengan situasi seolah-olah kebijakan itu tidak diterbitkan sama sekali. Mode ini berguna untuk menonaktifkan kebijakan dengan benar.
mx : satu atau lebih bidang yang berisi nama-nama semua server domain MX yang diizinkan. Seperti yang Anda lihat dari contoh, templat diizinkan, tetapi hanya sebagai domain tingkat rendah.
max_age : waktu dalam detik di mana kebijakan dapat di-cache dan di mana pengirim dapat terus menggunakannya jika kebijakan tidak lagi tersedia. Karena fitur standar ini, menonaktifkan STS lebih cepat dengan menerbitkan kebijakan baru tanpa mode apa pun.
2. Buat data TXT _mta-sts.example.com dengan isi formulir:
v = STSv1; id = 20160831085700Z;
Ruang putih di sekitar titik koma dapat diatur secara sewenang-wenang dalam jumlah berapapun. Di tempat lain, spasi putih tidak diizinkan. Titik koma terakhir dapat hadir atau tidak ada.
Nilai Bidang:
v : versi format. Itu harus selalu menjadi bidang pertama, harus selalu sama dengan STSv1.
id : pengidentifikasi unik dari kebijakan yang diterbitkan. Ini bisa berupa string dengan panjang 1-32 karakter, terdiri dari huruf register dan angka. Mengubah nilai id adalah sinyal kepada pengirim bahwa kebijakan telah diperbarui. Oleh karena itu, Anda perlu memperbarui kebijakan dengan terlebih dahulu menerbitkan file kebijakan baru, dan kemudian mengubah id dalam catatan TXT.
Mulai sekarang, server email yang mendukung MTA-STS hanya akan mengirim email ke domain Anda melalui koneksi terotentikasi-sertifikat yang aman. Di situlah sebagian besar manual berakhir, tetapi bagian paling menarik di depan adalah untuk mendapatkan kebijakan MTA-STS dari server Anda sendiri saat mengirim surat.
Paling menarik
Kesulitan utama adalah bahwa standar ini tidak didukung oleh server surat, termasuk Postfix. Namun, hal sepele yang tidak menyenangkan ini seharusnya tidak menghentikan kita.
Menemukan solusi membawa saya ke arsip milis
postfix-pengguna membahas waktu standar ini. Dalam satu posting, Witsa Venema, penulis Postfix, menunjukkan arah yang disukai untuk mengimplementasikan fungsi ini - untuk menggunakan server eksternal untuk mencari kebijakan TLS. Diusulkan untuk menggunakan arahan konfigurasi bentuk:
smtp_policy_maps = socketmap: inet: host: port: name
Saya menerapkan server seperti itu untuk mendapatkan kebijakan MTA-STS.
→
Kode Sumber→
Paket dalam PyPIAplikasi tidak memiliki beberapa fungsi yang ditentukan RFC8461, seperti: pengambilan kebijakan proaktif, laporan, dan membatasi frekuensi permintaan kebijakan. Namun, fungsi utama - mendeteksi kebijakan TLS dan menyimpannya - berfungsi.
Aplikasi ini membutuhkan Python 3.5.3+. Instalasi dan konfigurasi daemon ini dapat dilakukan menggunakan langkah-langkah berikut.
Instalasi paket
Cukup menjalankan perintah:
pip3 install postfix-mta-sts-resolver
Metode pemasangan alternatif ditulis di
sini .
Membuat file konfigurasi
Jika Anda puas dengan pengaturan default, maka perintahnya sudah cukup
touch /etc/postfix/mta-sts-daemon.yml
Jika tidak, konfigurasi dapat diambil dari
contoh dan disesuaikan dengan kebutuhan Anda.
Parameter yang paling penting, menurut saya, adalah parameter strict_testing. Jika disetel ke true (false secara default), aplikasi akan mengembalikan kebijakan aman bahkan untuk domain dengan kebijakan dalam mode pengujian. Perilaku ini bertentangan dengan standar, tetapi disarankan untuk alasan praktis: jika pemilik domain telah menerbitkan kebijakan STS bahkan dalam mode uji, maka ia mungkin siap untuk itu. Artinya, maka hari ini email gmail.com akan dikirim melalui koneksi yang andal.
Organisasi Startup
Dalam hal systemd, cukup menempatkan
file unit sederhana di /etc/systemd/system/mta-sts-daemon.service
Setelah itu, tetap membaca kembali konfigurasi systemd, mengaktifkan autorun daemon dan memulainya:
systemctl daemon-reload systemctl enable mta-sts-daemon.service systemctl start mta-sts-daemon.service
Pemeriksaan Kesehatan
Dengan asumsi bahwa port default digunakan, perintah
/usr/sbin/postmap -q dismail.de socketmap:inet:127.0.0.1:8461:postfix
harus membawa
pertandingan aman = mx1.dismail.de
Hubungkan ke Postfix
Tambahkan baris ke main.cf:
smtp_policy_maps = socketmap:inet:127.0.0.1:8461:postfix
Mulai ulang Postfix:
systemctl reload postfix.service
Jika semuanya dilakukan dengan benar, maka untuk koneksi STS di log /var/log/mail.info sebagai gantinya
Koneksi TLS tepercaya berhasil dibuat
catatan mulai muncul
Koneksi TLS yang terverifikasi terjalin
Kesimpulan
Jika Anda sampai di tempat ini, kemungkinan besar artinya:
- Anda membaca artikel tanpa satu gambar.
- Dari hari ke hari, kemungkinan intersepsi surat di domain Anda akan turun, karena layanan surat lain menerapkan standar baru.