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

10 خطوات أساسية لأمان الخادم

10 خطوات أساسية لتأمين خادم Linux: مصادقة مفتاح SSH، جدار الحماية، Fail2ban، التحديثات التلقائية، حماية DDoS والمزيد. دليل مع الأوامر والشروحات.

وقت القراءة: 12 دقيقة الأمان
أمان الخادمأمان linuxsshجدار الحمايةfail2banحماية ddos
الكاتب
REXE Teknoloji Network & Security Team
المحرر
REXE Teknoloji Technical Editorial
أول نشر
آخر تحديث

10 خطوات أساسية لأمان الخادم

عند إعداد خادم Linux جديد، لا يكون التكوين الافتراضي محسّناً للأمان. كل خادم متصل بالإنترنت يصبح هدفاً لأدوات المسح الآلي في غضون دقائق. يشرح هذا الدليل الخطوات العشر الأساسية التي تحتاج إلى تنفيذها لتأمين خادمك، مع الأوامر.

كن حذراً لعدم فقدان الوصول إلى خادمك أثناء تطبيق هذه الخطوات. خاصةً عند تغيير تكوين SSH، احتفظ بجلستك الحالية مفتوحة واختبر بنافذة طرفية جديدة.

الخطوة 1: مصادقة مفتاح SSH وتعطيل تسجيل الدخول بكلمة المرور

تسجيل الدخول عبر SSH بكلمة مرور عرضة لهجمات القوة الغاشمة. استخدام زوج مفاتيح SSH أكثر أماناً بكثير.

إنشاء زوج مفاتيح SSH (على الجهاز المحلي)

hljs bash
# إنشاء مفتاح Ed25519
ssh-keygen -t ed25519 -C "server-name@rexe"

# أو إذا أردت استخدام RSA
ssh-keygen -t rsa -b 4096 -C "server-name@rexe"

نسخ المفتاح العام إلى الخادم

hljs bash
# تشغيل من الجهاز المحلي
ssh-copy-id -i ~/.ssh/id_ed25519.pub user@server-ip

تعطيل تسجيل الدخول بكلمة المرور

hljs bash
# تحرير /etc/ssh/sshd_config
sudo nano /etc/ssh/sshd_config

# تغيير هذه الأسطر:
PasswordAuthentication no
PubkeyAuthentication yes
PermitRootLogin no

# إعادة تشغيل خدمة SSH
sudo systemctl restart sshd

الخطوة 2: تكوين جدار الحماية (UFW)

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

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

# السماح بـ SSH
sudo ufw allow 22/tcp

# منافذ خادم الويب
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp

# تفعيل UFW
sudo ufw enable

الخطوة 3: تثبيت وتكوين Fail2ban

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

# إنشاء ملف التكوين
sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
hljs ini
[DEFAULT]
bantime  = 3600
findtime = 600
maxretry = 5

[sshd]
enabled = true
maxretry = 3
bantime  = 86400
hljs bash
sudo systemctl enable fail2ban
sudo systemctl start fail2ban

الخطوة 4: التحديثات الأمنية التلقائية

hljs bash
sudo apt install unattended-upgrades -y
sudo dpkg-reconfigure -plow unattended-upgrades

الخطوة 5: تعطيل الخدمات غير المستخدمة

hljs bash
# قائمة الخدمات الجارية
sudo systemctl list-units --type=service --state=running

# فحص المنافذ المفتوحة
sudo ss -tlnp

# إيقاف وتعطيل الخدمات غير الضرورية
sudo systemctl stop bluetooth
sudo systemctl disable bluetooth

الخطوة 6: كلمات مرور قوية والمصادقة الثنائية

hljs bash
sudo apt install libpam-pwquality -y
minlen = 12
ucredit = -1
lcredit = -1
dcredit = -1
ocredit = -1

المصادقة الثنائية مع Google Authenticator

hljs bash
sudo apt install libpam-google-authenticator -y
google-authenticator

الخطوة 7: النسخ الاحتياطي المنتظم

hljs bash
# نسخ احتياطي محلي مع rsync
rsync -avz --delete /var/www/ /backup/www/

# مهمة cron للنسخ الاحتياطي التلقائي
0 2 * * * rsync -avz /var/www/ /backup/www/

# نسخ احتياطي لقاعدة البيانات
mysqldump -u root -p --all-databases | gzip > /backup/db_$(date +%Y%m%d).sql.gz

طبّق قاعدة النسخ الاحتياطي 3-2-1: 3 نسخ، 2 وسائط مختلفة، موقع مختلف واحد.

