Tutorial

Cara Menginstal dan Mengonfigurasi Postfix pada Ubuntu 20.04

UbuntuEmailUbuntu 20.04

Versi sebelumnya dari tutorial ini ditulis oleh Justin Ellingwood

Pengantar

Postfix adalah Agen Transfer Surat (MTA) sumber terbuka populer yang dapat digunakan untuk mengirimkan surel sesuai rutenya pada sistem Linux. Diperkirakan bahwa sekitar 25% dari server surel publik di Internet menggunakan Postfix.

Dalam panduan ini, Anda akan mempelajari cara menginstal dan mengonfigurasi Postfix pada server Ubuntu 20.04. Lalu, Anda akan menguji apakah Postfix dapat mengirim surat dengan menginstal s-nail, suatu Agen Pengguna Surat (MUA), yang juga dikenal sebagai klien surel.

Harap diperhatikan bahwa tujuan dari tutorial ini adalah untuk membantu Anda menjadikan Postfix aktif dan berjalan secara cepat dengan hanya sebagian fungsi dasar surel. Anda tidak akan memiliki server surel yang penuh fitur pada akhir panduan ini, tetapi Anda akan memiliki sebagian dari komponen mendasar dari penyiapan untuk membantu Anda memulai.

Prasyarat

Untuk mengikuti panduan ini, Anda akan membutuhkan yang berikut:

  • Server yang menjalankan Ubuntu 20.04 untuk berfungsi sebagai server surat Postfix Anda. Server ini harus memiliki pengguna non-root dengan privilese sudo dan firewall yang terkonfigurasi dengan UFW. Anda dapat mengikuti panduan penyiapan server awal Ubuntu 20.04 untuk menyiapkan ini.
  • Nama Domain yang Sepenuhnya Memenuhi Syarat yang mengarah ke server Ubuntu 20.04 Anda. Anda dapat menemukan bantuan tentang menyiapkan nama domain Anda di DigitalOcean dengan mengikuti dokumentasi Domain dan Jaringan DNS kami. Harap diketahui bahwa jika Anda berencana untuk mengakses surel dari suatu lokasi eksternal, Anda akan perlu memastikan bahwa Anda memiliki catatan MX yang mengarah ke server surel Anda juga.

Harap diperhatikan bahwa tutorial ini mengasumsikan bahwa Anda sedang mengonfigurasi hos yang memiliki FQDN dari mail.example.com. Ketika dibutuhkan, pastikan agar mengubah example.com atau mail.example.com untuk mencerminkan FQDN milik Anda.

Langkah 1 — Menginstal Postfix

Postfix disertakan dalam repositori asali Ubuntu, sehingga Anda dapat menginstalnya dengan APT.

Pertama-tama, perbarui cache paket apt lokal Anda:

  • sudo apt update

Lalu, instal paket postfix dengan perintah berikut. Perhatikan bahwa di sini kita memasukkan variabel lingkungan DEBIAN_PRIORITY=low ke dalam perintah instalasi ini. Ini akan menyebabkan proses instalasi meminta Anda untuk mengonfigurasi beberapa opsi tambahan:

  • sudo DEBIAN_PRIORITY=low apt install postfix

Proses instalasi ini akan membuka serangkaian prompt interaktif. Untuk tutorial ini, gunakan informasi berikut untuk mengisi prompt Anda:

  • General type of mail configuration?: Untuk pertanyaan ini, pilih Internet Site karena ini sesuai dengan kebutuhan infrastruktur kita.
  • System mail name: Ini adalah domain dasar yang digunakan untuk menciptakan alamat surel yang valid, hanya pada saat bagian akun dari alamat diberikan. Misalnya, mari kita anggap nama hos server Anda adalah mail.example.com. Anda mungkin akan ingin mengatur nama surel sistem menjadi example.com, lalu jika kita anggap nama penggunanya adalah user1, maka Postfix akan menggunakan alamat user1@example.com.
  • Root and postmaster mail recipient: Ini adalah akun Linux yang akan menerima penerusan surat yang ditujukan ke root@ dan postmaster@. Gunakan akun primer Anda untuk ini. Dalam kasus contoh ini, sammy.
  • Other destinations to accept mail for: Ini mendefinisikan tujuan surat yang akan diterima oleh instans Postfix ini. Jika Anda perlu menambah domain lain yang akan menjadi tanggung jawab dari server ini untuk menerimanya, tambahkan domain itu di sini. Atau, pengaturan asali sudah mencukupi.
  • Force synchronous updates on mail queue?: Karena Anda mungkin menggunakan sistem berkas terjurnal, pilih No di sini.
  • Local networks: Ini adalah daftar jaringan tempat server surel Anda dikonfigurasi untuk menyampaikan pesan. Pengaturan asali akan bekerja untuk kebanyakan skenario. Jika Anda memilih untuk memodifikasinya, pastikan untuk sangat ketat dalam hal cakupan jaringan.
  • Mailbox size limit: Ini dapat digunakan untuk membatasi ukuran pesan. Atur itu ke 0 untuk menonaktifkan pembatasan ukuran apa pun.
  • Local address extension character: Ini adalah karakter yang dapat digunakan untuk memisahkan bagian reguler alamat dari suatu ekstensi (digunakan untuk menciptakan alias dinamis). Pengaturan asali, + akan bekerja untuk tutorial ini.
  • Internet protocols to use: Pilih apakah Anda ingin membatasi versi IP yang didukung Postfix. Untuk tutorial ini, pilih all.

