লিনাক্সের জন্য Sshd_Config ফাইল সম্পূর্ণ গাইড

Linaksera Jan Ya Sshd Config Pha Ila Sampurna Ga Ida



SSH বা সিকিউর শেল প্রোটোকল দূরবর্তীভাবে একটি মেশিনে লগ ইন করার জন্য এবং দূরবর্তী মেশিনে কমান্ড চালানোর জন্য ব্যবহৃত হয়। SSH প্রোটোকল ব্যবহার করে যে ডেটা স্থানান্তর করা হয় তা বিশেষ অ্যালগরিদম দিয়ে এনক্রিপ্ট করা হয় যা SSHকে টেলনেটের চেয়ে বেশি সুরক্ষিত করে তোলে। মূলত, OpenSSH হল একটি টুল যা এই প্রোটোকল প্রয়োগ করে।

আমরা কি কভার করব?

এই গাইডে, আমরা OpenSSH সার্ভার কনফিগারেশন ফাইলের বিভিন্ন দিক অন্বেষণ করব। এখন শুরু করা যাক.







OpenSSH কনফিগারেশন ফাইল

OpenSSH ক্লায়েন্ট এবং সার্ভার উভয়ের জন্য কিছু মূল ফাইল রয়েছে। এটিতে দুটি ধরণের কনফিগারেশন ফাইল রয়েছে:



1. ক্লায়েন্ট সাইড সম্পর্কিত ফাইল: ফাইলগুলির মধ্যে একটি হল ssh_config। এটি একটি সিস্টেম-ব্যাপী কনফিগারেশন ফাইল। এই ফাইলে অবস্থিত /etc/ssh/ssh_config।



অন্য ফাইলটি হল কনফিগার যা $HOME/.ssh/config এ অবস্থিত একটি ব্যবহারকারী-নির্দিষ্ট কনফিগারেশন ফাইল।





হোস্টের SSH প্রোগ্রাম এই ফাইলগুলি থেকে বা কমান্ড লাইন ইন্টারফেসের মাধ্যমে কনফিগারেশন নেয়। পূর্বে উল্লিখিত ফাইলগুলির ক্ষেত্রে, সিস্টেম-ব্যাপী কনফিগারেশন ফাইল, যা ssh_config, ব্যবহারকারী-নির্দিষ্ট 'কনফিগার' ফাইলের চেয়ে অগ্রাধিকার দেওয়া হয়।

2. sshd_config: এটি সার্ভারের সাথে সম্পর্কিত। OpenSSH সার্ভারটি শুরু হলে এই ফাইলটি পড়ে।



অন্বেষণ sshd কনফিগারেশন ফাইল

sshd কনফিগারেশন ফাইলটিতে অনেক নির্দেশ রয়েছে যা কাস্টমাইজ করা যায়। আসুন এই ফাইলটির ডিফল্ট বিন্যাসটি দেখি:

$ বিড়াল / ইত্যাদি / ssh / sshd_config


# এটি হল sshd সার্ভার সিস্টেম-ওয়াইড কনফিগারেশন ফাইল। দেখা

আরও তথ্যের জন্য # sshd_config(5)।

বন্দর 222
ListenAddress 0.0.0.0
লিসেন ঠিকানা ::
হোস্টকি / ইত্যাদি / ssh / ssh_host_key
সার্ভারকিবিটস 768
লগইনগ্রেসটাইম 600

কী রিজেনারেশন ইন্টারভাল 3600
পারমিট রুটলগইন হ্যাঁ
Rhosts উপেক্ষা করুন হ্যাঁ
কঠোর মোড হ্যাঁ
X11 ফরোয়ার্ডিং নম্বর

AllowTcpForwarding no
অনুমতি TTY নম্বর
X11 ডিসপ্লেঅফসেট 10
PrintMotd হ্যাঁ
জিবন্ত রাখ হ্যাঁ
SyslogFacility AUTH

লগলেভেল তথ্য
Rhosts প্রমাণীকরণ নং
RhostsRSAA প্রমাণীকরণ নং
RSAA প্রমাণীকরণ হ্যাঁ
পাসওয়ার্ড প্রমাণীকরণ হ্যাঁ
AllowEmptyPasswords no
চেকমেইল নম্বর


