হোম সার্ভার সেট আপ করার অনেক কারণ রয়েছে। আপনি এটিকে একটি মিডিয়া সার্ভার, একটি ফাইল সার্ভার, অথবা এমনকি একটি লোকাল ব্যাকআপ সার্ভার হিসেবে ব্যবহার করতে পারেন। মূলত, আপনার যেকোনো ফাইল যা অনলাইন থাকতে হবে না সেগুলো হোম সার্ভারের জন্য ভালো ক্যান্ডিডেট। লিনাক্স-চালিত হোম সার্ভার সেট আপ করা আজকাল relativistically সহজ।そう言うと, সেই সার্ভারকে সিকিউর রাখা একদম আলাদা একটি গল্প। সিকিউরিটি যত গুরুত্বপূর্ণ, ততটুকু জটিলও।
শুধু যা আপনার জরুরি সেটি ইনস্টল করুন
আপনার হোম সার্ভার সিকিউর রাখার সবচেয়ে সহজ উপায় হচ্ছে শুরু থেকে সিকিউরিটি মনে রেখে চলা। এটি শুরু হয় ইনস্টলেশন থেকে। আপনি কি একটি অ্যাপ্লিকেশন বা সার্ভিস দরকার কিনা সেটি নিয়ে অনিশ্চিত? তাহলে ইনস্টল করবেন না। আপনি পরে সবসময় ইনস্টল করতে পারেন।
আপনি যদি লিনাক্স কিছুবার ইনস্টল করে থাকেন, তবে এটি আরও সহজ। ডিফল্টের সাথে থাকার বদলে, ইনস্টলেশনের ওপর সবচেয়ে বেশি কন্ট্রোল দেওয়া মোডগুলো ব্যবহার করুন। কখনও কখনও এগুলো "expert mode" বা কিছু مشابه নামে ডাকা হয়।
ইনস্টল অপশনগুলো সতর্কতার সাথে ট্র্যাক রাখা আপনাকে পরে সিকিউরিটি কারণগুলো থেকে সার্ভিস ডিজেবল করার সময় বাঁচাবে।
sudo কনফিগার করুন
আপনি অন্য কোনো স্টেপে যাওয়ার আগে, আপনাকে sudo কনফিগার করতে হবে। কেন? কারণ একবার আমরা এখানে শেষ করলে, আপনি আপনার সার্ভারে SSH দিয়ে লগ ইন করবেন, এবং আপনি রুট অ্যাকাউন্ট হিসেবে লগ ইন করতে পারবেন না। আপনার সিস্টেমে আরও কোনো পরিবর্তন করার জন্য, আপনাকে sudo ব্যবহার করতে হবে।
প্রথমে, চেক করুন আপনি ইতিমধ্যে sudo ব্যবহার করতে পারছেন কিনা। আপনার ইউজার অ্যাকাউন্ট থেকে, আপনার ইউজারনেম USERNAME-র বদলে দিয়ে নিচের কমান্ডটি চালান:
sudo -lU USERNAME
আপনি যদি একটি মেসেজ দেখেন যে আপনার ইউজারনেম "(ALL) ALL" বা কিছু অনুরূপ রান করতে পারে, তবে আপনি আগামী ধাপে যেতে পারেন।
এখন, আপনার সার্ভারে রুট অ্যাকাউন্ট হিসেবে, নিচের কমান্ডটি চালান "/etc/sudoers" ফাইলটি এডিট করতে। আপনি অন্য এডিটর পছন্দ করলে, nano-এর বদলে সেটি ব্যবহার করুন।
EDITOR=nano visudo
ফাইলটি এডিট করে নিচের বিষয়টি অন্তর্ভুক্ত করুন, আপনার ইউজারনেম USERNAME-র বদলে দিয়ে:
USERNAME ALL=(ALL) ALL
SSH কনফিগার করুন
আপনার হোম সার্ভারে SSH ইতিমধ্যে সক্রিয় থাকতে পারে। আপনি সম্ভবত পারেন, কারণ সার্ভারের সাথে ইন্টারঅ্যাক্ট করার এটি সাধারণ পথ।
প্রথমে, নিশ্চিত করুন OpenSSH ইনস্টলড। আপনি অন্য ডিস্ট্রিবিউশন ব্যবহার করলে আপনার কমান্ড ভিন্ন হবে, কিন্তু প্যাকেজের নাম সেটি ফেরি কনসিস্টেন্ট থাকা উচিত। উবুন্টুতে, নিচের কমান্ডটি চালান:
sudo apt install openssh-server
কী-ভিত্তিক অথেন্টিকেশন পাসওয়ার্ড অথেন্টিকেশনের চেয়ে অনেক বেশি সিকিউর, তাই আমরা SSH কে এইভাবে কাজ করার জন্য সেট আপ করব। এটি করতে, নিশ্চিত করুন আপনি সার্ভারটি নয়, সার্ভারের সাথে কানেক্ট করার জন্য আপনি যে ক্লায়েন্ট ব্যবহার করার প্ল্যান করছেন সেটিতে কাজ করছেন। প্রথমে, নিশ্চিত করুন আপনার কাছে ইতিমধ্যে কোনো SSH কী নেই:
ls ~/.ssh/
আপনি লিস্ট করা ফাইলনেমগুলোর মধ্যে "id_rsa" এবং "id_rsa.pub" দেখলে, আপনার কাছে ইতিমধ্যে SSH কী রয়েছে। এই পরবর্তী স্টেপটি স্কিপ করুন।
ssh-keygen -t rsa -b 4096 -C "youremail@domain.com"
এখন আপনি SSH কী আপনার সার্ভারে কপি করবেন:
ssh-copy-id USERNAME@SERVER
একটি হোম সার্ভারের জন্য, আপনি সম্ভবত আপনার সার্ভারের জন্য একটি IP অ্যাড্রেস ব্যবহার করছেন নামের বদলে। আপনি আপনার সার্ভার নাম না জানলে, উপরের SERVER-এর বদলে আপনার IP অ্যাড্রেস ব্যবহার করুন।
এখন আমরা আপনার SSH সেটিংস এডিট করব সেগুলো আরও সিকিউর করতে। আপনি যেখানে কী তৈরি করেছেন সেটি ক্লায়েন্ট থেকে আপনার সার্ভারে লগ ইন করুন। এটি এই স্টেপের পর আপনাকে আবার লগ ইন করতে সক্ষম করবে। নিচের কমান্ডটি চালান, nano-কে আপনার পছন্দের এডিটর দিয়ে প্রতিস্থাপন করুন।
sudo nano /etc/ssh/sshd_config
ফাইলটি নিচের সেটিংস দিয়ে এডিট করুন। এই সেটিংস ফাইলের বিভিন্ন জায়গায় থাকবে। নিশ্চিত করুন কোনো ডুপ্লিকেট নেই, কারণ শুধু একটি সেটিং-এর প্রথম ইনস্ট্যান্স ফলো করা হবে।
ChallengeResponseAuthentication no PasswordAuthentication no UsePAM no PermitRootLogin no
এখন আপনাকে SSH সার্ভার রিস্টার্ট করতে হবে নিচের কমান্ডগুলোর একটি দিয়ে।
উবুন্টুতে, চালান:
sudo systemctl restart ssh
ফায়ারওয়াল কনফিগার করুন
আপনি কী সার্ভিস চালাচ্ছেন এবং আপনার সার্ভার কতটুকু ইন্টারনেটের সাথে কানেক্ট করে সেটির ওপর নির্ভর করে, আপনি একটি ফায়ারওয়াল চালাতে চাইতে পারেন। এই জন্য কিছু অপশন রয়েছে, কিন্তু লিনাক্সে যechhe এবং সত্য পদ্ধতি হচ্ছে iptables।
iptables সেট আপ করা এই আর্টিকেলের স্কোপের বাইরে, কিন্তু চিন্তা করবেন না। আমাদের আপনার মেশিনে iptables কনফিগার করার একটি পূর্ণ গাইড রয়েছে।
ফায়ারওয়াল সেট আপ করার আরেকটি সহজ উপায় হচ্ছে ufw ব্যবহার করা। আপনি নিচের কমান্ড দিয়ে এটি ইনস্টল করতে পারেন:
sudo apt install ufw
ডিফল্টরূপে, এটি সকল পোর্ট ব্লক করবে। অনলাইন এবং ssh অ্যাক্সেস সক্ষম করতে, পোর্ট ৮০, ৪৪৩, এবং ২২ খোলার জন্য নিচের ufw কমান্ডগুলো চালান:
sudo ufw allow 80 sudo ufw allow 443 sudo ufw allow 22
এবং সর্বশেষ, ufw সার্ভিস সক্ষম করুন:
sudo ufw enable
আপ-টু-ডেট থাকুন
সার্ভার ভুলে যাওয়া সহজ যদি সেগুলো শুধু চলে, কিন্তু এটি ধ্বংসাত্মক হতে পারে। আপনার সফটওয়্যার আপ-টু-ডেট রাখতে ভুলবেন না। আপনি অনঅ্যাটেন্ডেড আপগ্রেড ব্যবহার করতে পারেন, কিন্তু এগুলো প্রিডিক্টেবল নয়। সेफ পথ হচ্ছে একটি নিয়মিত সাপ্তাহিক বা মাসিক সার্ভার মেইনটেন্যান্স অ্যাপয়েন্টমেন্ট শিডিউল করা যাতে সবকিছু ঠিকঠাক আছে কিনা চেক করা যায়।
এখান থেকে কোথাও যাবেন
এখন আপনার সার্ভার বাহ্যিক হুমকি থেকে প্রোটেক্ট করার জন্য একটি ভালো শুরু আছে। কিন্তু আপনি যদি বাড়ি থেকে আপনার সার্ভার অ্যাক্সেস করতে চান? আপনি যেকোনো দরজা খোললে সেটি একটি আক্রমণকারী দ্বারা ব্যবহৃত হতে পারে, এবং প্রতিটি ওপেন পোর্ট আপনার আপদস্থিতি বাড়ায়।
বাহির থেকে আপনার হোম নেটওয়ার্ক অ্যাক্সেস করার সবচেয়ে সহজ উপায়ের মধ্যে একটি হচ্ছে VPN ব্যবহার করা, যা এই আর্টিকেলের স্কোপের বাইরে, কিন্তু চিন্তা করবেন না, আমরা আপনাকে কভার করেছি। উপলব্ধ সেরা সিকিউর VPN সার্ভিসের আমাদের লিস্টটি দেখুন আপনার অপশনগুলো কী কী সেটি জানার জন্য।