Untuk lebih jelasnya, ini adalah pengaturan yang digunakan dalam panduan ini:

  • General type of mail configuration?: Internet Site
  • System mail name: example.com (bukan mail.example.com)
  • Root and postmaster mail recipient: Nama pengguna dari akun Linux primer Anda (sammy dalam contoh kita)
  • Other destinations to accept mail for: $myhostname, example.com, mail.example.com, localhost.example.com, localhost
  • Force synchronous updates on mail queue?: No
  • Local networks: 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128
  • Mailbox size limit: 0
  • Local address extension character: +
  • Internet protocols to use: all

Catatan: Jika Anda perlu kembali untuk mengubah pengaturan ini, Anda dapat melakukannya dengan mengetik:

  • sudo dpkg-reconfigure postfix

Prompt akan terisi dengan respons sebelumnya dari Anda.

Ketika proses instalasi selesai, Anda siap untuk membuat beberapa pembaruan ke konfigurasi Postfix Anda.

Langkah 2 — Mengubah Konfigurasi Postfix

Sekarang, Anda dapat menyesuaikan beberapa pengaturan yang tidak ditanyakan oleh proses instalasi paket. Banyak pengaturan konfigurasi Postfix didefinisikan di dalam berkas /etc/postfix/main.cf. Alih-alih mengedit berkas ini secara langsung, Anda dapat menggunakan perintah postconf dari Postfix untuk melakukan kueri atau menetapkan pengaturan konfigurasi.

Pertama-tama, tentukan lokasi untuk kotak surat pengguna Ubuntu non-root Anda. Dalam panduan ini, kita akan menggunakan format Maildir, yang memisahkan pesan-pesan ke dalam berkas individual yang kemudian dipindahkan di antara berbagai direktori berdasarkan tindakan pengguna. Opsi alternatif yang tidak dibahas di dalam panduan ini adalah format mbox, yang menyimpan semua pesan di dalam satu berkas tunggal.

Atur variabel home_mailbox ke Maildir/. Nanti, Anda akan menciptakan struktur direktori di bawah nama itu di dalam direktori rumah pengguna Anda. Konfigurasikan home_mailbox dengan mengetik:

  • sudo postconf -e 'home_mailbox= Maildir/'

Selanjutnya, atur lokasi dari tabel virtual_alias_maps, yang memetakan akun surel arbitrer ke akun sistem Linux. Jalankan perintah berikut, yang memetakan lokasi tabel ke suatu berkas basis data hash yang bernama /etc/postfix/virtual:

  • sudo postconf -e 'virtual_alias_maps= hash:/etc/postfix/virtual'

Karena kini Anda sudah mengonfigurasi lokasi dari berkas peta virtual di dalam berkas main.cf Anda, Anda dapat menciptakan berkas itu sendiri dan mulai memetakan akun surel ke akun pengguna pada sistem Linux Anda. Ciptakan berkas dengan editor teks pilihan Anda; dalam contoh ini, kita akan menggunakan nano:

  • sudo nano /etc/postfix/virtual

Buat daftar alamat apa pun yang Anda ingin menerima surel darinya, diikuti oleh spasi kosong dan pengguna Linux yang Anda ingin kirimkan surel kepadanya.

Sebagai contoh, jika Anda ingin menerima surel di contact@example.com dan admin@example.com serta ingin agar surel-surel tersebut dikirim ke pengguna Linux sammy, Anda dapat menyiapkan berkas Anda seperti ini:

/etc/postfix/virtual
contact@example.com sammy
admin@example.com sammy

Setelah Anda memetakan semua alamat ke akun server yang sesuai, simpan dan tutup berkas. Jika Anda menggunakan nano, lakukan ini dengan menekan CTRL + X, Y, kemudian ENTER.

