مرحباً يا جماعة! كمهندس أنظمة لينكس، تأمين الخوادم هو شغلي الشاغل. والفايروول هو خط الدفاع الأول. اليوم، بنشوف 3 أدوات رئيسية: Iptables، UFW، و Firewalld. كل وحدة لها استخداماتها وميزاتها.
Iptables: الأساس الصلب
هذا هو قلب جدار الحماية في لينكس. Iptables يعمل مباشرة مع نواة لينكس (kernel) ويسمح لك بتحديد قواعد دقيقة جداً. هو قوي جداً لكن معقد شوي للمبتدئين.
ملاحظة:
Iptablesهو الأداة الأساسية اللي كل الفايروولات الثانية (مثلUFWوFirewalld) تعتمد عليها في النهاية. هم واجهات أبسط لـIptables.
عرض القواعد الحالية:
sudo iptables -L -v -n
السماح بـ SSH (المنفذ 22):
sudo iptables -A INPUT -p tcp --dport 22 -j ACCEPT
هنا INPUT يعني حركة المرور اللي جاية للنظام، -p tcp البروتوكول TCP، --dport 22 المنفذ 22، و -j ACCEPT يعني اسمح بها.
رفض كل شيء آخر (سياسة افتراضية):
sudo iptables -P INPUT DROP
تحذير: لازم تكون متأكد إنك سمحت بالمنفذ اللي تحتاجه قبل لا تسوي هالخطوة، وإلا ممكن تقفل على نفسك!
حفظ القواعد (مهم جداً!):
قواعد Iptables مؤقتة. إذا سويت إعادة تشغيل للنظام، بتروح. عشان تحفظها:
على Debian/Ubuntu:
sudo apt-get install iptables-persistent
sudo netfilter-persistent save
sudo netfilter-persistent reload
على CentOS/RHEL (أو أنظمة تستخدم firewalld بشكل افتراضي):
sudo yum install iptables-services
sudo systemctl enable iptables
sudo systemctl start iptables
sudo iptables-save > /etc/sysconfig/iptables
UFW: السهل الممتنع (Uncomplicated Firewall)
لو أنت جديد على لينكس أو تبغى حل سريع ومباشر، UFW هو خيارك الأفضل. هو واجهة أبسط لـ Iptables.
التأكد من التثبيت:
sudo apt update && sudo apt install ufw
(في Debian/Ubuntu، عادة يكون مثبت)
تفعيل UFW:
sudo ufw enable
تحذير: قبل التفعيل، تأكد إنك سمحت بمنفذ SSH (إذا كنت تتصل عن بعد) وإلا بتقفل على نفسك.
السماح بـ SSH:
sudo ufw allow ssh
أو بمنفذ معين:
sudo ufw allow 22/tcp
السماح بخدمات شائعة (HTTP, HTTPS):
sudo ufw allow http
sudo ufw allow https
أو بالمنفذ:
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
رفض منفذ معين:
sudo ufw deny 23/tcp
عرض حالة UFW والقواعد:
sudo ufw status verbose
تعطيل UFW:
sudo ufw disable
إعادة تعيين القواعد (مسح كل شيء):
sudo ufw reset
تحذير: هذا بيمسح كل قواعدك وبيرجع UFW لحالته الافتراضية.
Firewalld: الديناميكي للمؤسسات
Firewalld هو الفايروول الافتراضي في أنظمة مثل CentOS/RHEL. يعتمد على مفهوم "المناطق" (Zones) ويسمح لك بتغيير القواعد بدون إعادة تحميل كاملة للفايروول، وهذا ميزة كبيرة في البيئات الإنتاجية.
التأكد من التثبيت والتشغيل:
sudo yum install firewalld
sudo systemctl start firewalld
sudo systemctl enable firewalld
sudo firewall-cmd --state
المناطق (Zones):
Firewalld يستخدم مناطق مختلفة (مثل public, home, internal, external) لتطبيق قواعد مختلفة بناءً على مستوى الثقة للشبكة اللي أنت فيها.
عرض المناطق النشطة:
sudo firewall-cmd --get-active-zones
عرض الخدمات والports المسموحة في منطقة معينة (مثلاً public):
sudo firewall-cmd --zone=public --list-all
السماح بخدمة (مثلاً HTTP) بشكل دائم:
sudo firewall-cmd --zone=public --add-service=http --permanent
--permanent يعني القواعد بتظل حتى بعد إعادة التشغيل.
بعد أي تغيير بـ --permanent، لازم تسوي إعادة تحميل:
sudo firewall-cmd --reload
السماح بمنفذ (مثلاً 8080/tcp) بشكل دائم:
sudo firewall-cmd --zone=public --add-port=8080/tcp --permanent
sudo firewall-cmd --reload
إزالة خدمة أو منفذ:
استخدم --remove-service أو --remove-port بدلاً من --add-service أو --add-port.
sudo firewall-cmd --zone=public --remove-service=http --permanent
sudo firewall-cmd --reload
تغيير المنطقة الافتراضية:
sudo firewall-cmd --set-default-zone=home
أيهم أختار؟
الخلاصة:
Iptables: إذا كنت تحتاج تحكم دقيق جداً، أو شغال على أنظمة قديمة، أو تبغى تفهم كيف الفايروول يشتغل من الصفر. لكنه معقد للمبتدئين.UFW: مثالي للمستخدمين الجدد أو الخوادم البسيطة اللي ما تحتاج قواعد معقدة. سهل وسريع.Firewalld: الأفضل للبيئات الإنتاجية الكبيرة وأنظمة RHEL/CentOS. يوفر مرونة كبيرة مع مفهوم المناطق والتحديثات الديناميكية.
مهما كان اختيارك، الأهم هو إنك تفهم وش قاعد تسوي بالضبط. لا تخلي خادمك بدون فايروول!