ديف أوبس

خادوم ويب FreeBSD 10.1

كيف تبدأ مع FreeBSD 10.1 كخادوم ويب: دليل شامل لإعداد خادوم ويب مستقر وآمن

المقدمة

FreeBSD هو نظام تشغيل مفتوح المصدر ومشتق من BSD UNIX، يتمتع بسمعة واسعة من حيث الأداء العالي، الأمان، والاستقرار، مما يجعله خيارًا ممتازًا لخوادم الويب. النسخة 10.1 من FreeBSD تُعد واحدة من الإصدارات المدعومة لفترة طويلة، وقد شهدت تحسينات مهمة في نواة النظام والبنية التحتية للشبكة، ما يجعلها بيئة مثالية لاستضافة تطبيقات الويب وخدمات الإنترنت.

في هذا المقال، سيتم تناول كل ما يحتاجه المستخدم لبدء تشغيل FreeBSD 10.1 كخادوم ويب، من التثبيت إلى إعداد بيئة العمل مرورًا بتأمين الخادوم وتكوين البرمجيات الأساسية مثل Apache، Nginx، MySQL، PHP وغيرها من التقنيات المستخدمة عادة في بيئات استضافة الويب.


أولاً: التحضير لتثبيت FreeBSD 10.1

تحميل صورة النظام

الخطوة الأولى هي تحميل صورة FreeBSD 10.1 ISO من الموقع الرسمي https://www.freebsd.org. يجب التأكد من اختيار النسخة المناسبة للمعمارية المستهدفة (i386 أو amd64).

إنشاء وسائط التثبيت

يجب نسخ ملف ISO إلى وسيط USB باستخدام أداة مثل dd على Unix أو Rufus على Windows:

bash
dd if=FreeBSD-10.1-RELEASE-amd64-dvd1.iso of=/dev/sdX bs=4M

التهيئة المبدئية للنظام

يُنصح بتهيئة قسم منفصل للنظام وآخر للبيانات. يمكن استخدام ZFS كنظام ملفات موثوق يضمن حماية البيانات، أو UFS لأداء أسرع في بعض الحالات.


ثانياً: تثبيت FreeBSD 10.1

بدء التثبيت

بعد الإقلاع من الوسيط، يتم اختيار “Install” واتباع خطوات التثبيت:

  • تحديد اللغة والمنطقة الزمنية.

  • اختيار نظام الملفات (ZFS أو UFS).

  • إعداد اسم المستخدم وكلمة المرور الجذر.

  • تحديد الحزم الأساسية التي ستُثبّت (SSH، ports، src).

تحديث النظام

بعد التثبيت، يجب تحديث الحزم الأساسية والنظام باستخدام الأمر:

bash
freebsd-update fetch install

ثم إعادة تشغيل النظام لضمان تطبيق التحديثات.


ثالثاً: إعداد الشبكة وخدمات SSH

إعداد عنوان IP ثابت

لتكوين عنوان IP ثابت، يُعدل ملف /etc/rc.conf ويُضاف:

conf
ifconfig_em0="inet 192.168.1.100 netmask 255.255.255.0" defaultrouter="192.168.1.1" hostname="webserver.domain.tld"

تمكين SSH والوصول عن بعد

بشكل افتراضي، SSH يعمل على FreeBSD، لكن يجب التأكد من ضبطه بشكل آمن:

  • تعديل ملف /etc/ssh/sshd_config لتعطيل الدخول كمستخدم root:

conf
PermitRootLogin no
  • إنشاء مستخدم غير الجذر ومنحه صلاحيات sudo.


رابعاً: تثبيت البرمجيات الأساسية لخادوم الويب

نظام الحزم pkg

تثبيت نظام الحزم:

bash
pkg

ثم تحديثه:

bash
pkg update && pkg upgrade

تثبيت Apache أو Nginx

Apache:
bash
pkg install apache24 sysrc apache24_enable="YES" service apache24 start
Nginx:
bash
pkg install nginx sysrc nginx_enable="YES" service nginx start

تثبيت PHP

bash
pkg install php56 mod_php56

تعديل ملف Apache ليدعم PHP:

apache
DirectoryIndex index.php index.html SetHandler application/x-httpd-php

تثبيت MySQL

bash
pkg install mysql56-server sysrc mysql_enable="YES" service mysql-server start

تهيئة قاعدة البيانات:

bash
mysql_secure_installation

خامساً: تنظيم الملفات والخدمات

هيكلية الملفات

عادة يتم وضع ملفات الويب في /usr/local/www/apache24/data أو /usr/local/www/nginx حسب الخادوم المستخدم. يمكن تغيير هذا المسار حسب الحاجة.

إعداد أسماء النطاقات الافتراضية

مثال على إعداد Virtual Host في Apache:

apache
ServerAdmin [email protected] DocumentRoot "/usr/local/www/apache24/data/example" ServerName www.example.com ErrorLog "/var/log/httpd-error.log" CustomLog "/var/log/httpd-access.log" common

سادساً: تأمين الخادوم

إعداد جدار الحماية pf

إضافة الإعداد التالي إلى /etc/pf.conf:

conf
ext_if="em0" set skip on lo block in all pass out all keep state pass in on $ext_if proto tcp to port { 22, 80, 443 }

تمكين pf:

bash
sysrc pf_enable="YES" service pf start

تثبيت أدوات الأمان

  • fail2ban لمنع محاولات الدخول المتكررة.

  • clamav للحماية من الفيروسات في الملفات المرفوعة.


سابعاً: إعداد SSL

استخدام Let’s Encrypt

bash
pkg install py27-certbot certbot certonly --standalone -d example.com

ثم تكوين الخادوم Apache أو Nginx لاستخدام شهادة SSL:

apache
ServerName www.example.com SSLEngine on SSLCertificateFile "/usr/local/etc/letsencrypt/live/example.com/fullchain.pem" SSLCertificateKeyFile "/usr/local/etc/letsencrypt/live/example.com/privkey.pem"

ثامناً: إدارة الأداء والمراقبة

أدوات مراقبة النظام

  • top, htop لمراقبة العمليات.

  • iftop لمراقبة حركة الشبكة.

  • nagios أو munin لإنشاء تقارير متقدمة.

تهيئة sysctl

تحسين الأداء عبر sysctl.conf:

conf
kern.ipc.somaxconn=1024 net.inet.tcp.sendspace=65536 net.inet.tcp.recvspace=65536

تاسعاً: النسخ الاحتياطي واستعادة النظام

أدوات النسخ الاحتياطي

  • rsync لنسخ الملفات إلى خادوم خارجي.

  • dump وrestore لأنظمة الملفات UFS.

  • zfs snapshot إذا كنت تستخدم ZFS.

جدول نسخ احتياطي

نوع البيانات الأداة التكرار المكان
ملفات الموقع rsync يومي خادوم خارجي
قاعدة

Retry