Terapkan pemetaan dengan mengetik:

  • sudo postmap /etc/postfix/virtual

Mulai ulang proses Postfix untuk memastikan bahwa semua perubahan Anda telah diterapkan:

  • sudo systemctl restart postfix

Dengan asumsi Anda telah mengikuti panduan prasyarat Penyiapan Server Awal, Anda akan memiliki firewall yang terkonfigurasi dengan UFW. Firewall ini akan memblokir koneksi eksternal ke layanan pada server Anda secara asali, kecuali koneksi itu diizinkan secara jelas, sehingga Anda harus menambahkan aturan firewall untuk mengizinkan pengecualian untuk Postfix.

Anda dapat mengizinkan koneksi ke layanan dengan mengetik:

  • sudo ufw allow Postfix

Dengan itu, Postfix sudah terkonfigurasi dan siap menerima koneksi eksternal. Namun, Anda belum siap untuk mengujinya dengan klien surat. Sebelum Anda dapat menginstal klien dan menggunakannya untuk berinteraksi dengan surel yang dikirimkan ke server Anda, Anda perlu membuat beberapa perubahan pada pengaturan server Ubuntu.

Langkah 3 — Menginstal Klien Surat dan Melakukan Inisialisasi Struktur Maildir

Untuk berinteraksi dengan surel yang dikirimkan, langkah ini akan memandu Anda di sepanjang proses menginstal paket s-nail. Ini adalah varian kaya fitur dari klien xmail BSD yang dapat menangani format Maildir dengan benar.

Sebelum menginstal klien, merupakan hal bijaksana untuk memastikan variabel lingkungan MAIL Anda sudah diatur dengan benar. s-nail akan mencari variabel ini untuk mencari tahu tempat menemukan surel bagi pengguna Anda.

Untuk memastikan bahwa variabel MAIL sudah diatur, terlepas dari cara Anda mengakses akun Anda — baik melalui ssh, su, su -, atau sudo, sebagai contohnya — Anda akan perlu menetapkan variabel di dalam berkas /etc/bash.bashrc dan menambahkannya ke suatu berkas di dalam /etc/profile.d untuk memastikan variabel tersebut disiapkan untuk semua pengguna secara asali.

Untuk menambah variabel ke berkas-berkas ini, ketik:

  • echo 'export MAIL=~/Maildir' | sudo tee -a /etc/bash.bashrc | sudo tee -a /etc/profile.d/mail.sh

Untuk membacakan variabel ke dalam sesi Anda saat ini, dapatkan dari berkas /etc/profile.d/mail.sh:

  • source /etc/profile.d/mail.sh

Setelah itu selesai, instal klien surel s-nail dengan APT:

  • sudo apt install s-nail

Sebelum menjalankan klien, ada beberapa pengaturan yang Anda perlu atur. Buka berkas /etc/s-nail.rc di dalam editor Anda:

  • sudo nano /etc/s-nail.rc

Pada bagian bawah berkas, tambahkan opsi berikut:

/etc/s-nail.rc
. . .
set emptystart
set folder=Maildir
set record=+sent

Berikut adalah yang dilakukan baris-baris ini:

  • set emptystart: mengizinkan klien untuk membuka bahkan dengan kotak masuk kosong
  • set folder=Maildir: menetapkan direktori Maildir menjadi variabel folder internal
  • set record=+sent menciptakan berkas mbox sent untuk menyimpan surel yang dikirim di dalam direktori mana pun yang ditetapkan sebagai variabel folder, dalam kasus ini Maildir

Simpan dan tutup berkas saat Anda sudah selesai. Anda kini siap untuk melakukan inisialisasi pada struktur Maildir sistem Anda.

Cara cepat untuk menciptakan struktur Maildir di dalam direktori rumah Anda adalah dengan mengirimkan suatu surel dengan perintah s-nail kepada Anda. Karena berkas sent hanya tersedia setelah Maildir diciptakan, Anda harus menonaktifkan penulisan padanya untuk surel awal ini. Lakukan ini dengan melewatkan opsi -Snorecord.

Kirim surel dengan menambahkan string ke perintah s-nail. Sesuaikan perintah untuk menandai pengguna Linux Anda sebagai penerima:

  • echo 'init' | s-nail -s 'init' -Snorecord sammy

Catatan: Anda mungkin mendapat respons berikut:

Output
Can't canonicalize "/home/sammy/Maildir"

Ini adalah hal normal dan mungkin hanya muncul saat mengirim pesan pertama ini.

Anda dapat memeriksa untuk memastikan bahwa direktori telah diciptakan dengan mencari direktori ~/Maildir:

  • ls -R ~/Maildir

