Buat Email Server di FreeBSD: OpenSMTPD
Kontribusi oleh al1r4d
pada
dari kategori #freebsd
dan label #opensmtpd
Jadi gini, dari dulu pingin bisa self-hosted email pakai domain sendiri karena penasaran plus bosen nama panjang dengan provider email kebanyakan. Orang bilang sih self-hosted email ribet; banyak hal–spam, email masuk spam–yang harus dipahami.
Tapi gapapa, hobi ini bersifat senang-senang. Segala sesuatu bakal dilewati, terlepas mudah dan gampang.
Ok, dalam membuat email server, saya akan menggunakan opensmtpd sebagai smtp server.
Langsung aja unduh paket opensmtpd lewat pkg
.
# pkg install opensmtpd
Jangan lupa certbot untuk dapetin SSL Lets Encrypt gratis.
# pkg install py39-certbot
Sebelum mulai setup opensmtpd, pastiin kita punya SSL. Kalau belum, generate aja dulu. Pakein standalone karena kita ga punya web server.
# certbot certonly --standalone -d domain.com
Sekarang langsung deh buat konfigurasi untuk opensmtpd.
table aliases file:/etc/mail/aliases
table domains file:/etc/mail/domains
# bagian ini khusus SSL
pki domain.com key "/usr/local/etc/letsencrypt/live/domain.com/privkey.pem"
pki domain.com cert "/usr/local/etc/letsencrypt/live/domain.com/fullchain.pem"
# ini sudah masuk bagian kredential akun. jadi harus login dulu baru bisa kirim email.
# kalau kamu ngalamin ndak bisa login, meskipun username dan password sudah bener, bisa jadi bagian ini ada yang salah
listen on vtnet0 tls pki domain.com auth-optional
listen on vtnet0 smtps pki domain.com auth
listen on vtnet0 port submission tls-require pki domain.com auth
action "local" maildir alias <aliases>
action "relay" relay helo domain.com
match from local for local action "local"
match from any for domain <domains> action "local"
match from any auth for any action "relay"
tambahin domain yang mau dipakai sebagai email
# vim /etc/mail/domains
---
domain.com
jalanin layanan smtpd secara otomatis.
# sysrc smtpd_enable=YES
# service smtpd start
kita check apakah smtpd berjalan atau tidak
# service smtpd status
smtpd is running as pid 4755.
bagaimana tahu smtp kita bekerja? kamu bisa check pakai openssl seperti ini.
$ openssl s_client -starttls smtp -connect domain.com:587
Connecting to 80.xx.xxx.xx
CONNECTED(00000003)
depth=2 C=US, O=Internet Security Research Group, CN=ISRG Root X1
verify return:1
depth=1 C=US, O=Let's Encrypt, CN=E5
verify return:1
depth=0 CN=domain.com
verify return:1