কম্পিউটার টিউটোরিয়াল

লিনাক্স হোম সার্ভার সিকিউর করুন

হোম সার্ভার সেট আপ করার অনেক কারণ রয়েছে। আপনি এটিকে একটি মিডিয়া সার্ভার, একটি ফাইল সার্ভার, অথবা এমনকি একটি লোকাল ব্যাকআপ সার্ভার হিসেবে ব্যবহার করতে পারেন। মূলত, আপনার যেকোনো ফাইল যা অনলাইন থাকতে হবে না সেগুলো হোম সার্ভারের জন্য ভালো ক্যান্ডিডেট। লিনাক্স-চালিত হোম সার্ভার সেট আপ করা আজকাল 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 সার্ভিসের আমাদের লিস্টটি দেখুন আপনার অপশনগুলো কী কী সেটি জানার জন্য।

  1. NTP সার্ভারের সাথে লিনাক্স টাইম সিঙ্ক করার পদ্ধতি

  2. লিনাক্স VPS-এ CS:GO সার্ভার তৈরির পদ্ধতি

  3. উইন্ডোজ ১০-এ SSH সিকিউর শেল ব্যবহার: ধাপে ধাপে গাইড

  4. SSH দিয়ে ক্র্যাশ করা উইন্ডোজ PC অ্যাক্সেস করুন: ধাপে ধাপে গাইড