عملی تجاویز، مثالیں اور SSH سرنگیں۔

عملی تجاویز، مثالیں اور SSH سرنگیں۔
عملی مثالیں۔ SSH، جو ایک ریموٹ سسٹم ایڈمنسٹریٹر کے طور پر آپ کی صلاحیتوں کو ایک نئی سطح پر لے جائے گا۔ احکامات اور اشارے نہ صرف استعمال کرنے میں مدد کریں گے۔ SSH، بلکہ نیٹ ورک کو زیادہ قابلیت سے نیویگیٹ کریں۔

چند چالیں جاننا ssh کسی بھی سسٹم ایڈمنسٹریٹر، نیٹ ورک انجینئر یا سیکورٹی ماہر کے لیے مفید ہے۔

عملی SSH مثالیں۔

  1. SSH جرابوں پراکسی
  2. SSH ٹنل (پورٹ فارورڈنگ)
  3. تیسرے میزبان تک SSH سرنگ
  4. ریورس SSH سرنگ
  5. SSH ریورس پراکسی
  6. SSH پر VPN انسٹال کرنا
  7. ایک SSH کلید کاپی کرنا (ssh-copy-id)
  8. ریموٹ کمانڈ پر عمل درآمد (غیر انٹرایکٹو)
  9. Wireshark میں ریموٹ پیکٹ کیپچر اور دیکھنا
  10. مقامی فولڈر کو SSH کے ذریعے ریموٹ سرور پر کاپی کرنا
  11. SSH X11 فارورڈنگ کے ساتھ ریموٹ GUI ایپلی کیشنز
  12. rsync اور SSH کا استعمال کرتے ہوئے ریموٹ فائل کاپی کرنا
  13. ٹور نیٹ ورک پر SSH
  14. SSH سے EC2 مثال
  15. ssh/scp کے ذریعے VIM کا استعمال کرتے ہوئے ٹیکسٹ فائلوں میں ترمیم کرنا
  16. ریموٹ SSH کو SSHFS کے ساتھ مقامی فولڈر کے طور پر ماؤنٹ کریں۔
  17. ControlPath کے ساتھ ملٹی پلیکسنگ SSH
  18. VLC اور SFTP کا استعمال کرتے ہوئے SSH پر ویڈیو سٹریم کریں۔
  19. دو عنصر کی توثیق
  20. SSH اور -J کے ساتھ میزبان کودنا
  21. iptables کا استعمال کرتے ہوئے SSH بروٹ فورس کی کوششوں کو مسدود کرنا
  22. پورٹ فارورڈنگ کو تبدیل کرنے کے لیے SSH Escape

پہلے بنیادی باتیں

SSH کمانڈ لائن کو پارس کرنا

درج ذیل مثال میں عام پیرامیٹرز کا استعمال کیا جاتا ہے جن کا سامنا ریموٹ سرور سے منسلک ہوتے وقت ہوتا ہے۔ SSH.

localhost:~$ ssh -v -p 22 -C neo@remoteserver

  • -v: توثیق کے مسائل کا تجزیہ کرتے وقت آؤٹ پٹ کو ڈیبگ کرنا خاص طور پر مفید ہے۔ اضافی معلومات کو ظاہر کرنے کے لیے متعدد بار استعمال کیا جا سکتا ہے۔
  • - p 22: کنکشن پورٹ ریموٹ SSH سرور پر۔ 22 کی وضاحت کرنے کی ضرورت نہیں ہے، کیونکہ یہ ڈیفالٹ ویلیو ہے، لیکن اگر پروٹوکول کسی اور پورٹ پر ہے، تو ہم پیرامیٹر کا استعمال کرتے ہوئے اس کی وضاحت کرتے ہیں۔ -p. فائل میں سننے کی بندرگاہ کی وضاحت کی گئی ہے۔ sshd_config فارمیٹ میں Port 2222.
  • -C: کنکشن کے لیے کمپریشن۔ اگر آپ کا کنکشن سست ہے یا آپ بہت زیادہ ٹیکسٹ دیکھتے ہیں، تو یہ کنکشن کو تیز کر سکتا ہے۔
  • neo@: @ علامت سے پہلے والی لائن ریموٹ سرور پر تصدیق کے لیے صارف نام کی نشاندہی کرتی ہے۔ اگر آپ اس کی وضاحت نہیں کرتے ہیں، تو یہ اس اکاؤنٹ کے صارف نام پر ڈیفالٹ ہو جائے گا جس میں آپ فی الحال لاگ ان ہیں (~$whoami)۔ پیرامیٹر کا استعمال کرتے ہوئے صارف کی بھی وضاحت کی جا سکتی ہے۔ -l.
  • remoteserver: رابطہ کرنے کے لیے میزبان کا نام ssh، یہ مکمل طور پر اہل ڈومین نام، ایک IP پتہ، یا مقامی میزبان فائل میں کوئی بھی میزبان ہو سکتا ہے۔ کسی ایسے میزبان سے جڑنے کے لیے جو IPv4 اور IPv6 دونوں کو سپورٹ کرتا ہو، آپ پیرامیٹر کو کمانڈ لائن میں شامل کر سکتے ہیں۔ -4 یا -6 مناسب حل کے لئے.

