রেড হ্যাট লিনাক্স : Configuring and Managing SSH (SSH এর খুঁটি-নাঁটি)

রেড হ্যাট লিনাক্স : Configuring and Managing SSH (SSH এর খুঁটি-নাঁটি)

নামঃ OpenSSH
পোর্ট নম্বরঃ 22 (পরিবর্তন করা যায়)

Daemon/ডি’মনঃ sshd

কনফিগারেশন ফাইলঃ /etc/ssh/sshd_config
যেকোন লিনাক্স মেশিনে যদি OpenSSH প্যাকেজটি ইন্সটল করা না থাকে তাহলে প্রথমেই তা ইনসটল করে নিতে হবে। এজন্য আমরা # yum install openssh* -y কমান্ডটি টার্মিনালে দিব। লক্ষ্য করুন, আমরা প্যাকেজটি ইন্সটল করছি Yum এর মাধ্যমে, এজন্য আমাদেরকে আগে অবশ্যই Yum কনফিগার করে নিতে হবে। Yum Server কনফিগার করার জন্য এই সাইটে একটি টিউটোরিয়াল দেওয়া আছে।
OpenSSH প্যাকেজটি ইন্সটল করার পর আমরা SSH সার্ভিসটি রিষ্টার্ট দিব।
# service sshd restart
# chkconfig sshd on
এতে করে আমাদের SSH সার্ভিসটি কনফিগার করা হয়ে গেল। এখন আমরা চাইলে নেটওয়ার্কের অন্য একটি কম্পিউটার থেকে দেখতে পারি, যে মেশিন/সার্ভারটিতে SSH কনফিগার করলাম সে মেশিনটিতে SSH এর মাধ্যমে লগইন করা যায় কি না। এজন্য আমরা ক্লায়েন্ট মেশিন থেকে নিচের কমান্ড দিব।
# ssh 192.168.10.1               (ধরি, আমাদের সার্ভারের আই.পি 192.168.10.1)
যেহেতু আমরা প্রথমবারের মতো SSH লগইন করছি, তাই নিচের ম্যাসেজটি প্রদর্শিত হবে।

এখানে একটি Fingerprint জেনারেট করার কথা বলা হচ্ছে। যদি কোন ক্লায়েন্ট মেশিন থেকে কোন সার্ভার মেশিনে প্রথমবারের মতো SSH লগইন করা হয় তখন এই Fingerprint জেনারেট হয়।
আমরা yes লিখে Enter প্রেস করবো।
Fingerprint জেনারেট হওয়ার পর আমরা যে মেশিনে (সার্ভার মেশিন) লগইন করেছি সে মেশিনের root ইউজারের পাসওয়ার্ড দিব।

পাসওয়ার্ড সঠিকভাবে দেওয়ার পর নিচের স্ক্রীণ প্রদর্শিত হবে।

টার্মিনালে একটু লক্ষ্য করে দেখুন, SSH লগইনের আগে আমরা ছিলাম rh2 নামক একটি কম্পিউটারে। কিন্তু, SSH লগইনের পর দেখা যাচ্ছে, আমরা এখন rh1 নামক কম্পিউটারে আছি। যেহেতু আমরা root ইউজার দিয়ে লগইন করেছি তাই আমরা এখন rh2 কম্পিউটারে বসেই rh1 কম্পিউটারের সব ধরণের কাজ করতে পারবো।
উদাহরণস্বরূপঃ ধরুন, সার্ভার মেশিনের ডেস্কটপে test.txt নামক এটি ফাইল আছে, তা কপি করে ক্লায়েন্ট মেশিনের ডেস্কটপে আনবো। এজন্য আমরা কমান্ড দিব নিম্নরূপঃ
# scp /root/Desktop/test.txt 192.168.10.2:/root/Desktop
(উল্লেখ্য, 192.168.10.2 হলো আমাদের ক্লায়েন্ট কম্পিউটারের আই.পি।)
এখন, ক্লায়েন্ট কম্পিউটারের ডেস্কটপে চেক করে দেখুন ফাইলটি চলে এসেছে।
এছাড়া # reboot কমান্ডটি দিয়ে দেখুন সার্ভার মেশিনটি রিবুট হবে। এভাবে আমরা সব কাজই করতে পারবো।

SSH Fingerprint

প্রথমবার SSH লগইনের সময় যে Fingerprint জেনারেট হয় তা সার্ভার মেশিনের /etc/ssh ডাইরেক্টরীর মধ্যে ইন্টিগ্রেট হয় এবং এর একটা ফিডব্যাক ক্লায়েন্ট মেশিনের /root/.ssh/known_host ফাইলে থাকে।
যদি আমরা ক্লায়েন্ট কম্পিউটারের /root/.ssh/known_host থেকে Fingerprint ডিলিট করি তাহলে পরবর্তীতে সার্ভার মেশিনের সাথে SSH কানেকশনের সময় তা আবার নতুন করে জেনারেট হবে।
ক্লায়েন্ট মেশিনের Fingerprint ডিলিট করতে হলেঃ
# vi /root/.ssh/known_host
অতঃপর দুইবার d বাটন প্রেস করে Fingerprint ডিলিট করবো এবং :wq! টাইপ করে Enter বাটন প্রেস করবো।
কিন্তু যদি আমরা সার্ভার মেশিনের /etc/ssh ডাইরেক্টরীর Key ফাইলগুলো ডিলিট করি তাহলে ক্লায়েন্ট মেশিন থেকে আর SSH লগইন করা যাবে না। এই সমস্যা সমাধানের জন্য আমাদেরকে অবশ্যই সার্ভার মেশিনের SSH সার্ভিস রিষ্টার্ট দিতে হবে।
সার্ভার মেশিনের Key ডিলিট করার জন্যঃ
# rm -fr /etc/ssh/*key*
# service sshd restart

