এটি আপনার ইমেল নিজেকে হোস্ট করার সময়!
OpenBSD-এ একটি মেল সার্ভার ইনস্টল এবং কনফিগার করার জন্য একটি ধাপে ধাপে নির্দেশিকা।
এই ব্লগের বেশিরভাগ এন্ট্রি হিসাবে, এটি আমার জন্য আরও একটি অনুস্মারক যদি আমাকে এটি আবার করতে হয়৷ কিন্তু আমি এটি প্রকাশ করছি এই আশায় যে এটি একই জিনিস করার পরিকল্পনা করে এমন কারও পক্ষে কার্যকর হতে পারে।
এটি OpenBSD 6.4 দিয়ে করা হয়েছিল।
স্ট্যাক
আসুন স্ট্যাকের একটি বিবরণ দিয়ে শুরু করি এবং আমরা কী ব্যবহার করতে যাচ্ছি:
- ওএস: ওপেনবিএসডি। স্থিতিশীল, নিরাপদ, ইমেল হোস্ট করার জন্য নিখুঁত, এই দিন এবং যুগে একটি মূল্যবান জিনিস
- SMTP: Opensmtpd. একটি বুদ্ধিমান কনফিগার ফাইল সহ একটি পরিষ্কার কোডবেস।
- IMAP: Dovecot. যাইহোক অন্য কিছু ব্যবহার না.
- DKIM: Dkimproxy. Opensmtpd এর সাথে সুন্দরভাবে কাজ করে।
- স্প্যাম: স্প্যামড।
ওএস
সার্ভার
ঠিক আছে প্রথম কাজটি হল একটি OpenBSD সার্ভারে হাত পেতে। আপনি ইতিমধ্যে একটি আছে, মহান. যদি না হয়, আমার মত করুন, Vultr.com থেকে একটি পান. ব্যবহার করলে এই লিঙ্ক আপনি $10 পাবেন, তাই প্রায় 2 মাস বিনামূল্যে!
এছাড়াও, Vultr.com হল OpenBSD সমর্থনকারী কয়েকটি VPS প্রদানকারীর মধ্যে একটি। আরেকটি হবে OpenBSD.amsterdam.
Vultr.com-এর সবচেয়ে সস্তা অফারটি একটি ইমেল সার্ভারের জন্য যথেষ্ট।
সার্ভারে প্রথম ধাপ
একবার আপনি আপনার সার্ভারের আইপি ঠিকানা পেয়ে গেলে, আইপিটি কালো তালিকাভুক্ত করা হয়নি কিনা তা পরীক্ষা করে দেখুন এই টুল. যদি এটি হয়, একটি নতুন সার্ভারের জন্য জিজ্ঞাসা করুন. যদি না হয়, যান.
এখন এটির সাথে সংযোগ করতে, আপনার ssh কনফিগারেশন ফাইলটি সম্পাদনা করুন এবং যেখানে একটি এন্ট্রি যোগ করুন <hostname>
উদাহরণের নাম এবং <ip>
এর আইপি ঠিকানা।
ফাইল: ~/.ssh/config
Host <hostname>
Hostname <ip>
এখন সংযোগ করুন:
প্যাকেজগুলির জন্য উৎস সেট করুন, সার্ভারের অবস্থানের কাছাকাছি একটি আয়না ব্যবহার করুন:
ফাইল: /etc/installurl
https://ftp.fr.openbsd.org/pub/OpenBSD/
সিস্টেম প্যাচ করুন এবং রিবুট করুন:
syspatch -c
reboot
# wait for reboot
ssh root@<hostname>
সময় ঠিক করুন:
ln -sf /usr/share/zoneinfo/Europe/Paris /etc/localtime
প্রয়োজনীয় জিনিসগুলি ইনস্টল করুন
pkg_add -v vim zsh git htop unzip cmake
# select vim no x11 python3 (10)
# select unzip iconv (2)
ডটফাইলস ইনস্টল করুন (আপনি যদি আমি না হন তবে এটি এড়িয়ে যান)
git clone --recursive https://github.com/NicolasCARPi/.dotfiles
./.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
SSH কনফিগার করুন
ফাইলে /etc/ssh/sshd_config
পোর্টটিকে 22 ছাড়া অন্য কিছুতে পরিবর্তন করুন, বিশেষত> 10000।
আপনার ব্যবহারকারী যোগ করুন
ইতিমধ্যেই রুট সহ যথেষ্ট, আসুন একজন ব্যবহারকারী যোগ করি:
adduser
# login groups: <username> staff
স্টাফ সদস্যদের রুট হিসাবে কমান্ড চালানোর অনুমতি দিন:
ফাইল: /etc/doas.conf
permit setenv { -ENV PS1=$DOAS_PS1 SSH_AUTH_SOCK } :staff
সার্ভার থেকে সংযোগ বিচ্ছিন্ন করুন।
আপনার হোস্টে, সম্পাদনা করুন ~/.ssh/config
এবং একটি লাইন যোগ করুন Port <port>
সার্ভারের জন্য। একটি লাইন যোগ করুন User <user>
যদি আপনার স্থানীয় ব্যবহারকারী সার্ভারে আপনার তৈরি করা থেকে আলাদা হয়।
সার্ভারে আপনার সর্বজনীন কী অনুলিপি করুন:
ssh-copy-id -i ~/.ssh/id_ed25519.pub <hostname>
ssh <hostname>
ডটফাইল ধাপ পুনরাবৃত্তি করুন.
সম্পাদনা করুন /etc/ssh/sshd_config
এবং “EnableRootLogin” না সেট করুন; doas rcctl reload sshd
.
ডিএনএস
সার্ভারের আইপিতে AAAA এবং A নির্দেশক যোগ করুন। এমএক্স পন্টিং যোগ করুন <domain>.
(শেষে পয়েন্ট!)
OpenSMTPD
ভাল খবর, আপনাকে এটি ইনস্টল করতে হবে না কারণ এটি বেসের সাথে পাঠানো হয়েছে, এটি কত দুর্দান্ত! 🙂
এখানে আমার কনফিগার ফাইল (/etc/mail/smtpd.conf
), আপনার প্রয়োজনের সাথে মানিয়ে নিন:
# $OpenBSD: smtpd.conf,v 1.11 2018/06/04 21:10:58 jmc Exp $
# configure TLS
pki <domain> key "/etc/letsencrypt/live/<domain>/privkey.pem"
pki <domain> cert "/etc/letsencrypt/live/<domain>/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
# <domain>
match from any for domain "<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"
টিএলএস
ডোমেনের জন্য একটি শংসাপত্র পাওয়ার জন্য, আমরা Acme-client ব্যবহার করব, যা OpenBSD-এর মাধ্যমে পাঠানো হয়েছে।
acme-client -ADv <domain>
ডোভকোট
ডভকোট সর্বাধিক খোলা ফাইল সীমা ট্রিগার করার সাথে একটি সমস্যা আছে, তাই প্রথমে এটি ঠিক করা যাক।
ফাইল: /etc/sysctl.conf
ফাইল: /etc/login.conf
dovecot:\
:openfiles-cur=1024:\
:openfiles-max=2048:\
:tc=daemon:
এখন আমাদের পছন্দ অনুযায়ী Dovecot এর বেস কনফিগারেশন পরিবর্তন করা যাক।
ফাইল: 10-mail.conf
mail_location = maildir:~/.mail
ফাইল: 10-ssl.conf
ssl_cert
ssl_key
ssl_dh_parameters_length = 2048
rcctl enable dovecot
rcctl start dovecot
DKIMProxy
ডিকেআইএম দিয়ে বহির্গামী ইমেলগুলিতে স্বাক্ষর করুন বা স্প্যাম ফোল্ডারে যাওয়ার আশা করুন…
ফাইল: /etc/dkimproxy_out.conf
listen 127.0.0.1:10027
relay 127.0.0.1:10028
domain <domain>
signature dkim(c=relaxed)
keyfile /etc/mail/private.key
selector mail
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
স্প্যামডি
আমি এটি ব্যবহার করি না (এখনও)।
উপভোগ করুন!
~নিকো