عودة إلى مدونة Webship

الهندسة في Webship

Webship خادم الويب: إعدادات آمنة بشكل افتراضي

Webship يُمكّن دفاعاته الأساسية في بروتوكول HTTP، وحدود الموارد، وحمايات الاستجابة بشكل افتراضي مع إبقاء واجهات التحكم الاختيارية خاصة أو معطلة. فيما يلي الأساس وقائمة التحقق للإنتاج.

# Webship خادم الويب: إعدادات آمنة بشكل افتراضي

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

هذا هو النموذج وراء Webship. التكوين الافتراضي له يُفَعِّل الدفاعات الرئيسية للطلبات والاستجابات، ويحد من الموارد التي يمكن للمهاجم استهلاكها، ويترك واجهات التحكم الاختيارية معطلة. يمكنك ضبط هذه الإعدادات الافتراضية لتطبيق حقيقي، لكن ليس عليك اكتشاف كل حماية قبل وصول الطلب الأول.

الأمان بشكل افتراضي لا يعني الأمان بدون سياق. الشهادات، وتفويض التطبيقات، وسياسة الشبكة، والأسرار، واستجابة الحوادث لا تزال من مسؤولية المشغل. وظيفة Webship هي جعل نقطة البداية الآمنة واضحة — وجعل التقليل العرضي من الأمان أصعب.

الحمايات التي تبدأ مفعلة

Webship يتيح ست طبقات في تكوينه الأساسي:

| الطبقة | السلوك الافتراضي | ما يقلله | | --- | --- | --- | | حماية ملفات النقاط | تمنع أجزاء المسار الثابتة المسبوقة بنقطة | التعرض العرضي لملفات البيئة وبيانات المستودع والتكوين المحلي | | جدار حماية تطبيقات الويب | يحجب أنماط الهجوم المعروفة | حقن SQL، البرمجة عبر المواقع (XSS)، التنقل غير المصرح به، فحوصات المسارات الحساسة، حقن الأوامر، تهريب الرؤوس، وترميزات الطلبات غير المدعومة | | ضوابط هجمات الحرمان من الخدمة (DDoS) | يعمل في الوضع العادي مع حالة عميل محدودة | فيضانات الطلبات، تتبع غير محدود، واستنزاف الموارد القابل للتجنب | | تحدي البوت | يستخدم ملف تعريف ارتباط للتحدي موقع | إساءة استخدام آلية منخفضة التكلفة ومسح متكرر | | رؤوس أمان الاستجابة | يضيف سياسة متشددة للمتصفح | ارتباك نوع المحتوى (MIME)، التأطير، تسرب المراجع، القدرات الخطرة للمتصفح، وتحميل المحتوى بشكل واسع | | درع واجهة برمجة التطبيقات | يستخدم وضع الحجب ويرفض المسارات غير المعروفة بمجرد تحديد عقد واجهة برمجة التطبيقات | نقاط النهاية الظلية، الأساليب غير المقصودة، أنواع المحتوى غير المتوقعة، والمتطلبات الغائبة للتفويض |

يضع جدار الحماية من نوع WAF الافتراضي أيضًا حدودًا صارمة لما يقوم بفحصه: 32 كيلوبايت من رؤوس الطلبات، مسار بحجم 2,048 بايت، وجسم طلب بحجم 1 ميجابايت. هذه حدود أمنية، وليست مفاتيح أداء عشوائية. إذا كانت التطبيقات بحاجة بشكل مشروع إلى طلبات أكبر، فقم بزيادة الحد ذي الصلة لذلك التطبيق واختبر النتائج بدلًا من تعطيل الفحص على مستوى النظام.

يبدأ حماية DDoS في الوضع الطبيعي عند 600 طلب في الدقيقة مع سماح بانفجار يصل إلى 100 لكل مفتاح عميل. جدول حالة العميل محدود بـ 65,536 إدخالًا. هذه القيم هي خط أساس، وليست نموذج حركة مرور عالمي: يجب ألا تشارك واجهة برمجة تطبيقات عامة، أو خدمة تنزيل، أو لوحة إدارة داخلية نفس الحدود الخاصة بالتطبيق.

