كيفية إعداد خادم SSH مع تور لإخفائه من Shodan & Hackers

قد يكون استغلال libSSH أو OpenSSH التالي قاب قوسين أو أدنى. أبق خدمة SSH خارج قاعدة بيانات Shodan قبل أن يجد المتسللون طرقًا جديدة لتجاوز كلمة المرور التي تحمي الخادم.

أطلق على Shodan "محرك بحث المتسللين" لأنه حرفيًا قاعدة بيانات يمكن البحث فيها عن الأجهزة والخوادم المتصلة بالإنترنت. يسمح لأي شخص بالبحث عن كاميرات الويب وأجهزة التوجيه والخوادم و Raspberry Pis وإشارات المرور وأنظمة نقاط البيع وأنظمة التحكم الصناعية وغير ذلك الكثير.

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

لماذا إعداد SSH مع Tor؟

سيتم مسح أي جهاز متصل بالإنترنت حتماً بواسطة Shodan وقواعد بيانات أخرى مثل Censys. يستخدم المتسللون قواعد البيانات هذه لتحديد الخوادم القديمة المعرضة للخطر. حتى مسؤولي النظام الذين يقومون بتحديث خوادمهم بانتظام ويتبعون أفضل ممارسات الأمان يتعرضون للاستغلال. مصادقة libSSH تجاوز مشكلة عدم الحصانة مثال ممتاز على ذلك.

سمح libSSH vuln للمتسللين بالاتصال بخدمات SSH دون إجراء المصادقة أولاً. لا تزال أكثر الخدمات محدثة بالكامل عرضة لهذا الاستغلال وتعرض العديد من الخوادم والمواقع الإلكترونية للخطر. والأهم من ذلك ، لا تزال الأنظمة المحدثة بالكامل تتعرض للاستغلالات التي لم يتم الكشف عنها بعد. تقوم Blackhat أحيانًا بجمع الثغرات الأمنية وبيعها في المجتمعات الخاصة. لا يوجد أي معلومات عن عدد عمليات استغلال OpenSSH غير المكشوف عنها.

يمكن أن تساعد خدمات Tor onion في التخفيف من التعرض. يشبه إلى حد كبير كيف لا يمكن الوصول إلى مواقع البصل باستخدام متصفح ويب قياسي ، يمكن تكوين خدمات SSH فقط للسماح بالوصول عبر Tor. يمكن أن يجعل الوصول إلى الخدمات أمرًا غير ممكن تمامًا لمحركات البحث مثل Shodan ومن الصعب على المتسللين العثور عليها.

الخطوة 1: تثبيت Tor

أول شيء يتعين علينا القيام به هو تثبيت Tor على كل من الخادم الخاص الافتراضي (VPS) وجهاز الكمبيوتر العميل. يمكن أن يكون العميل نظام دبيان أو أوبونتو أو كالي لمتابعة. يمكن لمستخدمي MacOS و Windows 10 الاطلاع على وثائق Tor Project الرسمية لتثبيتها بشكل صحيح. بالنسبة لمعظم القراء ، من المحتمل أن يكون خادم SSH عبارة عن Debian VPS. ومع ذلك ، يمكن إعداد هذا على سطح مكتب Ubuntu أو Raspberry Pi ، لأولئك الذين يرغبون في الوصول عن بعد إلى أجهزة الكمبيوتر في المنزل.

Tor متاح في العديد من مستودعات Linux. في معظم الحالات ، لا يتم الحفاظ على الحزم أو تحديثها بشكل موثوق ، مما يعني أنه قد يكون هناك نقص في التحديثات الأمنية والاستقرار. علاوة على ذلك ، يجب دائمًا الحصول على برنامج إخفاء الهوية مباشرة من المصدر (أي ، torproject.org).

سجّل الدخول إلى خادم SSH وأضف مستودع تخزين Tor Project إلى قائمة مستودعات APT الخاصة بك باستخدام الأمر echo التالي ، والذي يعمل في دبيان.

~ $ echo -e "deb https://deb.torproject.org/torproject.org $ (lsb_release -sc) main \ ndeb-src https://deb.torproject.org/torproject.org $ (lsb_release -sc) الرئيسية "> /etc/apt/sources.list.d/tor.list

إذا كنت تستخدم Kali Linux ، فاستخدم الأمر التالي بدلاً من ذلك.

~ $ echo -e "deb https://deb.torproject.org/torproject.org stretch main \ ndeb-src https://deb.torproject.org/torproject.org stretch main"> / etc / apt / sources. list.d / tor.list

