لینکس کے لیے Sshd_Config فائل مکمل گائیڈ

Lynks K Ly Sshd Config Fayl Mkml Gayy



SSH یا Secure Shell پروٹوکول کو دور سے مشین میں لاگ ان کرنے اور ریموٹ مشین پر کمانڈ چلانے کے لیے استعمال کیا جاتا ہے۔ SSH پروٹوکول کا استعمال کرتے ہوئے جو ڈیٹا منتقل کیا جاتا ہے اسے خصوصی الگورتھم کے ساتھ انکرپٹ کیا جاتا ہے جو SSH کو Telnet سے زیادہ محفوظ بناتا ہے۔ بنیادی طور پر، OpenSSH ایک ٹول ہے جو اس پروٹوکول کو نافذ کرتا ہے۔

ہم کیا احاطہ کریں گے؟

اس گائیڈ میں، ہم OpenSSH سرور کنفیگریشن فائل کے مختلف پہلوؤں کو تلاش کریں گے۔ آئیے ابھی شروع کرتے ہیں۔







اوپن ایس ایس ایچ کنفیگریشن فائلز

OpenSSH کلائنٹ اور سرور دونوں کے لیے کچھ بنیادی فائلیں ہیں۔ اس میں دو قسم کی کنفیگریشن فائلیں ہیں:



1. کلائنٹ سائیڈ سے متعلق فائلیں: فائلوں میں سے ایک ssh_config ہے۔ یہ ایک سسٹم وائیڈ کنفیگریشن فائل ہے۔ یہ فائل پر واقع ہے۔ /etc/ssh/ssh_config.



دوسری فائل کنفگ ہے ​​جو کہ صارف کے لیے مخصوص کنفیگریشن فائل ہے جو $HOME/.ssh/config پر واقع ہے۔





میزبان پر SSH پروگرام یا تو ان فائلوں سے یا کمانڈ لائن انٹرفیس کے ذریعے ترتیب لیتا ہے۔ پہلے ذکر کردہ فائلوں کے معاملے میں، سسٹم وائیڈ کنفیگریشن فائل، جو کہ ssh_config ہے، کو صارف کے لیے مخصوص 'config' فائل پر ترجیح دی جاتی ہے۔

2. sshd_config: اس کا تعلق سرور سائیڈ سے ہے۔ OpenSSH سرور اس فائل کو شروع ہونے پر پڑھتا ہے۔



کی تلاش sshd کنفیگریشن فائل

sshd config فائل میں بہت سی ہدایات ہیں جنہیں اپنی مرضی کے مطابق بھی بنایا جا سکتا ہے۔ آئیے اس فائل کی ڈیفالٹ ترتیب کو دیکھتے ہیں:

$ کیٹ / وغیرہ / ssh / sshd_config


# یہ sshd سرور سسٹم وائیڈ کنفیگریشن فائل ہے۔ دیکھیں

مزید معلومات کے لیے # sshd_config(5)۔

بندرگاہ 222
سننے کا پتہ 0.0.0.0
سننے کا پتہ ::
HostKey / وغیرہ / ssh / ssh_host_key
سرورکی بٹس 768
لاگ ان گریس ٹائم 600

کلیدی تخلیق نو کا وقفہ 3600
پرمٹ روٹ لاگ ان جی ہاں
Rhosts کو نظر انداز کریں۔ جی ہاں
StrictModes جی ہاں
ایکس 11 فارورڈنگ نمبر

AllowTcpForwarding نمبر
اجازت TTY نمبر
X11DisplayOffset 10
پرنٹ موٹڈ جی ہاں
زندہ رہو جی ہاں
SyslogFacility AUTH

لاگ لیول کی معلومات
RhostsAuthentication no
RhostsRSAA توثیق نمبر
RSAA تصدیق جی ہاں
پاس ورڈ کی توثیق جی ہاں
EmptyPasswords نمبر کی اجازت دیں۔
چیک میل نمبر


کوئی بھی لائن جو '#' سے شروع ہوتی ہے اسے تبصرہ کے طور پر لیا جاتا ہے۔ آئیے کچھ دیئے گئے پیرامیٹرز کو دریافت کریں:

1. پورٹ ڈائریکٹیو ایک پورٹ نمبر کی وضاحت کرتی ہے۔ یہ وہ پورٹ نمبر ہے جس پر sshd کنکشن کے لئے سنتا ہے. اس پورٹ کی ڈیفالٹ ویلیو 22 ہے جو معیاری ہے۔ تاہم، ہمارے معاملے میں، ہم نے اسے 222 میں تبدیل کر دیا۔

