بدون جدار ناري، لا توجد قواعد أو قيود على حركة المرور في شبكتك، وهذا يؤدي إلى عدد من النتائج السلبية. يأتي نظام Linux مع أداة تكوين جدار ناري افتراضية، وهي Uncomplicated Firewall (UFW). ولكن كيف يمكنك إعداد جدار ناري UFW؟ استرخ واستمتع، فهذا البرنامج التعليمي يغطي كل شيء!
في هذا البرنامج التعليمي، ستتعلم كيفية تكوين UFW وإعداد جدار ناري على نظام Linux الخاص بك لتأمين شبكتك وصد الأعمال الخبيثة.
هل أنت جاهز؟ استمر في القراءة للبدء!
المتطلبات المسبقة
سيكون هذا البرنامج التعليمي عرضًا تطبيقيًا. إذا كنت ترغب في متابعة الخطوات، تأكد من وجود ما يلي:
- جهاز Ubuntu – يستخدم هذا البرنامج التعليمي Ubuntu 20.04 LTS، ولكن توزيعات Linux الأخرى ستعمل أيضًا.
تثبيت UFW وتمكين اتصال IPv6
على الرغم من أن UFW يأتي مع نظام Ubuntu الخاص بك، إلا أنه لا يتم تثبيت UFW بشكل افتراضي. قم أولاً بتثبيت UFW باستخدام مدير الحزم apt
وتكوينه للسماح بالاتصالات عبر IPv6.
1. افتح الطرفية الخاصة بك وقم بتشغيل الأمر apt update
أدناه لتحديث فهرس الحزم المحلية الخاص بك. يقبل الأمر جميع الرموز (-y
) خلال التحديث لتقليل تدخل المستخدم.

2. بعد ذلك، قم بتشغيل الأمر أدناه لتثبيت UFW (install uwf
) على نظامك مع قبول جميع الرموز (-y
) خلال التثبيت.

3. افتح ملف تكوين UFW (/etc/default/ufw) باستخدام محرر النص المفضل لديك. تدعم UFW IPv6، ولكن تحتاج إلى التأكد من تكوين جدار الحماية لقبول الاتصالات عبر IPv6.
إذا كان لديك IPv4 فقط ممكّن، فإنك لا تزال تترك نفسك عرضة لهجمات IPv6.
4. انتقل لأسفل إلى المتغير IPV6 وقم بتعيين القيمة إلى نعم، كما هو موضح أدناه، ثم احفظ التغييرات واخرج من المحرر

5. في النهاية، قم بتشغيل الأمر أدناه لتعطيل وإعادة تمكين UFW. يقوم الأمر بإعادة تشغيل خدمة UFW بحيث يمكن للتغييرات أن تأخذ مفعولها.
بعد اكتمال الأمر، يمكن لجدار الحماية الخاص بك الآن كتابة مجموعات قواعد جدار الحماية لكل من IPv4 و IPv6.
تكوين السياسات الافتراضية لقواعد جدار الحماية
إذا كنت للتو تبدأ باستخدام UFW، يُوصى بتعيين سياسة افتراضية لقواعدك. تُطبق السياسات الافتراضية على سلسلة لم يتم تعريف قواعد محددة بها بعد.
قم بتعيين UFW لرفض جميع الاتصالات الواردة والسماح بجميع الاتصالات الصادرة. نتيجة لذلك، يتم رفض أي شخص يحاول الوصول إلى جهازك من العالم الخارجي، بينما يمكنك الاتصال بأي موقع وخادم بحرية.
تشغيل الأمر ufw
أدناه لـ رفض
جميع الاتصالات الواردة
بشكل افتراضي
.

الآن قم بتشغيل الأمر التالي لـ السماح
بجميع الاتصالات الصادرة
بشكل افتراضي
.

السماح باتصالات SSH على جدار الحماية UFW
لقد قمت للتو بتعيين السياسات الافتراضية على جدار الحماية UFW الخاص بك لرفض جميع حركة المرور الواردة، وقاعدة “السماح بالكل والرفض للكل” هي إعداد جيد للمستخدم العادي. ولكن ماذا لو كنت تقوم بتشغيل خادم؟ ستحتاج إلى السماح بحركة مرور معينة داخل وخارج. سيقوم السماح باتصال SSH على جدار الحماية UFW بإتاحة حركة مرور معينة داخل وخارج.
ستقوم بإعداد خادم SSH يسمح باتصالات SSH الواردة على منفذ 22. ولكن لماذا المنفذ 22 وليس أي منفذ آخر؟ في أنظمة Unix-like، يستمع سائق SSH على المنفذ 22 افتراضيًا، لذلك من الجيد استخدام منفذ SSH الافتراضي لتسهيل الأمور قليلاً.
1. قم بتشغيل الأوامر أدناه لتثبيت خادم OpenSSH (install openssh-server
) على نظامك وبدء خادم OpenSSH (start ssh
).
2. الآن قم بتشغيل الأمر أدناه للسماح باتصالات SSH الواردة. من دون تحديد المنفذ 22 سيكون كافيًا حيث يعلم UFW أي منفذ هو لـ SSH.

