وكلاء سوكس
SOCKS هو الوكيل الحيادي للبروتوكول. عندما لا يفهم بروكسي HTTP سوى حركة مرور الويب، فإن بروكسي SOCKS سيقوم بتمرير أي اتصال TCP (وفي SOCKS5، UDP)، دون طرح أي أسئلة. هذه العمومية هي السبب وراء قيام SSH بشحن دعم SOCKS خارج الصندوق، ولماذا يكشف Tor عن مستمع SOCKS5، ولماذا تنتهي كل أداة خصوصية تقريبًا ترغب في إعادة توجيه حركة مرور التطبيق العشوائية إلى استخدامها.
يتم توفير نص المقالة الكامل باللغة الإنجليزية أدناه.
SOCKS ("Socket Secure") في MIPS Computer Systems في أوائل التسعينيات لمنح المضيفين المحميين بجدران الحماية طريقة نظيفة للوصول إلى العالم الخارجي. بدلاً من تحليل كل بروتوكول تطبيق بالطريقة التي يعمل بها وكيل HTTP، يقوم خادم SOCKS فقط بفتح اتصالات TCP نيابة عن العميل ويقوم بتبديل البايتات ذهابًا وإيابًا. مهما كان البروتوكول الموجود في الأعلى - HTTP، وSMTP، وIRC، والثنائي المخصص - فهو يعمل دون تغيير.
SOCKS4 vs SOCKS5
SOCKS4، الذي تم توحيده في عام 1992، يدعم فقط IPv4 وTCP، ولا يحتوي على مصادقة. لقد أصبح قديمًا بشكل أساسي اليوم ولكنه لا يزال يُرى على نطاق واسع في البرامج القديمة.
SOCKS5، المحدد في RFC 1928 (1996)، هو الإصدار قيد الاستخدام النشط. وتضيف: عناوين الوجهة
- IPv6
- Domain-name الوجهات (يحلها الوكيل، وليس العميل - مهم للخصوصية)
- Authentication الأساليب (اسم المستخدم/كلمة المرور هي الشائعة واحد)
- UDP Associate - قناة تحكم تتيح للعميل مخططات بيانات UDP، مفيدة لـ DNS وVoIP وبروتوكولات الألعاب
تبدو محادثة تدفق الاتصال
A SOCKS5 كما يلي:
- Client يتصل بـ SOCKS الخادم على منفذ الاستماع الخاص به (عادةً 1080). يرسل
- Client greeting يدرج طرق المصادقة المدعومة.
- Server يختار واحدة ويرد.
- إذا تم التفاوض على المصادقة، يقوم العميل والخادم بتنفيذها.
- Client يرسل يطلب CONNECT تسمية المضيف الوجهة والمنفذ. يفتح
- Server اتصال TCP، ويجيب بالنجاح والعنوان المنضم، ومن ثم يتم إعادة توجيه كل ما يكتبه العميل إلى الوجهة والعكس.
خمس رحلات ذهابًا وإيابًا قبل تحرك بايت التطبيق الأول. SOCKS ليست صديقة لزمن الوصول، ولكنها بسيطة.
SOCKS وDNS: حيث تأتي التسريبات من
إحدى ميزات SOCKS5 الدقيقة هي كيفية تسمية الوجهة. يمكن لطلب CONNECT تسميته بواسطة IPv4 أو IPv6 أو domain name. إذا أرسل العميل عنوان IP، فقد أجرى العميل بحث DNS محليًا - وإذا كنت تحاول الاختباء خلف الوكيل، فقد رأى محللك المحلي الاسم للتو. إذا أرسل العميل domain، فإن الوكيل يحل المشكلة، وهو ما يريده مستخدمو Tor.
هذا هو السبب الجذري لعدد لا يحصى من تسريبات DNS: التطبيقات التي تم تكوينها لـ SOCKS5 والتي لا تزال تحل أسماء المضيفين محليًا. يحتاج الضفيرة إلى --socks5-hostname بدلاً من --socks5. يحتاج Firefox إلى network.proxy.socks_remote_dns = true. اختبار تسرب DNS الخاص بنا يكتشف وضع الفشل. التوجيه الديناميكي
SSH
أحد الاستخدامات الأكثر عملية لـ SOCKS هو ssh -D 1080 user@server. يولد SSH مستمع SOCKS5 محليًا؛ أي تطبيق يشير إليه يتم توجيه حركة مرور TCP الخاصة به عبر جلسة SSH إلى server، والذي يقوم بعد ذلك بإجراء الاتصال الصادر. مجاني، مشفر من طرف إلى طرف بينك وبين خادم SSH، وهو يتجول تقريبًا حول أي قيود على الشبكة المحلية تسمح بالمنفذ 22.
SOCKS مقابل HTTP CONNECT
HTTP CONNECT، فعل النفق الذي يستخدمه وكيل HTTP لـ HTTPS، يشبه وظيفيًا SOCKS - كلاهما ينشئ نفق TCP خام. الاختلافات: يعمل
- HTTP CONNECT عبر HTTP، لذا فهو يرث مصادقة HTTP ويكون صديقًا لجدار الحماية على المنفذ 80 أو 443.
- SOCKS هو بروتوكول مخصص على منفذ مخصص، مع دعم UDP أكثر نظافة ومصادقة أكثر ثراءً. يمكن اعتراض
- HTTP CONNECT وفحصه بواسطة HTTPS-aware المرشحات. تعتبر SOCKS أكثر غموضًا بالنسبة لهم.
SOCKS عبر TLS
SOCKS نفسها غير مشفرة - رابط العميل/الوكيل هو نص عادي، بما في ذلك تبادل المصادقة. لحماية الارتباط، تقوم عمليات النشر الحديثة بتغليف SOCKS في TLS أو تشغيلها داخل نفق SSH. اتخذ Shadowsocks نهجًا مختلفًا: فقد احتفظ بفكرة SOCKS5 ولكنه أضاف تشفيرًا وتشويشًا لكل اتصال للتغلب على فحص الحزم العميق .
حيث توجد SOCKS بجوار VPNs
A VPN تقوم بتوجيه حركة مرور all من جهازك عبر نفق. يقوم وكيل SOCKS بتوجيه التطبيقات التي تشير إليها فقط. وهذا يجعل SOCKS رائعًا للنفق الانتقائي (توجيه متصفحك فقط عبر Tor، وترك الألعاب على الرابط المحلي) وأقل فائدة لحماية الجهاز بالكامل. يعرض بعض موفري VPN التجاريين (Mullvad، IVPN) أيضًا نقاط نهاية SOCKS5 داخل شبكاتهم حتى تتمكن من توجيه تطبيق واحد دون تفعيل VPN الكامل.
الأسئلة المتداولة
- هل SOCKS5 مشفر؟
- لا — SOCKS5 هو بروتوكول نقل، وليس بروتوكول تشفير. تنتقل كل من المصادقة والبيانات في نص عادي بينك وبين الوكيل ما لم تقم بتغليف كل شيء في TLS أو تشغيله عبر نفق SSH. لا تستخدم SOCKS عبر شبكات معادية بدون طبقة خارجية من التشفير.
- ما هو المنفذ الذي تستخدمه SOCKS؟
- وفقًا للاتفاقية، 1080. إنه ليس متطلبًا صعبًا والعديد من عمليات النشر تستخدم منافذ أخرى — مستمع SOCKS5 المجمع لـ Tor موجود على 9050 — لكن 1080 هو المنافذ الافتراضية المخصصة لـ IANA.
- لماذا يستخدم Tor SOCKS5 بدلاً من HTTP؟
- يمكن لـ SOCKS5 أن يمرر أي بروتوكول TCP، وليس فقط HTTP. يريد مستخدمو Tor توجيه IRC والبريد الإلكتروني والتطبيقات المخصصة والمزيد - وليس فقط حركة مرور الويب. يقوم SOCKS5 أيضًا بتمرير أسماء النطاقات إلى الوكيل، مما يسمح لـ Tor بحلها داخل الشبكة بدلاً من تسريب البحث محليًا.
- هل تستطيع SOCKS التعامل مع UDP؟
- أضاف SOCKS5 أمر UDP-associate الذي يسمح للعميل بنفق مخططات بيانات UDP عبر الوكيل. الدعم غير متساوٍ - العديد من تطبيقات خادم SOCKS تعمل فقط على TCP - لكن المواصفات موجودة، وهي الطريقة التي يتعامل بها Tor وShadowsocks مع DNS المستند إلى UDP.
- هل يجب أن أفضّل SOCKS5 أم VPN؟
- للحصول على خصوصية الجهاز بالكامل، هناك شبكة VPN - تقوم بتمرير كل شيء وتشفير الرابط. لنفق تطبيق محدد أو للتسلسل باستخدام Tor، SOCKS5 هي الأداة المناسبة. وهما متكاملان وليسا متنافسين.