حمايات المتصفح هي جزء من الأساس

سياسة رأس الاستجابة الخاصة بـ Webship مفعلة حتى عندما ينسى التطبيق إضافة سياسته الخاصة. الافتراضي يشمل:

  • خيارات نوع المحتوى X: nosniff;
  • سياسة رفض الإطار؛
  • سياسة المراجع: عدم الإحالة;
  • أمان النقل الصارم لمدة سنة واحدة، بما في ذلك النطاقات الفرعية؛
  • سياسة أمان المحتوى محدودة بالمحتوى من نفس المصدر، مع قيود على الإطارات وURI القاعدة؛
  • سياسة الأذونات التي تعطل الوصول إلى تحديد الموقع والميكروفون والكاميرا.

هذه الإعدادات الافتراضية مقصود بها أن تكون مقيدة. راجع HSTS قبل تطبيقه على نطاق يحتوي على نطاقات فرعية غير جاهزة بالكامل لـ HTTPS. راجع سياسة أمان المحتوى (Content-Security-Policy) قبل أن تقوم أي تطبيق بتحميل السكربتات، أو الأنماط، أو الخطوط، أو الصور، أو الاتصالات من مصادر أخرى. يجب أن يفشل الإعداد الآمن بشكل واضح أثناء النشر، وليس أن يتم تخفيفه بصمت في الإنتاج.

تظل الأسطح الاختيارية مغلقة

Webship لا يكشف عن كل ميزة لمجرد أن الملف الثنائي يحتوي عليها. إعادة التوجيه العكسي، WebTransport، نقاط النهاية الخاصة بالمراقبة، TLS التلقائي، أصالة الاستجابة، ونقطة التحكم MCP معطلة بشكل افتراضي.

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

المستمع الأساسي يرتبط أيضًا بـ 127.0.0.1. يجب على المشغل اختيار عنوان عام بشكل صريح. هذا الاختيار الواحد يخلق نقطة مراجعة مفيدة لقواعد جدار الحماية، وأذونات الخدمة، وهوية TLS، وطوبولوجيا النشر.

يحتفظ البروكسي العكسي بحدود الثقة

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

قم بتمكين إنهاء TLS فقط عندما يجب على Webship فحص طلبات HTTP، التوجيه حسب المسار، تطبيق سياسة WAF وAPI، إعادة كتابة الرؤوس، أو تخزين الاستجابات مؤقتًا. إنهاء الاتصال ليس أقل أمانًا بطبيعته؛ إنه ينقل حدود الثقة. القرار المهم هو أي جهاز يُسمح له برؤية النص الصريح ولماذا.

لتمرير البيانات له حدود وظيفية أيضًا. تعتمد توجيه TCP على ClientHello SNI لأن طلب HTTP مشفر. تمرير البيانات HTTP/3 يتطلب من المسارات مشاركة أصل UDP واحد. إذا كنت بحاجة إلى أمان واعٍ بالمحتوى عند الحافة، فأنهِ TLS هناك واحمِل مرحلة الحافة إلى الأصل بشكل منفصل.

الخط الأساسي للإنتاج الذي يمكنك مراجعته

المقتطف التالي يجعل الافتراضات المهمة صريحة بدلاً من الاعتماد على الحذف:

listen = "0.0.0.0:443"
deny_dotfiles = true

[tls]
unknown_sni = "reject"

[ddos]
enabled = true
mode = "normal"
requests_per_minute = 600
burst = 100
block_seconds = 60
max_tracked_clients = 65536

[security]
enabled = true
rate_limit_max_entries = 65536

[security.waf]
enabled = true
mode = "block"
sqli = true
xss = true
traversal = true
sensitive_paths = true
header_abuse = true
max_header_bytes = 32768
max_path_bytes = 2048
max_body_bytes = 1048576

