كيف تبدأ مع 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:
bashdd if=FreeBSD-10.1-RELEASE-amd64-dvd1.iso of=/dev/sdX bs=4M
التهيئة المبدئية للنظام
يُنصح بتهيئة قسم منفصل للنظام وآخر للبيانات. يمكن استخدام ZFS كنظام ملفات موثوق يضمن حماية البيانات، أو UFS لأداء أسرع في بعض الحالات.
ثانياً: تثبيت FreeBSD 10.1
بدء التثبيت
بعد الإقلاع من الوسيط، يتم اختيار “Install” واتباع خطوات التثبيت:
-
تحديد اللغة والمنطقة الزمنية.
-
اختيار نظام الملفات (ZFS أو UFS).
-
إعداد اسم المستخدم وكلمة المرور الجذر.
-
تحديد الحزم الأساسية التي ستُثبّت (SSH، ports، src).
تحديث النظام
بعد التثبيت، يجب تحديث الحزم الأساسية والنظام باستخدام الأمر:
bashfreebsd-update fetch install
ثم إعادة تشغيل النظام لضمان تطبيق التحديثات.
ثالثاً: إعداد الشبكة وخدمات SSH
إعداد عنوان IP ثابت
لتكوين عنوان IP ثابت، يُعدل ملف /etc/rc.conf ويُضاف:
confifconfig_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:
confPermitRootLogin no
-
إنشاء مستخدم غير الجذر ومنحه صلاحيات
sudo.
رابعاً: تثبيت البرمجيات الأساسية لخادوم الويب
نظام الحزم pkg
تثبيت نظام الحزم:
bashpkg
ثم تحديثه:
bashpkg update && pkg upgrade
تثبيت Apache أو Nginx
Apache:
bashpkg install apache24
sysrc apache24_enable="YES"
service apache24 start
Nginx:
bashpkg install nginx
sysrc nginx_enable="YES"
service nginx start
تثبيت PHP
bashpkg install php56 mod_php56
تعديل ملف Apache ليدعم PHP:
apacheDirectoryIndex index.php index.html SetHandler application/x-httpd-php
تثبيت MySQL
bashpkg install mysql56-server
sysrc mysql_enable="YES"
service mysql-server start
تهيئة قاعدة البيانات:
bashmysql_secure_installation
خامساً: تنظيم الملفات والخدمات
هيكلية الملفات
عادة يتم وضع ملفات الويب في /usr/local/www/apache24/data أو /usr/local/www/nginx حسب الخادوم المستخدم. يمكن تغيير هذا المسار حسب الحاجة.
إعداد أسماء النطاقات الافتراضية
مثال على إعداد Virtual Host في Apache:
apacheServerAdmin [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:
confext_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:
bashsysrc pf_enable="YES"
service pf start
تثبيت أدوات الأمان
-
fail2banلمنع محاولات الدخول المتكررة. -
clamavللحماية من الفيروسات في الملفات المرفوعة.
سابعاً: إعداد SSL
استخدام Let’s Encrypt
bashpkg install py27-certbot certbot certonly --standalone -d example.com
ثم تكوين الخادوم Apache أو Nginx لاستخدام شهادة SSL:
apacheServerName 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:
confkern.ipc.somaxconn=1024 net.inet.tcp.sendspace=65536 net.inet.tcp.recvspace=65536
تاسعاً: النسخ الاحتياطي واستعادة النظام
أدوات النسخ الاحتياطي
-
rsyncلنسخ الملفات إلى خادوم خارجي. -
dumpوrestoreلأنظمة الملفات UFS. -
zfs snapshotإذا كنت تستخدم ZFS.
جدول نسخ احتياطي
| نوع البيانات | الأداة | التكرار | المكان |
|---|---|---|---|
| ملفات الموقع | rsync | يومي | خادوم خارجي |
| قاعدة |

