لقد انتهيت للتو من نشر شبكة CDN عالية الدفاع لعميلي، وتعطل الموقع الإلكتروني مباشرة. الشاشة البيضاء في الخلفية، وشكاوى المستخدمين مثل رقاقات الثلج المتطايرة. التحقق من السجلات، رجل جيد، جدار حماية الخادم إلى عقد CDN محجوب - هذا المشهد يمكن أن أقابله سبع أو ثماني مرات في السنة.
إن شبكات CDN عالية الدفاع وجدران حماية الخوادم ليست عدواً طبيعياً على الإطلاق، ولكن سوء التهيئة يمكن أن يضعهما في مواجهة بعضهما البعض. تعتقد العديد من الفرق أن شراء خدمة الحماية أمر جيد، ونتيجة لذلك، أصبحت جدران الحماية الخاصة بهم أكبر المهاجمين. اليوم سنقوم بكسر الفرك لتوضيح كيفية جعل هذين الأخوين يتعايشان بسلام.
لماذا كانت هناك حرب أهلية؟شبكات CDN هي وكلاء بطبيعتها، وتتم إعادة توجيه كل حركة المرور من عقد CDN. إذا كان جدار الحماية الخاص بك لا يزال في وضع القائمة البيضاء لعناوين IP، والذي سيصدر فقط عناوين IP للمستخدمين الحقيقيين، فسيتم حظر جميع الطلبات من عقد CDN على أنها قطاع طرق. لقد وجدت واقعيًا أن أكثر من 601 تعارضات تكوين 60% ترجع إلى هذا.
وقع أحد عملاء التجارة الإلكترونية في هذه الحفرة العام الماضي. فقد استخدموا حزمة حماية CDN07، لكنهم نسوا ضبط قواعد جدار حماية الخادم. في يوم العرض الترويجي، تم حظر جميع عقد CDN بواسطة جدار الحماية الخاص بهم، وخسروا مباشرةً ملايين الطلبات. لا تصدق هراء "التهيئة الافتراضية كافية"، يجب تعديل الأمان والتوافر بأيديكم.
الحل الحقيقي هو المصادقة ثنائية الاتجاه.. من المهم أن يتعرف كل من جدار الحماية على عقد CDN وخدمة CDN على خوادم الواجهة الخلفية. إليك خطة تهيئة قمت بصقلها في مشروع مالي، واتباعها سيجنبك مزالق 99%.
دعونا نتناول مشكلة القائمة البيضاء الأكثر ضررًا أولاً. يقوم مزودو خدمة CDN السائدة بجعل مقاطع IP الخاصة بالعقدة عامة، والتي يجب مزامنتها مع قائمة جدار الحماية المسموح بها في الوقت الفعلي. خذ CDN5 على سبيل المثال، يتم تحديث مقاطع IP للعقدة الآسيوية الخاصة بهم أسبوعيًا، يجب عليك كتابة برنامج نصي للزحف الموقوت:
إذا كنت تستخدم Cloudflare أو CDN07 أو غيرها من الخدمات الدولية، فإن مقاطع IP تتغير بشكل متكرر. من الأفضل استخدام واجهة برمجة التطبيقات الخاصة بهم لتحديثها ديناميكيًا. 08Host العقد المحلية أكثر استقرارًا، فقط قم بتحديثها مرة واحدة في الشهر، ولكن تذكر أن تقوم بإعداد إنذارات الاستثناءات - لقد تعرضت لانقطاع الخدمة لمدة نصف ساعة بسبب التأخير في تحديث قاعدة بيانات IP.
هناك طريقة أكثر تقدمًا تتمثل في استخدام رأس XFF للتحقق الثانوي. يقوم جدار الحماية بإصدار عناوين IP الخاصة بعقدة CDN فقط، بينما تتحقق طبقة التطبيق من المستخدم الحقيقي عبر رأس X-Forwarded-For. وبهذه الطريقة حتى لو تم اختراق القائمة البيضاء، فهناك حاجز ثانٍ:
يجب تنقيح قواعد جدار الحمايةلقد رأيت الكثير من الفرق تغلق جدران الحماية لتوفير المال. لقد رأيت الكثير من الفرق تقوم بإيقاف تشغيل جدار الحماية لتوفير المال، وهو نفس الشيء مثل ترك باب الخزنة مفتوحاً على مصراعيه. النهج الصحيح هو تقييد الوصول إلى عقد CDN على المنافذ الضرورية فقط. على سبيل المثال، تفتح خوادم الويب 80/443 فقط، ولا تتعرض خوادم قواعد البيانات لشبكة CDN. باستخدام iptables يمكن كتابتها بهذه الطريقة:
لا تنس التحقق من توافق البروتوكول. تعترض بعض جدران الحماية رؤوس بروتوكول CDN الخاصة. عند تصحيح وظيفة WAF الخاصة بـ CDN5 العام الماضي، وجدت أن بصمات الأصابع المضادة للزحف الخاصة بهم تم تصنيفها بشكل خاطئ على أنها أحمال ضارة بواسطة جدار حماية الخادم. لم أكتشف ذلك إلا عندما استخدمت tcpdump لالتقاط الحزم:
الآن أصبح لدى فريقي عادة: في كل مرة على خدمة CDN الجديدة من قبل، بالضرورة أولاً اختبار توافق حركة المرور على الشبكة الداخلية أولاً لاختبار التوافق. ببساطة، هو ببساطة العثور على خادم لعكس حركة مرور بيئة الإنتاج، وتحرير عقد CDN تدريجياً لمراقبة سجلات جدار الحماية.
مراقبة الإنذار أمر ضروري. بعد الانتهاء من التهيئة يجب عليك مراقبة اعتراض جدار الحماية في الوقت الفعلي. أوصي باستخدام مكدس ELK لجمع سجلات iptables وتعيين إنذارات العتبة. قم بالإخطار على الفور عندما يتم اعتراض عنوان IP الخاص بعقدة CDN لعدد غير طبيعي من المرات:
الكلمة الأخيرة حول اختيار العلامة التجارية: CDN5 لديها أقل عدد من عناوين IP للعقدة، وأفضل إدارة لجدار الحماية ولكن قدرة الحماية العامة؛ CDN07 لديها معظم العقد العالمية، ولكن يتغير مقطع IP بشكل متكرر وتكاليف الصيانة مرتفعة؛ حل 08Host التوافقي أكثر ملاءمة للمؤسسات متوسطة الحجم، ويمكن التحكم في زمن الوصول المحلي في غضون 30 مللي ثانية. إذا كنت تسعى لتحقيق الأمان المطلق، يمكنك شراء حزمة العقدة الحصرية الخاصة بهم - على الرغم من أنها أغلى بثلاث مرات ولكن لا يتعين عليك مشاركة قطاعات IP، ويمكن تبسيط قواعد جدار الحماية 70%.
في هذه الأيام، حتى شبكات CDN يجب أن "تمنع زملاء الفريق"، وفي النهاية لا يزال هناك نقص في الوعي بالتهيئة. لقد رأيت الكثير من الفرق التي تستخدم شبكات CDN عالية الدفاع كحل سحري ولكنها تتجاهل أبسط ضبط جدار الحماية. تذكر مبدأ: لا يمكن أن يكون لسلسلة الأمان نقطة فشل واحدة، بل لا يمكن أن تتناقض مع نفسها. في المرة القادمة قبل النشر، قم بتشغيل البرنامج النصي للتهيئة في هذه المقالة، يمكن أن يوفر عناء الاستيقاظ من المنبه في منتصف الليل.
يجب أن تسمح البنية الممتازة حقًا لشبكة CDN عالية الدفاع وجدران حماية الخوادم بالعمل معًا مثل اليد اليمنى واليسرى. واحد في المحيط لحمل فيضان DDoS، وإنترانت لسحب تسرب الأسماك. طالما أن التكوين المناسب، يمكن للجمع بينهما أن يجعل المهاجم يائسًا تمامًا - أنا مسؤول عن أعلى نظام مالي لحمل هجوم 800 جيجابت في الثانية، لم يهتز منحنى الأعمال قليلاً.
إذا كان التكوين الخاص بك صحيحًا وما زلت تواجه مشاكل، فمن المحتمل أن تكون معلمات مكدس TCP بحاجة إلى التحسين. حركة مرور cdn متقلبة للغاية، لذلك قد لا تصمد إعدادات المزامنة المتراكمة والمهلة الافتراضية. ولكن هذا موضوع آخر، سأتناول بالتفصيل ممارسات ضبط TCP بعد خمسمائة إعجاب.

