نصائح عملية وأمثلة وأنفاق SSH

نصائح عملية وأمثلة وأنفاق SSH
أمثلة عملية SSHسيؤدي ذلك إلى نقل مهاراتك كمسؤول نظام بعيد إلى مستوى جديد. سوف تساعد الأوامر والنصائح ليس فقط في الاستخدام SSH، ولكن أيضًا التنقل عبر الشبكة بشكل أكثر ذكاءً.

معرفة بعض الحيل ssh مفيد لأي مسؤول نظام أو مهندس شبكات أو متخصص في الأمن.

أمثلة عملية SSH

  1. وكيل الجوارب SSH
  2. نفق SSH (ميناء الشحن)
  3. نفق SSH للمضيف الثالث
  4. نفق SSH العكسي
  5. وكيل SSH العكسي
  6. تثبيت VPN عبر SSH
  7. نسخ مفتاح SSH (ssh-copy-id)
  8. تنفيذ الأوامر عن بعد (غير تفاعلي)
  9. التقاط الحزمة عن بُعد وعرضها باستخدام Wireshark
  10. نسخ مجلد محلي إلى خادم بعيد عبر SSH
  11. تطبيقات واجهة المستخدم الرسومية البعيدة مع إعادة توجيه SSH X11
  12. نسخ الملفات عن بعد باستخدام rsync و SSH
  13. SSH عبر شبكة Tor
  14. SSH إلى مثيل EC2
  15. تحرير الملفات النصية باستخدام VIM عبر ssh / scp
  16. تركيب SSH عن بعد كمجلد محلي باستخدام SSHFS
  17. مضاعفة SSH مع ControlPath
  18. دفق الفيديو عبر SSH باستخدام VLC و SFTP
  19. توثيق ذو عاملين
  20. استضافة التنقل باستخدام SSH و -J
  21. منع محاولات القوة الغاشمة SSH باستخدام iptables
  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 وملف هوية مختلف.

يمكن أن يوفر ملف التكوين الكثير من وقت كتابة الأحرف من خلال السماح بتطبيق التكوين المتقدم تلقائيًا عند الاتصال بمضيفين معينين.

نسخ الملفات عبر SSH باستخدام SCP

يأتي عميل 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 Proxy هي رقم 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

هنا نبدأ بروكسي socks على منفذ TCP 8888 ، يتحقق الأمر الثاني من أن المنفذ نشط في وضع الاستماع. يحدد 127.0.0.1 أن الخدمة تعمل فقط على المضيف المحلي. يمكننا استخدام أمر مختلف قليلاً للاستماع على جميع الواجهات ، بما في ذلك إيثرنت أو واي فاي ، وهذا سيسمح للتطبيقات الأخرى (المتصفحات ، وما إلى ذلك) على شبكتنا بالاتصال بخدمة الوكيل عبر وكيل ssh socks.

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

الآن يمكننا تكوين المتصفح للاتصال ببروكسي socks. في Firefox حدد الإعدادات | الرئيسية | اعدادات الشبكة. حدد عنوان IP والمنفذ للاتصال بهما.

نصائح عملية وأمثلة وأنفاق SSH

انتبه إلى الخيار الموجود أسفل النموذج بحيث تمر استعلامات DNS الخاصة بالمتصفح عبر وكيل SOCKS. إذا كنت تستخدم خادمًا وكيلاً لتشفير حركة مرور الويب على شبكتك المحلية ، فربما تريد تحديد هذا الخيار بحيث يتم نقل استعلامات DNS عبر اتصال SSH.

تفعيل socks proxy في كروم

سيؤدي تشغيل Chrome مع بعض خيارات سطر الأوامر إلى تمكين وكيل الجوارب بالإضافة إلى نفق طلبات DNS من المتصفح. ثق ولكن تحقق. يستخدم com.tcpdump للتحقق من أن استعلامات DNS لم تعد مرئية.

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

استخدام تطبيقات أخرى مع وكيل

ضع في اعتبارك أن العديد من التطبيقات الأخرى يمكنها أيضًا استخدام بروكسيات الجوارب. متصفح الويب هو ببساطة الأكثر شعبية منهم جميعًا. تحتوي بعض التطبيقات على خيارات تكوين لتنشيط خادم وكيل. يحتاج البعض الآخر إلى القليل من المساعدة في برنامج مساعد. على سبيل المثال، بروكسيكينس يسمح لك بالمرور عبر socks-proxy Microsoft RDP ، إلخ.