مندرجہ بالا تمام پیرامیٹرز اختیاری ہیں سوائے remoteserver.

کنفیگریشن فائل کا استعمال

اگرچہ بہت سے لوگ فائل سے واقف ہیں۔ sshd_config، کمانڈ کے لئے ایک کلائنٹ کنفیگریشن فائل بھی ہے۔ ssh. پہلے سے طے شدہ قیمت ~/.ssh/config، لیکن اسے کسی اختیار کے پیرامیٹر کے طور پر بیان کیا جاسکتا ہے۔ -F.

Host *
     Port 2222

Host remoteserver
     HostName remoteserver.thematrix.io
     User neo
     Port 2112
     IdentityFile /home/test/.ssh/remoteserver.private_key

اوپر دی گئی مثال ssh کنفیگریشن فائل میں دو میزبان اندراجات ہیں۔ پہلے والے کا مطلب ہے تمام میزبان، سبھی پورٹ 2222 کنفیگریشن پیرامیٹر استعمال کرتے ہیں۔ دوسرا کہتا ہے کہ میزبان کے لیے ریموٹ سرور ایک مختلف صارف نام، پورٹ، FQDN اور IdentityFile استعمال کیا جانا چاہیے۔

ایک کنفیگریشن فائل مخصوص میزبانوں سے منسلک ہونے پر ایڈوانس کنفیگریشن کو خود بخود لاگو ہونے کی اجازت دے کر ٹائپنگ کا کافی وقت بچا سکتی ہے۔

SCP کا استعمال کرتے ہوئے SSH پر فائلوں کو کاپی کرنا

SSH کلائنٹ فائلوں کو کاپی کرنے کے لیے دو دوسرے بہت ہی آسان ٹولز کے ساتھ آتا ہے۔ خفیہ کردہ ssh کنکشن. scp اور sftp کمانڈز کے معیاری استعمال کی مثال کے لیے ذیل میں دیکھیں۔ نوٹ کریں کہ بہت سے ssh اختیارات ان کمانڈز پر بھی لاگو ہوتے ہیں۔

localhost:~$ scp mypic.png neo@remoteserver:/media/data/mypic_2.png

اس مثال میں فائل mypic.png میں کاپی ریموٹ سرور فولڈر میں /میڈیا/ڈیٹا اور نام تبدیل کر دیا mypic_2.png.

پورٹ پیرامیٹر میں فرق کے بارے میں مت بھولنا. یہ وہ جگہ ہے جہاں بہت سے لوگ لانچ کرتے وقت پکڑے جاتے ہیں۔ scp کمانڈ لائن سے. یہاں پورٹ پیرامیٹر ہے۔ -Pاور نہیں -p، بالکل اسی طرح جیسے ایک ssh کلائنٹ میں! تم بھول جاؤ گے، لیکن فکر نہ کرو، سب بھول جاتے ہیں۔

ان لوگوں کے لیے جو کنسول سے واقف ہیں۔ ftp، بہت سے کمانڈز ایک جیسے ہیں۔ sftp. آپ کر سکتے ہیں دھکا, ڈال и lsجیسا کہ دل چاہتا ہے.

sftp neo@remoteserver

عملی مثالیں۔

ان میں سے بہت سی مثالوں میں، نتائج مختلف طریقوں سے حاصل کیے جا سکتے ہیں۔ جیسا کہ ہم سب میں نصابی کتابیں اور مثالیں، عملی مثالوں کو ترجیح دی جاتی ہے جو بس اپنا کام کرتی ہیں۔

1. SSH جرابوں پراکسی

SSH پراکسی فیچر ایک اچھی وجہ سے نمبر 1 ہے۔ یہ بہت سے لوگوں کے احساس سے زیادہ طاقتور ہے اور آپ کو کسی بھی ایسے سسٹم تک رسائی فراہم کرتا ہے جس تک ریموٹ سرور کو رسائی حاصل ہے، عملی طور پر کسی بھی ایپلیکیشن کا استعمال کرتے ہوئے۔ ایک ssh کلائنٹ ایک سادہ کمانڈ کے ساتھ SOCKS پراکسی کے ذریعے ٹریفک کو سرنگ کر سکتا ہے۔ یہ سمجھنا ضروری ہے کہ ریموٹ سسٹمز پر ٹریفک ریموٹ سرور سے آئے گی، اس کی نشاندہی ویب سرور لاگز میں کی جائے گی۔

localhost:~$ ssh -D 8888 user@remoteserver

localhost:~$ netstat -pan | grep 8888
tcp        0      0 127.0.0.1:8888       0.0.0.0:*               LISTEN      23880/ssh

یہاں ہم TCP پورٹ 8888 پر ایک جراب پراکسی چلاتے ہیں، دوسری کمانڈ چیک کرتی ہے کہ پورٹ سننے کے موڈ میں فعال ہے۔ 127.0.0.1 اشارہ کرتا ہے کہ سروس صرف لوکل ہوسٹ پر چلتی ہے۔ ہم ایتھرنیٹ یا وائی فائی سمیت تمام انٹرفیس پر سننے کے لیے قدرے مختلف کمانڈ استعمال کر سکتے ہیں، یہ ہمارے نیٹ ورک پر موجود دیگر ایپلیکیشنز (براؤزر وغیرہ) کو ssh ساکس پراکسی کے ذریعے پراکسی سروس سے منسلک ہونے کی اجازت دے گا۔