بعد ذلك ، قم بتنزيل مفتاح توقيع حزمة Tor Project واستيراده إلى حلقة مفاتيح APT باستخدام الأمر التالي.

~ $ wget -O- https://deb.torproject.org/torproject.org/A3C4F0F979CAA22CDBA8F512EE8CBC9E886DDD89.asc | sudo apt-key add -
--2019-03-05 06: 29: 13-- https://deb.torproject.org/torproject.org/A3C4F0F979CAA22CDBA8F512EE8CBC9E886DDD89.asc حل deb.torproject.org (deb.torproject.org (deb.torproject.org) ... 82.195.75.101 ، 2001: 41b8: 202: deb: 213: 21ff: fe20: 1426 Connecting to deb.torproject.org (deb.torproject.org) | 82.195.75.101 |: 443 ... متصل. تم إرسال طلب HTTP ، في انتظار الرد ... 200 موافق الطول: 19665 (19 كيلو بايت) [نص / عادي] حفظ إلى: "STDOUT"
- 100٪ [================================>] 19.20 كيلو بايت 54.8 كيلوبايت / ثانية في 0.4 ثانية
2019-03-05 06:29:16 (54.8 كيلو بايت / ثانية) - تمت كتابتها إلى stdout [19665/19665]

سترى الإخراج "موافق" عند إضافة مفتاح التوقيع إلى سلسلة المفاتيح. بعد ذلك ، قم بتحديث APT باستخدام الأمر apt-get أدناه.

~ $ apt-get update
الحصول على: 2 https://deb.torproject.org/torproject.org stretch InRelease [4،965 B]
الحصول على: 4 https://deb.torproject.org/torproject.org امتداد / المصادر الرئيسية [1،169 B]
الحصول على: 5 https://deb.torproject.org/torproject.org امتداد / حزم amd64 الرئيسية [2،400 B]
تم إحضاره 8534 ب في 8 ثوانٍ (1،091 ب / ث)
قراءة حزم الحزمة ... تم

قم بتثبيت Tor باستخدام الأمر apt-get أدناه ، وقد انتهيت.

~ $ apt-get install tor deb.torproject.org-keyring torsocks قراءة قوائم الحزمة ... تم بناء شجرة التبعية قراءة معلومات الحالة ... تم الحزم المقترحة: mixmaster torbrowser-launcher socat tor-arm apparmor-utils obfs4proxy التالي جديد سيتم تثبيت الحزم: deb.torproject.org-keyring سيتم ترقية الحزم التالية: tor

يجب أن يكون كل من العميل و VPS الذي يقوم بتشغيل خادم SSH مثبتًا عليه Tor. تأكد من اتباع الخطوات المذكورة أعلاه على كلا النظامين.

الخطوة 2: إنشاء خدمة بصل على الخادم

من المحتمل أن يتم تنفيذ عملية Tor فور تثبيتها على الفور ، حيث أن الجذر (sudo) ، أوقف العملية. يمكن القيام بذلك باستخدام الأمر systemctl.

~ $ sudo systemctl وقف تور

ثم استخدم محرر نصوص لفتح ملف / etc / tor / torrc. هذا هو ملف التكوين الذي تستخدمه Tor لتعديل سلوكها وإنشاء خدمات البصل.

~ $ sudo nano / etc / tor / torrc

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

############### هذا القسم مخصص فقط للخدمات المخفية للموقع
## بمجرد تكوين خدمة خفية ، يمكنك إلقاء نظرة على
## محتويات الملف "... / hidden_service / hostname" للعنوان
## لإخبار الناس.
##
## HiddenServicePort x y: z يقول لإعادة توجيه الطلبات على المنفذ x إلى
## العنوان y: z.
#HiddenServiceDir / var / lib / tor / hidden_service /
#HiddenServicePort 80 127.0.0.1:80
#HiddenServiceDir / var / lib / tor / other_hidden_service / #HiddenServicePort 80 127.0.0.1:80
#HiddenServicePort 22 127.0.0.1:22

