ما هو جدار الحماية وكيف يعمل؟

المقدمة

A firewall is a system that provides network security by filtering incoming and outgoing network traffic based on a set of user-defined rules. In general, the purpose of a firewall is to reduce or eliminate the occurrence of unwanted network communications while allowing all legitimate communication to flow freely. In most server infrastructures, firewalls provide an essential layer of security that, combined with other measures, prevent attackers from accessing your servers in malicious ways.

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

حزم شبكة TCP

قبل مناقشة أنواع مختلفة من جدران الحماية، دعونا نلقي نظرة سريعة على شكل حركة مرور الشبكة لبروتوكول التحكم في النقل (TCP).

تتنقل حركة المرور في شبكة TCP عبر حزم، والتي تعتبر حاويات تتألف من رأس الحزمة – والذي يحتوي على معلومات التحكم مثل عناوين المصدر والوجهة، ومعلومات تسلسل الحزمة – والبيانات (المعروفة أيضًا باسم الحمولة). بينما تساعد المعلومات التحكمية في كل حزمة على ضمان تسليم بياناتها المرتبطة بشكل صحيح، فإن العناصر التي تحتوي عليها توفر أيضًا لجدران الحماية مجموعة متنوعة من الطرق لمطابقة الحزم مقابل قواعد الجدار الناري.

من المهم أن نلاحظ أن استلام حزم TCP الواردة بنجاح يتطلب من المستقبل إرسال حزم تأكيد الصادرة إلى المُرسِل. يمكن استخدام مزيج من المعلومات التحكمية في الحزم الواردة والصادرة لتحديد حالة الاتصال (مثل: جديد، مُنشأ، ذو صلة) بين المُرسِل والمستقبل.

أنواع جدران الحماية النارية

دعنا نناقش بسرعة الأنواع الثلاثة الأساسية من جدران الحماية الشبكية: تصفية الحزم (غير متعرف على الحالة)، ذو الحالة، وطبقة التطبيقات.

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

تستطيع جدران الحماية ذو الحالة تحديد حالة الاتصال للحزم، مما يجعلها أكثر مرونة من جدران الحماية غير متعرفة على الحالة. تعمل عن طريق جمع الحزم ذات الصلة حتى يمكن تحديد حالة الاتصال قبل تطبيق أي قواعد جدار حماية على حركة المرور.

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

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

قواعد جدار الحماية

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

لنفترض أن لديك خادم مع هذه القائمة من قواعد جدار الحماية التي تنطبق على حركة المرور الواردة:

  1. قبول حركة المرور الجديدة والمستقرة الواردة إلى واجهة الشبكة العامة على منفذ 80 و 443 (حركة ويب HTTP و HTTPS)
  2. إسقاط حركة المرور الواردة من عناوين IP للموظفين غير التقنيين في مكتبك إلى منفذ 22 (SSH)
  3. قبول حركة المرور الواردة الجديدة والمستقرة من نطاق عناوين IP في مكتبك إلى واجهة الشبكة الخاصة على منفذ 22 (SSH)

لاحظ أن أول كلمة في كل من هذه الأمثلة إما “accept” أو “reject” أو “drop”. يُحدد هذا الإجراء الذي يجب على جدار الحماية أن يقوم به في حال تطابق حركة مرور الشبكة مع قاعدة. “Accept” يعني السماح بالمرور، “reject” يعني حظر المرور ولكن الرد بخطأ “غير قابل للوصول”، و”drop” يعني حظر المرور وعدم إرسال أي رد. بقية كل قاعدة تتكون من الشرط الذي يتم مطابقة كل حزمة ضده.

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

السياسة الافتراضية

من المعتاد ألا تغطي سلسلة قواعد جدار الحماية كل شرط محتمل بشكل صريح. لهذا السبب، يجب دائمًا تحديد سياسة افتراضية لسلاسل جدار الحماية، والتي تتألف فقط من إجراء (accept، reject، أو drop).

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

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

حركة المرور الواردة والصادرة

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

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

كتابة قواعد الخروج

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

لتكملة قواعد جدار الحماية الواردة في المثال (1 و 3)، من قسم قواعد جدار الحماية، والسماح بالتواصل السليم على تلك العناوين والمنافذ ليتم، يمكننا استخدام هذه القواعد الصادرة:

  1. قبول حركة المرور الصادرة المُنشأة إلى واجهة الشبكة العامة على المنفذين 80 و 443 (HTTP و HTTPS)
  2. قبول حركة المرور الصادرة المُنشأة إلى واجهة الشبكة الخاصة على المنفذ 22 (SSH)

يرجى ملاحظة أنه لا يلزمنا كتابة قاعدة بشكل صريح لحركة المرور الواردة التي تتم إسقاطها (قاعدة الواردة 2) لأن الخادم لا يحتاج إلى إنشاء أو الاعتراف بتلك الاتصالات.

برامج وأدوات جدار الحماية

الآن بعد أن تعرفنا على كيفية عمل جدران الحماية، دعونا نلقي نظرة على الحزم البرمجية الشائعة التي يمكن أن تساعدنا في إعداد جدار حماية فعال. بينما هناك العديد من الحزم الأخرى المتعلقة بجدار الحماية، إلا أن هذه الحزم فعالة وهي تلك التي ستواجهها بشكل أكثر.

أيبتابلز

أيبتابلز هو جدار حماية قياسي مضمن في معظم توزيعات لينكس افتراضيًا (سيبدأ البديل الحديث المسمى nftables في استبداله). في الواقع، إنه واجهة أمامية لخطافات مستوى النواة التي يمكنها التلاعب بكومة الشبكة في لينكس. يعمل عن طريق مطابقة كل حزمة تعبر عن الواجهة الشبكية ضد مجموعة من القواعد لتقرر ما العمل الذي يجب القيام به.

لتعلم كيفية تنفيذ جدار حماية باستخدام أيبتابلز، تفضل بزيارة هذه الروابط:

UFW

UFW، والتي تعني Uncomplicated Firewall، هي واجهة لـ iptables مصممة لتبسيط عملية تكوين جدار ناري.

لمعرفة المزيد حول استخدام UFW، تحقق من هذا البرنامج التعليمي: كيفية إعداد جدار ناري مع UFW على خادم سحابي Ubuntu و Debian.

FirewallD

FirewallD هو حلاً كاملاً لجدار الحماية المتوفر بشكل افتراضي على خوادم CentOS 7. وبالمصادفة، يستخدم FirewallD iptables لتكوين netfilter.

لمعرفة المزيد حول استخدام FirewallD، تحقق من هذا البرنامج التعليمي: كيفية تكوين FirewallD لحماية خادم CentOS 7 الخاص بك.

إذا كنت تستخدم CentOS 7 وتفضل استخدام iptables، فاتبع هذا البرنامج التعليمي: كيفية الانتقال من FirewallD إلى Iptables على CentOS 7.

Fail2ban

Fail2ban هو برنامج لمنع الاختراق يمكنه تكوين جدار الحماية تلقائيًا لحظر محاولات تسجيل الدخول بالقوة العنيفة وهجمات DDOS.

لمعرفة المزيد عن Fail2ban، تحقق من هذه الروابط:

الاستنتاج

الآن بعد أن فهمت كيفية عمل جدران الحماية، يجب أن تبدأ في تنفيذ جدار حماية سيعزز أمان إعداد الخادم الخاص بك باستخدام البرامج التعليمية أعلاه.

إذا كنت ترغب في معرفة المزيد حول كيفية عمل جدران الحماية، تحقق من هذه الروابط:

Source:
https://www.digitalocean.com/community/tutorials/what-is-a-firewall-and-how-does-it-work