لماذا يُعدّ تأمين خادم VPS أمرًا بالغ الأهمية في 2025
كل يوم، يتم اختراق آلاف خوادم VPS بسبب إعدادات افتراضية لم تُعدَّل قط. كلمة مرور root مفعَّلة، ومنافذ مفتوحة، وغياب جدار ناري — كلها ثغرات تستغلها البوتات الآلية خلال دقائق من إطلاق الخادم.
في Otomy، ننشر خوادم VPS لصالح مؤسسات صغيرة ومتوسطة في فرنسا والجزائر تستضيف تطبيقات Next.js على Vercel، وواجهات خلفية على Supabase، وسير عمل n8n، ومنصات تجارة إلكترونية. يعتمد هذا الدليل على قائمة التحقق التي نستخدمها فعليًا في بيئة الإنتاج.
الخطوة 1 — اختيار مزوّد الاستضافة ونظام التشغيل المناسبَيْن
اختر مزوّدًا يمتلك مركز بيانات في أوروبا لضمان الامتثال لنظام RGPD: Hetzner أو OVH أو Scaleway أو Contabo. أما نظام التشغيل، فاختر Ubuntu 24.04 LTS أو Debian 12 — كلاهما يوفّر دعمًا طويل الأمد ومجتمعًا واسعًا.
نصيحة Otomy: تجنَّب الصور المُعدَّة مسبقًا مع لوحات التحكم (cPanel، Plesk). فهي تُوسِّع سطح الهجوم دون داعٍ.
الخطوة 2 — الاتصال الأول وتأمين SSH
فور استلام خادم VPS الخاص بك، اتصل بحساب root وطبِّق التعديلات التالية:
# تحديث النظام
apt update && apt upgrade -y
# إنشاء مستخدم غير root
adduser deploy
usermod -aG sudo deploy
# إعداد المصادقة بمفتاح SSH
mkdir -p /home/deploy/.ssh
cp ~/.ssh/authorized_keys /home/deploy/.ssh/
chown -R deploy:deploy /home/deploy/.ssh
chmod 700 /home/deploy/.ssh
chmod 600 /home/deploy/.ssh/authorized_keys
بعد ذلك، قم بتقوية إعدادات SSH في الملف /etc/ssh/sshd_config:
Port 2222 # تغيير المنفذ الافتراضي
PermitRootLogin no # منع تسجيل الدخول بحساب root
PasswordAuthentication no # مفاتيح SSH فقط
MaxAuthTries 3
ClientAliveInterval 300
ClientAliveCountMax 2
systemctl restart sshd
مهم: اختبر الاتصال بالمستخدم الجديد قبل إغلاق جلسة root الحالية.
الخطوة 3 — جدار الحماية UFW والحماية بـ Fail2Ban
خادم VPS بدون جدار ناري هو هدف سهل. قم بإعداد UFW (Uncomplicated Firewall):
ufw default deny incoming
ufw default allow outgoing
ufw allow 2222/tcp # SSH على المنفذ الجديد
ufw allow 80/tcp # HTTP
ufw allow 443/tcp # HTTPS
ufw enable
ثم ثبِّت Fail2Ban لحظر محاولات الاختراق بالقوة العمياء:
apt install fail2ban -y
cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
عدِّل الملف /etc/fail2ban/jail.local:
[sshd]
enabled = true
port = 2222
maxretry = 3
bantime = 3600
findtime = 600
systemctl enable fail2ban && systemctl start fail2ban
الخطوة 4 — التحديثات الأمنية التلقائية
ثغرات zero-day لا تنتظر. فعِّل التحديثات التلقائية:
apt install unattended-upgrades -y
dpkg-reconfigure -plow unattended-upgrades
تحقَّق في الملف /etc/apt/apt.conf.d/50unattended-upgrades من أن السطر التالي غير مُعلَّق:
"${distro_id}:${distro_codename}-security";
الخطوة 5 — وكيل عكسي Nginx مع شهادة SSL من Let's Encrypt
لعرض تطبيقك (Next.js أو n8n أو API بـ Node.js)، استخدم Nginx كوكيل عكسي:
apt install nginx certbot python3-certbot-nginx -y
أنشئ ملف إعدادات في /etc/nginx/sites-available/monapp:
server {
server_name monapp.exemple.com;
location / {
proxy_pass http://127.0.0.1:3000;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
ln -s /etc/nginx/sites-available/monapp /etc/nginx/sites-enabled/
nginx -t && systemctl reload nginx
certbot --nginx -d monapp.exemple.com
سيقوم Certbot بتجديد شهاداتك تلقائيًا عبر مهمة cron مدمجة.
الخطوة 6 — الحاويات باستخدام Docker (اختياري لكنه موصى به)
لعزل خدماتك (n8n أو Supabase المُستضاف ذاتيًا أو قواعد البيانات)، يُعدّ Docker أمرًا لا غنى عنه:
curl -fsSL https://get.docker.com | sh
usermod -aG docker deploy
مثال على ملف docker-compose.yml لـ n8n:
version: '3.8'
services:
n8n:
image: n8nio/n8n
restart: always
ports:
- "127.0.0.1:5678:5678"
environment:
- N8N_BASIC_AUTH_ACTIVE=true
- N8N_BASIC_AUTH_USER=admin
- N8N_BASIC_AUTH_PASSWORD=${N8N_PASSWORD}
volumes:
- n8n_data:/home/node/.n8n
volumes:
n8n_data:
لاحظ أن الربط يتم على 127.0.0.1: الخدمة لا يمكن الوصول إليها إلا عبر الوكيل العكسي Nginx، وليس مباشرة من الإنترنت.
الخطوة 7 — المراقبة والتنبيهات
الخادم الآمن هو خادم مُراقَب. إليك توصياتنا:
- Netdata: مراقبة فورية، تثبيت بأمر واحد
- Uptime Kuma: بديل مُستضاف ذاتيًا لـ UptimeRobot
- Logwatch: ملخص يومي للسجلات يُرسَل عبر البريد الإلكتروني
# تثبيت Netdata
curl https://get.netdata.cloud/kickstart.sh > /tmp/netdata-kickstart.sh && sh /tmp/netdata-kickstart.sh
اربط ذلك بتنبيهات عبر Slack أو Telegram أو سير عمل Make لتلقّي الإشعارات في الوقت الفعلي.
قائمة التحقق الشاملة لتأمين VPS
- ✅ مستخدم غير root مع مفتاح SSH
- ✅ تغيير منفذ SSH وتعطيل تسجيل الدخول بحساب root
- ✅ جدار حماية UFW مفعَّل (المنافذ 80 و443 وSSH فقط)
- ✅ إعداد Fail2Ban على SSH
- ✅ تفعيل التحديثات التلقائية
- ✅ وكيل عكسي Nginx مع شهادة SSL من Let's Encrypt
- ✅ حاويات Docker مربوطة على localhost
- ✅ مراقبة فعّالة مع تنبيهات
الخلاصة
تأمين خادم VPS بشكل متين لا يتطلب ساعات طويلة — بل يتطلب منهجية واضحة. باتباع هذه الخطوات السبع، ستحصل على خادم محصَّن وجاهز لاستضافة تطبيقاتك الويب في بيئة الإنتاج.
هل تحتاج إلى مرافقة في نشر بنيتك التحتية؟ Otomy يتولى إعداد وتأمين وصيانة خوادم VPS للمؤسسات الصغيرة والمتوسطة في فرنسا والجزائر. تواصل معنا للحصول على تدقيق مجاني لخادمك.