[security.response_headers]
enabled = true
nosniff = true
frame_deny = true
referrer_no_referrer = true
hsts = "max-age=31536000; includeSubDomains"
content_security_policy = "default-src 'self'; frame-ancestors 'none'; base-uri 'self'"
permissions_policy = "geolocation=(), microphone=(), camera=()"

على مستمع متعدد النطاقات، unknown_sni = "reject" يمنع اسم مضيف غير معروف من الحصول على شهادة المستمع الافتراضية. المستمعون الذين يستخدمون TLS التلقائي في Webship يرفضون بالفعل الأسماء غير المعروفة حتى تتوفر شهادة.

التحقق هو وسيلة للتحكم في الأمان

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

مسار التكوين MCP المصادق عليه يضيف حارسًا آخر: فهو يرفض التغييرات الحية التي من شأنها تعطيل WAF نشط، أو طبقة DDoS، أو درع API، أو تحدي البوت، أو سياسة مصادقة الحافة، أو طبقة رأس الاستجابة. تمنع فحوصات الإصدار مسؤول واحد من الكتابة فوق نسخة تكوين أحدث. إعدادات المرتبطة بالعملية لا تزال تتطلب إعادة تشغيل بدلاً من التظاهر بأن تغييرًا جزئيًا مباشرًا قد نجح.

هذا تمييز مفيد. الإعدادات الافتراضية الآمنة تحمي عملية نشر جديدة. التحقق من الصحة التبادلي والتحديثات المحمية تحمي عملية تشغيل قائمة.

ما هي العمليات التي لا تزال بحاجة إلى قرار

قبل تعريض Webship للإنترنت:

  1. قم بتكوين هوية TLS موثوقة وحماية المفتاح الخاص.
  2. تعيين معالجة SNI غير المعروفة لتكوين المستمع.
  3. تأكد من أن HSTS و Content-Security-Policy تتطابق مع كل تطبيق ونطاق فرعي.
  4. حدد نقاط نهاية درع API، والأساليب المقبولة، وأنواع المحتوى، ومتطلبات التفويض.
  5. أضف حدود سرعة مخصصة لكل مسار بدلاً من الاعتماد فقط على الأساس العالمي.
  6. تمكين المصادقة على الحافة للمضيفين أو المسارات المحمية واستخدام رموز قصيرة العمر.
  7. احتفظ بـ MCP ومستمعي المراقبة خاصين، ومصادق عليهم، ومنفصلين عن حركة المرور العامة.
  8. قم بتشغيل Webship باستخدام حساب مخصص غير متميز، وجذر تطبيق فقط للقراءة حيثما أمكن، وفقط القدرات التي يحتاجها نظام التشغيل.
  9. تحقق من صحة التكوين قبل النشر، ثم اختبر حركة المرور المحظورة والمسموح بها في بيئة تجريبية.
  10. راقب أحداث تدقيق الأمان وتدرّب على التحول من الوضع العادي إلى وضع الهجوم أو الإغلاق.

إعداد افتراضي أكثر أمانًا هو بداية، وليس ادعاءً

لا يمكن لأي خادم ويب أن يقرر أي المستخدمين يجب أن يروا فواتيرك، أو أي المصادر يمكنها استدعاء واجهة برمجة التطبيقات الخاصة بك، أو مدى سرعة قبول نقطة نهاية عملك للطلبات. تتطلب هذه الضوابط معرفة بالتطبيق.

Webship يوفر الطبقة السفلية: محللات محدودة، تكوين صارم، رؤوس استجابة دفاعية، فحص الطلبات، ضوابط إساءة الاستخدام، وواجهات اختيارية مغلقة. النتيجة ليست «الأمن محلول». إنها فجوة أصغر بين تثبيت خادم وتشغيله بمسؤولية.

راجع الوثائق الكاملة Webship قبل نشر الإنتاج. يظل مخطط التكوين والملف التنفيذي الجاري المصادر الموثوقة للنسخة الدقيقة التي تعمل بها.