يعد ConfigServer Security & Firewall (CSF) أداة جدار حماية توفر طريقة سهلة لتكوين إعدادات أمان الخادم. سيقودك هذا الدليل إلى تركيب وتكوين جدار الحماية CSF على Ubuntu.
تقدم CSF ميزات مختلفة لحماية VPS الخاص بك. وتشمل هذه التدابير ما يلي:
- Login authentication failure daemon: يقوم CSF بفحص المحاولات غير المصرح بها للوصول إلى خادم السحابة الخاص بك ويسمح لك بتحديد الإجراء المطلوب لاتخاذه بعد عدد محدد من المحاولات. تدعم هذه الميزة تطبيقات مختلفة وتسمح لك بتحديد ملفات تسجيل الدخول الخاصة بك.
- Process tracking: يمكن لـ CSF تتبع العمليات للكشف عن العمليات المشبوهة أو فتح منافذ الشبكة وإخطار مسؤول النظام.
- Directory watching: يقوم CSF بمراقبة المجلدات ذات الصلة بحثًا عن النصوص الضارة وإخطار مسؤول النظام عند اكتشاف أحدها.
- Messenger service: يوفر تمكين هذه الميزة مزيدًا من المعلومات للعميل وقد يمنع الإحباط في حالة فشل عمليات تسجيل الدخول. ومع ذلك، فإنه يسهل أيضًا على المهاجم مهاجمة VPS الخاص بك.
- Port flood protection: يوفر هذا الإعداد الحماية من هجمات فيضانات الموانئ، مثل هجمات رفض الخدمة (DoS)، ويسمح لك بتحديد مقدار الاتصالات المسموح بها في كل منفذ خلال فترة زمنية ترضيك.
- Port knocking: تسمح هذه الميزة للعملاء بإنشاء اتصالات بدون فتح منافذ وتسمح بالاتصالات بالمنافذ الرئيسية فقط بعد تسلسل طرق منفذ ناجح.
- Connection limit protection: هذه الميزة تحد من عدد الاتصالات النشطة المتزامنة من عنوان IP إلى كل منفذ وقد تمنع الإساءات على الخادم.
- Port/IP address redirection: يمكن لـ CSF إعادة توجيه الوصلات إلى IP/منفذ إلى IP/منفذ آخر.
- UI integration: يوفر CSF تكامل واجهة المستخدم للوحة cPanel و Webmin بالإضافة إلى واجهة سطر الأوامر.
- IP block lists: تسمح هذه الميزة لـ CSF بتنزيل قوائم عناوين IP المحظورة تلقائيًا من المصادر التي حددتها.
الخطوة 1: قم بتحديث نظامك
قبل تثبيت أي برنامج جديد، من الجيد دائمًا تحديث حزم نظامك. قم بتشغيل الأمر التالي لتحديث نظام Ubuntu الخاص بك:
$ sudo apt update
$ sudo apt upgrade
الخطوة 2: تثبيت جدار حماية CSF
بمجرد تحديث النظام، يمكننا المضي قدمًا في تركيب CSF Firewall. ستوجهك الخطوات التالية خلال العملية:
- قم بتنزيل أحدث إصدار من CSF Firewall من موقع الويب الرسمي الخاص بهم باستخدام الأمر التالي:
$ wget https://download.configserver.com/csf.tgz
لتنزيل أحدث إصدار من CSF Firewall
- استخرج الملف الذي تم تنزيله باستخدام الأمر التالي:
$ tar -xzf csf.tgz
- تغيير إلى الدليل:
$ cd csf
- قم بتشغيل برنامج التثبيت:
$ sudo sh install.sh
- تحقق من التثبيت بتشغيل الأمر التالي:
$ sudo csf -v
من خلال هذه الخطوات، نجحت في تثبيت جدار حماية CSF على نظام Ubuntu الخاص بك.
الخطوة 3: ضبط إعدادات إضافية
يوفر CSF مجموعة واسعة من خيارات التكوين التي يمكن استخدامها لضبط جدار الحماية وفقًا لمتطلباتك المحددة. فيما يلي بعض الإعدادات الأكثر استخدامًا التي يمكنك تكوينها.
ICMP_IN
يسمح ضبط ICMP_IN إلى 1 لطلبات ICMP الواردة، مثل ping، إلى الخادم الخاص بك. إذا كنت تستضيف خدمات عامة، يوصى بالسماح لطلبات ICMP حيث يمكن استخدامها للتحقق من توفر خدماتك. تحديد ICMP_IN إلى 0 كتل جميع طلبات ICMP الواردة.
ICMP_IN_LIMIT
ICMP_IN_LIMIT يحدد عدد الطلبات الواردة من اللجنة الدولية المعنية بالألغام المسموح بها من عنوان واحد من عناوين الملكية الفكرية في غضون فترة زمنية محددة. عادة ما تكون القيمة الافتراضية لـ 1/s كافية، ولكن يمكنك ضبطها إذا لزم الأمر.
DENY_IP_LIMIT
DENY_IP_LIMIT يحدد الحد الأقصى لعناوين IP المحجوبة التي يتتبعها CSF. يوصى بالحد من عدد عناوين IP المحجوبة لأن وجود عدد كبير جدًا من الكتل يمكن أن يؤثر على أداء الخادم.
DENY_TEMP_IP_LIMIT
DENY_TEMP_IP_LIMIT مشابه DENY_IP_LIMIT، ولكنه ينطبق على كتل عناوين الملكية الفكرية المؤقتة. يوصى بالحفاظ على هذه القيمة أقل من DENY_IP_LIMIT.
PACKET_FILTER
PACKET_FILTER ميزة قوية تقوم بتصفية الحزم غير الصالحة وغير المرغوب فيها وغير القانونية قبل أن تتمكن من الوصول إلى الخادم الخاص بك. يمكن أن يؤدي تمكين هذه الميزة إلى تحسين أمان الخادم عن طريق تقليل عدد الهجمات المحتملة.
SYNFLOOD, SYN_FLOOD_RATE and SYN_FLOOD_BURST
توفر هذه الإعدادات الحماية من هجمات الفيضانات SYN، والتي يمكن أن تبطئ أو حتى تتعطل الخادم الخاص بك. سيؤدي تمكين هذه الإعدادات إلى إبطاء بدء كل اتصال، لذلك يجب عليك تمكينها فقط إذا كنت تعلم أن الخادم الخاص بك يتعرض للهجوم.
CONNLIMIT
تضع CONNLIMIT قيودًا على عدد الوصلات النشطة المتزامنة في موانئ معينة. على سبيل المثال، القيمة:
22;5;443;20
سيسمح بما يصل إلى 5 وصلات متزامنة في الميناء 22 وما يصل إلى 20 وصلة متزامنة في الميناء 443. يمكنك إضافة المزيد من المنافذ عن طريق فصلها بالفواصل.
PORTFLOOD
تحد PORTFLOOD من عدد الوصلات لكل فترة زمنية يمكن إجراء اتصالات جديدة بموانئ معينة. على سبيل المثال، القيمة:
22;tcp;5;250
يحظر عنوان IP إذا تم إنشاء أكثر من 5 اتصالات في المنفذ 22 باستخدام بروتوكول TCP في غضون 250 ثانية. تتم إزالة الكتلة بمجرد مرور 250 ثانية بعد آخر حزمة أرسلها العميل إلى هذا المنفذ. يمكنك إضافة المزيد من المنافذ عن طريق فصلها بالفواصل، مثل هذا:
port1;protocol1;connection_count1;time1,port2;protocol2;connection_count2;time2
الخطوة 4: تكوين المنافذ
لتعزيز أمان VPS الخاص بك، يوصى بالحد من عدد المنافذ المفتوحة. ومع ذلك، يجب أن تظل بعض المنافذ مفتوحة للسماح للعملاء بالوصول إلى خدماتك. افتراضياً، الموانئ التالية مفتوحة:
TCP_IN = "20,21,22,25,53,80,110,143,443,465,587,993,995"
TCP_OUT = "20,21,22,25,53,80,110,113,443"
UDP_IN = "20,21,53"
UDP_OUT = "20,21,53,113,123"
تستخدم هذه الموانئ من قبل خدمات مختلفة مثل FTP و SSH و SMTP و DNS و HTTP والمزيد. قد لا تستخدم كل هذه الخدمات، لذلك يوصى بإغلاق أي منافذ غير مستخدمة. من الأفضل إزالة جميع أرقام المنفذ من القائمة ثم إضافة الأرقام التي تحتاجها فقط.
فيما يلي مجموعات الموانئ الموصى بفتحها لخدمات محددة:
لأي خادم:
TCP_IN: 22,53
TCP_OUT: 22,53,80,113,443
UPD_IN: 53
UPD_OUT: 53,113,123
أباتشي:
TCP_IN: 80,443
خادم FTP:
TCP_IN: 20,21
TCP_OUT: 20,21
UPD_IN: 20,21
UPD_OUT: 20,21
خادم بريد:
TCP_IN: 25,110,143,587,993,995
TCP_OUT: 25,110
بالنسبة لخادم MySQL (إذا كان الوصول عن بُعد مطلوبًا):
TCP_IN: 3306
TCP_OUT: 3306
الخطوة 5: حظر عناوين IP والسماح بها
يعد حظر عناوين IP والسماح بها أحد أكثر الميزات الأساسية لجدار الحماية. لحظر أو السماح بعناوين IP في جدار الحماية CSF، يمكنك تعديل ملفات التكوين csf.deny و csf.allow على التوالي. بالإضافة إلى ذلك، يمكنك أيضًا استبعاد عناوين IP من مرشحات جدار الحماية عن طريق تحرير ملف csf.ignore.
منع عناوين IP
لحظر عنوان أو نطاق IP، افتح ملف csf.deny باستخدام محرر نصوص مثل nano:
$ sudo nano /etc/csf/csf.deny
يجب إضافة كل عنوان أو نطاق IP تريد حظره على سطر جديد في الملف. على سبيل المثال، لحجب عنوان IP 1.2.3.4 ونطاق IP 2.3.0.0/16، يجب إضافة السطور التالية:
1.2.3.4
2.3.0.0/16
يتم تمثيل نطاقات IP باستخدام CIDR notation.
السماح لعناوين IP
للسماح لعنوان أو نطاق IP لتجاوز جميع الكتل والمرشحات، يمكنك إضافته إلى ملف csf.allow. يرجى ملاحظة أنه سيتم السماح بعناوين IP المسموح بها حتى لو تم حظرها صراحة في ملف csf.deny.
للسماح بعنوان أو نطاق IP، افتح ملف csf.allow باستخدام محرر نصوص:
$ sudo nano /etc/csf/csf.allow
يجب إضافة كل عنوان أو نطاق IP تريد السماح به على سطر جديد في الملف. على سبيل المثال، للسماح 1,2,3,4 عنوان IP ونطاق IP 2,3,0,0/16، يجب عليك إضافة السطور التالية:
1.2.3.4
2.3.0.0/16
تجاهل عناوين IP
يمكنك استبعاد عناوين IP من مرشحات جدار الحماية عن طريق إضافتها إلى ملف csf.ignore. عناوين IP المدرجة في csf.ignore ستتجاوز مرشحات جدار الحماية ولا يمكن حظرها إلا إذا تم إدراجها في ملف csf.deny.
لتجاهل عنوان أو نطاق IP، افتح ملف csf.ignore باستخدام محرر نصوص:
$ sudo nano /etc/csf/csf.ignore
يجب إضافة كل عنوان أو نطاق IP تريد تجاهله على سطر جديد في الملف. على سبيل المثال، لتجاهل عنوان IP 1.2.3.4 ونطاق IP 2.3.0.0/16، يجب إضافة السطور التالية:
1.2.3.4
2.3.0.0/16
إعادة تشغيل CSF
بعد تحرير أي من الملفات أعلاه، تحتاج إلى إعادة تشغيل CSF حتى تصبح التغييرات سارية المفعول. يمكنك إعادة تشغيل CSF باستخدام الأمر التالي:
$ sudo csf -r
سيؤدي ذلك إلى إعادة تحميل قواعد جدار الحماية وتطبيق أي تغييرات يتم إجراؤها على ملفات التكوين.
وضع الاختبار
افتراضيًا، CSF في وضع الاختبار، مما يعني أنه لن يحظر أي عنوان IP بشكل دائم. بمجرد التحقق من صحة إعداداتك، يجب عليك تغيير إعداد الاختبار إلى 0:
TESTING = "0"
تهيئة الاختبار
بمجرد إجراء تغييرات على ملف csf.conf، يمكنك اختبار التكوين عن طريق تشغيل الأمر التالي:
$ sudo csf --check
إذا كانت هناك أي أخطاء في تكوينك، فسيقوم CSF بالإبلاغ عنها واقتراح كيفية إصلاحها.
إعادة تشغيل جدار الحماية CSF
بمجرد إجراء تغييرات على التكوين، يمكنك إعادة تشغيل جدار الحماية CSF من خلال تشغيل الأمر التالي:
$ sudo csf -r
خلاصة
في هذا الدليل، مررنا بتركيب وتكوين جدار الحماية CSF على Ubuntu. من خلال تكوين جدار الحماية CSF، يمكنك تأمين نظام Ubuntu الخاص بك والتأكد من السماح بحركة المرور المصرح بها فقط.