localhost:~$ ssh -D 0.0.0.0:8888 user@remoteserver

اب ہم جرابوں پراکسی سے جڑنے کے لیے براؤزر کو کنفیگر کر سکتے ہیں۔ فائر فاکس میں، منتخب کریں۔ ترتیبات | بنیادی | نیٹ ورک کی ترتیبات. جڑنے کے لیے آئی پی ایڈریس اور پورٹ کی وضاحت کریں۔

عملی تجاویز، مثالیں اور SSH سرنگیں۔

براہ کرم فارم کے نیچے دیے گئے آپشن کو نوٹ کریں تاکہ آپ کے براؤزر کی DNS درخواستیں SOCKS پراکسی کے ذریعے بھی جائیں۔ اگر آپ اپنے مقامی نیٹ ورک پر ویب ٹریفک کو خفیہ کرنے کے لیے پراکسی سرور استعمال کر رہے ہیں، تو آپ شاید اس اختیار کو منتخب کرنا چاہیں گے تاکہ DNS کی درخواستوں کو SSH کنکشن کے ذریعے سرنگ کیا جائے۔

کروم میں جرابوں کی پراکسی کو چالو کرنا

مخصوص کمانڈ لائن پیرامیٹرز کے ساتھ کروم کو لانچ کرنے سے جرابوں کی پراکسی کے ساتھ ساتھ براؤزر سے ڈی این ایس کی درخواستوں کو سرنگ کرنے میں مدد ملے گی۔ بھروسہ کریں لیکن چیک کریں۔ استعمال کریں۔ tcpdomp یہ چیک کرنے کے لیے کہ DNS استفسارات مزید دکھائی نہیں دے رہے ہیں۔

localhost:~$ google-chrome --proxy-server="socks5://192.168.1.10:8888"

پراکسی کے ساتھ دیگر ایپلیکیشنز کا استعمال کرنا

ذہن میں رکھیں کہ بہت سی دوسری ایپلی کیشنز بھی جرابوں کی پراکسی استعمال کر سکتی ہیں۔ ویب براؤزر ان سب میں سب سے زیادہ مقبول ہے۔ پراکسی سرور کو فعال کرنے کے لیے کچھ ایپلیکیشنز کے پاس کنفیگریشن کے اختیارات ہوتے ہیں۔ دوسروں کو مددگار پروگرام کے ساتھ تھوڑی مدد کی ضرورت ہے۔ مثال کے طور پر، پراکسی چینز آپ کو جرابوں کی پراکسی Microsoft RDP وغیرہ کے ذریعے چلانے کی اجازت دیتا ہے۔

localhost:~$ proxychains rdesktop $RemoteWindowsServer

جرابوں کے پراکسی کنفیگریشن کے پیرامیٹرز پراکسی چینز کنفیگریشن فائل میں سیٹ کیے گئے ہیں۔

اشارہ: اگر آپ ونڈوز پر لینکس سے ریموٹ ڈیسک ٹاپ استعمال کرتے ہیں؟ کلائنٹ کو آزمائیں۔ فری آر ڈی پی. یہ اس سے زیادہ جدید نفاذ ہے۔ rdesktop، بہت ہموار تجربے کے ساتھ۔

جرابوں پراکسی کے ذریعے SSH استعمال کرنے کا اختیار

آپ ایک کیفے یا ہوٹل میں بیٹھے ہیں - اور ناقابل اعتماد وائی فائی استعمال کرنے پر مجبور ہیں۔ ہم ایک لیپ ٹاپ سے مقامی طور پر ایک ssh پراکسی لانچ کرتے ہیں اور مقامی Rasberry Pi پر گھریلو نیٹ ورک میں ایک ssh سرنگ انسٹال کرتے ہیں۔ جرابوں پراکسی کے لیے تشکیل کردہ براؤزر یا دیگر ایپلیکیشنز کا استعمال کرتے ہوئے، ہم اپنے ہوم نیٹ ورک پر کسی بھی نیٹ ورک کی خدمات تک رسائی حاصل کر سکتے ہیں یا اپنے گھر کے کنکشن کے ذریعے انٹرنیٹ تک رسائی حاصل کر سکتے ہیں۔ آپ کے لیپ ٹاپ اور آپ کے ہوم سرور کے درمیان ہر چیز (آپ کے گھر تک وائی فائی اور انٹرنیٹ کے ذریعے) ایک SSH سرنگ میں خفیہ ہے۔

2. SSH ٹنل (پورٹ فارورڈنگ)

اپنی آسان ترین شکل میں، ایک SSH سرنگ آپ کے مقامی سسٹم پر ایک بندرگاہ کھولتی ہے جو سرنگ کے دوسرے سرے پر موجود کسی دوسری بندرگاہ سے جڑ جاتی ہے۔

