SSH / HTTPS / OpenVPN / Telegram وكل شيء على منفذ واحد ؟! ماذا ؟!
- نعم!
- هل تريد إخفاء وجود بعض خدماتك؟
- هل كل شيء باستثناء 443 منفذ (https) محجوب على شبكة Wi-Fi عامة؟
- هل قمت بتكوين Telegram Proxy / OpenVPN ولا تريد "تألقه"؟
- اتصال SSH بخادمك من البلدان الخاضعة للرقابة؟
هناك إجابة واحدة فقط لكل هذه الأسئلة -
مضاعفة اتصالات SSL / TLS أو SSLH.في المنشور ، سننظر في كيفية
إخفاء مجموعة من الخدمات في أمر واحد خلف منفذ واحد .
لماذا؟
مع الإصدار الأخير من Telegram Proxy ، والذي يشبه تمامًا حركة مرور SSL ، ظهر سؤال مثير للاهتمام في التعليقات على
المنشور :
نيوتن :
لدي سؤال جميل للغاية - أليس من الممكن حقًا الحصول على هذا مع SSLH؟
بعد فحص سريع لقدرات تطبيق sslh ، بدا لي أنني لن أتمكن من تشغيله ، لكني كنت مهتمًا جدًا بهذا التطبيق ، وكما اتضح ، لا يزال بإمكاني
تجاوزه باستخدام القنفذ .
كيف؟
تطبيق SSLH هو معدد إرسال ، بمعنى آخر ، يقوم بتحليل حركة المرور
(في الواقع يقوم بعمل mini-DPI) ، واعتمادًا على نوع حركة المرور ، يرسله إلى المنفذ المحلي 8443/999/991 أو أي ...
مما يسمح لنا باستخدام تقنية DPI
للمرة الأولى لصالحك .
التحدي
للحصول على مثال لاستخدام SSLH ، قمنا بتعيين المهمة:
التطبيقات التالية مثبتة على الخادم - Telegram Proxy و Apache و SSH ونريد السماح لجميع هذه الخدمات بالدخول إلى العالم من خلال المنفذ 443.
الخادم في مثالنا هو Ubuntu 16.04.4 LTS و Apache2 + LetsEncrypt و SSH و Telegram Proxy in Docker.في الوقت الحالي ، يعمل أباتشي عليه ، كما يجب أن يكون.
التثبيت والإعداد
تثبيت SSLH:
sudo apt-get install --no-install-recommends sslh
أثناء التثبيت ، سيتم طرح سؤال حول وضع الاستخدام ، هناك اثنان منهم:
- مستقر ولكن أكثر كثافة في استخدام الموارد
- بسرعة ، ولكن مع فقدان الاتصالات عندما تسقط العملية
أنا مع الخيار الثاني ، بالطبع ، يمكنك اختيار خيار آخر.
تحقق مما إذا كانت معجزتنا تعمل مع الأمر التالي:
sudo sslh-select -f --listen IP:8443 --tls 127.0.0.1:443 --ssh 127.0.0.1:22 --anyprot 127.0.0.1:9443
IP - خادم IP خارجي
8443 - المنفذ الذي سيتم إطلاق معدد الإرسال فيه
443 - حيث يعيش أباتشي
انتبه إلى خيار anyprot - هذا هو المكان الذي سيعيش فيه Telegram Proxy ، بمعنى آخر ، إذا كانت حركة المرور لا تتناسب مع أي نوع - أرسلها إلى هناك.
إنتباه! إذا لم يكن التكوين الخاص بك يحتوي على Telegram أو SSH ، فقم بإزالة مفاتيح بدء التشغيل الإضافية.تحقق من ذلك؟
افتح متصفحًا على عنوان الخادم الخاص بك باستخدام المنفذ 8443 - من المفترض أن ترى استجابة من Apache ، ثم حاول الاتصال عبر SSH أو من خلال Telegram Proxy.
نقل أباتشي إلى منفذ آخر
لنقل Apache من المنفذ القياسي (443) إلى آخر ، على سبيل المثال إلى 7443 ، قم بزيارة الملفات التالية:
sudo nano /etc/apache2/ports.conf sudo nano /etc/apache2/sites-enabled/000-default-le-ssl.conf
في المثال ، تم تثبيت Apache + SSL / HTTPS باستخدام LetsEncrypt بشهادة مختلفة ، يمكن أن تكون ملفات التكوين بطرق أخرى.تشغيل تلقائي
حان الوقت لإعداد التشغيل التلقائي.
تحرير الملف:
sudo nano /etc/default/sslh
في الحقل
DAEMON_OPTS = ، أضف السمات عند تشغيل الأمر sslh-select ، واضبط RUN على = نعم.
الجري:
sudo systemctl start sslh
تأكد من أن كل شيء على ما يرام:
sudo systemctl status sslh
ما هي النتيجة؟
بعد الانتهاء من هذا البرنامج التعليمي ، يجب أن يكون لديك خادم يحتوي على العديد من الخدمات المتاحة من خلال منفذ واحد
(أي من اختيارك) .
ماذا عن OpenVPN؟ ما هي البروتوكولات التي لا يزال التطبيق قادرًا على القيام بها؟
في وقت كتابة هذا التقرير ، يمكن لـ sslh اكتشاف ومضاعفة البروتوكولات التالية:
[--ssh <addr>] [--openvpn <addr>] [--tinc <addr>] [--xmpp <addr>] [--http <addr>] [--ssl <addr>] [--tls <addr>] [--anyprot <addr>]
قبل الاستخدام ، من الأفضل التأكد من البروتوكولات التي يدعمها
إصدارك (فجأة أنها أحدث) باستخدام:
sslh-select -h
المراجع
يتم تطوير SSLH على جيثب ، في هذا المستودع:
github.com/yrutschle/sslhعامل ميناء
لم أنجح في جمع نسخة العمل من sslh في عامل الميناء مع جميع الخدمات الأخرى ، في رأيي ، سيكون ملف
إنشاء عامل الميناء الذي يمكن رفعه على المنفذ 443 مثيرًا للاهتمام:
- اباتشي + LetsEncrypt
- وكيل برقية
- OpenVPN (اختياري)
- استخدم SSH المحلي
إذا نجح شخص ما - اكتب في التعليقات - أضف إلى المقال ، في رأيي ، سيكون مفيدًا.
قد تكون مهتمًا أيضًا.