العربية

إعداد firewalld على VPS ألما لينكس وروكي لينكس

2 min
استضافة VPS/VDS

firewalld هو مدير الجدار الناري الافتراضي في AlmaLinux 9 وRocky Linux 9. على VPS Linux Infrawire يتيح لك فتح الخدمات اللازمة فقط، وحصر SSH بعنوان IP الخاص بك، وإعادة توجيه المنافذ، دون المساس بقواعد nftables الخام.

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

📋 المتطلبات

  • خادم VPS يعمل بنظام AlmaLinux 9 أو Rocky Linux 9
  • وصول SSH بصلاحية root (تجد عنوان IP وكلمة مرور root في منطقة العميل)
  • جلسة SSH ثانية تبقيها مفتوحة أثناء تعديل القواعد

1. تثبيت firewalld وتشغيله

Bash
dnf install -y firewalld systemctl enable --now firewalld firewall-cmd --state

يجب أن يطبع الأمر الأخير running. المنطقة الافتراضية هي public، وهي تسمح أصلًا بـ SSH وCockpit وعميل DHCPv6 وترفض بقية الاتصالات الواردة.

2. فهم المناطق والخدمات والمنافذ

المنطقة مجموعة قواعد تُطبَّق على واجهة شبكة. الخدمة مجموعة منافذ مسماة (ssh هي 22/tcp، وhttp هي 80/tcp، وhttps هي 443/tcp).

Bash
firewall-cmd --get-default-zone firewall-cmd --get-active-zones firewall-cmd --list-all firewall-cmd --get-services | tr ' ' '\n' | head -20

هناك إعدادان. إعداد Runtime يُطبَّق فورًا ويزول عند إعادة التحميل أو إعادة التشغيل. الإعداد الدائم (--permanent) يُحفظ على القرص لكنه لا يصبح فعّالًا إلا بعد firewall-cmd --reload.

3. فتح الخدمات والمنافذ

Bash
# الخدمات firewall-cmd --permanent --add-service=http firewall-cmd --permanent --add-service=https # منفذ مخصص firewall-cmd --permanent --add-port=8080/tcp # نطاق منافذ firewall-cmd --permanent --add-port=30000-30100/udp # تطبيق الإعداد الدائم firewall-cmd --reload

للإغلاق استخدم الخيار المقابل --remove-service أو --remove-port. أزل خدمة cockpit إن لم تستخدم وحدة التحكم عبر الويب: firewall-cmd --permanent --remove-service=cockpit.

4. السماح بـ SSH من عنوان IP الخاص بك فقط عبر rich rule

تعبّر قواعد rich عن شروط مثل عنوان المصدر. لا تحذف قاعدة SSH العامة قبل التأكد من أن القاعدة المقيّدة تعمل.

Bash
# 1. أضف القاعدة في runtime فقط (استبدلها بعنوان IP العام الخاص بك) firewall-cmd --add-rich-rule='rule family="ipv4" source address="YOUR_IP/32" service name="ssh" accept' # 2. افتح طرفية جديدة وتأكد أن SSH ما زال يعمل من YOUR_IP # 3. اجعلها دائمة ثم أزل خدمة SSH المفتوحة للجميع firewall-cmd --runtime-to-permanent firewall-cmd --permanent --remove-service=ssh firewall-cmd --reload

إذا تغيّر عنوان IP الخاص بك فستفقد الوصول: أبقِ وحدة تحكم VPS متاحة من منطقة العميل كطريق للاسترداد. لعنوان IPv6 اكتب family="ipv6" وعنوان IPv6.

5. إعادة توجيه منفذ

لتحويل الحركة الواردة على المنفذ 80 إلى تطبيق يستمع على 8080 في الخادم نفسه:

Bash
firewall-cmd --permanent --add-forward-port=port=80:proto=tcp:toport=8080 firewall-cmd --reload

للتحويل إلى جهاز آخر أضف toaddr=TARGET_IP إلى خيار forward-port وفعّل masquerading بالأمر firewall-cmd --permanent --add-masquerade. يجب أن تسمح النواة أيضًا بالتمرير، وهو ما يتولاه firewalld عند masquerading.

6. التحقق من الإعداد

Bash
firewall-cmd --list-all firewall-cmd --list-rich-rules firewall-cmd --permanent --list-all ss -tlnp

قارن قائمتي runtime والدائمة: يجب أن تتطابقا بعد إعادة التحميل. من جهاز آخر اختبر منفذًا بالأمر nc -zv VPS_IP 80. الخدمة المستمعة (ss -tlnp) لا يمكن الوصول إليها إلا إذا سمح الجدار الناري بمنفذها.

🛠️ استكشاف الأخطاء

FirewallD is not running: شغّله بالأمر systemctl enable --now firewalld ثم راجع journalctl -u firewalld بحثًا عن الأخطاء.

قاعدة جديدة بلا أثر: استخدمت --permanent دون إعادة تحميل. نفّذ firewall-cmd --reload.

INVALID_SERVICE أو INVALID_ZONE: خطأ إملائي في الاسم. اعرض الأسماء الصحيحة بـ firewall-cmd --get-services و--get-zones.

يُرفض SSH على منفذ مخصص رغم أن المنفذ مفتوح: يجب أن يعرف SELinux المنفذ. نفّذ semanage port -a -t ssh_port_t -p tcp 2222 (ثبّت policycoreutils-python-utils أولًا)، وافتح المنفذ في firewalld، ثم أعد تشغيل sshd.

فقدان الوصول: استخدم وحدة تحكم VPS من منطقة العميل ثم نفّذ firewall-cmd --permanent --add-service=ssh وfirewall-cmd --reload. تجنّب firewall-cmd --panic-on فهو يحجب كل الحركة بما فيها جلستك.


🔒 خادمك الآن يعرض ما تختاره فقط، ويبقى SSH في متناول يدك!

ابقَ على اطلاع بأحدث العروض والخصومات والعروض الترويجية الخاصة.

عرض العروض الترويجية

نستخدم ملفات تعريف الارتباط

نستخدم كوكيز تحليلية لتحسين تجربتك. لا نبيع البيانات لأطراف ثالثة. المزيد في سياسة الخصوصية.