localhost:~$ ssh  -L 9999:127.0.0.1:80 user@remoteserver

آئیے پیرامیٹر کو دیکھیں -L. اسے سننے کے مقامی پہلو کے طور پر سوچا جا سکتا ہے۔ لہذا اوپر دی گئی مثال میں، پورٹ 9999 لوکل ہوسٹ سائیڈ پر سن رہا ہے اور پورٹ 80 کے ذریعے ریموٹ سرور پر بھیج دیا گیا ہے۔ براہ کرم نوٹ کریں کہ 127.0.0.1 سے مراد ریموٹ سرور پر لوکل ہوسٹ ہے!

آئیے قدم بڑھائیں۔ مندرجہ ذیل مثال مقامی نیٹ ورک پر دوسرے میزبانوں کے ساتھ سننے والی بندرگاہوں سے رابطہ کرتی ہے۔

localhost:~$ ssh  -L 0.0.0.0:9999:127.0.0.1:80 user@remoteserver

ان مثالوں میں ہم ویب سرور پر ایک پورٹ سے منسلک ہو رہے ہیں، لیکن یہ پراکسی سرور یا کوئی دوسری TCP سروس ہو سکتی ہے۔

3. فریق ثالث کے میزبان کو SSH سرنگ

ہم ریموٹ سرور سے کسی سرنگ کو تیسرے سسٹم پر چلنے والی دوسری سروس سے جوڑنے کے لیے انہی پیرامیٹرز کا استعمال کر سکتے ہیں۔

localhost:~$ ssh  -L 0.0.0.0:9999:10.10.10.10:80 user@remoteserver

اس مثال میں، ہم ایک سرنگ کو ریموٹ سرور سے 10.10.10.10 پر چلنے والے ویب سرور پر بھیج رہے ہیں۔ ریموٹ سرور سے 10.10.10.10 تک ٹریفک اب SSH سرنگ میں نہیں ہے۔. 10.10.10.10 کو ویب سرور ریموٹ سرور کو ویب درخواستوں کا ذریعہ سمجھے گا۔

4. ریورس SSH سرنگ

یہاں ہم ریموٹ سرور پر ایک سننے والی بندرگاہ کو ترتیب دیں گے جو ہمارے لوکل ہوسٹ (یا دوسرے سسٹم) پر مقامی پورٹ سے دوبارہ جڑ جائے گا۔

localhost:~$ ssh -v -R 0.0.0.0:1999:127.0.0.1:902 192.168.1.100 user@remoteserver

یہ SSH سیشن ہمارے مقامی کلائنٹ پر پورٹ 1999 سے ریموٹ سرور پر پورٹ 902 تک ایک کنکشن قائم کرتا ہے۔

5. SSH ریورس پراکسی

اس صورت میں، ہم اپنے ssh کنکشن پر ایک جراب پراکسی ترتیب دے رہے ہیں، لیکن پراکسی سرور کے ریموٹ اینڈ پر سن رہی ہے۔ اس ریموٹ پراکسی سے رابطے اب ٹنل سے ہمارے لوکل ہوسٹ سے ٹریفک کے طور پر ظاہر ہوتے ہیں۔

localhost:~$ ssh -v -R 0.0.0.0:1999 192.168.1.100 user@remoteserver

دور دراز SSH سرنگوں کے ساتھ مسائل کو حل کرنا

اگر آپ کو ریموٹ SSH اختیارات کے کام کرنے میں دشواری ہے، تو چیک کریں۔ netstat، سننے والی بندرگاہ کن دوسرے انٹرفیس سے منسلک ہے۔ اگرچہ ہم نے مثالوں میں 0.0.0.0 کا اشارہ کیا، لیکن اگر قدر گیٹ وے پورٹس в sshd_config تیار نہیں، پھر سننے والا صرف لوکل ہوسٹ (127.0.0.1) کا پابند ہوگا۔

حفاظتی انتباہ

براہ کرم نوٹ کریں کہ سرنگوں اور جرابوں کی پراکسی کھولنے سے، نیٹ ورک کے اندرونی وسائل ناقابل اعتماد نیٹ ورکس (جیسے انٹرنیٹ!) کے لیے قابل رسائی ہو سکتے ہیں۔ یہ ایک سنگین سیکورٹی رسک ہو سکتا ہے، اس لیے یقینی بنائیں کہ آپ سمجھتے ہیں کہ سننے والا کیا ہے اور ان کی رسائی کیا ہے۔

6. SSH کے ذریعے VPN انسٹال کرنا

حملہ کرنے کے طریقوں (پینٹیسٹرز وغیرہ) کے ماہرین کے درمیان ایک عام اصطلاح ہے "نیٹ ورک میں ایک فلکرم۔" ایک بار جب ایک سسٹم پر کنکشن قائم ہو جاتا ہے، تو وہ سسٹم نیٹ ورک تک مزید رسائی کا گیٹ وے بن جاتا ہے۔ ایک فلکرم جو آپ کو وسعت میں منتقل کرنے کی اجازت دیتا ہے۔

