كيفية إعداد جدار الحماية UFW على نظام Linux

بدون جدار ناري، لا توجد قواعد أو قيود على حركة المرور في شبكتك، وهذا يؤدي إلى عدد من النتائج السلبية. يأتي نظام 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) خلال التحديث لتقليل تدخل المستخدم.

sudo apt update -y
Updating the System Package

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

sudo apt install ufw -y
Installing UFW on Ubuntu

3. افتح ملف تكوين UFW (/etc/default/ufw) باستخدام محرر النص المفضل لديك. تدعم UFW IPv6، ولكن تحتاج إلى التأكد من تكوين جدار الحماية لقبول الاتصالات عبر IPv6.

إذا كان لديك IPv4 فقط ممكّن، فإنك لا تزال تترك نفسك عرضة لهجمات IPv6.

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

Enabling IPV6 in the UFW Configuration File

5. في النهاية، قم بتشغيل الأمر أدناه لتعطيل وإعادة تمكين UFW. يقوم الأمر بإعادة تشغيل خدمة UFW بحيث يمكن للتغييرات أن تأخذ مفعولها.

بعد اكتمال الأمر، يمكن لجدار الحماية الخاص بك الآن كتابة مجموعات قواعد جدار الحماية لكل من IPv4 و IPv6.

sudo ufw disable && sudo ufw enable

تكوين السياسات الافتراضية لقواعد جدار الحماية

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

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

تشغيل الأمر ufw أدناه لـ رفض جميع الاتصالات الواردة بشكل افتراضي.

sudo ufw default deny incoming
Denying Incoming Network Traffics

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

sudo ufw default allow outgoing
Allowing Outgoing Network Traffics

السماح باتصالات SSH على جدار الحماية UFW

لقد قمت للتو بتعيين السياسات الافتراضية على جدار الحماية UFW الخاص بك لرفض جميع حركة المرور الواردة، وقاعدة “السماح بالكل والرفض للكل” هي إعداد جيد للمستخدم العادي. ولكن ماذا لو كنت تقوم بتشغيل خادم؟ ستحتاج إلى السماح بحركة مرور معينة داخل وخارج. سيقوم السماح باتصال SSH على جدار الحماية UFW بإتاحة حركة مرور معينة داخل وخارج.

ستقوم بإعداد خادم SSH يسمح باتصالات SSH الواردة على منفذ 22. ولكن لماذا المنفذ 22 وليس أي منفذ آخر؟ في أنظمة Unix-like، يستمع سائق SSH على المنفذ 22 افتراضيًا، لذلك من الجيد استخدام منفذ SSH الافتراضي لتسهيل الأمور قليلاً.

1. قم بتشغيل الأوامر أدناه لتثبيت خادم OpenSSH (install openssh-server) على نظامك وبدء خادم OpenSSH (start ssh).

sudo apt install openssh-server -y
sudo systemctl start ssh

2. الآن قم بتشغيل الأمر أدناه للسماح باتصالات SSH الواردة. من دون تحديد المنفذ 22 سيكون كافيًا حيث يعلم UFW أي منفذ هو لـ SSH.

sudo ufw allow ssh
Allowing SSH connection

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

Previewing the /etc/services file

ولكن ربما تفضل تحديد رقم المنفذ (22) للسماح بـ SSH. إذا كنت كذلك، قم بتشغيل الأمر التالي بدلاً من ذلك.

sudo ufw allow 22

3. الآن قم بتشغيل الأمر التالي لتمكين UFW.

sudo ufw enable

اكتب Y في الرسالة التأكيدية، كما هو موضح أدناه، واضغط Enter لمتابعة تشغيل الأمر. سيبدأ UFW الآن في تصفية الحزم على نظامك.

Enabling UFW

4. وأخيرًا، قم بتشغيل أحد الأوامر التالية للتحقق من حالة جدار الحماية UFW الخاص بك.