পাসওয়ার্ড ছাড়া SSH লগইন

আমরা যতবারই ক্লায়েন্ট মেশিন থেকে সার্ভার মেশিনে লগইন করি না কেন, প্রতিবারই পাসওয়ার্ড দিয়ে লগইন করতে হয়। যদি আমরা চাই প্রতিবার লগইনের সময় পাসওয়ার্ড ছাড়াই লগইন করবো তাহলে আমাদেরকে ক্লায়েন্ট মেশিনে একটি Public_key জেনারেট করতে হবে এবং ঐ Public_key টি সার্ভার মেশিনে কপি করে দিতে হবে।
Public_key জেনারেট করার জন্য ক্লায়েন্ট মেশিনে নিচের কমান্ড দিব।
# cd /root/.ssh
# ssh-keygen -t dsa
কমান্ড দেওয়ার পর নিচের স্ক্রীনটি প্রদর্শিত হবে।

এখানে পর পর তিনটি প্রম্প্ট দিবে। প্রতিটি প্রম্প্ট এ আমরা কোন কিছু না লিখে Enter প্রেস করলেই নিচের স্ক্রীনটি প্রদর্শিত হবে।

অর্থাৎ, id_dsa.pub নামে Public_key জেনারেট হলো। Key দেথতে হলে আমরা # ls কমান্ডটি দিব।

এখন আমরা এই Public_key টি সার্ভার মেশিনে কপি করবো।
# ssh-copy-id -i id_dsa.pub root@192.168.10.1

yes লিখে Enter প্রেস করবো। এবং পাসওয়ার্ড দিব।

পাসওয়ার্ড দেওয়ার পর নিচের স্ক্রীনটি প্রদর্শিত হবে।

আমাদের Key ফাইল কপি করার কাজ শেষ হয়েছে। এখন, সার্ভার মেশিনে SSH লগইন করে দেখবো পাসওয়ার্ড ছাড়া লগইন করা যায় কি না।
# ssh 192.168.10.1

একটু লক্ষ্য করে দেখুন, এখন SSH লগইনের জন্য কোন পাসওয়ার্ড লাগছে না।

কিছু নিরাপত্তাজনিত কথা

আমরা এতক্ষন যা কাজ করলাম তা SSH এর ডিফল্ট 22 নম্বর পোর্ট এবং root ইউজার ব্যবহার করে করলাম। এই পোর্ট নম্বর ও ইউজারনেম সবাই জানে। অনেক ধরণের হ্যাকিং টুলস আছে যার সাহায্যে একজন হ্যাকার আপনার 22 নম্বর পোর্ট এবং root ইউজার ব্যবহার করে পাসওয়ার্ড ব্রেক করতে পারে। এজন্য একটি ভালো পদ্ধতি হলো SSH এর ডিফল্ট পোর্ট নম্বর পরিবর্তন করা এবং root ইউজারের মাধ্যমে লগইন ডিসএ্যাবল করা। এতে করে হ্যাকার সাহেবের কাজ অনেক অনেক কঠিন হয়ে যাবে এবং আপনার সার্ভার মেশিনও অনেক অনেক বেশি নিরাপদ থাকবে।
পোর্ট নম্বর পরিবর্তন এবং root ইউজারের মাধ্যমে লগইন ডিসএ্যাবল করতে হলে SSH এর কনফিগারেশন ফাইলে কিছু পরিবর্তন আনতে হবে। প্রথমেই আমরা আমাদের সার্ভার মেশিনে একটি ইউজার তৈরী করবো।
ইউজার তৈরী ও পাসওয়ার্ড সেট করতে হলেঃ
# adduser naser
# passwd naser

অতঃপর SSH এর কনফিগারেশন ফাইল ওপেন করবো।
# vi /etc/ssh/sshd_config
এবং নিচের মতো করে ফাইলটিতে দুইটি লাইন পরিবর্তন করবো এবং একটি নতুন লাইন যোগ করবো।
            Port 2222                               (Line number 13) 
            PermitRootLogin no             (Line number 42) 
            AllowUsers naser                  (new line)
ফাইলটি সেভ করবো এবং SSH সার্ভিস রিষ্টার্ট দিব।
# service sshd restart
এখন পরিবর্তিত পোর্ট নম্বর ও ইউজারনেম দিয়ে লগইন করার জন্য ক্লায়েন্ট মেশিনে নিচের কমান্ড দিব।
# ssh naser@192.168.10.1 -p 2222

অতঃপর ইউজার naser এর পাসওয়ার্ড দিলে লগইন সাকসেসফুল হবে এবং নিচের মতো করে স্ক্রীন প্রদর্শিত হবে।

ধরুন, সার্ভার মেশিনে kamal নামে একটি ইউজার আছে। আমরা চাচ্ছি kamal ইউজার দিয়ে যেন SSH লগইন করা না যায়। সেজন্য কনফিগারেশন ফাইল ওপেন করে নিচের লাইনটি লিখতে হবে।
# vi /etc/ssh/sshd_config
            DenyUsers kamal                    (New Line)
ফাইলটি সেভ করবো এবং SSH সার্ভিস রিষ্টার্ট দিব।
আমাদের সার্ভার মেশিনে এই মুহূর্তে কে কে লগইন করে আছে তা দেখার জন্য নিচের কমান্ড দিব।
# w

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s