إعداد جدار الحماية: دليل iptables و ufw
إعداد جدار حماية خادم Linux باستخدام iptables و ufw: إنشاء قواعد SSH/HTTP/HTTPS، حفظ القواعد بشكل دائم، واختبار إعداد جدار الحماية.
جدول المحتويات
إعداد جدار الحماية: دليل iptables و ufw
يتحكم جدار الحماية في حركة مرور الشبكة الواردة والصادرة على خادمك. يوفر Linux أداتين شائعتين: iptables القوية منخفضة المستوى وufw (Uncomplicated Firewall) سهلة الاستخدام. يغطي هذا الدليل كلتيهما.
تتضمن خوادم REXE جدار حماية Path Panel على مستوى الشبكة. يضيف جدار الحماية من جانب الخادم طبقة أمان إضافية. يُنصح باستخدام كليهما معاً.
أساسيات iptables
iptables هي أداة سطر الأوامر التي تدير إطار عمل netfilter لنواة Linux. تتعامل مع تصفية الحزم وNAT وإعادة توجيه المنافذ.
عرض القواعد الحالية
# سرد جميع القواعد
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 |
إنشاء قواعد أساسية
# السماح بواجهة 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. وإلا ستحجب نفسك عن الخادم.
حذف القواعد
# الحذف برقم القاعدة
sudo iptables -D INPUT 3
# الحذف بمحتوى القاعدة
sudo iptables -D INPUT -p tcp --dport 80 -j ACCEPT
# مسح جميع القواعد
sudo iptables -F
السماح / حظر عناوين IP محددة
# السماح لـ 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
# تثبيت iptables-persistent
sudo apt install iptables-persistent -y
# حفظ القواعد الحالية
sudo netfilter-persistent save
# إعادة تحميل القواعد
sudo netfilter-persistent reload
RHEL/CentOS/AlmaLinux
# تثبيت 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
# تثبيت ufw
sudo apt install ufw -y
# التحقق من الحالة
sudo ufw status verbose
# تعيين السياسات الافتراضية
sudo ufw default deny incoming
sudo ufw default allow outgoing
دائماً اسمح بـ SSH قبل تفعيل ufw لتجنب حجب نفسك!
قواعد ufw الأساسية
# السماح بـ 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
# سرد القواعد مع الأرقام
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
# فحص منافذ محددة من جهاز آخر
nmap -sT -p 22,80,443 SERVER_IP
# فحص جميع المنافذ
nmap -sT SERVER_IP
التحقق من المنافذ المستمعة باستخدام ss
# سرد منافذ TCP المستمعة
sudo ss -tlnp
# سرد جميع الاتصالات
sudo ss -tunap
توصيات الأمان
طبّق مبدأ الحد الأدنى من الصلاحيات: افتح فقط المنافذ التي تحتاجها فعلاً.
- غيّر منفذ SSH: استخدم منفذاً غير قياسي بدلاً من 22
- طبّق تحديد المعدل: الحماية من هجمات القوة الغاشمة
- ثبّت Fail2Ban: حظر تلقائي لمحاولات تسجيل الدخول الفاشلة
- راجع بانتظام: تحقق من القواعد باستخدام
iptables -Lأوufw status - احتفظ بنسخ احتياطية: احفظ القواعد في ملف
# حفظ قواعد iptables في ملف
sudo iptables-save > /etc/iptables/rules.v4
# الاستعادة من الملف
sudo iptables-restore < /etc/iptables/rules.v4
الخلاصة
توفر iptables القوة والمرونة بينما يوفر ufw السرعة والبساطة. يجب على المبتدئين البدء بـ ufw؛ أما للإعدادات المتقدمة فيُفضل iptables. يعمل كلا الأداتين جنباً إلى جنب مع جدار حماية Path Panel من REXE. راجع قواعد جدار الحماية بانتظام وأغلق المنافذ التي لم تعد بحاجة إليها.
مقالات ذات صلة
الاتصال بخادم VDS عبر SSH: PuTTY والطرفية والمفاتيح
دليل شامل للاتصال بخادم Linux VDS عبر SSH: PuTTY، الطرفية، المصادقة بالمفتاح، إنشاء قاعدة تصفية Path Panel، تغيير المنفذ ونصائح الأمان الأساسية.
الاتصال بـ Windows VDS عبر RDP: دليل شامل للمبتدئين
دليل خطوة بخطوة للاتصال بـ Windows Server VDS عبر RDP: الإعداد الكامل، تفعيل NLA للأمان، إنشاء قاعدة تصفية Path Panel واستكشاف الأخطاء وإصلاحها.
تغيير نظام تشغيل خادم VDS: دليل إعادة التثبيت خطوة بخطوة
تغيير نظام تشغيل خادم VDS عبر لوحة REXE: نصائح النسخ الاحتياطي قبل التثبيت، توزيعات Linux المدعومة وإصدارات Windows Server المتاحة للتثبيت الآن.