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

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

 

 

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

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

1️⃣ المرحلة الأولى — التخطيط (قبل ما تشتري)
▪️حدد الغرض: ويب/API، قاعدة بيانات، تخزين ملفات، virtualization/VMs، container host، mail server، AD، إلخ.
▪️المتطلبات الوظيفية: عدد المستخدمين/اتصالات متزامنة، حجم الداتا، RTO/RPO للنسخ الاحتياطي، SLA، احتياج للـ high-availability.
▪️مستوى الأداء: CPU core، RAM، I/O (SSD vs HDD)، NIC(s) (1Gb vs 10Gb).
▪️بيئة التشغيل: في الداتا سنتر/رف محلي/سحابة (VPS/AWS/Azure).
▪️ميزانية وصيانة: تكلفة شراء، كهربا/تبريد، رخص OS أو برامج (إذا في).
2️⃣ المواصفات الموصى بها (أمثلة سريعة)
▫️سيرفر خفيف (تطبيق ويب صغير / 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، نسخ احتياطية خارجية.
3️⃣ شراء/تجميع الأجهزة (عملي)
🔹️اختيار Motherboard ملائم (سرعات PCIe، عدد Sata/M.2).
🔹️اختيار تخزين سريع للـ OS (NVMe) + تخزين كبير للبيانات (RAID).
🔹️مزود طاقة (PSU) جيد + UPS.
🔹️NICs مكررة للـ redundancy إن مطلوب.
🔹️لوحة وصل KVM أو iLO/iDRAC للوصول البعيد (مفيد جداً).
4️⃣ تركيب/تشغيل أولي (BIOS/firmware)
🔸️حدث BIOS/firmware للأجهزة والـ RAID controller.
🔸️إعداد ترتيب الإقلاع (NVMe/SSD أولاً).
🔸️تعطيل ميزات غير لازمة (مثل virtualization إذا مش هتستخدمها — أو خلّيها مفعل لو هتستخدم VMs).
🔸️ضبط الوقت والتاريخ في BIOS.
5️⃣ تثبيت نظام التشغيل (مثال: Ubuntu Server)
1. أنشئ USB boot (Rufus، balenaEtcher).
2. أثناء التثبيت:
◾️قسّم القرص حسب حاجتك (/, /var, /home, swap أو استخدم LVM).
◾️اختر OpenSSH server أثناء التثبيت.
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 apt install -y chrony
sudo systemctl enable --now chrony
6️⃣ إعداد الشبكة وأسماء الـ 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
▪️إعداد Netplan (Ubuntu):
# /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
7️⃣ الوصول الآمن (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
جدار ناري وحماية إضافية
▪️UFW مثال سريع:
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
▪️تثبيت fail2ban:
sudo apt install fail2ban
sudo systemctl enable --now fail2ban
9️⃣ إدارة الحزم والتحديثات الأمنية
🔸️فعل تحديثات أمنية تلقائية (unattended-upgrades):
sudo apt install unattended-upgrades
sudo dpkg-reconfigure --priority=low unattended-upgrades
لكن راجع سياسة التحديثات لخدمات حساسة (بعض الناس يفضّل updates يدوية على قواعد البيانات المنتجة).
1️⃣0️⃣ تخزين / نسخ احتياطي
🔹️استخدم استراتيجية 3-2-1: 3 نسخ، على 2 وسائط مختلفة، و1 خارج الموقع.
🔹️أدوات شائعة: rsync, BorgBackup, Restic, Duplicity، أو حلول احترافية كـ Veeam/Commvault.
🔹️جدولة نسخ يومية/أسبوعية مع اختبار الاستعادة دوريًا.
1️⃣1️⃣ مراقبة ولوقز (Monitoring & Logging)
▪️تثبيت أدوات: Prometheus (metrics) + Grafana (dashboard) أو Zabbix/Nagios.
▪️مركزي للّوغات: rsyslog → ELK stack (Elasticsearch, Logstash, Kibana) أو Grafana Loki.
▪️إعداد تنبيهات (email/Slack) للحالات الحرجة (disk full, high CPU, service down).
1️⃣2️⃣ تشغيل الخدمات الأساسية (أمثلة شائعة)
▫️ويب: 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 الكبير.
1️⃣3️⃣ الأمان المتقدم
◾️تشفير القرص (LUKS) للـ disks الحساسة.
SELinux (على RHEL/CentOS) أو AppArmor (Ubuntu).
◾️إدارة مفاتيح/سرّية (HashiCorp Vault أو AWS KMS).
◾️سياسات least-privilege و auditing (auditd).
1️⃣4️⃣ الاختبار والتحقق قبل الإنتاج
🔸️اختبار تحميل (load testing) بـ tools مثل ApacheBench, JMeter, k6.
🔸️اختبار استرجاع النسخ الاحتياطي فعليًا.
🔸️فحص الأمان (vulnerability scan) باستخدام tools مثل OpenVAS أو Nessus.
🔸️اختبار استمرارية الخدمة: محاكاة فقدان نقش (network failure) أو إعادة تشغيل الخدمات.
1️⃣5️⃣ تشغيل فعلي (Go-Live) وقائمة فحص نهائية
🔹️تحقق من:
▫️DNS مُعين صحيحًا ووقت TTL مناسب.
▫️شهادات SSL صالحة.
▫️نسخ احتياطي ناجح وتم تاكيد الاستعادة.
▫️مراقبة تعمل وتنبيهات مُختبرة.
▫️خطة rollback جاهزة لو حصل خطأ.
▫️وثق كل الإعدادات (config files، مفاتيح، repo للشفرات، runbook للإجراءات الروتينية).
1️⃣6️⃣ صيانة دورية
▫️تحديثات أمنيّة أسبوعية/شهرية.
▫️مراقبة المساحة/أداء الشبكة/سعة الـ IOPS.
▫️اختبارات النسخ الاحتياطي كل شهر.
▫️مراجعات صلاحيات المستخدمين وكل 3 أشهر.

 

A tech blog focused on blogging tips, SEO, social media, mobile gadgets, pc tips, how-to guides and general tips and tricks

إرسال تعليق