على RHEL 9 / Rocky 9 / Alma 9، firewalld هو واجهة جدار الحماية الافتراضية. على عكس قائمة UFW المسطحة، يجمع firewalld القواعد في zones تُعيّنها للواجهات.
المتطلبات المسبقة
- Rocky 9 / Alma 9 / RHEL 9 مع
sudo. firewalldمثبت (افتراضي).
الخطوة 1: تأكد من تشغيل firewalld
sudo systemctl status firewalld --no-pager
sudo firewall-cmd --state
sudo firewall-cmd --get-zones
sudo firewall-cmd --get-default-zone
الخطوة 2: قائمة محتويات المنطقة
sudo firewall-cmd --list-all
sudo firewall-cmd --zone=public --list-all
الخطوة 3: إضافة خدمات ومنافذ
خدمة مسمّاة (مفضّل):
sudo firewall-cmd --permanent --zone=public --add-service=http
sudo firewall-cmd --permanent --zone=public --add-service=https
sudo firewall-cmd --reload
منفذ صريح:
sudo firewall-cmd --permanent --zone=public --add-port=8080/tcp
sudo firewall-cmd --permanent --zone=public --add-port=30000-30100/tcp
sudo firewall-cmd --reload
الخطوة 4: قواعد قائمة على المصدر (rich rules)
sudo firewall-cmd --permanent --zone=public --add-rich-rule='
rule family="ipv4"
source address="10.0.1.20/32"
port port="5432" protocol="tcp"
accept'
sudo firewall-cmd --reload
الخطوة 5: مناطق متعددة لمضيفات بأكثر من NIC
sudo nmcli connection modify ens3 connection.zone public
sudo nmcli connection modify ens4 connection.zone internal
sudo nmcli connection up ens4
sudo firewall-cmd --permanent --zone=internal --add-service=ssh
sudo firewall-cmd --permanent --zone=internal --add-port=9090/tcp
sudo firewall-cmd --reload
الخطوة 6: الحذف والفحص
sudo firewall-cmd --permanent --zone=public --remove-service=http
sudo firewall-cmd --reload
sudo iptables -L INPUT -n -v | head -20
sudo nft list ruleset | head -50
التحقق
sudo firewall-cmd --list-all-zones
nmap -Pn -p 22,80,443 your.host.sa
الخاتمة
نموذج "منطقة لكل واجهة" يجعل firewalld تجريدًا أنظف. الفخ الوحيد هو permanent vs runtime — اربط دائمًا --permanent مع --reload.
الخطوات التالية
- راجع تثبيت Rocky Linux 9.
- صحح حالات SELinux عبر وضع permissive.
Comments
0 total · 0 threads