Home Knowledge base Skyline Cloud كيفية إعداد جدار حماية باستخدام firewalld على أوبونتو 22.04/24.04 KNOWLEDGE BASE

كيفية إعداد جدار حماية باستخدام firewalld على أوبونتو 22.04/24.04

دليل عملي ودقيق لإعداد جدار حماية باستخدام firewalld على أوبونتو — التثبيت، والتعامل مع المناطق (zones)، وفتح الخدمات والمنافذ، وكتابة القواعد الغنية (rich rules)، وتطبيق التغييرات بأمان على خادم VPS إنتاجي.

يُعدّ جدار الحماية خط الدفاع الأول لأي خادم متصل بالإنترنت. على نظام لينكس، يوفّر firewalld واجهة سهلة قائمة على المناطق (zones) فوق محرّك النواة nftables/iptables، مما يتيح لك تغيير القواعد أثناء التشغيل دون قطع الاتصالات القائمة. يوضّح هذا الدليل كيفية تثبيت وإعداد firewalld على أوبونتو 22.04 أو 24.04 LTS، وهو مثالي عند تأمين خادم VPS أو خادم سحابي مُدار قبل تعريضه للإنترنت العام.

المتطلبات المسبقة

  • خادم أوبونتو 22.04/24.04 مع مستخدم غير الجذر (root) يملك صلاحيات sudo.
  • وصول عبر SSH. أبقِ جلسة SSH الحالية مفتوحة أثناء إعداد جدار الحماية، حتى تتمكن من الاستعادة في حال أغلقت الوصول على نفسك بالخطأ.

الخطوة 1 — تثبيت وتشغيل firewalld

يأتي أوبونتو افتراضيًا بـ ufw وليس firewalld. إذا كان ufw نشطًا، عطّله أولًا لتجنّب تنازع مديرَين على المحرّك نفسه:

sudo systemctl disable --now ufw

ثم ثبّت firewalld وفعّله:

sudo apt update
sudo apt install firewalld -y
sudo systemctl enable --now firewalld

تأكّد من أنه يعمل:

sudo firewall-cmd --state

ينبغي أن ترى running.

الخطوة 2 — فهم المناطق (Zones)

يجمّع firewalld القواعد ضمن مناطق (zones)، تمثّل كل واحدة مستوى ثقة لاتصال شبكي. تحدّد منطقتك النشطة أي حركة مرور مسموح بها. أكثر المناطق شيوعًا هي:

المنطقة الاستخدام النموذجي
drop إسقاط كل الحركة الواردة دون أي رد (الأكثر تقييدًا)
block رفض الوارد مع رسالة ICMP
public الافتراضي للشبكات غير الموثوقة؛ الخدمات المختارة فقط مسموح بها
internal الشبكات الداخلية الموثوقة
trusted السماح بكل الحركة (الأقل تقييدًا)

تحقّق من المنطقة الافتراضية والمناطق النشطة:

sudo firewall-cmd --get-default-zone
sudo firewall-cmd --get-active-zones

على خادم جديد تكون المنطقة الافتراضية عادةً public، وهو الخيار الصحيح لـ VPS متصل بالإنترنت. اعرض كل ما هو مسموح به فيها حاليًا:

sudo firewall-cmd --zone=public --list-all

الخطوة 3 — التشغيل اللحظي مقابل الدائم: المفهوم الأساسي

يُطبَّق كل تغيير افتراضيًا على الإعداد اللحظي (runtime)، الذي يُفقَد عند إعادة التحميل أو إعادة التشغيل. لجعل التغيير دائمًا، أضِف --permanent. والتغييرات الدائمة لا تسري حتى تعيد التحميل.

سير العمل الآمن هو: الاختبار في الوضع اللحظي ثم التثبيت الدائم. وأنظف طريقة لتثبيت إعداد لحظي يعمل بنجاح هي:

sudo firewall-cmd --runtime-to-permanent

أو أضِف --permanent لكل قاعدة ثم أعِد التحميل:

sudo firewall-cmd --reload

يعيد --reload قراءة القواعد الدائمة دون قطع الاتصالات القائمة — تبقى جلسة SSH لديك حيّة.

الخطوة 4 — السماح بـ SSH قبل أي شيء آخر

قبل إحكام جدار الحماية، تأكّد من السماح بـ SSH، وإلا فسيفشل اتصالك التالي. تغطّي خدمة ssh المنفذ الافتراضي 22:

sudo firewall-cmd --permanent --zone=public --add-service=ssh

إذا كنت تشغّل SSH على منفذ مخصّص (مثلًا 2222)، افتح ذلك المنفذ بدلًا من ذلك:

sudo firewall-cmd --permanent --zone=public --add-port=2222/tcp

طبّق التغيير:

sudo firewall-cmd --reload

الخطوة 5 — فتح الخدمات لتطبيقاتك

يعرف firewalld مئات الخدمات المعرَّفة مسبقًا بالاسم. اعرضها بـ firewall-cmd --get-services. لخادم ويب نموذجي، اسمح بـ HTTP و HTTPS:

