Implementasi SMTP yang paling umum digunakan di sebagian besar distro Linux adalah Sendmail dan Postfix. Postfix adalah agen transfer surat open source yang awalnya dikembangkan sebagai alternatif untuk Sendmail dan biasanya diatur sebagai server surat default.
Menginstal Postfix
Sebelum mulai menginstal, hal pertama yang pertama. Kebiasaan yang baik untuk dimiliki adalah memeriksa dan melihat apakah perangkat lunak sudah diinstal di server. Selalu membantu untuk memeriksa apakah ada sesuatu sebelum mulai bekerja.
Untuk memeriksa distro berbasis RPM, gunakan perintah ini:
$ rpm -qa | grep postfix
Jika perintah sebelumnya menunjukkan RPM belum terinstal, Anda dapat menginstal RPM Postfix dengan perintah berikut (pada yum
-distro berbasis):
$ yum install -y postfix
Setelah Postfix terinstal, Anda dapat memulai layanan dan mengaktifkannya untuk memastikannya dimulai setelah reboot:
$ systemctl start postfix
$ systemctl enable postfix
Konfigurasi Postfix
Setelah Postfix terinstal, Anda dapat mulai mengkonfigurasi layanan sesuai keinginan Anda. Semua opsi yang Anda butuhkan untuk layanan ini terletak di /etc/postfix
. File konfigurasi utama untuk layanan Postfix terletak di /etc/postfix/main.cf
. Di dalam file konfigurasi, ada banyak opsi yang dapat Anda tambahkan, beberapa di antaranya lebih umum daripada yang lain. Mari membahas beberapa yang paling sering Anda lihat saat menyiapkan layanan, dan saat perlu memecahkan masalah:
myhostname
mendeklarasikan nama host server email. Nama host biasanya memiliki awalan di dalamnya, seperti ini:
myhostname = mail.sinisterriot.com
mydomain
mendeklarasikan domain yang sebenarnya menangani email, seperti ini:
mydomain = sinisterriot.com
mail_spool_directory
mendeklarasikan direktori tempat file kotak surat ditempatkan, seperti:
mail_spool_directory = /var/mail
mynetworks
mendeklarasikan daftar server SMTP jarak jauh tepercaya yang dapat menyampaikan melalui server, seperti ini:
mynetworks = 127.0.0.0/8, 168.100.189.0/28
Daftar yang disediakan dengan mynetworks
hanya boleh berisi alamat IP jaringan lokal, atau pola jaringan/netmask yang dipisahkan dengan koma atau spasi. Penting untuk hanya menggunakan alamat jaringan lokal untuk menghindari pengguna yang tidak sah menggunakan server email Anda untuk aktivitas jahat, yang mengakibatkan server dan alamat Anda masuk daftar hitam.
Menguji Postfix
Sebelum memasukkan sesuatu ke dalam produksi, mengujinya di lingkungan pengembang selalu merupakan ide yang bagus. Proses ini memiliki konsep yang sama:Setelah server email Anda dikonfigurasi, ujilah untuk memastikannya berfungsi.
Pertama, saya sarankan menguji apakah Anda dapat mengirim email ke penerima lokal. Jika berhasil, Anda dapat melanjutkan ke penerima jarak jauh. Saya lebih suka menggunakan perintah telnet untuk menguji server email saya:
$ telnet mail.sinisterriot.com 25
Tambahkan HELO
perintah untuk memberi tahu server dari domain mana Anda berasal:
HELO sinisterriot.com
Berikutnya adalah pengirim. ID ini dapat ditambahkan dengan MAIL FROM
perintah:
MAIL FROM: [email protected]
Entri ini diikuti oleh penerima, dan Anda dapat menambahkan lebih dari satu dengan menggunakan RCPT TO
perintah beberapa kali:
RCPT TO: [email protected]
Akhirnya, kita dapat menambahkan isi pesan. Untuk mencapai mode konten, kami menambahkan awalan DATA
pada satu baris dengan sendirinya, diikuti oleh Subject
baris, dan isi pesan. Di bawah ini adalah contohnya:
DATA
Subject: This is a test message
Hello,
This is a test message
.
Untuk menyelesaikan isi pesan dan menutupnya, Anda perlu menambahkan satu titik (.) atau titik pada baris dengan sendirinya. Setelah proses ini selesai, server akan mencoba mengirim email dengan informasi yang Anda berikan. Respons kode akan memberi tahu Anda jika email berhasil atau tidak. Setelah selesai, gunakan quit
perintah untuk menutup jendela surat.
Dalam hal apa pun, periksa log surat untuk kesalahan. Mereka berada di /var/log/maillog
secara default, tetapi lokasi ini dapat diubah ke tempat lain. Sebagai administrator sistem, memeriksa log kesalahan adalah kebiasaan yang baik untuk dimiliki. Praktik ini sangat bagus dalam pemecahan masalah dan memberi kami wawasan untuk mengidentifikasi dan memperbaiki masalah lebih cepat. Menguraikan log email juga merupakan bagian penting dari pekerjaan admin, karena setiap bagian dari log memberi tahu kami apa yang penting. Di tahun-tahun terakhir saya, mengetahui bagian-bagian ini telah membantu saya menulis skrip untuk permintaan khusus sementara hanya perlu menyunting atau mengabaikan bagian dari log surat.
Mengamankan Postfix
Mengamankan layanan Anda sama pentingnya dengan menyiapkannya. Lebih aman untuk mentransfer data melalui koneksi yang aman daripada melalui koneksi yang tidak terlindungi. Selanjutnya, kita akan membahas cara mengamankan server email kita yang baru dikonfigurasi. Anda dapat melakukannya dengan membuat sesi SSL melalui Transport Layer Security (TLS) untuk server SMTP.
Pertama, Anda perlu membuat kunci pribadi dan Permintaan Penandatanganan Sertifikat (CSR). Anda dapat melakukannya melalui openssl
perintah:
$ openssl req -nodes -newkey rsa:2048 -keyout privatekey.key -out mail.csr
Kemudian, buat permintaan penandatanganan dan salin ke /etc/postfix
direktori:
$ openssl x509 -req -days 365 -in mail.csr -signkey privatekey.key -out secure.crt
$ cp {privatekey.key,secure.crt} /etc/postfix
Urutan ini mengeluarkan sertifikat yang ditandatangani ke server email, juga dikenal sebagai sertifikat Otoritas Sertifikat (CA). Praktik ini berarti bahwa CA harus mempercayai penandatangan sertifikat untuk mengamankan kunci pribadi dan mengirimkan data melalui internet. Dalam jenis sertifikat lain, yang ditandatangani sendiri, CA tidak mempercayai penandatangan sertifikat, meninggalkan informasi yang rentan untuk dicuri dan terbuka untuk dikompromikan. Itu selalu lebih baik untuk pergi dengan sertifikat yang ditandatangani.
Setelah proses ini selesai, Anda dapat menambahkan opsi TLS ke file konfigurasi Postfix:
smtpd_use_tls = yes
smtpd_tls_cert_file = /etc/postfix/secure.crt
smtpd_tls_key_file = /etc/postfix/privatekey.key
smtp_tls_security_level = may
Selanjutnya, mulai ulang layanan untuk menerapkan opsi baru:
$ systemctl restart postfix
Sekarang, Anda memiliki server email yang berfungsi dan aman.