اس طرح کے قدم جمانے کے لیے ہم SSH پراکسی اور استعمال کر سکتے ہیں۔ پراکسی چینزتاہم کچھ حدود ہیں۔ مثال کے طور پر، ساکٹ کے ساتھ براہ راست کام کرنا ممکن نہیں ہوگا، اس لیے ہم نیٹ ورک کے اندر بندرگاہوں کو اسکین کرنے کے قابل نہیں ہوں گے۔ Nmap SYN.

اس زیادہ جدید VPN آپشن کا استعمال کرتے ہوئے، کنکشن کم ہو جاتا ہے۔ 3 کی سطح. اس کے بعد ہم معیاری نیٹ ورک روٹنگ کا استعمال کرتے ہوئے ٹنل کے ذریعے ٹریفک کو آسانی سے روٹ کر سکتے ہیں۔

طریقہ استعمال کرتا ہے۔ ssh, iptables, tun interfaces اور روٹنگ.

پہلے آپ کو ان پیرامیٹرز کو ترتیب دینے کی ضرورت ہے۔ sshd_config. چونکہ ہم ریموٹ اور کلائنٹ سسٹم دونوں کے انٹرفیس میں تبدیلیاں کر رہے ہیں، ہم دونوں طرف جڑوں کے حقوق کی ضرورت ہے۔.

PermitRootLogin yes
PermitTunnel yes

پھر ہم پیرامیٹر کا استعمال کرتے ہوئے ایک ssh کنکشن قائم کریں گے جو ٹون ڈیوائسز کی شروعات کی درخواست کرتا ہے۔

localhost:~# ssh -v -w any root@remoteserver

