انتقل إلى المحتوى الرئيسي
العودة إلى الفئة

إعداد جدار الحماية: دليل iptables و ufw

إعداد جدار حماية خادم Linux باستخدام iptables و ufw: إنشاء قواعد SSH/HTTP/HTTPS، حفظ القواعد بشكل دائم، واختبار إعداد جدار الحماية.

وقت القراءة: 12 دقيقة إدارة الخادم
firewalliptablesufwأمانمنفذlinuxخادم

جدول المحتويات

إعداد جدار الحماية: دليل iptables و ufw

يتحكم جدار الحماية في حركة مرور الشبكة الواردة والصادرة على خادمك. يوفر Linux أداتين شائعتين: iptables القوية منخفضة المستوى وufw (Uncomplicated Firewall) سهلة الاستخدام. يغطي هذا الدليل كلتيهما.

تتضمن خوادم REXE جدار حماية Path Panel على مستوى الشبكة. يضيف جدار الحماية من جانب الخادم طبقة أمان إضافية. يُنصح باستخدام كليهما معاً.

أساسيات iptables

iptables هي أداة سطر الأوامر التي تدير إطار عمل netfilter لنواة Linux. تتعامل مع تصفية الحزم وNAT وإعادة توجيه المنافذ.

عرض القواعد الحالية

hljs bash
# سرد جميع القواعد
sudo iptables -L -n -v

# السرد مع أرقام الأسطر
sudo iptables -L -n -v --line-numbers

# عرض جدول NAT
sudo iptables -t nat -L -n -v

المفاهيم الأساسية لـ iptables

المفهومالوصف
Chainسلسلة القواعد: INPUT, OUTPUT, FORWARD
Tableجدول القواعد: filter, nat, mangle
Targetإجراء القاعدة: ACCEPT, DROP, REJECT
Matchمعيار المطابقة: المنفذ، البروتوكول، IP

إنشاء قواعد أساسية

hljs bash
# السماح بواجهة loopback
sudo iptables -A INPUT -i lo -j ACCEPT

# السماح بالاتصالات المُنشأة
sudo iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

# السماح بـ SSH (المنفذ 22)
sudo iptables -A INPUT -p tcp --dport 22 -j ACCEPT

# السماح بـ HTTP (المنفذ 80)
sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT

# السماح بـ HTTPS (المنفذ 443)
sudo iptables -A INPUT -p tcp --dport 443 -j ACCEPT

# حظر جميع حركة المرور الواردة الأخرى
sudo iptables -A INPUT -j DROP

دائماً اسمح بـ SSH قبل إضافة قاعدة DROP. وإلا ستحجب نفسك عن الخادم.

حذف القواعد

hljs bash
# الحذف برقم القاعدة
sudo iptables -D INPUT 3

# الحذف بمحتوى القاعدة
sudo iptables -D INPUT -p tcp --dport 80 -j ACCEPT

# مسح جميع القواعد
sudo iptables -F

السماح / حظر عناوين IP محددة

hljs bash
# السماح لـ IP محدد بـ SSH
sudo iptables -A INPUT -s 192.168.1.100 -p tcp --dport 22 -j ACCEPT

# حظر IP محدد
sudo iptables -A INPUT -s 10.0.0.5 -j DROP

# حظر نطاق IP
sudo iptables -A INPUT -s 192.168.1.0/24 -j DROP

حفظ قواعد iptables بشكل دائم

تُفقد قواعد iptables عند إعادة التشغيل افتراضياً. لجعلها دائمة:

Debian/Ubuntu

hljs bash
# تثبيت iptables-persistent
sudo apt install iptables-persistent -y

# حفظ القواعد الحالية
sudo netfilter-persistent save

# إعادة تحميل القواعد
sudo netfilter-persistent reload

RHEL/CentOS/AlmaLinux

hljs bash
# تثبيت iptables-services
sudo yum install iptables-services -y

# تفعيل وتشغيل الخدمة
sudo systemctl enable iptables
sudo systemctl start iptables

# حفظ القواعد
sudo service iptables save

إدارة جدار الحماية باستخدام ufw

يبسّط ufw تعقيد iptables بأوامر بسيطة. يأتي مثبتاً مسبقاً على Ubuntu وDebian.

تثبيت وتفعيل ufw

hljs bash
# تثبيت ufw
sudo apt install ufw -y

# التحقق من الحالة
sudo ufw status verbose

# تعيين السياسات الافتراضية
sudo ufw default deny incoming
sudo ufw default allow outgoing

دائماً اسمح بـ SSH قبل تفعيل ufw لتجنب حجب نفسك!

قواعد ufw الأساسية

hljs bash
# السماح بـ SSH
sudo ufw allow ssh
# أو بالمنفذ:
sudo ufw allow 22/tcp

# السماح بـ HTTP و HTTPS
sudo ufw allow http
sudo ufw allow https

# فتح منفذ مخصص
sudo ufw allow 8080/tcp

# تفعيل ufw
sudo ufw enable

إدارة قواعد ufw

hljs bash
# سرد القواعد مع الأرقام
sudo ufw status numbered

# حذف قاعدة برقمها
sudo ufw delete 3

# حذف قاعدة بمحتواها
sudo ufw delete allow 8080/tcp

# السماح من IP محدد
sudo ufw allow from 192.168.1.100

# حظر IP محدد
sudo ufw deny from 10.0.0.5

# تعطيل ufw
sudo ufw disable

# إعادة تعيين جميع القواعد
sudo ufw reset

اختبار جدار الحماية

فحص المنافذ باستخدام nmap

hljs bash
# فحص منافذ محددة من جهاز آخر
nmap -sT -p 22,80,443 SERVER_IP

# فحص جميع المنافذ
nmap -sT SERVER_IP

التحقق من المنافذ المستمعة باستخدام ss

hljs bash
# سرد منافذ TCP المستمعة
sudo ss -tlnp

# سرد جميع الاتصالات
sudo ss -tunap

توصيات الأمان

طبّق مبدأ الحد الأدنى من الصلاحيات: افتح فقط المنافذ التي تحتاجها فعلاً.

  1. غيّر منفذ SSH: استخدم منفذاً غير قياسي بدلاً من 22
  2. طبّق تحديد المعدل: الحماية من هجمات القوة الغاشمة
  3. ثبّت Fail2Ban: حظر تلقائي لمحاولات تسجيل الدخول الفاشلة
  4. راجع بانتظام: تحقق من القواعد باستخدام iptables -L أو ufw status
  5. احتفظ بنسخ احتياطية: احفظ القواعد في ملف
hljs bash
# حفظ قواعد iptables في ملف
sudo iptables-save > /etc/iptables/rules.v4

# الاستعادة من الملف
sudo iptables-restore < /etc/iptables/rules.v4

الخلاصة

توفر iptables القوة والمرونة بينما يوفر ufw السرعة والبساطة. يجب على المبتدئين البدء بـ ufw؛ أما للإعدادات المتقدمة فيُفضل iptables. يعمل كلا الأداتين جنباً إلى جنب مع جدار حماية Path Panel من REXE. راجع قواعد جدار الحماية بانتظام وأغلق المنافذ التي لم تعد بحاجة إليها.