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


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

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

أمثلة SSH العملية


  1. الجوارب SSH الوكيل
  2. SSH Tunnel (Port Forwarding)
  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 Multiplexing مع ControlPath
  18. SSH دفق الفيديو باستخدام VLC و SFTP
  19. المصادقة الثنائية
  20. القفز المضيف مع SSH و -J
  21. منع SSH القوة الغاشمة محاولات مع iptables
  22. SSH الهروب لتغيير ميناء الشحن

أساسيات أولا


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 المثال أعلاه على إدخالات مضيفين. يشير الأول إلى جميع المضيفين ، يتم استخدام معلمة التكوين Port 2222 للجميع ، والثاني يقول أنه بالنسبة لمضيف جهاز التحكم عن بُعد ، استخدم اسم مستخدم مختلفًا ومنفذًا و FQDN و IdentityFile.

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

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


يأتي عميل SSH مع أداتين أخريين مناسبتين للغاية لنسخ الملفات عبر اتصال ssh مشفر . انظر أدناه للحصول على مثال للاستخدام القياسي لأوامر scp و sftp. لاحظ أن العديد من خيارات ssh تنطبق على هذه الأوامر أيضًا.

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

في هذا المثال ، يتم نسخ الملف mypic.png إلى وحدة التحكم عن بُعد في المجلد / media / data وإعادة تسميته إلى 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 

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

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

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



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

الجوارب تفعيل الوكيل في كروم


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

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

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


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

 localhost:~$ proxychains rdesktop $RemoteWindowsServer 

يتم تعيين معلمات التكوين الوكيل الجوارب في ملف تكوين الوكيل.

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

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


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

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 في الأمثلة ، ولكن إذا تم تعيين قيمة GatewayPorts في sshd_config إلى لا ، فسيتم ربط المستمع فقط بـ المضيف المحلي (127.0.0.1).

تحذير السلامة


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

6. تثبيت VPN على SSH


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

بالنسبة لمثل هذه النقطة ، يمكننا استخدام بروكسيات SSH ووكلاء الوكيل ، ولكن هناك بعض القيود. على سبيل المثال ، لن تكون قادرًا على العمل مباشرة مع المقابس ، لذلك لن نتمكن من فحص المنافذ داخل الشبكة عبر Nmap 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 . هذا بالفعل انتصار.

إذا واجهت أي مشاكل ، استخدم 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 

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

14. SSH إلى مثيل EC2


مطلوب مفتاح خاص للاتصال بمثيل EC2. قم بتنزيله (extension .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 

نقوم بتثبيت حزمة sshfs على Ubuntu و Debian ، ثم نقوم فقط بتثبيت الموقع البعيد على نظامنا.

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

17. SSH Multiplexing مع 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) القديمان لا يعرفان دائمًا عن هذا الخيار المريح عندما تحتاج حقًا إلى مشاهدة الفيديو على الشبكة. في ملف الإعدادات | يمكن لبرنامج Open 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 user@host4.internal 

الشيء الرئيسي الذي يجب فهمه هنا هو أن هذا ليس مماثلاً ssh host1 ، ثم user@host1:~$ ssh host2 ، وما إلى ذلك. تستخدم المعلمة user@host1:~$ ssh host2 إعادة التوجيه بذكاء حتى يقوم مضيف محلي بإنشاء جلسة مع المضيف التالي في السلسلة. وبالتالي ، في المثال أعلاه ، يقوم مضيفنا المحلي بالمصادقة على host4. هذا هو ، يتم استخدام مفاتيح المضيف المحلي لدينا ، ويتم تشفير الجلسة بالكامل من المضيف المحلي إلى المضيف 4.

للقيام بذلك ، حدد خيار تكوين proxyJump في ssh_config . إذا كنت مضطرًا بانتظام إلى المرور بالعديد من المضيفين ، فستوفر الأتمتة من خلال التكوين الكثير من الوقت.

21. حظر SSH القوة الغاشمة محاولات استخدام iptables


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

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

22. SSH الهروب لتغيير ميناء الشحن


ومثالنا الأخير 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سوف يصبح أكثر فعالية في أي لعبة تلعبها.

Source: https://habr.com/ru/post/ar435546/


All Articles