হোম সার্ভার সেট আপ করার জন্য প্রচুর কারণ রয়েছে। আপনি এটি একটি মিডিয়া সার্ভার, একটি ফাইল সার্ভার, এমনকি একটি স্থানীয় ব্যাকআপ সার্ভার হিসাবে ব্যবহার করতে পারেন৷ মূলত, আপনার যেকোন ফাইল যা অনলাইনে থাকার প্রয়োজন নেই তা হল হোম সার্ভারের জন্য ভালো প্রার্থী। একটি লিনাক্স-চালিত হোম সার্ভার সেট আপ করা তুলনামূলকভাবে সহজ, বিশেষ করে আজকাল। এটি বলেছে, সেই সার্ভারটিকে সুরক্ষিত রাখা সম্পূর্ণ অন্য গল্প। নিরাপত্তা যতটা কঠিন, ততটাই গুরুত্বপূর্ণ।
শুধুমাত্র আপনার যা প্রয়োজন তা ইনস্টল করুন
আপনার হোম সার্ভার সুরক্ষিত রাখার একটি সহজ উপায় হল প্রথম থেকেই নিরাপত্তার কথা মাথায় রাখা। এটি ইনস্টলেশন দিয়ে শুরু হয়। আপনি যদি একটি অ্যাপ্লিকেশন বা পরিষেবার প্রয়োজন হয় তবে আপনি কি অনিশ্চিত? এটি ইনস্টল করবেন না। আপনি সর্বদা এটি পরে ইনস্টল করতে পারেন।
আপনি যদি কয়েকবার লিনাক্স ইনস্টল করে থাকেন তবে এটি আরও সহজ। ডিফল্টের সাথে লেগে থাকার পরিবর্তে, মোডগুলি ব্যবহার করুন যা আপনাকে ইনস্টলেশনের উপর সর্বাধিক নিয়ন্ত্রণ দেয়। কখনও কখনও এগুলিকে "বিশেষজ্ঞ মোড" বা অনুরূপ কিছু নাম দেওয়া হয়৷
৷যত্ন সহকারে ইনস্টল বিকল্পগুলির উপর নজর রাখলে পরে নিরাপত্তার কারণে পরিষেবাগুলি অক্ষম করার সময় বাঁচাতে পারে৷
সুডো কনফিগার করুন
আপনি অন্য কোনো ধাপে যাওয়ার আগে, আপনাকে sudo
কনফিগার করতে হবে . কেন? কারণ একবার আমরা এখানে সম্পন্ন হলে, আপনি SSH এর মাধ্যমে আপনার সার্ভারে লগ ইন করবেন এবং আপনি রুট অ্যাকাউন্ট হিসাবে লগ ইন করতে পারবেন না। আপনার সিস্টেমে আরও কোনো পরিবর্তন করতে, আপনাকে sudo
ব্যবহার করতে হবে .
প্রথমে, আপনি ইতিমধ্যে sudo
ব্যবহার করতে সক্ষম কিনা তা দেখতে পরীক্ষা করুন . আপনার ব্যবহারকারীর অ্যাকাউন্ট থেকে, USERNAME এর পরিবর্তে আপনার ব্যবহারকারীর নাম দিয়ে নিম্নলিখিতটি চালান:
sudo -lU USERNAME
আপনি যদি এমন একটি বার্তা দেখতে পান যে আপনার ব্যবহারকারীর নাম "(ALL) ALL" বা অনুরূপ কিছু চালাতে পারে, তাহলে আপনি এগিয়ে যেতে প্রস্তুত৷
এখন, আপনার সার্ভারে রুট অ্যাকাউন্ট হিসাবে, "/etc/sudoers" ফাইলটি সম্পাদনা করতে নিম্নলিখিতটি চালান। আপনি যদি অন্য সম্পাদক পছন্দ করেন তবে ন্যানো এর পরিবর্তে এটি ব্যবহার করুন৷
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 "[email protected]"
এখন আপনি আপনার সার্ভারে SSH কী কপি করবেন:
ssh-copy-id USERNAME@SERVER
একটি হোম সার্ভারের জন্য, আপনি সম্ভবত একটি নামের পরিবর্তে আপনার সার্ভারের জন্য একটি IP ঠিকানা ব্যবহার করছেন৷ আপনি যদি আপনার সার্ভারের নাম না জানেন তবে উপরের সার্ভারের পরিবর্তে আপনার আইপি ঠিকানা ব্যবহার করুন৷
৷
এখন আমরা আপনার SSH সেটিংস এডিট করব যাতে সেগুলি আরও সুরক্ষিত হয়। ক্লায়েন্ট থেকে আপনার সার্ভারে লগ ইন করুন যেটিতে আপনি কীগুলি তৈরি করেছেন। এটি আপনাকে এই ধাপের পরে আবার লগ ইন করতে সক্ষম করবে৷ nano
প্রতিস্থাপন করে নিম্নলিখিতটি চালান আপনার পছন্দের সম্পাদকের সাথে।
sudo nano /etc/ssh/sshd_config
ফাইলটি সম্পাদনা করুন এবং নিম্নলিখিত সেটিংস সহ। এগুলো ফাইলের বিভিন্ন জায়গায় থাকবে। নিশ্চিত করুন যে কোনও সদৃশ নেই, কারণ শুধুমাত্র একটি সেটিংসের প্রথম উদাহরণ অনুসরণ করা হবে।
ChallengeResponseAuthentication no PasswordAuthentication no UsePAM no PermitRootLogin no
এখন আপনাকে নিম্নলিখিত কমান্ডগুলির একটি দিয়ে SSH সার্ভার পুনরায় চালু করতে হবে৷
উবুন্টুতে, চালান:
sudo systemctl restart ssh
একটি ফায়ারওয়াল কনফিগার করুন
আপনি যে পরিষেবাগুলি চালাচ্ছেন এবং আপনার সার্ভার ইন্টারনেটের সাথে কতটা সংযোগ করে তার উপর নির্ভর করে, আপনি একটি ফায়ারওয়াল চালাতে চাইতে পারেন। এর জন্য কয়েকটি বিকল্প রয়েছে, তবে লিনাক্সে চেষ্টা করা এবং সত্য পদ্ধতি হল iptables৷
৷iptables সেট আপ করা এই নিবন্ধের সুযোগের বাইরে, কিন্তু চিন্তা করবেন না। আপনার মেশিনে iptables কনফিগার করার জন্য আমাদের কাছে একটি সম্পূর্ণ গাইড রয়েছে৷
৷
ফায়ারওয়াল সেট আপ করার আরেকটি সহজ উপায় হল ufw
ব্যবহার করা . আপনি কমান্ড দিয়ে এটি ইনস্টল করতে পারেন:
sudo apt install ufw
ডিফল্টরূপে, এটি সমস্ত পোর্ট ব্লক করবে। অনলাইন এবং ssh অ্যাক্সেস সক্ষম করতে, 80, 443 এবং 22 পোর্টগুলি খুলতে নিম্নলিখিত ufw কমান্ডগুলি চালান:
sudo ufw allow 80 sudo ufw allow 443 sudo ufw allow 22
এবং সবশেষে, ufw পরিষেবা সক্রিয় করুন:
sudo ufw enable
আপ টু ডেট থাকুন
সার্ভারগুলি কেবল কাজ করলে ভুলে যাওয়া সহজ হতে পারে, তবে এটি বিপজ্জনক হতে পারে। আপনার সফ্টওয়্যার আপ টু ডেট রাখা নিশ্চিত করুন. আপনি অযৌক্তিক আপগ্রেড ব্যবহার করতে পারেন, কিন্তু এগুলি অনির্দেশ্য হতে পারে। সবথেকে নিরাপদ উপায় হল নিয়মিত সাপ্তাহিক বা মাসিক সার্ভার রক্ষণাবেক্ষণের অ্যাপয়েন্টমেন্টের সময়সূচী করা যাতে নিশ্চিত করা যায় যে সবকিছুই ঠিক আছে।
এখান থেকে কোথায় যেতে হবে
এখন আপনি আপনার সার্ভারকে বাইরের হুমকি থেকে সুরক্ষিত রাখতে একটি ভাল শুরু করেছেন। আপনার যদি বাড়ি থেকে আপনার সার্ভার অ্যাক্সেস করার প্রয়োজন হয় তবে কী হবে? আপনার খোলা প্রতিটি দরজা সম্ভাব্য আক্রমণকারী দ্বারা ব্যবহার করা যেতে পারে, এবং প্রতিটি খোলা পোর্ট আপনার দুর্বলতা বাড়ায়।
বাইরে থেকে আপনার হোম নেটওয়ার্ক অ্যাক্সেস করার সবচেয়ে সহজ উপায়গুলির মধ্যে একটি হল একটি VPN ব্যবহার করা, যা এই নিবন্ধের সুযোগের বাইরে, কিন্তু চিন্তা করবেন না, আমরা আপনাকে কভার করেছি। আপনার বিকল্পগুলি কী তা একটি ধারণার জন্য উপলব্ধ সেরা নিরাপদ VPN পরিষেবাগুলির তালিকাটি দেখুন৷