انٹرفیس دکھاتے وقت ہمارے پاس اب ایک ٹون ڈیوائس ہونا چاہئے (# ip a)۔ اگلا مرحلہ سرنگ انٹرفیس میں IP پتے شامل کرے گا۔

SSH کلائنٹ کی طرف:

localhost:~# ip addr add 10.10.10.2/32 peer 10.10.10.10 dev tun0
localhost:~# ip tun0 up

SSH سرور سائیڈ:

remoteserver:~# ip addr add 10.10.10.10/32 peer 10.10.10.2 dev tun0
remoteserver:~# ip tun0 up

اب ہمارے پاس دوسرے میزبان کا سیدھا راستہ ہے (route -n и ping 10.10.10.10).

آپ کسی بھی سب نیٹ کو دوسری طرف کے میزبان کے ذریعے روٹ کر سکتے ہیں۔

localhost:~# route add -net 10.10.10.0 netmask 255.255.255.0 dev tun0

دور دراز کی طرف آپ کو فعال کرنا ہوگا۔ ip_forward и iptables.

remoteserver:~# echo 1 > /proc/sys/net/ipv4/ip_forward
remoteserver:~# iptables -t nat -A POSTROUTING -s 10.10.10.2 -o enp7s0 -j MASQUERADE

بوم! نیٹ ورک پرت 3 پر SSH سرنگ پر VPN. اب یہ ایک فتح ہے۔

اگر کوئی پریشانی ہو تو استعمال کریں۔ tcpdomp и pingوجہ کا تعین کرنے کے لئے. چونکہ ہم پرت 3 پر کھیل رہے ہیں، ہمارے icmp پیکٹ اس سرنگ سے گزریں گے۔

7. SSH کلید کاپی کریں (ssh-copy-id)

ایسا کرنے کے کئی طریقے ہیں، لیکن یہ کمانڈ فائلوں کو دستی طور پر کاپی نہ کرکے وقت بچاتا ہے۔ یہ آسانی سے آپ کے سسٹم سے ~/.ssh/id_rsa.pub (یا ڈیفالٹ کلید) کو کاپی کرتا ہے ~/.ssh/authorized_keys ریموٹ سرور پر۔

localhost:~$ ssh-copy-id user@remoteserver

8. ریموٹ کمانڈ پر عمل درآمد (غیر انٹرایکٹو)

ٹیم ssh ایک عام، صارف دوست انٹرفیس کے لیے دوسرے کمانڈز سے منسلک کیا جا سکتا ہے۔ صرف وہ کمانڈ شامل کریں جسے آپ ریموٹ ہوسٹ پر کوٹس میں آخری پیرامیٹر کے طور پر چلانا چاہتے ہیں۔

localhost:~$ ssh remoteserver "cat /var/log/nginx/access.log" | grep badstuff.php

اس مثال میں grep ssh چینل کے ذریعے لاگ ڈاؤن لوڈ ہونے کے بعد مقامی نظام پر عمل میں لایا جاتا ہے۔ اگر فائل بڑی ہے تو اسے چلانا زیادہ آسان ہے۔ grep ریموٹ سائیڈ پر صرف دونوں کمانڈز کو ڈبل کوٹس میں بند کر کے۔

ایک اور مثال کے طور پر ایک ہی کام انجام دیتا ہے ssh-copy-id مثال 7 سے

localhost:~$ cat ~/.ssh/id_rsa.pub | ssh remoteserver 'cat >> .ssh/authorized_keys'

9. وائر شارک میں ریموٹ پیکٹ کیپچر اور دیکھنا

میں نے اپنا ایک لے لیا۔ tcpdump مثالیں. اسے دور سے پیکٹ کیپچر کرنے کے لیے استعمال کریں اور نتائج کو براہ راست مقامی Wireshark GUI میں ڈسپلے کریں۔

:~$ ssh root@remoteserver 'tcpdump -c 1000 -nn -w - not port 22' | wireshark -k -i -

10. SSH کے ذریعے ایک مقامی فولڈر کو ریموٹ سرور پر کاپی کرنا

ایک اچھی چال جو استعمال کرتے ہوئے فولڈر کو کمپریس کرتی ہے۔ bzip2 (یہ کمانڈ میں -j آپشن ہے۔ tar)، اور پھر سلسلہ بازیافت کرتا ہے۔ bzip2 دوسری طرف، ریموٹ سرور پر ایک ڈپلیکیٹ فولڈر بنانا۔

localhost:~$ tar -cvj /datafolder | ssh remoteserver "tar -xj -C /datafolder"

11. SSH X11 فارورڈنگ کے ساتھ ریموٹ GUI ایپلی کیشنز

اگر X کلائنٹ اور ریموٹ سرور پر انسٹال ہے، تو آپ اپنے مقامی ڈیسک ٹاپ پر ونڈو کے ساتھ GUI کمانڈ کو دور سے چلا سکتے ہیں۔ یہ خصوصیت کافی عرصے سے موجود ہے، لیکن اب بھی بہت مفید ہے۔ ایک ریموٹ ویب براؤزر یا یہاں تک کہ VMWawre ورک سٹیشن کنسول لانچ کریں جیسا کہ میں اس مثال میں کرتا ہوں۔

localhost:~$ ssh -X remoteserver vmware

مطلوبہ تار X11Forwarding yes فائل میں sshd_config.

12. rsync اور SSH کا استعمال کرتے ہوئے ریموٹ فائل کاپی کرنا

rsync بہت زیادہ آسان scp، اگر آپ کو ڈائرکٹری، فائلوں کی ایک بڑی تعداد، یا بہت بڑی فائلوں کے متواتر بیک اپ کی ضرورت ہے۔ منتقلی کی ناکامی سے بازیافت کرنے اور صرف تبدیل شدہ فائلوں کو کاپی کرنے کا ایک فنکشن ہے، جس سے ٹریفک اور وقت کی بچت ہوتی ہے۔

یہ مثال کمپریشن کا استعمال کرتی ہے۔ gzip (-z) اور آرکائیونگ موڈ (-a)، جو تکراری کاپی کو قابل بناتا ہے۔

:~$ rsync -az /home/testuser/data remoteserver:backup/

13. Tor نیٹ ورک پر SSH

گمنام ٹور نیٹ ورک کمانڈ کا استعمال کرتے ہوئے SSH ٹریفک کو سرنگ کر سکتا ہے۔ torsocks. درج ذیل کمانڈ ssh پراکسی کو Tor کے ذریعے منتقل کرے گی۔

localhost:~$ torsocks ssh myuntracableuser@remoteserver

ٹورساک پراکسی کے لیے لوکل ہوسٹ پر پورٹ 9050 استعمال کرے گا۔ ہمیشہ کی طرح، ٹور استعمال کرتے وقت آپ کو سنجیدگی سے چیک کرنے کی ضرورت ہے کہ کون سی ٹریفک سرنگ کی جا رہی ہے اور دیگر آپریشنل سیکیورٹی (اوپسیک) مسائل۔ آپ کے DNS سوالات کہاں جاتے ہیں؟

14. SSH سے EC2 مثال

EC2 مثال سے جڑنے کے لیے، آپ کو ایک نجی کلید کی ضرورت ہے۔ اسے Amazon EC2 کنٹرول پینل سے (.pem ایکسٹینشن) ڈاؤن لوڈ کریں اور اجازتیں تبدیل کریں (chmod 400 my-ec2-ssh-key.pem)۔ چابی کو کسی محفوظ جگہ پر رکھیں یا اسے اپنے فولڈر میں رکھیں ~/.ssh/.

localhost:~$ ssh -i ~/.ssh/my-ec2-key.pem ubuntu@my-ec2-public

پیرامیٹر -i صرف ssh کلائنٹ کو یہ کلید استعمال کرنے کو کہتا ہے۔ فائل ~/.ssh/config ec2 میزبان سے منسلک ہونے پر کلیدی استعمال کو خودکار طور پر ترتیب دینے کے لیے مثالی ہے۔

Host my-ec2-public
   Hostname ec2???.compute-1.amazonaws.com
   User ubuntu
   IdentityFile ~/.ssh/my-ec2-key.pem

15. ssh/scp کے ذریعے VIM کا استعمال کرتے ہوئے ٹیکسٹ فائلوں میں ترمیم کرنا

تمام محبت کرنے والوں کے لیے vim اس ٹوٹکے سے کچھ وقت بچ جائے گا۔ کا استعمال کرتے ہوئے vim فائلوں کو ایک کمانڈ کے ساتھ scp کے ذریعے ایڈٹ کیا جاتا ہے۔ یہ طریقہ آسانی سے فائل کو مقامی طور پر بناتا ہے۔ /tmpاور پھر جب ہم نے اسے بچا لیا تو اسے واپس کاپی کرتا ہے۔ vim.

localhost:~$ vim scp://user@remoteserver//etc/hosts

نوٹ: فارمیٹ معمول سے تھوڑا مختلف ہے۔ scp. میزبان کے بعد ہمارے پاس ڈبل ہے۔ //. یہ ایک مطلق راستہ حوالہ ہے۔ ایک سلیش آپ کے ہوم فولڈر سے متعلق راستے کی نشاندہی کرے گا۔ users.

**warning** (netrw) cannot determine method (format: protocol://[user@]hostname[:port]/[path])

اگر آپ کو یہ ایرر نظر آتا ہے تو کمانڈ فارمیٹ کو دو بار چیک کریں۔ اس کا مطلب عام طور پر نحوی غلطی ہے۔

16. ریموٹ SSH کو SSHFS کے ساتھ مقامی فولڈر کے طور پر نصب کرنا

کے ذریعے sshfs - فائل سسٹم کلائنٹ ssh - ہم ایک انکرپٹڈ سیشن میں تمام فائلوں کے تعاملات کے ساتھ ایک مقامی ڈائریکٹری کو دور دراز کے مقام سے جوڑ سکتے ہیں۔ ssh.

localhost:~$ apt install sshfs

Ubuntu اور Debian پر پیکیج انسٹال کریں۔ sshfs، اور پھر صرف دور دراز مقام کو ہمارے سسٹم میں ماؤنٹ کریں۔

localhost:~$ sshfs user@remoteserver:/media/data ~/data/

17. کنٹرول پاتھ کے ساتھ ایس ایس ایچ ملٹی پلیکسنگ

پہلے سے طے شدہ طور پر، اگر استعمال کرنے والے ریموٹ سرور سے کوئی موجودہ کنکشن موجود ہے۔ ssh دوسرا کنکشن کا استعمال کرتے ہوئے ssh یا scp اضافی تصدیق کے ساتھ ایک نیا سیشن قائم کرتا ہے۔ آپشن ControlPath موجودہ سیشن کو تمام بعد کے کنکشنز کے لیے استعمال کرنے کی اجازت دیتا ہے۔ یہ عمل کو نمایاں طور پر تیز کرے گا: اثر مقامی نیٹ ورک پر بھی نمایاں ہوتا ہے، اور دور دراز کے وسائل سے جڑتے وقت بھی۔

Host remoteserver
        HostName remoteserver.example.org
        ControlMaster auto
        ControlPath ~/.ssh/control/%r@%h:%p
        ControlPersist 10m

ControlPath نئے کنکشنز کی جانچ کرنے کے لیے ساکٹ کی وضاحت کرتا ہے کہ آیا کوئی فعال سیشن موجود ہے۔ ssh. آخری آپشن کا مطلب ہے کہ آپ کنسول سے باہر نکلنے کے بعد بھی، موجودہ سیشن 10 منٹ تک کھلا رہے گا، لہذا اس دوران آپ موجودہ ساکٹ سے دوبارہ رابطہ کر سکتے ہیں۔ مزید معلومات کے لیے مدد دیکھیں۔ ssh_config man.

18. VLC اور SFTP کا استعمال کرتے ہوئے SSH پر ویڈیو سٹریم کریں۔

یہاں تک کہ طویل عرصے سے استعمال کرنے والے ssh и vlc جب آپ کو واقعی نیٹ ورک پر ویڈیو دیکھنے کی ضرورت ہوتی ہے تو (ویڈیو لین کلائنٹ) اس آسان آپشن سے ہمیشہ واقف نہیں ہوتے ہیں۔ ترتیبات میں فائل | نیٹ ورک سٹریم کھولیں۔ پروگرامز vlc آپ مقام کو بطور درج کر سکتے ہیں۔ sftp://. اگر پاس ورڈ کی ضرورت ہو تو ایک اشارہ ظاہر ہوگا۔

sftp://remoteserver//media/uploads/myvideo.mkv

19. دو عنصر کی توثیق

آپ کے بینک اکاؤنٹ یا گوگل اکاؤنٹ کے طور پر وہی دو فیکٹر تصدیق SSH سروس پر لاگو ہوتی ہے۔

ظاہر کی، ssh ابتدائی طور پر ایک دو عنصر کی توثیق کا فنکشن ہوتا ہے، جس کا مطلب ہے پاس ورڈ اور ایک SSH کلید۔ ہارڈ ویئر ٹوکن یا Google Authenticator ایپ کا فائدہ یہ ہے کہ یہ عام طور پر ایک مختلف جسمانی آلہ ہوتا ہے۔

ہماری 8 منٹ کی گائیڈ دیکھیں Google Authenticator اور SSH کا استعمال کرتے ہوئے.

20. ssh اور -J کے ساتھ میزبان کودنا

اگر نیٹ ورک سیگمنٹیشن کا مطلب ہے کہ آپ کو حتمی منزل کے نیٹ ورک تک پہنچنے کے لیے متعدد ssh میزبانوں سے گزرنا پڑتا ہے، -J شارٹ کٹ آپ کا وقت بچائے گا۔

localhost:~$ ssh -J host1,host2,host3 [email protected]

یہاں سمجھنے کی اہم بات یہ ہے کہ یہ حکم کی طرح نہیں ہے۔ ssh host1پھر user@host1:~$ ssh host2 وغیرہ. لہذا مندرجہ بالا مثال میں، ہمارے لوکل ہوسٹ کو host4 سے مستند کیا گیا ہے۔ یعنی ہماری لوکل ہوسٹ کیز استعمال ہوتی ہیں، اور لوکل ہوسٹ سے ہوسٹ 4 تک کا سیشن مکمل طور پر انکرپٹ ہوتا ہے۔

میں ایسے امکان کے لیے ssh_config کنفیگریشن آپشن کی وضاحت کریں۔ پراکسی جمپ. اگر آپ کو باقاعدگی سے کئی میزبانوں سے گزرنا پڑتا ہے، تو کنفیگریشن کے ذریعے آٹومیشن سے کافی وقت بچ جائے گا۔

21. iptables کا استعمال کرتے ہوئے SSH بروٹ فورس کی کوششوں کو روکیں۔

کوئی بھی جس نے SSH سروس کا انتظام کیا ہے اور لاگز کو دیکھا ہے وہ ہر دن کے ہر گھنٹے میں ہونے والی وحشیانہ طاقت کی کوششوں کی تعداد کے بارے میں جانتا ہے۔ نوشتہ جات میں شور کو کم کرنے کا ایک تیز طریقہ یہ ہے کہ SSH کو غیر معیاری پورٹ پر منتقل کیا جائے۔ فائل میں تبدیلیاں کریں۔ sshd_config کنفیگریشن پیرامیٹر کے ذریعے پورٹ##.

کے ساتھ iptables آپ کسی خاص حد تک پہنچنے پر بندرگاہ سے جڑنے کی کوششوں کو بھی آسانی سے روک سکتے ہیں۔ ایسا کرنے کا ایک آسان طریقہ استعمال کرنا ہے۔ او ایس ایس سیکیونکہ یہ نہ صرف SSH کو روکتا ہے، بلکہ دوسرے میزبان نام پر مبنی دخل اندازی کا پتہ لگانے (HIDS) اقدامات کا ایک گروپ کرتا ہے۔

22. پورٹ فارورڈنگ کو تبدیل کرنے کے لیے SSH Escape

اور ہماری آخری مثال ssh موجودہ سیشن میں فلائی پر پورٹ فارورڈنگ کو تبدیل کرنے کے لیے ڈیزائن کیا گیا ہے۔ ssh. اس منظر نامے کا تصور کریں۔ آپ نیٹ ورک میں گہرے ہیں؛ ہوسکتا ہے کہ نصف درجن سے زیادہ میزبانوں کو ہاپ کیا جائے اور ورک سٹیشن پر ایک مقامی پورٹ کی ضرورت ہو جو کہ ونڈوز 2003 کے پرانے سسٹم کے مائیکروسافٹ ایس ایم بی کو بھیجی جائے (کسی کو ms08-67 یاد ہے؟)

کلک کرنا enterکنسول میں داخل ہونے کی کوشش کریں۔ ~C. یہ ایک سیشن کنٹرول ترتیب ہے جو موجودہ کنکشن میں تبدیلیاں کرنے کی اجازت دیتا ہے۔

localhost:~$ ~C
ssh> -h
Commands:
      -L[bind_address:]port:host:hostport    Request local forward
      -R[bind_address:]port:host:hostport    Request remote forward
      -D[bind_address:]port                  Request dynamic forward
      -KL[bind_address:]port                 Cancel local forward
      -KR[bind_address:]port                 Cancel remote forward
      -KD[bind_address:]port                 Cancel dynamic forward
ssh> -L 1445:remote-win2k3:445
Forwarding port.

یہاں آپ دیکھ سکتے ہیں کہ ہم نے اپنی مقامی پورٹ 1445 کو ونڈوز 2003 کے میزبان کو بھیج دیا ہے جو ہمیں اندرونی نیٹ ورک پر ملا ہے۔ اب بس بھاگو msfconsole، اور آپ آگے بڑھ سکتے ہیں (یہ فرض کرتے ہوئے کہ آپ اس میزبان کو استعمال کرنے کا ارادہ رکھتے ہیں)۔

تکمیل

یہ مثالیں، تجاویز اور احکامات ssh ایک نقطہ آغاز دینا چاہئے؛ ہر ایک کمانڈ اور صلاحیتوں کے بارے میں مزید معلومات مین پیجز پر دستیاب ہے (man ssh, man ssh_config, man sshd_config).

میں ہمیشہ دنیا میں کہیں بھی سسٹمز تک رسائی اور کمانڈز پر عمل درآمد کرنے کی صلاحیت سے متوجہ رہا ہوں۔ جیسے ٹولز کے ساتھ اپنی صلاحیتوں کو فروغ دے کر ssh آپ کسی بھی کھیل میں زیادہ موثر ہو جائیں گے۔

ماخذ: www.habr.com

نیا تبصرہ شامل کریں