SSH আপনার ল্যাপটপ বা PC থেকে আপনার Raspberry Pi কন্ট্রোল করার সবচেয়ে জনপ্রিয় উপায়ের একটি। এখানে আপনি শিখবেন কীভাবে আপনার Raspberry Pi-র SSH অ্যাক্সেসের জন্য টু-ফ্যাক্টর অথেনটিকেশন সেট আপ করবেন এবং এটিতে একটি এক্সট্রা লেয়ার সিকিউরিটি যোগ করবেন।
নোট: আপনি যদি আপনার Raspberry Pi অ্যাক্সেস করার জন্য SSH key-file ব্যবহার করেন, তবে টু-ফ্যাক্টর অথেনটিকেশন কাজ করবে না।
আপনার Pi আপডেট করুন
আপনি ইতিমধ্যে Raspberry Pi OS দিয়ে আপনার Raspberry Pi সেট আপ করেছেন ধরে, সবচেয়ে ভালো হলো প্রথমে চেক করা যে আপনার সকল সফ্টওয়্যার আপ টু ডেট। একটি টার্মিনাল খুলুন এবং নিচের কমান্ডটি টাইপ করুন:
sudo apt update && sudo apt -y upgrade
SSH সক্ষম করুন
Raspberry Pi OS-এ SSH সার্ভার ডিফল্টলায় ডিজেবলড থাকে। আপনি SSH দিয়ে আপনার Pi-তে কানেক্ট করার আগে, আপনাকে নিচের টার্মিনাল কমান্ডগুলো চালিয়ে এটি সক্ষম করতে হবে:
sudo systemctl enable ssh sudo systemctl start ssh
আপনি এখন SSH সার্ভারের সাথে কানেক্ট করতে পারবেন।
চ্যালেঞ্জ-রেসপন্স সহ আইডেন্টিটি অথেনটিকেশন আবশ্যক
চূড়ান্তভাবে, আপনার Raspberry Pi-কে আপনাকে আপনার আইডেন্টিটি অথেনটিকেট করার জন্য চ্যালেঞ্জ করতে হবে এবং তারপর আপনার রেসপন্স প্রসেস করতে হবে, যার মানে আপনাকে চ্যালেঞ্জ-রেসপন্স পাসওয়ার্ড সক্ষম করতে হবে।
শুরু করতে, SSH কনফিগ ফাইলটি এডিটিং এর জন্য খুলুন নিচের টার্মিনাল কমান্ডটি চালিয়ে:
sudo nano /etc/ssh/sshd_config
এই ফাইলে, ChallengeResponseAuthentication সেকশনটি খুঁজুন এবং এটিকে "no" থেকে "yes"-এ পরিবর্তন করুন।
আপনি এখন আপডেট করা "sshd_config" ফাইলটি সংরক্ষণ করতে পারেন Ctrl + O চাপিয়ে, তারপর Ctrl + X চাপিয়ে।
টার্মিনালে ফিরে, আপনার নতুন কনফিগারেশনের সাথে SSH ডেমন রিস্টার্ট করুন:
sudo systemctl restart ssh
যেহেতু SSH কনফিগারেশনে পরিবর্তন করা হয়েছে, এটি চেক করা একটি ভালো ধারণা যে আপনি এখনও আপনার Raspberry Pi-তে SSH দিয়ে কানেক্ট করতে পারছেন।
SSH সার্ভারের সাথে কানেক্ট করতে, আপনাকে আপনার Raspberry Pi-এর IP অ্যাড্রেস জানতে হবে। আপনার কাছে যদি ইতিমধ্যে এই ইনফরমেশন না থাকে, তবে আপনার Pi-তে নিচের কমান্ডটি চালান:
hostname -I
এটি আপনার দরকারি IP অ্যাড্রেস রিটার্ন করবে।
আপনার ল্যাপটপ বা কম্পিউটারে স্যুইচ করুন, একটি টার্মিনাল চালু করুন এবং তারপর আপনার Raspberry Pi-তে কানেক্ট করুন, "10.3.000.0"-কে আপনার ইউনিক IP অ্যাড্রেস দিয়ে রিপ্লেস করে:
ssh pi@10.3.000.0
আপনি এখন SSH দিয়ে কানেক্টেড।
টু-ফ্যাক্টর অথেনটিকেশন সেট আপ করা
পরবর্তী, একটু টাইম অথেনটিকেশন কোড জেনারেট করার জন্য Authenticator অ্যাপ্লিকেশন ডাউনলোড করুন। মার্কেটে বিভিন্ন অথেনটিকেশন অ্যাপ আছে, কিন্তু এই টিউটোরিয়ালের জন্য আমি Google Authenticator ব্যবহার করছি, যা iOS এবং Android উভয়ের জন্য উপলব্ধ।
এই মোবাইল অ্যাপ্লিকেশন ডাউনলোড করার পর, আপনাকে আপনার Raspberry Pi-তে Google Authenticator PAM মডিউলও ইনস্টল করতে হবে।
আপনার Pi-তে, একটি টার্মিনাল উইন্ডো খুলুন এবং নিচের কমান্ডটি চালান:
sudo apt install libpam-google-authenticator
Google Authenticator একবার আপনার Raspberry Pi-তে এবং আপনার মোবাইল ডিভাইসে ইনস্টল হলে, আপনি টু-ফ্যাক্টর অথেনটিকেশন সেট আপ করার জন্য প্রস্তুত।
একটি কানেকশন তৈরি করা: আপনার Pi কে আপনার মোবাইল ডিভাইসের সাথে লিংক করা
আপনার মোবাইল অ্যাপ্লিকেশন এবং আপনার Raspberry Pi-এর মধ্যে একটি লিংক তৈরি করতে, আপনার Pi-তে একটি QR কোড জেনারেট করুন এবং তারপর এই কোডটি আপনার স্মার্টফোন বা ট্যাবলেট দিয়ে স্ক্যান করুন।
QR কোড জেনারেট করতে, আপনার Raspberry Pi-তে ফিরে যান এবং নিচের টার্মিনাল কমান্ডটি চালান:
google-authenticator
আপনার Raspberry Pi জিজ্ঞাসা করবে এর অথেনটিকেশন টোকেনগুলো টাইম-রিস্ট্রিক্টেড হওয়া উচিত কিনা। যেহেতু এটি আরও সিকিউর, আপনি সাধারণত টাইম-বেসড অথেনটিকেশন টোকেন জেনারেট করতে চাবেন যদি না আপনার একটি নির্দিষ্ট কারণ থাকে না করার।
টার্মিনাল একটি QR কোড জেনারেট করবে, যদিও আপনাকে পুরো বারকোড দেখতে টার্মিনাল রিসাইজ করতে হতে পারে।
এছাড়া একটি সিরিজ ইমার্জেন্সি কোড আছে। আপনি যদি কখনো আপনার মোবাইল ডিভাইস হারান, মিসপ্লেস করেন বা ভাঙান, তবে এই কোডগুলো আপনাকে আপনার মোবাইল ডিভাইস ছাড়া আপনার Raspberry Pi-তে SSH দিয়ে অ্যাক্সেস করতে দেবে। আপনার Raspberry Pi-তে লক আউট হওয়ার রিস্ক নিন। এই কোডগুলো নোট করে রেখুন এবং কোথো সেফ জায়গায় সংরক্ষণ করুন।
এই QR কোডটি ব্যবহার করে আপনার Raspberry Pi কে Google Authenticator অ্যাপের সাথে কানেক্ট করুন:
১. আপনার স্মার্টফোন বা ট্যাবলেটে, Google Authenticator অ্যাপ চালু করুন।
২. নিচের ডান কোণে, "+" সাইন চাপুন।
৩. "Scan a QR barcode" সিলেক্ট করুন। প্রম্পট হলে, অ্যাপকে আপনার ডিভাইসের ক্যামেরা অ্যাক্সেস করার পারমিশন দিন।
৪. আপনার ডিভাইসের ক্যামেরাকে আপনার মনিটরের দিকে করুন এবং QR কোডের ওপর পজিশন করুন। আপনার স্মার্টফোন বা ট্যাবলেট QR কোডটি রিকগনাইজ করলেই, এটি একটি অ্যাকাউন্ট তৈরি করবে এবং অটোমেটিক্যালি অথেনটিকেশন কোড জেনারেট করা শুরু করবে।
৫. আপনার Raspberry Pi-তে ফিরে যান; টার্মিনাল আপনাকে আপনার "google_authenticator" ফাইল আপডেট করার জন্য প্রম্পট করবে। আপনার কীবোর্ডের Y কী চাপুন।
৬. আপনাকে জিজ্ঞাসা করা হবে কি আপনি একাধিক মানুষকে একই অথেনটিকেশন টোকেন ব্যবহার করতে দিতে চান। আপনার কীবোর্ডের Y কী চাপুন।
৭. আপনাকে জিজ্ঞাসা করা হবে কি আপনি টাইম স্কিউ উইন্ডো বাড়াতে চান, N চাপুন, কারণ এটি ব্রুট-ফোর্স অট্যাকের বিপক্ষে আপনাকে রক্ষা করবে।
৮. টার্মিনাল এখন আপনাকে রেট-লিমিটিং সক্ষম করার জন্য বলবে, যা আপনাকে (এবং পটেনশিয়াল হ্যাকারদের!) প্রতি ৩০ সেকেন্ডে তিনটি লগইন অটেমপ্টে সীমাবদ্ধ করবে। রেট-লিমিটিং ব্রুট-ফোর্স এবং অন্যান্য পাসওয়ার্ড-বেসড অট্যাকের বিপক্ষে আপনাকে রক্ষা করতে সাহায্য করতে পারে, তাই আপনাকে "Yes" বেছে নিতে হবে যদি না আপনার একটি নির্দিষ্ট কারণ থাকে না করার।
লিনাক্স প্লাগেবল অথেনটিকেশন মডিউলস
চূড়ান্তভাবে, আপনাকে লিনাক্স প্লাগেবল অথেনটিকেশন মডিউলস (PAM) ব্যবহার করে আপনার Raspberry Pi-তে টু-ফ্যাক্টর অথেনটিকেশন সক্ষম করতে হবে।
শুরু করতে, "sshd" ফাইলটি Nano টেক্সট এডিটরে খুলুন:
sudo nano /etc/pam.d/sshd
নিচের লাইনটি যোগ করুন:
auth required pam_google_authenticator.so
যাহোক, আপনি এই লাইনটি কোথায় যোগ করছেন সেটি গুরুত্বপূর্ণ:
১. আপনার পাসওয়ার্ড দিয়ে পরে
আপনি যদি আপনার Raspberry Pi-এর পাসওয়ার্ড দিয়ে পরে এক-বারের অথেনটিকেশন কোডের জন্য প্রম্পট চান, তবে এই লাইনটি @include-এর পর যোগ করুন।
২. আপনার পাসওয়ার্ড দিয়ে আগে
আপনি যদি আপনার পাসওয়ার্ড দিয়ে আগে এক-বারের অথেনটিকেশন কোডের জন্য প্রম্পট চান, তবে এই লাইনটি @include-এর আগে যোগ করুন।
এই পরিবর্তনগুলো করার পর, Ctrl + O চাপিয়ে, তারপর Ctrl + X চাপিয়ে আপনার ফাইলটি সংরক্ষণ করুন।
SSH ডেমন রিস্টার্ট করুন:
sudo systemctl restart ssh
এখন প্রতিবার আপনি SSH দিয়ে কানেক্ট করার চেষ্টা করবেন, আপনাকে একটি এক-বারের ভেরিফিকেশন কোডের জন্য বলা হবে।
এখন যেহেতু আপনি আপনার Raspberry Pi-তে টু-ফ্যাক্টর অথেনটিকেশন সেট আপ করেছেন, আপনি আপনার পারসোনাল ওয়েব সার্ভার বা একটি মিউজিক সার্ভার সেট আপ করতে প্রসেস করতে পারেন। আপনি এই ট্রিক্স দিয়ে আপনার SSH সিকিউরিটি আরও বাড়াতে পারেন।