الخطوة 8: مراقبة السجلات

hljs bash
tail -f /var/log/auth.log
tail -f /var/log/syslog
grep "Failed password" /var/log/auth.log | tail -20

الخطوة 9: حماية DDoS

hljs bash
# حماية من SYN flood
sudo iptables -A INPUT -p tcp --syn -m limit \
  --limit 1/s --limit-burst 3 -j ACCEPT
sudo iptables -A INPUT -p tcp --syn -j DROP

# حد عدد الاتصالات (لكل IP)
sudo iptables -A INPUT -p tcp --dport 80 -m connlimit \
  --connlimit-above 50 -j REJECT

قد تكون الحماية من DDoS المستندة إلى البرمجيات غير كافية ضد الهجمات واسعة النطاق. توفر البنية التحتية لـ Path.net من REXE تصفية DDoS على مستوى الشبكة، مما يُنظّف حركة مرور الهجوم قبل وصولها إلى خادمك.

الخطوة 10: تكوين SSL/TLS

hljs bash
sudo apt install certbot python3-certbot-nginx -y
sudo certbot --nginx -d example.com -d www.example.com
hljs nginx
server {
    listen 443 ssl http2;
    ssl_protocols TLSv1.2 TLSv1.3;
    add_header Strict-Transport-Security "max-age=63072000" always;
    add_header X-Frame-Options DENY;
    add_header X-Content-Type-Options nosniff;
}

قائمة التحقق الأمنية

  • مصادقة مفتاح SSH نشطة، تسجيل الدخول بكلمة المرور معطّل
  • تسجيل دخول root عبر SSH معطّل
  • جدار الحماية مُكوَّن
  • Fail2ban مثبت ويعمل
  • التحديثات الأمنية التلقائية نشطة
  • الخدمات غير المستخدمة معطّلة
  • سياسة كلمة مرور قوية مطبّقة
  • المصادقة الثنائية مفعّلة
  • خطة نسخ احتياطي منتظمة منشأة
  • مراقبة السجلات مُكوَّنة
  • حماية DDoS نشطة
  • شهادة SSL/TLS مثبتة

الأسئلة الشائعة

ماذا أفعل عند الاتصال بخادمي لأول مرة؟

اتبع هذه الخطوات عند الاتصال الأول: 1) تحديث النظام (apt update && apt upgrade)، 2) إنشاء مستخدم sudo جديد، 3) إعداد مصادقة مفتاح SSH، 4) تعطيل تسجيل دخول root عبر SSH، 5) تكوين جدار حماية UFW، 6) تثبيت Fail2ban.

هل يمكن استخدام Fail2ban وUFW معاً؟

نعم، يعمل Fail2ban وUFW معاً بشكل مثالي. يكتشف Fail2ban محاولات تسجيل الدخول الفاشلة ويحظر عناوين IP المهاجمين تلقائياً عبر UFW.

هل تغيير منفذ SSH يحسّن الأمان؟

جزئياً. تغيير منفذ SSH يحجب الغالبية العظمى من أدوات المسح الآلي. ومع ذلك، يُعتبر هذا 'أمان من خلال الغموض' ولا يحل محل التدابير الأمنية الحقيقية. مصادقة مفتاح SSH وFail2ban أكثر فعالية بكثير.

كيف أعرف إذا تعرّض خادمي للهجوم؟

علامات النشاط المشبوه: محاولات تسجيل دخول فاشلة كثيرة في /var/log/auth.log، استخدام CPU/RAM مرتفع بشكل غير متوقع، اتصالات شبكة مجهولة، مهام cron مجهولة، ملفات نظام معدّلة.

ماذا أفعل إذا كان هناك هجوم DDoS على خادم VDS الخاص بي؟

أولاً حدّد نوع الهجوم ومصدره. إذا استمر الهجوم، أبلغ فريق دعم REXE فوراً. تقوم حماية DDoS من REXE عبر Path.net بتصفية الهجمات على مستوى الشبكة.

مقالات ذات صلة

إعداد Fail2Ban: دليل حماية SSH من هجمات Brute-Force

احمِ خادمك من هجمات SSH Brute-Force باستخدام Fail2Ban. التثبيت، إعداد jail.local، جيلات Nginx/Apache، القائمة البيضاء للـ IP، مراقبة الحظر وتنبيهات البريد الإلكتروني.

13 دقيقة
fail2banbrute-forceأمان ssh
حركة الشبكةالداخل Gbpsالخارج Gbps