## يعرض معلومات أكثر تفصيلية، مثل الواجهة و
## تقدم الحزمة الحالي
sudo ufw status verbose
## يظهر كل قاعدة برقم وحالة السماح أو الرفض المقابلة
## يعد الوضع المرقم مفيدًا عندما تحاول حذف مجموعة قواعد هنا وهناك
sudo ufw status numbered

إذا قمت بتشغيل الأمر مع الخيار verbose، سترى إخراجًا مماثلًا للذي أدناه:

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

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

Viewing the UW Firewall status in a numbered list

السماح باتصالات HTTP وHTTPS

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

قم بتشغيل أحد الأوامر التالية للسماح باتصالات HTTP الواردة.

## يستخدم اتصال HTTP منفذ 80 (غير آمن)
sudo ufw allow 80
sudo ufw allow http
Allowing HTTP connections

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

sudo ufw allow https
## يستخدم اتصال HTTP منفذ 443 (آمن)
sudo ufw allow 443
Allowing incoming HTTPS connections.

السماح باتصالات من نطاق المنفذ وعنوان IP المحدد

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

قم بتشغيل الأوامر أدناه للسماح بالاتصالات الواردة على المنافذ من 5001 إلى 5009. يجب عليك دائمًا تحديد البروتوكول (tcp أو udp) بعد نطاق المنافذ الذي تنطبق عليه القواعد لأنه لا تستخدم جميع المنافذ بواسطة كل من البروتوكولين.

على سبيل المثال، المنافذ الشائعة المستخدمة في نقل بيانات TCP تتضمن 80 (HTTP) و 443 (HTTPS). ومع ذلك، تتضمن المنافذ الشائعة لبروتوكول UDP 53 (DNS) و 67/68 (DHCP).

sudo ufw allow 5001:5010/tcp
sudo ufw allow 5001:5010/udp
Allowing traffic on 5001:5010 port range

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

sudo ufw allow from 192.168.1.2 to any port 22
Allowing SSH Connections from Specific IP Address

السماح بحركة المرور من واجهة الشبكة المحددة

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

قم بتشغيل أحد الأوامر أدناه للسماح باتصالات HTTP فقط على واجهات eth0 و wlan0.

## السماح باتصال HTTP فقط على واجهة eth0
sudo ufw allow in on eth0 to any port 80
## السماح باتصال HTTP فقط على واجهة wlan0
sudo ufw allow in on wlan0 to any port 80
Allowing traffic on a specific interface

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

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

1. قم بتشغيل الأمر أدناه للحصول على قائمة مرقمة للقواعد المضافة إلى UFW.

sudo ufw status numbered

احتفظ برقم أو اسم القاعدة في الناتج، مثل الناتج أدناه.

Previewing all the rules

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

sudo ufw delete 4
Deleting a Rule by Rule Number

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

sudo ufw delete allow http
Deleting a Rule by Rule Name (http)

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

sudo ufw delete allow 443
Deleting a Rule by Port Number (443)

5. في النهاية، قم بإعادة تشغيل الأمر التالي كما فعلت في الخطوة الأولى لعرض جميع القواعد.

sudo ufw status numbered

كما هو موضح أدناه، فإن قواعد نطاق المنفذ 5001:5010/tcp، وقاعدة http، ومنفذ 443 قد اختفت الآن.

Checking the firewall rules

إعادة تعيين جدار الحماية UFW

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

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

sudo ufw reset

اكتب “Y” واضغط على Enter لمتابعة إعادة ضبط جدار الحماية UFW الخاص بك.

Resetting UFW

بعد اكتمال إعادة الضبط، ستحصل على تثبيت جديد لـ UFW مع تعطيل كامل، وحتى سياساتك الافتراضية قد اختفت.

الآن قم بتشغيل الأمر أدناه لإعادة تمكين UFW وبدء تكوين قواعد جدار حمايتك من البداية.

sudo ufw enable

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

sudo ufw disable
Disabling UFW firewall

الختام

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

الآن، لماذا لا تبني على هذا المعرفة الجديدة من خلال معرفة المزيد حول أمان UFW وDocker على جهاز Linux؟

Source:
https://adamtheautomator.com/ufw-firewall/