بناء سيرفر من الصفر لحد ما يبقى جاهز للإنتاج.

المرحلة الأولى — التخطيط (قبل ما تشتري)

حدد الغرض: ويب/API، قاعدة بيانات، تخزين ملفات، virtualization/VMs، container host، mail server، AD، إلخ.

المتطلبات الوظيفية: عدد المستخدمين/اتصالات متزامنة، حجم الداتا، RTO/RPO للنسخ الاحتياطي، SLA، احتياج للـ
high-availability.

ميزانية وصيانة: تكلفة شراء، كهربا/تبريد، رخص OS أو برامج (إذا في).

المواصفات الموصى بها (أمثلة سريعة)

سيرفر خفيف (تطبيق ويب صغير / dev): 2 CPU, 4–8GB RAM, 120–240GB SSD.

سيرفر متوسط (قاعدة بيانات صغيرة / موقع متوسط): 4–8 CPU, 16–32GB RAM,
NVMe SSD 500GB+,
RAID/backup.

سيرفر إنتاج كبير: 8+ CPU, 64GB+ RAM, NVMe SSDs (RAID1/RAID10), NIC 10Gb,
UPS، نسخ احتياطية خارجية.

شراء/تجميع الأجهزة (عملي)

اختيار تخزين سريع للـ OS (NVMe) + تخزين كبير للبيانات (RAID).

مزود طاقة (
PSU) جيد + UPS.

NICs مكررة للـ redundancy إن مطلوب.

حدث BIOS/firmware للأجهزة والـ RAID controller.

إعداد ترتيب الإقلاع (NVMe/SSD أولاً).

تعطيل ميزات غير لازمة (مثل virtualization إذا مش هتستخدمها — أو خلّيها مفعل لو هتستخدم VMs).

ضبط الوقت والتاريخ في BIOS.
2. أثناء التثبيت:

قسّم القرص حسب حاجتك (/, /var, /home, swap أو استخدم
LVM).
3. بعد التثبيت: سجل دخول عبر الطرفية أو SSH.

أوامر أساسية بعد التثبيت (Ubuntu/Debian):
# تحديث الحزم
sudo apt update && sudo apt upgrade -y
# إنشاء حساب مستخدم جديد بصلاحيات sudo
sudo adduser deployer
sudo usermod -aG sudo deployer
# إعداد المنطقة الزمنية
sudo timedatectl set-timezone Africa/Cairo
# ضبط NTP
sudo systemctl enable --now chrony

إعداد الشبكة وأسماء الـ Host

ضبط IP ثابت أو DHCP reservation.

ضع اسم مضيف معبر:
sudo hostnamectl set-hostname my-server
echo "127.0.1.1 my-server.example.com my-server" | sudo tee -a /etc/hosts
# /etc/netplan/01-netcfg.yaml مثال بسيط
network:
version: 2
renderer: networkd
ethernets:
enp0s3:
addresses: [192.168.1.10/24]
gateway4: 192.168.1.1
nameservers:
addresses: [8.8.8.8,1.1.1.1]

ثم:
sudo netplan apply

الوصول الآمن (SSH hardening)

غيّر المنفذ الافتراضي، منع تسجيل الدخول root، استخدام مفاتيح SSH فقط.
# على جهاز العميل: إنشاء مفتاح
ssh-keygen -t ed25519 -C "deployer@you"
# انسخ المفتاح للسيرفر
ssh-copy-id deployer@192.168.1.10
تحرير /etc/ssh/sshd_config:
PermitRootLogin no
PasswordAuthentication no
Port 2222 # مثال
AllowUsers deployer

ثم:
sudo systemctl restart sshd
جدار ناري وحماية إضافية
sudo apt install ufw
sudo ufw default deny incoming
sudo ufw default allow outgoing
sudo ufw allow 2222/tcp # SSH (لو غيرت البورت)
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
sudo ufw enable
sudo apt install fail2ban
sudo systemctl enable --now fail2ban

إدارة الحزم والتحديثات الأمنية

فعل تحديثات أمنية تلقائية (unattended-upgrades):
sudo apt install unattended-upgrades
sudo dpkg-reconfigure --priority=low unattended-upgrades
لكن راجع سياسة التحديثات لخدمات حساسة (بعض الناس يفضّل updates يدوية على قواعد البيانات المنتجة).


تخزين / نسخ احتياطي

استخدم استراتيجية 3-2-1: 3 نسخ، على 2 وسائط مختلفة، و1 خارج الموقع.

أدوات شائعة: rsync, BorgBackup, Restic, Duplicity، أو حلول احترافية كـ Veeam/Commvault.

جدولة نسخ يومية/أسبوعية مع اختبار الاستعادة دوريًا.


مراقبة ولوقز (Monitoring & Logging)

مركزي للّوغات: rsyslog → ELK stack (Elasticsearch, Logstash, Kibana) أو Grafana Loki.

إعداد تنبيهات (email/Slack) للحالات الحرجة (disk full, high CPU, service down).


تشغيل الخدمات الأساسية (أمثلة شائعة)

ويب: nginx أو apache
sudo apt install nginx
sudo systemctl enable --now nginx

قاعدة بيانات: PostgreSQL / MySQL
sudo apt install postgresql
sudo -u postgres createuser --interactive
sudo -u postgres createdb mydb

SSL: استخدم Let's Encrypt مع Certbot
sudo apt install certbot python3-certbot-nginx
sudo certbot --nginx -d example.com -d www.example.com

حاويات: Docker + docker-compose أو Kubernetes للـ scale الكبير.


الأمان المتقدم

تشفير القرص (LUKS) للـ disks الحساسة.
SELinux (على RHEL/CentOS) أو AppArmor (Ubuntu).

إدارة مفاتيح/سرّية (HashiCorp Vault أو AWS KMS).

سياسات least-privilege و auditing (auditd).


الاختبار والتحقق قبل الإنتاج

اختبار تحميل (load testing) بـ tools مثل ApacheBench, JMeter, k6.

اختبار استرجاع النسخ الاحتياطي فعليًا.

فحص الأمان (vulnerability scan) باستخدام tools مثل OpenVAS أو Nessus.

اختبار استمرارية الخدمة: محاكاة فقدان نقش (network failure) أو إعادة تشغيل الخدمات.


تشغيل فعلي (Go-Live) وقائمة فحص نهائية

تحقق من:

DNS مُعين صحيحًا ووقت TTL مناسب.

شهادات SSL صالحة.

نسخ احتياطي ناجح وتم تاكيد الاستعادة.

مراقبة تعمل وتنبيهات مُختبرة.

خطة rollback جاهزة لو حصل خطأ.

وثق كل الإعدادات (config files، مفاتيح، repo للشفرات، runbook للإجراءات الروتينية).


صيانة دورية

تحديثات أمنيّة أسبوعية/شهرية.

مراقبة المساحة/أداء الشبكة/سعة الـ IOPS.

اختبارات النسخ الاحتياطي كل شهر.

مراجعات صلاحيات المستخدمين وكل 3 أشهر.