الرئيسية قاعدة المعرفة الشبكات والاتصالات إدارة خوادم Linux الصناعية: الأوامر والخدمات والصلاحيات
الشبكات والاتصالات

إدارة خوادم Linux الصناعية: الأوامر والخدمات والصلاحيات

systemd: إدارة الخدمات

كل خادم Linux حديث يستخدم systemd لبدء وإيقاف ومراقبة جميع الخدمات. عند نشر تطبيق صناعي، يضمن systemd بدء تشغيله تلقائياً بعد إعادة التشغيل وإعادة تشغيله عند الانهيار.

الأوامر الأساسية

sudo systemctl start factory-monitor    # بدء خدمة
sudo systemctl stop factory-monitor     # إيقاف خدمة
sudo systemctl enable factory-monitor   # تفعيل البدء التلقائي مع الإقلاع
sudo systemctl status factory-monitor   # فحص حالة الخدمة

إنشاء خدمة مخصصة

# /etc/systemd/system/factory-monitor.service
[Unit]
Description=Factory Monitoring Application
After=network.target

[Service]
Type=simple
User=factory
WorkingDirectory=/opt/factory-monitor
ExecStart=/opt/factory-monitor/bin/factory-monitor
Restart=always
RestartSec=5
Environment=RUST_LOG=info
Environment=DATABASE_URL=ws://localhost:8000

[Install]
WantedBy=multi-user.target
sudo systemctl daemon-reload
sudo systemctl enable --now factory-monitor

الجدار الناري: ufw و iptables

خادم مصنع بدون جدار ناري هو دعوة مفتوحة للوصول غير المصرح به.

ufw (جدار ناري مبسّط)

sudo ufw enable
sudo ufw allow 22/tcp       # SSH
sudo ufw allow 8080/tcp     # التطبيق
sudo ufw allow 3000/tcp     # Grafana
sudo ufw default deny incoming
sudo ufw default allow outgoing
sudo ufw status verbose

iptables (متقدم)

sudo iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 22 -s 192.168.10.0/24 -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 8080 -s 10.0.0.0/24 -j ACCEPT
sudo iptables -A INPUT -j DROP

إدارة المستخدمين والصلاحيات

لا تُشغّل خدمات الإنتاج كـ root أبداً. أنشئ مستخدمين مخصصين بأقل الصلاحيات.

sudo useradd --system --no-create-home --shell /usr/sbin/nologin factory
sudo useradd -m -s /bin/bash admin-joe
sudo usermod -aG sudo admin-joe
sudo chown -R factory:factory /opt/factory-monitor
sudo chmod 750 /opt/factory-monitor

مصادقة مفاتيح SSH

ssh-keygen -t ed25519 -C "joe@drmachine"
ssh-copy-id -i ~/.ssh/id_ed25519.pub admin-joe@factory-server
sudo sed -i 's/#PasswordAuthentication yes/PasswordAuthentication no/' /etc/ssh/sshd_config
sudo systemctl restart sshd

السجلات: journalctl وملفات /var/log

عندما تتوقف آلة عن إرسال البيانات في الثالثة صباحاً، السجلات هي خط التحقيق الأول.

journalctl

sudo journalctl -b                              # جميع السجلات منذ آخر إقلاع
sudo journalctl -u factory-monitor -f           # متابعة خدمة
sudo journalctl --since "30 min ago"            # سجلات أخيرة
sudo journalctl -p err -b                       # الأخطاء فقط

ملفات السجلات المهمة

الملف الغرض
/var/log/syslog رسائل النظام العامة
/var/log/auth.log محاولات المصادقة
/var/log/kern.log رسائل النواة

تدوير السجلات

# /etc/logrotate.d/factory-monitor
/var/log/factory-monitor/*.log {
    daily
    missingok
    rotate 14
    compress
    notifempty
    create 0640 factory factory
}

المهام المجدولة: cron و systemd timers

cron

crontab -e
0 2 * * * /opt/scripts/backup-surrealdb.sh >> /var/log/backup.log 2>&1
0 3 * * 0 /opt/scripts/cleanup-logs.sh
*/5 * * * * /opt/scripts/health-check.sh || /opt/scripts/alert.sh

مؤقتات systemd

# /etc/systemd/system/factory-backup.timer
[Unit]
Description=Daily Factory Database Backup
[Timer]
OnCalendar=*-*-* 02:00:00
Persistent=true
[Install]
WantedBy=timers.target
# /etc/systemd/system/factory-backup.service
[Unit]
Description=Factory Database Backup Job
[Service]
Type=oneshot
User=factory
ExecStart=/opt/scripts/backup-surrealdb.sh
sudo systemctl enable --now factory-backup.timer

مثال عملي: إعداد خادم تطبيقات صناعي من الصفر

# 1. تحديث النظام
sudo apt update && sudo apt upgrade -y

# 2. إنشاء مستخدم التطبيق
sudo useradd --system --no-create-home --shell /usr/sbin/nologin factory

# 3. تثبيت Docker
curl -fsSL https://get.docker.com | sh
sudo usermod -aG docker factory

# 4. إعداد الجدار الناري
sudo ufw allow 22/tcp && sudo ufw allow 8080/tcp && sudo ufw allow 3000/tcp
sudo ufw enable

# 5. تقوية SSH
sudo sed -i 's/#PasswordAuthentication yes/PasswordAuthentication no/' /etc/ssh/sshd_config
sudo sed -i 's/PermitRootLogin yes/PermitRootLogin no/' /etc/ssh/sshd_config
sudo systemctl restart sshd

# 6. التحديثات الأمنية التلقائية
sudo apt install -y unattended-upgrades
sudo dpkg-reconfigure -plow unattended-upgrades

# 7. النشر والتحقق
cd /opt/factory-monitor && docker compose up -d
docker compose ps && sudo ufw status

الخلاصة

إدارة أنظمة Linux هي أساس النشر الصناعي الموثوق. systemd يدير خدماتك، الجدران النارية تحمي محيط شبكتك، إدارة المستخدمين السليمة تحد من أضرار الحسابات المخترقة، السجلات تساعدك في تشخيص المشاكل، والمهام المجدولة تؤتمت الصيانة الروتينية. في الدرس القادم، ستتعلم خطوط أنابيب CI/CD لأتمتة عمليات البناء والاختبار والنشر.

Linux systemd firewall permissions logs server-admin لينكس إدارة الخوادم الجدار الناري الصلاحيات السجلات الخدمات