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_config
ubah 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