localhost:~$ proxychains rdesktop $RemoteWindowsServer

يتم تعيين معلمات تكوين الخادم الوكيل socks في ملف تكوين proxychains.

تلميح: إذا كنت تستخدم سطح المكتب البعيد من Linux إلى Windows؟ جرب العميل FreeRDP. هذا هو تطبيق أكثر حداثة من rdesktop، مع تفاعل أكثر سلاسة.

خيار استخدام SSH من خلال وكيل الجوارب

أنت جالس في مقهى أو فندق - وتضطر إلى استخدام شبكة WiFi غير موثوقة إلى حد ما. من الكمبيوتر المحمول ، نقوم بتشغيل وكيل ssh محليًا وإنشاء نفق ssh للشبكة المنزلية على Rasberry Pi المحلي. باستخدام متصفح أو تطبيقات أخرى تم تكوينها لبروكسي socks ، يمكننا الوصول إلى أي خدمات شبكة على شبكتنا المنزلية أو الاتصال بالإنترنت من خلال اتصالنا المنزلي. يتم تشفير كل شيء بين الكمبيوتر المحمول الخاص بك وخادمك المنزلي (عبر Wi-Fi والإنترنت إلى منزلك) في نفق 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 العكسي

في هذه الحالة ، نقوم بإعداد وكيل socks على اتصال 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. قم بتثبيت VPN عبر SSH

مصطلح شائع بين المهاجمين (pentesters ، وما إلى ذلك) هو "نقطة ارتكاز الشبكة". بمجرد إنشاء اتصال على نظام واحد ، يصبح هذا النظام البوابة لمزيد من الوصول إلى الشبكة. نقطة ارتكاز تسمح لك بالتحرك على نطاق واسع.

لمثل هذا موطئ قدم ، يمكننا استخدام وكيل SSH و بروكسيكينس، ومع ذلك، هناك بعض القيود. على سبيل المثال ، لن يكون من الممكن العمل مباشرة مع المقابس ، لذلك لن نتمكن من فحص المنافذ داخل الشبكة من خلال نمب SYN.

باستخدام خيار VPN الأكثر تقدمًا ، ينخفض ​​الاتصال إلى المستوى 3. يمكننا بعد ذلك ببساطة توجيه حركة المرور عبر النفق باستخدام توجيه الشبكة القياسي.

تستخدم الطريقة ssh, iptables, tun interfaces والتوجيه.

تحتاج أولاً إلى ضبط هذه المعلمات في sshd_config. نظرًا لأننا نجري تغييرات على واجهات كل من الأنظمة العميلة والبعيدة ، فإننا نقوم بذلك بحاجة إلى أذونات الجذر على كلا الجانبين.

PermitRootLogin yes
PermitTunnel yes

ثم سننشئ اتصال ssh باستخدام المعلمة التي تطلب تهيئة أجهزة tun.

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