sudo firewall-cmd --permanent --zone=public --add-service=http
sudo firewall-cmd --permanent --zone=public --add-service=https
sudo firewall-cmd --reload

إذا كنت تستضيف بريد الأعمال على الجهاز نفسه، افتح منافذ التسليم (submission) و IMAP ذات الصلة:

sudo firewall-cmd --permanent --zone=public --add-service=smtp-submission
sudo firewall-cmd --permanent --zone=public --add-service=imaps
sudo firewall-cmd --reload

لفتح منفذ اعتباطي لا تغطّيه خدمة مسمّاة، استخدم --add-port مع البروتوكول:

sudo firewall-cmd --permanent --zone=public --add-port=8080/tcp
sudo firewall-cmd --reload

الخطوة 6 — إزالة القواعد

لإغلاق خدمة أو منفذ، استبدل add بـ remove ثم أعِد التحميل:

sudo firewall-cmd --permanent --zone=public --remove-service=http
sudo firewall-cmd --permanent --zone=public --remove-port=8080/tcp
sudo firewall-cmd --reload

الخطوة 7 — القواعد الغنية (Rich Rules) للتحكّم الدقيق

تتيح لك القواعد الغنية التعبير عن شروط لا تستطيع الخدمات البسيطة تحقيقها — مثل تقييد الوصول حسب عنوان IP المصدر. للسماح بـ SSH من شبكة مكتبك فقط ورفضه في كل مكان آخر، أزِل أولًا خدمة ssh العامة، ثم أضِف قاعدة غنية:

sudo firewall-cmd --permanent --zone=public --remove-service=ssh
sudo firewall-cmd --permanent --zone=public \
  --add-rich-rule='rule family="ipv4" source address="203.0.113.10/32" service name="ssh" accept'
sudo firewall-cmd --reload

اختبر القاعدة الجديدة في الوضع اللحظي أولًا (دون --permanent) وتأكّد من أنك ما زلت قادرًا على الاتصال من عنوان IP المسموح به قبل تثبيتها دائمًا. يمكنك أيضًا تحديد معدّل للخدمة لإبطاء محاولات التخمين العنيف (brute-force):

sudo firewall-cmd --permanent --zone=public \
  --add-rich-rule='rule service name="ssh" limit value="5/m" accept'

الخطوة 8 — التحقّق والتدقيق

اعرض الحالة النهائية لمنطقتك للتأكّد من أن كل شيء كما هو مقصود:

sudo firewall-cmd --zone=public --list-all

تحقّق من الإعداد الدائم بحثًا عن أخطاء في الصياغة:

sudo firewall-cmd --check-config

الاستعادة من الإغلاق الذاتي للوصول

إذا قطع تغييرٌ ما وصولك، فإن التغيير اللحظي يختفي عند إعادة التشغيل — لذا فإن إعادة تشغيل قسري من وحدة تحكّم مزوّدك تعيد الحالة الدائمة السابقة. والأفضل من ذلك، اعمل عبر جلسة وحدة تحكّم يوفّرها لك مزوّدك، أو جهّز تراجعًا مؤقتًا (rollback) قبل التغييرات المحفوفة بالمخاطر. وهنا تحديدًا يساعد التشغيل على منصّة سحابية مُدارة: تحتفظ بوصول وحدة تحكّم خارج النطاق (out-of-band) ولقطات (snapshots) بحيث لا تتحوّل قاعدة سيّئة الإعداد إلى خادم معطّل.

الخاتمة

لديك الآن إعداد firewalld يعمل: مناطق لمستويات الثقة، وخدمات ومنافذ مسمّاة لتطبيقاتك، وقواعد غنية للتقييد حسب المصدر، وسير عمل آمن من اللحظي إلى الدائم. أبقِ مجموعة القواعد في حدّها الأدنى — افتح فقط ما تحتاجه — وأعِد تدقيقها كلما أضفت خدمة جديدة.

هل تريد هذا التأمين على بنية تحتية تبقى داخل المملكة، مع إقامة بيانات متوافقة مع PDPL/NCA ودعم عربي محلي؟ أنشئ خادم VPS أو خادمًا سحابيًا مع Skyline Cloud وطبّق هذه الخطوات في دقائق. أنشئ حسابك وابدأ الآن.

SKYLINE Engineering

@skyline

The engineering team at SKYLINE Industrial Solutions. We publish field-tested guides drawn from real KSA and GCC deployments.

See author profile
SKYLINE engineering services

Need this implemented for you?

Reading is free — building it right takes a team. SKYLINE engineers ship Skyline Cloud for Aramco vendors, banks, hospitals and government agencies across Saudi Arabia. Talk to us before you start.

Aramco Approved Contractor ISO 9001 · ISO 27001 SAMA CSF aligned NCA ECC ready 247+ KSA clients

Comments

0 total · 0 threads
Be the first to leave a comment.