Anda akan melihat struktur direktori telah diciptakan dan bahwa berkas pesan baru berada di dalam direktori ~/Maildir/new:

Output
/home/sammy/Maildir/: cur new tmp /home/sammy/Maildir/cur: /home/sammy/Maildir/new: 1463177269.Vfd01I40e4dM691221.mail.example.com /home/sammy/Maildir/tmp:

Kini setelah struktur direktori diciptakan, Anda siap untuk menguji klien s-nail dengan melihat pesan init yang Anda kirimkan dan mengirim pesan ke alamat surel eksternal.

Langkah 4 — Menguji Klien

Untuk membuka klien, jalankan perintah s-nail:

  • s-nail

Dalam konsol, Anda akan melihat kotak masuk rudimenter dengan pesan init yang menunggu:

Output
s-nail version v14.9.15. Type `?' for help "/home/sammy/Maildir": 1 message 1 new >N 1 sammy@example.com 2020-05-19 15:40 14/392 init

Tekan ENTER untuk menampilkan pesan:

Output
[-- Message 1 -- 14 lines, 369 bytes --]: From sammy@example.com Tue May 19 15:40:48 2020 Date: Tue, 19 May 2020 15:40:48 +0000 To: sammy@example.com Subject: init Message-Id: <20160513220749.A278F228D9@mail.example.com> From: sammy@example.com init

Anda dapat kembali ke daftar pesan dengan mengetik h, lalu ENTER:

  • h
Output
>R 1 sammy@example.com 2020-05-19 15:40 14/392 init

Perhatikan bahwa pesan itu kini memiliki kondisi R, yang mengindikasikan bahwa pesan sudah dibaca.

Karena pesan ini tidak begitu berguna, Anda dapat menghapusnya dengan menekan d, lalu ENTER:

  • d

Untuk kembali ke terminal, ketik q lalu ENTER:

  • q

Sebagai ujian terakhir, periksa apakah s-nail dapat mengirim surel dengan benar. Untuk melakukan ini, Anda dapat memasukkan konten dari berkas teks ke dalam proses s-nail, seperti yang Anda lakukan dengan pesan init yang Anda kirim pada langkah sebelumnya.

Mulailah dengan menulis pesan percobaan di dalam editor teks:

  • nano ~/test_message

Di dalam editor, masukkan beberapa teks yang Anda ingin kirim:

~/test_message
Hello,

This is a test.  Please confirm receipt!

Simpan dan tutup berkas setelah menulis pesan Anda.

Lalu, gunakan perintah cat untuk memasukkan pesan ke proses s-nail. Anda dapat melakukannya dengan mengikuti contoh berikut, yang menggunakan opsi ini:

  • -s: Ini mendefinisikan baris subjek dari pesan surel
  • -r: Perubahan opsional terhadap bidang “From” dari surel. Secara asali, pengguna Linux yang Anda pakai untuk log masuk akan digunakan untuk mengisi bidang ini. Opsi -r memungkinkan Anda untuk menimpa ini dengan alamat yang valid, seperti salah satu dari yang Anda definisikan dalam berkas /etc/postfix/virtual. Sebagai contoh, perintah berikut menggunakan contact@example.com

Juga, pastikan untuk mengubah user@email.com ke alamat surel valid yang Anda miliki aksesnya:

  • cat ~/test_message | s-nail -s 'Test email subject line' -r contact@example.com user@email.com

Lalu, bernavigasilah ke kotak masuk untuk alamat surel yang menjadi tujuan Anda mengirim pesan. Anda akan segera melihat bahwa pesan Anda menunggu di sana.

Catatan: Jika pesan tidak ada di dalam kotak masuk Anda, pesan tersebut mungkin terkirim ke folder Spam Anda.

Anda dapat melihat pesan terkirim Anda di dalam klien s-nail Anda. Mulai klien interaktif lagi:

  • s-nail

Dari klien surel, lihat pesan terkirim Anda dengan mengetik:

  • file +sent

Anda akan melihat keluaran seperti ini:

Output
+[/home/sammy/Maildir/]sent: 1 message 1 new ▸N 1 contact@example.com 2020-05-19 15:47 12/297 Test email subject line

Anda dapat mengelola surat terkirim menggunakan perintah yang sama dengan yang Anda gunakan untuk surel masuk.

Kesimpulan

Anda kini memiliki Postfix yang terkonfigurasi pada server Ubuntu 20.04 Anda. Mengelola server surel dapat menjadi tugas yang sulit untuk administrator sistem baru, tetapi dengan konfigurasi ini, Anda seharusnya memiliki fungsionalitas surel MTA yang cukup untuk membantu Anda memulai sendiri.

Creative Commons License