يحتوي ملف /etc/services على قائمة بجميع الخدمات المتاحة في نظامك. افتح الملف على محرر النصوص الخاص بك، انتقل إلى ssh وانظر إلى رقم المنفذ (22) كجزء من وصف الخدمة، كما هو موضح أدناه.

ولكن ربما تفضل تحديد رقم المنفذ (22
) للسماح بـ SSH. إذا كنت كذلك، قم بتشغيل الأمر التالي بدلاً من ذلك.
3. الآن قم بتشغيل الأمر التالي لتمكين UFW.
اكتب Y في الرسالة التأكيدية، كما هو موضح أدناه، واضغط Enter لمتابعة تشغيل الأمر. سيبدأ UFW الآن في تصفية الحزم على نظامك.

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

إذا قمت بتشغيل الأمر باستخدام الخيار numbered
بدلاً من ذلك، سترى النتيجة أدناه. يمكنك رؤية قائمة بالقواعد المرقمة وحالتها المقابلة ALLOW أو DENY.

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

الآن، قم بتشغيل أحد الأوامر التالية للسماح باتصالات HTTPS الواردة.

السماح باتصالات من نطاق المنفذ وعنوان IP المحدد
تستخدم بعض التطبيقات عدة منافذ لتقديم خدماتها. وربما يكون لديك مجموعة من المنافذ لفتحها أو تحتاج إلى السماح بالاتصال من عنوان IP محدد. في هذه الحالة، أضف المزيد من قواعد جدار الحماية UFW.
قم بتشغيل الأوامر أدناه للسماح بالاتصالات الواردة على المنافذ من 5001 إلى 5009. يجب عليك دائمًا تحديد البروتوكول (tcp
أو udp
) بعد نطاق المنافذ الذي تنطبق عليه القواعد لأنه لا تستخدم جميع المنافذ بواسطة كل من البروتوكولين.
على سبيل المثال، المنافذ الشائعة المستخدمة في نقل بيانات TCP تتضمن 80 (HTTP) و 443 (HTTPS). ومع ذلك، تتضمن المنافذ الشائعة لبروتوكول UDP 53 (DNS) و 67/68 (DHCP).

قم بتشغيل الأمر أدناه بدلاً من ذلك إذا كنت تفضل السماح باتصالات SSH من عنوان IP محدد. يتيح الأمر اتصالات SSH (port 22
) فقط من عنوان IP 192.168.1.2
.

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

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

2. بعد ذلك، قم بتشغيل الأمر أدناه لـ حذف
القاعدة رقم 4
، وهي نطاق المنفذ 5001:5010/tcp
.

3. قم بتشغيل الأمر أدناه لـ حذف
قاعدة بواسطة اسمها الفعلي بحالة allow
. في هذا المثال، يمكنك حذف قاعدة http
بتشغيل الأمر التالي.

4. الآن قم بتشغيل الأمر التالي لـ حذف
قاعدة عن طريق تحديد رقم المنفذ (443
) بحالة allow
.

5. في النهاية، قم بإعادة تشغيل الأمر التالي كما فعلت في الخطوة الأولى لعرض جميع القواعد.
كما هو موضح أدناه، فإن قواعد نطاق المنفذ 5001:5010/tcp
، وقاعدة http
، ومنفذ 443
قد اختفت الآن.

إعادة تعيين جدار الحماية UFW
قد تكون هناك أوقات عندما تحتاج إلى إعادة تعيين UFW إلى إعداداته الافتراضية، مثل بعد تكوين مجموعة كبيرة من القواعد. قد تغير التحديث تكوينك، مما يتطلب منك إعادة تكوين UFW وربما البدء من جديد.
قم بتشغيل الأمر ufw reset
أدناه لإعادة تعيين جميع قواعد جدار الحماية الخاصة بك إلى إعداداتها الافتراضية. يقوم هذا الأمر بتعطيل UFW وحذف جميع قواعد جدار الحماية الحالية.
اكتب “Y” واضغط على Enter لمتابعة إعادة ضبط جدار الحماية UFW الخاص بك.

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

الختام
خلال هذا البرنامج التعليمي، لقد أدركت أن إعداد جدار حماية ليس بالأمر المرعب عند استخدام UFW. يجب أن تكون الآن تملك فهمًا جيدًا لكيفية إعداد وتنفيذ قواعدك الخاصة باستخدام UFW على Ubuntu.
الآن، لماذا لا تبني على هذا المعرفة الجديدة من خلال معرفة المزيد حول أمان UFW وDocker على جهاز Linux؟