'#' দিয়ে শুরু হওয়া যেকোনো লাইন একটি মন্তব্য হিসেবে নেওয়া হয়। চলুন প্রদত্ত কিছু প্যারামিটার অন্বেষণ করা যাক:

1. পোর্ট নির্দেশিকা একটি পোর্ট নম্বর নির্দিষ্ট করে। এই পোর্ট নম্বর যার উপর sshd সংযোগের জন্য শোনে। এই পোর্টের ডিফল্ট মান হল 22 যা মানক। যাইহোক, আমাদের ক্ষেত্রে, আমরা এটি 222 এ পরিবর্তন করেছি।

এছাড়াও, আমরা একাধিক পোর্ট নির্দেশিকা নির্দিষ্ট করতে পারি। এইভাবে, আমরা sshd সংযোগে শোনার জন্য একাধিক পোর্ট ব্যবহার করতে পারি।

2. ListenAddress-এ শোনার জন্য IP ঠিকানা থাকে। ডিফল্ট অ্যাকশন হল সার্ভারের সাথে আবদ্ধ সমস্ত আইপি ঠিকানা শোনা। এছাড়াও মনে রাখবেন যে পোর্ট নির্দেশিকা অবশ্যই ListenAddress নির্দেশিকাকে সফল করতে হবে।

3. ব্যক্তিগত RSA হোস্ট কী ফাইলের সম্পূর্ণ যোগ্য পথ HostKey নির্দেশ দ্বারা নির্দিষ্ট করা হয়েছে। আগের ক্ষেত্রে, পথ হয় /etc/ssh/ssh_host_key .

4. PermitRootLogin নির্দেশিকা sshd এর জন্য রুট লগইন করার অনুমতি দেয় যখন এটি হ্যাঁ সেট করা হয়। sshd অ্যাক্সেস সীমাবদ্ধ করতে hosts.allow এবং hosts.deny ফাইলগুলি ব্যবহার না করা পর্যন্ত এটি no তে সেট করা উচিত।

5. X11ফরওয়ার্ডিং নির্দেশিকা X উইন্ডো সিস্টেম ফরওয়ার্ড করার অনুমতি দেয় যখন হ্যাঁ সেট করা হয়।

6. কোন Syslog সুবিধা যে sshd ব্যবহার করা উচিত SyslogFacility নির্দেশিকা ব্যবহার করে নির্দিষ্ট করা হয়েছে। ডিফল্ট মান যেমন আছে তেমনই রাখুন।

7. Syslog-এর লগিং স্তর LogLevel নির্দেশ ব্যবহার করে নির্দিষ্ট করা হয়েছে।

পরিবর্তন করা sshd বন্দর

ডিফল্টরূপে, sshd অথবা OpenSSH সার্ভার ডেমন TCP প্রোটোকলের পোর্ট 22 ব্যবহার করে। পরীক্ষার পরিবেশে এই পোর্ট নম্বরটিকে অন্য কোনো মান পরিবর্তন করার পরামর্শ দেওয়া হয়। এটি আমাদের নিশ্চিত করে যে সার্ভার সংযোগ সর্বদা উপলব্ধ।

এছাড়াও, এটি ব্যবহার করার আগে একটি নতুন sshd_config ফাইলের কনফিগারেশনের সিনট্যাক্স পরীক্ষা করা একটি ভাল অভ্যাস, এটি যে পোর্টে চলে তা নির্বিশেষে। সিনট্যাক্স পরীক্ষা করতে, আমরা নিম্নলিখিত কমান্ডটি ব্যবহার করতে পারি:

$ sshd -t


এটাও মনে রাখা গুরুত্বপূর্ণ যে শুধুমাত্র রুট ব্যবহারকারী এই ফাইলটি পড়তে এবং লিখতে সক্ষম হওয়া উচিত। এর মানে হল যে যদি একটি sshd_config কনফিগারেশন ফাইল সঠিকভাবে সুরক্ষিত থাকে, পূর্ববর্তী কমান্ডটি চালানোর জন্য রুট অথরিটি প্রয়োজন।

পূর্ববর্তী সিনট্যাক্স যাচাইকরণ কমান্ড চালানোর সময় যদি কোনো আউটপুট উপস্থিত না হয়,  এর অর্থ হল ফাইলটি ঠিক আছে৷

