Saatnya meng-host email Anda sendiri!

Panduan langkah demi langkah untuk menginstal dan mengkonfigurasi server email di OpenBSD.

Seperti sebagian besar entri di blog ini, ini lebih merupakan pengingat bagi saya jika saya perlu melakukannya lagi. Namun saya menerbitkannya dengan harapan dapat bermanfaat bagi seseorang yang berencana melakukan hal yang sama.

Ini dilakukan dengan OpenBSD 6.4.

Tumpukan

Mari kita mulai dengan deskripsi tumpukan dan apa yang akan kita gunakan:

  • OS: OpenBSD. Stabil, aman, cocok untuk hosting email, hal yang berharga di zaman sekarang ini
  • SMTP: Bukamtpd. Basis kode yang bersih dengan file konfigurasi yang waras.
  • IMAP: Tempat perlindungan merpati. Lagipula tidak pernah menggunakan yang lain.
  • DKIM: Dkimproksi. Bekerja dengan baik dengan opensmtpd.
  • SPAM: Spam.

sistem operasi

Server

Oke, hal pertama yang harus dilakukan adalah mencoba server OpenBSD. Jika Anda sudah memilikinya, bagus. Jika tidak, lakukan seperti saya, dapatkan satu dari Vultr.com. Jika Anda menggunakan tautan ini Anda akan mendapatkan $10, jadi gratis sekitar 2 bulan!

Selain itu, Vultr.com adalah salah satu dari sedikit penyedia VPS yang mendukung OpenBSD. Yang lainnya adalah OpenBSD.amsterdam.

Penawaran termurah dari Vultr.com lebih dari cukup untuk server email.

Langkah pertama di server

Setelah Anda mendapatkan alamat IP server Anda, periksa apakah IP tersebut tidak masuk daftar hitam alat ini. Jika ya, minta server baru. Jika tidak, lanjutkan.

Sekarang untuk menyambungkannya, edit file konfigurasi ssh Anda dan tambahkan entri di mana adalah nama contoh dan alamat IP-nya.

Mengajukan: ~/.ssh/config

Sekarang sambungkan:

Tetapkan sumber untuk paket, gunakan mirror yang dekat dengan lokasi server:

Mengajukan: /etc/installurl


Patch sistem dan reboot:

syspatch -c
reboot
# wait for reboot
ssh root@<hostname>

Memperbaiki waktu:

ln -sf /usr/share/zoneinfo/Europe/Paris /etc/localtime

Instal yang penting

pkg_add -v vim zsh git htop unzip cmake
# select vim no x11 python3 (10)
# select unzip iconv (2)

Instal Dotfiles (lewati ini jika Anda bukan saya)

git clone --recursive 
./.dotfiles/install.sh
vim ~/.vim/vimrc
# set g:ycm_server_python_interpreter to /usr/local/bin/python3
# close vim
vim
:PluginInstall
# finish YCM install
cd ~/.vim/plugins/YouCompleteMe
python3 install.py
# remove the --color=auto from zshrc and fix path in git_prompt plugin in zsh folder

Konfigurasikan SSH

Di dalam file /etc/ssh/sshd_configubah port ke selain 22, sebaiknya> 10000.

Tambahkan pengguna Anda

Cukup dengan root, mari tambahkan pengguna:

adduser
# login groups:  staff

Izinkan anggota staf untuk menjalankan perintah sebagai root:

Mengajukan: /etc/doas.conf

permit setenv { -ENV PS1=$DOAS_PS1 SSH_AUTH_SOCK } :staff

Putuskan sambungan dari server.

Di host Anda, edit ~/.ssh/config dan menambahkan satu baris Port untuk server. Tambahkan garis User jika pengguna lokal Anda berbeda dengan yang Anda buat di server.

Salin kunci publik Anda ke server:

ssh-copy-id -i ~/.ssh/id_ed25519.pub 
ssh 

Ulangi langkah dotfiles.

Sunting /etc/ssh/sshd_config dan setel “EnableRootLogin” ke no; doas rcctl reload sshd.

DNS

Tambahkan AAAA dan A yang menunjuk ke IP server. Tambahkan ponting MX ke . (tunjuk di akhir!)

BukaSMTPD

Kabar baiknya, Anda tidak perlu menginstalnya karena sudah dikirimkan bersama basisnya, betapa hebatnya itu! 🙂

Ini file konfigurasi saya (/etc/mail/smtpd.conf), sesuaikan dengan kebutuhan Anda:

# $OpenBSD: smtpd.conf,v 1.11 2018/06/04 21:10:58 jmc Exp $

# configure TLS
pki <domain> key "/etc/letsencrypt/live//privkey.pem"
pki <domain> cert "/etc/letsencrypt/live//fullchain.pem"

# aliases table
table aliases file:/etc/mail/aliases

# listen directives
listen on all tls hostname <domain>
listen on all port 587 hostname <domain> tls pki <domain> auth
listen on lo0 port 10028 tag DKIM

# send mail to maildir ~/.mail for local accounts in alias table
action "local" maildir "%{user.directory}/.mail" alias <aliases>

action "relay" relay helo <domain>
action "relay_dkim" relay host smtp://127.0.0.1:10027

# 
match from any for domain "" action "local"
# local
match for local action "local"
# dkim
match tag DKIM for any action "relay"
##match auth from any for any action "relay"
match auth from any for any action "relay_dkim"

TLS

Untuk mendapatkan sertifikat domain, kami akan menggunakan acme-client, yang dikirimkan bersama OpenBSD.

Tempat perlindungan merpati

Ada masalah dengan dovecot yang memicu batas maksimum file terbuka, jadi mari kita perbaiki dulu.

Mengajukan: /etc/sysctl.conf

Mengajukan: /etc/login.conf

dovecot:\
  :openfiles-cur=1024:\
  :openfiles-max=2048:\
  :tc=daemon:

Sekarang mari kita ubah konfigurasi dasar Dovecot sesuai keinginan kita.

Mengajukan: 10-mail.conf

mail_location = maildir:~/.mail

Mengajukan: 10-ssl.conf

ssl_cert
ssl_key
ssl_dh_parameters_length = 2048
rcctl enable dovecot
rcctl start dovecot

Proksi DKIM

Tanda tangani email keluar dengan DKIM atau harapkan masuk ke folder spam…

Mengajukan: /etc/dkimproxy_out.conf

listen    127.0.0.1:10027
relay     127.0.0.1:10028
domain    
signature dkim(c=relaxed)
keyfile   /etc/mail/private.key
selector  mail

Hasilkan kunci pribadi/publik untuk DKIM:

cd /etc/mail
openssl genrsa -out private.key 2048
openssl rsa -in private.key -pubout -out public.key
rcctl enable dkimproxy_out
rcctl start dkimproxy_out

spam

Saya belum menggunakannya (belum).

MENIKMATI!

~Niko

Sumber

Krystian Wiśniewski
Krystian Wiśniewski is a dedicated Sports Reporter and Editor with a degree in Sports Journalism from He graduated with a degree in Journalism from the University of Warsaw. Bringing over 14 years of international reporting experience, Krystian has covered major sports events across Europe, Asia, and the United States of America. Known for his dynamic storytelling and in-depth analysis, he is passionate about capturing the excitement of sports for global audiences and currently leads sports coverage and editorial projects at Agen BRILink dan BRI.