اس کے علاوہ، ہم ایک سے زیادہ پورٹ کی ہدایت کی وضاحت کر سکتے ہیں۔ اس طرح، ہم sshd کنکشن پر سننے کے لیے متعدد پورٹس استعمال کر سکتے ہیں۔

2. ListenAddress میں سننے کے لیے IP ایڈریس ہوتا ہے۔ پہلے سے طے شدہ کارروائی ان تمام IP ایڈریس پر سننا ہے جو سرور کے پابند ہیں۔ یہ بھی نوٹ کریں کہ پورٹ ڈائریکٹیو کو ListenAddress ڈائریکٹیو کا کامیاب ہونا چاہیے۔

3. پرائیویٹ RSA ہوسٹ کلید فائل کا مکمل طور پر اہل راستہ HostKey ہدایت کے ذریعے متعین کیا گیا ہے۔ پچھلے معاملے میں، راستہ ہے /etc/ssh/ssh_host_key .

4. PermitRootLogin ہدایت sshd کے لیے روٹ لاگ ان کی اجازت دیتی ہے جب یہ ہاں پر سیٹ ہو جائے۔ اسے no پر سیٹ کیا جانا چاہیے جب تک کہ hosts.allow اور hosts.deny فائلوں کو sshd تک رسائی کو محدود کرنے کے لیے استعمال نہ کیا جائے۔

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 -f / وغیرہ / ssh / sshd_config_new -p 100


sshd ڈیمون اب پورٹ 100 پر سنتا ہے۔ ہم کوئی بھی پورٹ ویلیو استعمال کر سکتے ہیں لیکن وہ نہیں جو پہلے سے استعمال میں ہے۔

اب، آئیے چیک کریں کہ آیا ہماری نئی بندرگاہ حسب خواہش کام کر رہی ہے۔ اس کے لیے ہمیں ssh کلائنٹ پروگرام استعمال کرنا ہوگا اور درج ذیل کمانڈ کو چلانا ہوگا۔

$ / usr / بن / ssh -p 100 < آئی پی سرور کے >



'-p' آپشن پورٹ 100 کو ریموٹ سرور پر استعمال کرنے کی وضاحت کرتا ہے۔ اگر ہم مقامی طور پر جانچ کر رہے ہیں، تو ہم سرور IP کو لوکل ہوسٹ IP بننے کے لیے استعمال کر سکتے ہیں:

$ / usr / بن / ssh -p 100 127.0.0.1

OpenSSH کنفیگریشن کا ازالہ کرنا

بعض اوقات، ہمارا سرور مطلوبہ طور پر کام نہیں کر رہا ہے۔ ایسی صورتوں میں، ہم اوپن ایس ایس ایچ سرور کنفیگریشن کو حل کرنے کے لیے '-d' جھنڈا استعمال کر سکتے ہیں۔ '-d' پرچم کا استعمال کرتے ہوئے، سرور ڈیبگ موڈ میں داخل ہوتا ہے اور صرف ایک کنکشن کو ہینڈل کرتا ہے۔

آؤٹ پٹ جو ڈیبگ موڈ میں تیار ہوتا ہے وہ وربوز ہے۔ ڈیبگنگ لیول کو بڑھانے کے لیے ہم مزید '-d' جھنڈے استعمال کر سکتے ہیں۔ آئیے نئی کنفیگریشن فائل کا استعمال کرتے ہوئے اپنے سرور پر ڈیبگ کمانڈ چلائیں:

$ / usr / sbin / sshd -d -p 100 -f / وغیرہ / ssh / sshd_config_new


پچھلی کمانڈ سے آؤٹ پٹ syslogd کی AUTH سہولت کو استعمال کرنے کے بجائے stderr پر لاگ ان ہوتا ہے۔

نتیجہ

OpenSSH ڈیمون یا sshd بہت سے انتظامیہ کے بنیادی ڈھانچے کا ایک اہم حصہ ہے۔ اس طرح، اسے زیادہ سے زیادہ آپریشن کے لیے اس کا انتظام کرنے کے لیے مہارت کی ضرورت ہوتی ہے۔ اس آرٹیکل میں، ہم نے OpenSSH سرور کنفیگریشن فائل جیسے sshd_config کے بارے میں سیکھا۔