Uncomment (#) واحد "HiddenServiceDir" وسطر "HiddenServicePort" واحد ، على هذا النحو:

############### هذا القسم مخصص فقط للخدمات المخفية للموقع
## بمجرد تكوين خدمة خفية ، يمكنك إلقاء نظرة على
## محتويات الملف "... / hidden_service / hostname" للعنوان
## لإخبار الناس.
##
## HiddenServicePort x y: z يقول لإعادة توجيه الطلبات على المنفذ x إلى
## العنوان y: z.
#HiddenServiceDir / var / lib / tor / hidden_service /
#HiddenServicePort 80 127.0.0.1:80
HiddenServiceDir / var / lib / tor / other_hidden_service /
#HiddenServicePort 80 127.0.0.1:80
HiddenServicePort 22 127.0.0.1:22

احفظ واخرج من محرر النصوص. ثم ، أعد تشغيل tor باستخدام الأمر أدناه.

~ $ sudo systemctl إعادة تشغيل tor

سيحتوي ملف "اسم المضيف" في / var / lib / tor / other_hidden_service / directory على عنوان البصل الجديد. استخدم القط لقراءة الملف. لاحظ عنوان البصل هذا ، فسيكون مطلوبًا في الخطوة التالية.

~ $ cat / var / lib / tor / other_hidden_service / hostname
pkgsxmtmdrlxp7l3gfqysi3ceaochd4vnv7eax2fuyridmcz7ucvluad.onion

الخطوة 3: التحقق من أن خدمة البصل تعمل (اختياري)

قبل المتابعة ، من الجيد التأكد من إمكانية الوصول إلى خدمة SSH باستخدام عنوان البصل الجديد. يمكن التحقق بسرعة من ذلك باستخدام torsocks ، وهو غلاف غلاف يستخدم بشفافية لتطبيقات سطر أوامر Tor-ify مثل curl أو wget أو nmap.

سيقوم الأمر torsocks و curl التالي بالاستعلام عن خدمة البصل الجديدة. تأكد من إلحاق رقم منفذ SSH (: 22) ، وإلا ، فسيستفسر curl عن المنفذ 80 افتراضيًا ويفشل. سيقوم الاستعلام الناجح بإرجاع شعار إصدار SSH ، كما هو موضح أدناه.

~ $ torsocks curl http://pkgsxmtmdrlxp7l3gfqysi3ceaochd4vnv7eax2fuyridmcz7ucvluad.onion:22
SSH-2.0-OpenSSH_7.4p1 Debian-10 + deb9u5

الخطوة 4: جعل خدمة SSH خاصة

بشكل افتراضي ، تستمع معظم خدمات SSH على كل واجهة IPv4. على الرغم من أن هذا ليس هو الحال بالنسبة لجميع توزيعات Linux ، إلا أن هذا صحيح بالنسبة لتلك الشائعة مثل Ubuntu و Debian. يتم تمثيل هذا عادةً باسم "0.0.0.0" في ملف / etc / ssh / sshd_config ، حيث يخزن SSH جميع تكوينات الخدمة.

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

أولاً ، دعونا نلقي نظرة على خدمة SSH التي تعمل في الخلفية. استخدم ss ، وهي أداة لفحص مآخذ التوصيل ، لإظهار عمليات الاستماع (-p) (-l) لاتصالات TCP (-t).

~ $ ss -plt
State Recv-Q Send-Q العنوان المحلي: Port Peer Address: Port LISTEN 0 128 *: ssh *: * users: (("sshd"، pid = 1148، fd = 3))

إذا كان للخادم تطبيقات تعمل في الخلفية (على سبيل المثال ، Apache ، Nginx ، IRC software ، إلخ) ، فقد تظهر العديد من الخدمات هنا. دعنا نركز على عمود العنوان المحلي: المنفذ الذي يقرأ *: ssh. تشير أحرف البدل إلى أن خدمة SSH تستمع إلى كل واجهة IPv4 و IPv6 متاحة.

بإمكان Shodan تحديد موقع خدمة SSH هذه لأنه متوفر (الاستماع) في هذه الحالة. لتغيير هذا ، افتح الملف / etc / ssh / sshd_config وابحث عن سطر (خطوط) ListenAddress.

~ $ sudo nano / etc / ssh / sshd_confnig

في دبيان ، يظهر كما هو موضح أدناه. ربما سيتم تعليقهم ، وهو أمر طبيعي. عندما يتم تعليق كل ListenAddress ، يعود SSH إلى التكوين الافتراضي للاستماع على كل واجهة.

#Port 22 #AddressFamily any #ListenAddress 0.0.0.0 #ListenAddress ::

غيّر خط ListenAddress إلى "127.0.0.1" وقم بإلغاء فكه على هذا النحو:

#Port 22 #AddressFamily any ListenAddress 127.0.0.1 #ListenAddress ::

ثم ، أعد تشغيل خدمة SSH.

~ $ sudo systemctl إعادة تشغيل سه

مباشرة بعد تنفيذ الأمر systemctl ، قد يتم إغلاق اتصال SSH الحالي. لم تعد خدمة SSH متاحة على أي عنوان IPv4 أو IPv6 لذلك فمن الطبيعي أن ينقطع الاتصال.

الخطوة 5: الاتصال بخادم SSH باستخدام Tor

لحسن الحظ ، تم إعداد خدمة البصل على الخادم بحيث لا يزال من الممكن الوصول إلى خدمة SSH. الآن ، من العميل (أي الكمبيوتر المحمول أو الكمبيوتر البعيد) ، استخدم الأمر torsocks أدناه للاتصال بخدمة SSH.

~ $ torsocks ssh -p 22 username@pkgsxmtmdrlxp7l3gfqysi3ceaochd4vnv7eax2fuyridmcz7ucvluad.onion
لا يمكن تأسيس أصالة المضيف "pkgsxmtmdrlxp7l3gfqysi3ceaochd4vnv7eax2fuyridmcz7ucvluad.onion (127.42.42.0)". بصمة مفتاح ECDSA هي SHA256: f22LX7WJfLGOiKxP + 0 + cA / l5Q1GsJLFA30ZyMyGLMl4. هل أنت متأكد من أنك تريد متابعة الاتصال (نعم / لا)؟ نعم
تحذير: تمت إضافة "pkgsxmtmdrlxp7l3gfqysi3ceaochd4vnv7eax2fuyridmcz7ucvluad.onion" (ECDSA) نهائيًا إلى قائمة المضيفين المعروفين. اسم المستخدمpkgsxmtmdrlxp7l3gfqysi3ceaochd4vnv7eax2fuyridmcz7ucvluad.onion

الخطوة 6: تأكد من أن خدمة SSH غير مرئية لـ Shodan

بعد تسجيل الدخول إلى الخادم باستخدام عنوان البصل ، استخدم الأمر ss مرة أخرى لعرض خدمات الاستماع. لا ينبغي لها الإبلاغ عن استماع SSH على كل واجهة متوفرة ، فقط 127.0.0.1.

~ $ ss -plt
State Recv-Q Send-Q العنوان المحلي: Port Peer Address: Port LISTEN 0 128 127.0.0.1:ssh *: * users: (("sshd"، pid = 1162، fd = 3))

يمكننا التحقق من ذلك عن طريق إجراء فحص بسيط لإصدار nmap (-sV) على الخادم.

~ $ nmap -p 22 -sV  PORT STATE SERVICE VERSION 22 / tcp closed ssh

قد لا تزال خدمة SSH تظهر على Shodan لعدة أيام أو حتى أسابيع. شودان ليس رائعًا في تطهير لافتات الخدمة والمعلومات القديمة. لكن هذا لا يعني أن خدمة SSH لا تزال متاحة للمهاجمين.

خاتمة

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

إن تهيئة Tor للعمل مع خدمات SSH بهذه الطريقة يخفيها عن Shodan ولكنه لا يجعل من المستحيل تمامًا تحديد موقع المتسللين. لا يزال من الممكن الوصول إليه باستخدام Tor ، مما يقلل إلى حد كبير من تعرضه الإجمالي لكنه لا يجعله غير محتمل تمامًا للهجمات.

هناك ميزة أمان في Tor تسمى HiddenServiceAuthorizeClient. تتيح هذه الميزة للمستخدمين حماية كلمة المرور بشكل أساسي لخدمة البصل من خلال ملف تعريف ارتباط للمصادقة. في وقت كتابة هذا التقرير ، لم يكن HiddenServiceAuthorizeClient مدعومًا من قبل خدمات البصل "الجيل القادم" الأحدث. قد يكون من الممكن إنشاء خدمات بصل قديمة ، ولكن يبدو من الممارسات الأمنية السيئة استخدام ميزة قديمة في Tor. في المستقبل ، سيكون من الممكن استخدام HiddenServiceAuthorizeClient مع البصل من الجيل التالي لجعلها في متناول أي شخص غيرك. في الوقت الحالي ، فإن تغيير رقم منفذ SSH إلى شيء غير قياسي مثل 62359 أو 41171 سيساعد في الحفاظ عليه بعيدًا عن رادار طفولة البرامج النصية على المسح الشامل لـ darknet على المنفذ 22.

لا تفوت: إخفاء الملفات الحساسة في حاويات مشفرة على نظام Linux الخاص بك

صورة الغلاف ولقطات بواسطة تشويه / Null Byte

نُشر في الأصل على https://null-byte.wonderhowto.com في 23 أيار (مايو) 2019.