ডিফল্ট কনফিগারেশন ফাইল এবং পোর্ট পরিবর্তন করা হচ্ছে

কিছু ক্ষেত্রে, আমরা একটি নতুন উদাহরণ চালাতে চাই sshd একটি ভিন্ন পোর্টে। এটি হতে পারে কারণ পোর্ট 22 ইতিমধ্যেই ব্যবহার করা হচ্ছে বা উৎপাদন পরিবেশে এই পোর্ট পরিবর্তন করার ক্ষেত্রে কিছু ঝুঁকির ক্ষেত্র থাকতে পারে। এই ধরনের পরিস্থিতিতে, আমরা আমাদের সার্ভারের জন্য একটি বিকল্প কনফিগারেশন ফাইল তৈরি করতে পারি।

আসুন sshd_config_new হিসাবে একটি নতুন sshd_config ফাইল তৈরি করি। এই ফাইলটি কিছু ভিন্ন সার্ভার প্যারামিটারের জন্য ব্যবহার করা হতে পারে। এখন, পোর্ট নম্বর 100-এ নতুন সার্ভার কনফিগারেশন ফাইল হিসাবে বিবেচনা করার জন্য এই ফাইলটিকে নির্দিষ্ট করা যাক:

$ sudo / usr / sbin / sshd -চ / ইত্যাদি / ssh / sshd_config_new -পি 100


sshd ডেমন এখন পোর্ট 100-এ শোনে। আমরা যেকোন পোর্ট ভ্যালু ব্যবহার করতে পারি কিন্তু আগে থেকেই ব্যবহার করা হয় না।

এখন, আমাদের নতুন পোর্ট পছন্দসই কাজ করছে কিনা তা পরীক্ষা করা যাক। এর জন্য, আমাদের একটি ssh ক্লায়েন্ট প্রোগ্রাম ব্যবহার করতে হবে এবং নিম্নলিখিত কমান্ডটি চালাতে হবে:

$ / usr / বিন / ssh -পি 100 < আইপি সার্ভারের >



'-p' বিকল্পটি দূরবর্তী সার্ভারে ব্যবহার করা পোর্ট 100 নির্দিষ্ট করে। যদি আমরা স্থানীয়ভাবে পরীক্ষা করছি, আমরা সার্ভার আইপিকে লোকালহোস্ট আইপি হিসাবে ব্যবহার করতে পারি:

$ / usr / বিন / ssh -পি 100 127.0.0.1

OpenSSH কনফিগারেশনের সমস্যা সমাধান করা হচ্ছে

কখনও কখনও, আমাদের সার্ভার পছন্দসই কাজ করে না। এই ধরনের ক্ষেত্রে, OpenSSH সার্ভার কনফিগারেশনের সমস্যা সমাধানের জন্য আমরা '-d' পতাকা ব্যবহার করতে পারি। '-d' পতাকা ব্যবহার করে, সার্ভার ডিবাগ মোডে প্রবেশ করে এবং শুধুমাত্র একটি একক সংযোগ পরিচালনা করে।

ডিবাগ মোডে উত্পাদিত আউটপুটটি ভার্বোস। ডিবাগিং লেভেল বাড়াতে আমরা আরো '-d' পতাকা ব্যবহার করতে পারি। আসুন নতুন কনফিগারেশন ফাইল ব্যবহার করে আমাদের সার্ভারে ডিবাগ কমান্ডটি চালাই:

$ / usr / sbin / sshd -d -পি 100 -চ / ইত্যাদি / ssh / sshd_config_new


পূর্ববর্তী কমান্ড থেকে আউটপুট syslogd এর AUTH সুবিধা ব্যবহার করার পরিবর্তে stderr এ লগ হয়।

উপসংহার

OpenSSH ডেমন বা sshd হল অনেক প্রশাসনিক পরিকাঠামোর একটি গুরুত্বপূর্ণ অংশ। যেমন, এটি সর্বোত্তম ক্রিয়াকলাপের জন্য এটি পরিচালনা করার জন্য দক্ষতার প্রয়োজন। এই নিবন্ধে, আমরা sshd_config মত OpenSSH সার্ভার কনফিগারেশন ফাইল সম্পর্কে শিখেছি।