مقدمة
أتذكر خوادمي الأولى. لم أفعل شيئًا يُذكر لتأمينها، لأنني لم أكن أعلم أن شخصًا سيئ النية قد يخترق خادمي. ويمكنك أن تتخيل كيف انتهى الأمر. لحسن الحظ، كان لديّ نسخ احتياطية، وكان بإمكاني استعادتها بسهولة. لكن حدث ذلك مرة أخرى. لذا، هذه المرة، أجريتُ بعض الأبحاث، ودرستُ جيدًا، وجعلتُ خوادمي أكثر أمانًا. أعلم أنه لا يوجد خادم غير قابل للاختراق، لكنني سأوضح لك كيفية الحفاظ على أمان خادمك، وما يجب فعله في حال تعطله.
سنبدأ بالإعداد الأساسي. ستتعلم ما يجب فعله عند إنشاء خادم جديد. ثم سنشرح كيفية صيانته من خلال إجراء فحوصات دورية. وأخيرًا، ستتعلم ما يجب فعله عند تعطل خادمك. لن يجعلك هذا البرنامج التعليمي مدير خادم محترفًا، لأنه يتطلب جهدًا كبيرًا ومهمة جادة. ولكن على الأقل يمكنك الحفاظ على أمان مشاريعك الهواية.
المتطلبات الأساسية
- خادم واحد (على سبيل المثال مع Hetzner)
الخطوة 1 – الإعداد الأولي والأمان الأساسي
بعد إنشاء خادمك، اتبع الخطوات من ١ إلى ٥ في دليل "الإعداد الأولي للخادم مع أوبونتو". يشرح الدليل كيفية:
- إنشاء مستخدم جديد بأذونات sudo
- إضافة مفتاح SSH
بعد إكمال الخطوات الخمس الأولى من البرنامج التعليمي المرتبط والاتصال بمستخدم sudo الجديد، يمكنك المتابعة بالخطوات أدناه.
تحديث النظام
أول ما عليك فعله هو التحقق من وجود تحديثات، فالبرامج القديمة قد تحتوي على ثغرات أمنية يسهل استغلالها. الأمر أسهل مما تظن؛ ما عليك سوى تشغيل الأمرين التاليين:
sudo apt update
sudo apt upgradeسهل، أليس كذلك؟ لقد تأكدنا الآن من استخدام أحدث الإصدارات.
الوصول الآمن عبر SSH
عندما يستهدف أحدهم خادمك، فمن المرجح أن أول ما سيحاوله هو الوصول إليه عبر SSH. غالبًا ما يفعلون ذلك باستخدام برامج روبوتية وطرق متعددة. لذا، يُعد تأمين الوصول عبر SSH أمرًا بالغ الأهمية.
تعديل ملف التكوين:
sudo nano /etc/ssh/sshd_config
- تعطيل الوصول إلى الجذر
ابحث عن السطر "PermitRootLogin" وقم بتغييره إلى "no".
- تعطيل إدخال كلمة المرور
إذا قمت بإضافة مفتاح SSH كما هو مقترح أعلاه، فيمكنك تعطيل إدخال كلمة المرور.
- “ابحث عن "PasswordAuthentication" واضبطه على "لا".
- “ابحث عن "PubkeyAuthentication" واضبطه على "نعم".
- تغيير منفذ SSH الافتراضي
بمجرد تغيير ذلك، يمكننا القضاء على معظم هجمات الروبوتات الآلية، حيث أن معظمها عبارة عن روبوتات مزيفة وتحاول الوصول إلى SSH من خلال المنفذ 22.
ابحث عن السطر "#Port 22" وقم بتغييره إلى شيء مثل "Port 2222" (أو قم بتغيير 2222 إلى أي شيء تريده).
احفظ التغييرات وتحقق مما إذا تم تغيير المنفذ بنجاح:
sudo systemctl restart ssh.service
sudo systemctl status sshتأكد من أنه يقول Server listening on :: port 2222.
إذا تم تحديد المنفذ 2222، فيمكنك تشغيل الأمر التالي لإنهاء الاتصال بالخادم والتحقق مما إذا كان الاتصال بالمنفذ الجديد يعمل:
ssh -p 2222 holu@<203.0.113.1>
إذا تمكنت من الاتصال بالمنفذ الذي قمت بتعيينه، فيمكنك متابعة البرنامج التعليمي.
تكوين جدار الحماية
سنستخدم "ufw" لإدارة قواعد جدار الحماية. صُمم ليكون سهل الاستخدام ويستخدم واجهة سطر أوامر. من المحتمل أن يكون Ufw مُثبّتًا بالفعل على نظامك، ولكن يمكنك تشغيل هذا الأمر للتأكد من تثبيته:
sudo apt install ufw
بعد ذلك، سنمنع جميع حركات الشبكة الواردة ما لم تسمح بها قواعد أخرى. هذا ضروري لتأمين خادمك بالسماح فقط بالحركة التي تسمح بها صراحةً. ستحتاج إلى تشغيل هذا الأمر:
sudo ufw default deny incoming
بعد ذلك، نسمح بحركة مرور الشبكة الصادرة. عادةً ما يكون هذا آمنًا، ويسمح لخادمك بالتواصل مع خوادم أو خدمات أخرى دون قيود. شغّل هذا الأمر:
sudo ufw default allow outgoing
الآن، علينا السماح لمنفذ SSH بالاتصال بخادمنا عبر SSH. تأكد فقط من تغيير 2222 إلى منفذ SSH الخاص بك إذا حددتَ منفذًا آخر، ثم شغّل هذا الأمر:
sudo ufw allow 2222/tcp
أخيرًا، نحتاج إلى تمكين قواعد جدار الحماية لدينا:
sudo ufw enable
Fail2Ban
غيّرنا منفذ SSH وأعددنا جدار الحماية. ولكن ماذا لو اكتشف بوت منفذنا وحاول الوصول إلى خادمنا عبر SSH؟ يُعد هذا هجومًا بالقوة الغاشمة، ويمكننا حماية خادمنا باستخدام Fail2Ban. يحظر هذا البرنامج عناوين IP التي تُظهر علامات أو محاولات خبيثة. لتثبيت Fail2Ban وتفعيله، عليك تشغيل الأوامر الثلاثة التالية:
sudo apt install fail2ban
sudo systemctl enable fail2ban
sudo systemctl start fail2banيمكنك أيضًا تخصيص إعدادات Fail2Ban بتعديل ملفات التكوين في مجلد /etc/fail2ban/. لمزيد من المعلومات التفصيلية وأفضل الممارسات، يُرجى الاطلاع على وثائق Fail2Ban.
رائع! لقد اتخذت خطوة كبيرة، وأصبح لديك الآن خادم أكثر حماية. في الوقت الحالي، ما عليك سوى إجراء صيانة دورية من حين لآخر. سنشرح ما عليك فعله في القسم التالي.
الخطوة 2 – الصيانة الدورية
- تحديث النظام
أولاً، علينا التحقق من وجود أي تحديثات لنظامنا. شغّل هذا الأمر:
sudo apt update && sudo apt upgrade -y
- تقارير المراقبة
يجب عليك مراجعة سجلات نظامك بانتظام لاكتشاف أي نشاط غير طبيعي. يساعدك Logwatch على أتمتة هذه العملية. يمكنك تثبيت Logwatch باستخدام هذا الأمر:
sudo apt install logwatch
يمكنك الاطلاع على معلومات أكثر تفصيلاً حول كيفية إعداد التقارير اليومية، ورؤية شكل التقارير من هذا الدليل.
- التحقق من استخدام القرص.
للتأكد من أن لديك مساحة كافية لتشغيل الخادم الخاص بك، تحقق من مساحة القرص المتبقية لديك باستخدام هذا الأمر:
df -h
- قم بعمل نسخة احتياطية لبياناتك.
يجب عليك دائمًا الاحتفاظ بنسخ احتياطية متعددة لضمان إمكانية التعافي من أي كارثة في حال حُذف خادمك تمامًا أو تعذر الوصول إليه. لحسن الحظ، توفر Hetzner حلاً للنسخ الاحتياطي التلقائي للخوادم السحابية، ويمكنك الاطلاع عليه في الوثائق الرسمية. إذا كنت ترغب في إعداد نسخة احتياطية خاصة بك، يمكنك استخدام أدوات مثل "rsync" أو "Duplicity".
- تدقيق حسابات المستخدمين
لا تنسَ التحقق بانتظام من حسابات المستخدمين على الخادم. تأكد من أن المستخدمين المصرح لهم فقط هم من يمكنهم الوصول إلى خادمك. احذف أي حسابات لم تعد بحاجة إليها. يمكنك التحقق من حسابات المستخدمين بتشغيل هذا الأمر:
sudo nano /etc/passwd
- التحقق من وجود Rootkits والبرامج الضارة
لفحص خادمك بسرعة، يمكنك استخدام أدوات مثل "rkhunter" و"chkrootkit". ستساعدك هذه الأدوات على التحقق من وجود برامج روتكيت، أو أبواب خلفية، أو ثغرات محلية، والتأكد من سلامة كل شيء. شغّل هذه الأوامر للتأكد من تثبيت rkhunter، ثم تحقق مما يلي:
sudo apt install rkhunter
sudo rkhunter --check- مراقبة أداء النظام
أخيرًا، يمكنك التحقق بسرعة من أداء النظام للتأكد من عدم وجود أي اختناقات في الموارد أثناء تشغيل البرنامج. هناك أدوات مثل "htop" أو "top" أو "atop". ولكن يمكنك ببساطة تنفيذ هذا الأمر:
htopالخطوة 3 – المزيد من أدوات الأمان
- استخدم أنظمة كشف التطفل.
يمكنك استخدام أدوات مثل "AIDE" (بيئة كشف التطفل المتقدمة) لمراقبة تغييرات نظامك. تُنشئ هذه الأداة قاعدة بيانات لملفاتك ومجلداتك، وتُقارن نظامك بها لضمان سلامة الملفات. يمكنك الاطلاع على مزيد من التفاصيل من مستودعها. للاستخدام الأولي، يمكنك تثبيتها باستخدام هذا الأمر:
sudo apt install aide
ابدأ بإنشاء قاعدة البيانات باستخدام الأوامر التالية:
sudo aideinit
sudo cp /var/lib/aide/aide.db.new /var/lib/aide/aide.dbوقارن نظامك بقاعدة البيانات باستخدام هذا الأمر:
sudo aide --config /etc/aide/aide.conf --check
- تمكين المصادقة الثنائية (2FA)
يمكنك أيضًا إعداد المصادقة الثنائية (2FA) لتسجيل الدخول إلى خادمك عبر SSH. هذا يُضيف طبقة حماية إضافية ويُقلل من خطر الوصول غير المُصرّح به. يمكنك تثبيته باستخدام هذا الأمر:
sudo apt install libpam-google-authenticator
وقم بتشغيل هذا الأمر لتشغيله:
google-authenticator
- تطبيقات الويب الآمنة
إذا كنت تشغّل تطبيقات ويب على خادمك، فتأكد من اتباع أفضل ممارساتها وتحديثها بانتظام. على سبيل المثال، إذا كنت تشغّل ووردبريس، فيجب عليك دائمًا استخدام أحدث إصدار منه، وتحديث جميع الإضافات والسمات باستمرار. بالإضافة إلى ذلك، يجب عليك تثبيت إضافة أمان ووردبريس مناسبة. سيقلل هذا من خطر الوصول غير المصرح به إلى خادمك وتطبيقاتك.
الخطوة 4 - خطة الاستجابة للحوادث
قد تكون هذه الخطة مُفصّلة للغاية في المؤسسات الكبيرة، لكننا سنُبقيها بسيطة وسهلة التنفيذ لخوادم الترفيه الصغيرة. لذلك، أعددتُ لك خطة من ثلاث خطوات.
- تحضير
في هذا القسم، أنشئ ملفًا نصيًا صغيرًا أو ملاحظة في برنامج المفكرة الخاص بك حول معلومات خادمك. أدرج معلومات مثل بنية الخادم، والبرنامج الذي يعمل عليه، ومكان تخزين النسخ الاحتياطية والسجلات، وتكويناتك. احتفظ بهذه الملاحظة في مكان آمن. يمكنك الاطلاع على هذا المثال كنقطة بداية:
معلومات الخادم
| معلومات | وصف |
|---|---|
| اسم الخادم | ماي سيرفر01 |
| عنوان IP | 192.168.1.100 |
| نظام التشغيل | أوبونتو 24.04 LTS |
| وحدة المعالجة المركزية | 4 وحدات معالجة مركزية افتراضية |
| كبش | 8 جيجابايت |
| تخزين | قرص SSD بسعة 100 جيجابايت |
| منفذ SSH | 2222 |
- البرمجيات والخدمات: Nginx 1.18.0، PostgreSQL 13، Django 3.1
- النسخ الاحتياطي: مزدوج ويومي و/mnt/backup والتخزين عن بُعد في AWS S3، مع الاحتفاظ به لمدة 30 يومًا
- تكوين Nginx: /etc/nginx/nginx.conf
- تكوين PostgreSQL: /etc/postgresql/13/main/postgresql.conf
- تكوين Django: /home/myuser/myapp/settings.py
- تكوين UFW: /etc/ufw/ufw.conf
- تعريف
في هذه المرحلة، عليك التحقق من مشكلة خادمك. هل المشكلة أو الاختراق متعلق بتطبيق الويب الخاص بك، أم بالخادم نفسه، أم بإحدى قواعد البيانات داخله؟ إذا لم تكن متأكدًا، فافترض دائمًا أن كل شيء في خطر. لذا، عليك البدء بفحص كل شيء مرة أخرى، بدءًا من الخادم.
- تحسين
استرجع الأنظمة التالفة في هذا القسم. إذا لم تتمكن من الوصول إلى خادمك، فعليك استعادته من نسخة احتياطية. إذا كان أحد تطبيقات الويب لديك معطلاً، فقد تحتاج فقط إلى استعادته من النسخة الاحتياطية. تأكد من استعادة كل شيء واختباره وعمله كما هو متوقع، ومن إجراء فحص أمني.
نتيجة
يتطلب تأمين خادمك اتباع أفضل الممارسات والصيانة الدورية. باتباع الخطوات الموضحة في هذه المقالة، يمكنك تعزيز أمان خادمك بشكل ملحوظ وحماية بياناتك القيّمة. تذكر أن الأمان عملية مستمرة، لذا لا تنسَ فحص خوادمك بانتظام.