يجب أن يكون لدينا الآن جهاز Tun عند إظهار الواجهات (# 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

فقاعة! VPN عبر نفق SSH في طبقة الشبكة 3. هذا انتصار بالفعل.

إذا كان هناك أي مشاكل ، استخدم com.tcpdump и 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. التقاط الحزمة عن بعد وعرض Wireshark

أخذت واحدة من أمثلة tcpdump. استخدمه لالتقاط الحزم عن بُعد وإرجاع النتيجة مباشرة إلى واجهة المستخدم الرسومية الخاصة بـ Wireshark المحلي.

:~$ 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

إذا تم تثبيت "x" لكل من العميل والخادم البعيد ، فيمكنك تنفيذ أمر واجهة المستخدم الرسومية عن بُعد ، من خلال نافذة على سطح المكتب المحلي. هذه الميزة موجودة منذ فترة طويلة ، لكنها لا تزال مفيدة للغاية. قم بتشغيل مستعرض ويب بعيد أو حتى وحدة تحكم VMWawre Workstation كما أفعل في هذا المثال.

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. SSH عبر شبكة Tor

يمكن لشبكة Tor المجهولة توجيه حركة مرور SSH باستخدام الأمر torsocks. سيرسل الأمر التالي وكيل ssh عبر Tor.

localhost:~$ torsocks ssh myuntracableuser@remoteserver

تورسوكس سيستخدم المنفذ 9050 على المضيف المحلي للوكيل. كما هو الحال دائمًا عند استخدام Tor ، فأنت بحاجة إلى التحقق بجدية من حركة المرور التي يتم نفقها ومشكلات الأمان التشغيلي الأخرى (opsec). إلى أين تذهب طلبات DNS الخاصة بك؟

14. SSH إلى مثيل EC2

مطلوب مفتاح خاص للاتصال بمثيل EC2. قم بتنزيله (ملحق .pem) من لوحة تحكم Amazon EC2 وقم بتغيير الأذونات (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. تحرير الملفات النصية باستخدام VIM عبر ssh / scp

لجميع العشاق 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 مع ControlPath

بشكل افتراضي ، إذا كان هناك اتصال موجود بخادم بعيد باستخدام 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. دفق الفيديو عبر SSH مع VLC و SFTP

حتى المستخدمين القدامى ssh и vlc (Video Lan Client) لا يعرف دائمًا عن هذا الخيار المناسب عندما تحتاج حقًا إلى مشاهدة الفيديو عبر الشبكة. في الاعدادات ملف | افتح Network Stream برنامج vlc يمكنك إدخال الموقع باسم sftp://. إذا كانت كلمة المرور مطلوبة ، فسيُطلب منك ذلك.

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

19. المصادقة الثنائية

تنطبق المصادقة ذات العاملين نفسها كحسابك المصرفي أو حساب Google على خدمة 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 وهكذا. يستخدم الخيار -J إعادة التوجيه بذكاء لجعل المضيف المحلي ينشئ جلسة مع المضيف التالي في السلسلة. في المثال أعلاه ، يقوم المضيف المحلي بالمصادقة على host4. بمعنى ، يتم استخدام مفاتيح المضيف المحلي الخاصة بنا ، وتكون الجلسة من المضيف المحلي إلى المضيف 4 مشفرة بالكامل.

لمثل هذه الفرصة ssh_config حدد خيار التكوين ProxyJump. إذا كان عليك المرور عبر عدة مضيفين بشكل منتظم ، فإن التشغيل الآلي من خلال التكوين سيوفر الكثير من الوقت.

21. منع محاولات القوة الغاشمة SSH باستخدام iptables

أي شخص أدار خدمة SSH ونظر في السجلات على دراية بعدد محاولات القوة الغاشمة التي تحدث كل ساعة من كل يوم. هناك طريقة سريعة لتقليل ضوضاء السجل وهي نقل SSH إلى منفذ غير قياسي. قم بإجراء تغييرات على الملف sshd_config باستخدام خيار التكوين ميناء##.

استخدام iptables يمكنك أيضًا حظر محاولات الاتصال بمنفذ بسهولة عند الوصول إلى عتبة معينة. طريقة سهلة للقيام بذلك هي استخدام OSSEC، لأنه لا يحجب SSH فحسب ، بل ينفذ مجموعة من إجراءات الكشف عن التطفل المستندة إلى اسم المضيف (HIDS).

22. SSH Escape لتغيير ميناء الشحن

ومثالنا الأخير ssh مصمم لتغيير إعادة توجيه المنفذ أثناء الجلسة الحالية ssh. تخيل مثل هذا السيناريو. أنت في عمق الشبكة. ربما قفز من خلال ستة مضيفين ويحتاجون إلى منفذ محلي على محطة العمل يتم إعادة توجيهه إلى Microsoft SMB لنظام Windows 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 إلى مضيف Windows 2003 وجدنا على الشبكة الداخلية. الآن مجرد تشغيل msfconsole، وأنت على ما يرام (على افتراض أنك تخطط لاستخدام هذا المضيف).

إتمام

هذه الأمثلة والنصائح والأوامر ssh يجب أن يعطي نقطة انطلاق ؛ تتوفر معلومات إضافية حول كل من الأوامر والميزات في صفحات الدليل (man ssh, man ssh_config, man sshd_config).

لطالما كنت مفتونًا بالقدرة على الوصول إلى الأنظمة وتنفيذ الأوامر في أي مكان في العالم. تطوير مهاراتك بأدوات مثل ssh ستصبح أكثر كفاءة في أي لعبة تلعبها.

المصدر: www.habr.com

إضافة تعليق