سأحاول شرح كيفية إعداد خادم ويب مستقل أو تخيلي (VPS) يعمل بنظام دبيان 7 مرورا بالنقاط التالية:
- تحديث / ترقية النظام
- تنصيب لوحة التحكم Virtualmin
- بعض التعديلات وإعدادات الحماية
- شرح أهم الوظائف على لوحة التحكم Virtualmin
تنصيب لوحة تحكم Virtualmin على الخادم سيتسبب في تنصيب أغلب الخدمات التي نحتاجها لتشغيل خادم الويب لأن هذه الخدمات تعتبر تبعيات لهذه اللوحة لذا سيتم تنصيبها تلقائيا.
أيضا سيتم تثبيت لوحة التحكم Webmin تلقائيا لأنها جزء من Virtualmin، وهي لوحة تحكم ممتازة تستخدم في إدارة الأجهزة والخوادم على حد سواء، كما يمكن تثبيتها مستقلة خاصة لإدارة الخوادم الصغيرة والخاصة، لما توفره من خدمات مقابل استهلاك بسيط للذاكرة مقارنة بـ Virtualmin.
للبدء يجب توفر بعض المعلومات الأساسية الخاصة بالخادم أو الخادم الافتراضي
- خادم مستقل أو خادم إفتراضي بنظام دبيان 6 / 7
- عنوان IP خاص بالخادم أو اسم نطاق مربوط به
- توفر خدمة اتصال محمي SSH للاتصال بالخادم
- اسم مستخدم الجذر وكلمة مروره (غالبا ما يكون الاسم root)
تحديث / ترقية النظام من دبيان 6 إلى 7
أولا نتصل بالخادم عن طريق الأمر التالي:
ssh root yourserverip
يكتب بعد رمز@ عنوان IP الخاص بالخادم أو أي نطاق موصول به
بعد إدخال كلمة المرور والتأكيد يتم الولوج للخادم
ملاحظة: لم أتطرق لإعداد خدمة DNS داخلي في الخادم وإنما اكتفيت باستخدام DNS جوجل وهي خدمة عامة. كما يمكن تخطي هذه الخطوة إذا كان الـ DNS معد مسبقا في الخادم.
نبدأ بإعداد DNS بتحرير ملف الإعداد بالأمر
nano /etc/resolv.conf
ونضيف خوادم DNS الخاصة بـ جوجل
nameserver 8.8.8.8
nameserver 8.8.4.4
للحفظ نضغط مفتاح Ctrl+O. للخروج نضغط مفتاح Ctrl+X
لتحديث النظام نطبق
apt-get update && apt-get upgrade && apt-get dist-upgrade
لترقية النظام من دبيان 6 إلى دبيان 7 نضيف مستودعات دبيان 7 للنظام
نحرر ملف المصادر
nano /etc/apt/sources.list
ونضع مستودعات دبيان 7 بدل القديمة
deb http://httpredir.debian.org/debian wheezy main contrib non-free
# deb-src http://httpredir.debian.org/debian wheezy main contrib non-free
deb http://httpredir.debian.org/debian wheezy-updates main contrib non-free
# deb-src http://httpredir.debian.org/debian wheezy-updates main contrib non-free
deb http://security.debian.org/ wheezy/updates main contrib non-free
# deb-src http://security.debian.org/ wheezy/updates main contrib non-free
للحفظ نضغط مفتاح Ctrl+O. للخروج نضغط مفتاح Ctrl+X
أصبح النظام جاهز لعمل ترقية الآن، ولعمل الترقية نطبق التالي:
apt-get update && apt-get upgrade && apt-get dist-upgrade
نكتب Y للتأكيد وننتظر لحين اكتمال الترقية
للتأكد من إصدار النظام نطبق
lsb_release -r
ينبغي أن يكون المخرج هو رقم الإصدار الحالي من دبيان .7 في وقت كتابة المقال (7.3)
يفضل إعادة تشغيل الخادم بعد الترقية
تنصيب لوحة التحكم Virtualmin
نأتي إلى تنصيب لوحة التحكم Virtualmin. تتوفر اللوحة بإصدارين أحدها مدفوع Virtualmin Pro والآخر مجاني والمسمى بـ Virtualmin GPL. سنعتمد في هذا الشرح على الإصدار المجاني من اللوحة.
بعد الولوج للخادم من خلال ssh، نسحب سكربت تثبيت اللوحة من الموقع الرسمي بهذا الأمر
wget http://software.virtualmin.com/gpl/scripts/install.sh
نعطي صلاحيات التنفيذ للملف المحمل
chmod +x install.sh
نجلب اسم بطاقة الشبكة الأساسية والمربوطة بعنوان IP الخاص بالخادم قد نحتاجه خلال تنصيب لوحة التحكم
نستخدم الأمر ifconfig
سيسرد لنا الأمر جميع بطاقات الشبكة المتوفرة في الجهاز وعناوين IP المربوطة بها
بالطبع مخرجات الأمر تكون على حسب عدد بطاقات الشبكة
مثال
venet0:0 Link encap:UNSPEC HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00
inet addr:77.777.77.77 P-t-P:77.777.77.77 Bcast:77.777.77.77 Mask:255.255.255.255
77.777.77.77 هو عنوان IP الأساسي والذي نستخدمه للاتصال بالخادم
طبعا سيكون اسم بطاقة الشبكة المقصود في بداية السطر الأول في مثل حالتنا هو venet0:0
نبدأ في تنصيب لوحة التحكم بالأمر
./install.sh
بعد عرض مثبت لوحة التحكم قائمة الأنظمة المدعومة من طرف اللوحة، يسألك المثبت إذا ما كان نظام تشغيلك من ضمن قائمة الأنظمة المدعومة
طبعا نظام دبيان مدعوم (: Debian 6.0 and 7.0 on i386 and amd64
نقوم بالتأكيد بالضغط على y
إذا ما طلب المثبت اسم البطاقة الشبكة الأساسية نزوده بالاسم الذي أخذناه في المرحلة السابقة
ننتظر إلى نهاية التنصيب
بعد نهاية التنصيب ندخل لوحة التحكم من خلال https://yourserverip:10000
ندخل اسم المستخدم وكلمة المرور، نفس معلومات حساب root
بعد الدخول لأول مرة يستقبلنا مدير إعداد اللوحة بعدة أسئلة تخص الإعدادات من استهلاك الموارد والأداء … إلى الحماية وإمكانية الخادم من تشغيل بعض الخدمات
اختر ما يناسبك على حسب حالة الخادم الخاص بك، نذكر بعض من أسئلة المثبت:
– ما إذا كانت تريد تسريع واجهة لوحة التحكم مقابل استهلاك أكثر للذاكرة العشوائية أم لا، تنصيب مضاد فيروسات أم لا … الخ
– كلمة مرور خادم قواعد البيانات Mysql
– اسم ملقم أسماء النطاقات الأساسي (يمكن تخطي الخطوة إذا لم يكن مجهز مسبقا)
بعد الانتهاء من خطوات الإعداد، نكون قد أتمما التثبيت والإعداد بفضل الله
يفضل إعادة تشغيل الخادم بعد الانتهاء من التنصيب.
بعض التعديلات وإعدادات الحماية
بعد الانتهاء من تنصيب لوحة التحكم قد تجد خادم apache غير مفعل يمكنك تفعيله بالضغط على Status في واجهة اللوحة ثم تشغيله
إذا ظهرت مشكلة في تشغيل خادم apache بعد ما قمنا بالترقية النظام قد تكون بسبب عدم وجود ملف الإعداد الخاص به، لذا نتأكد من وجود الملف، إذا لم يكن كذلك علينا إنشائه بالأمر
cd /etc/apache2 && touch httpd.conf
تعديل بعض إعدادات PHP من ملف الإعداد /etc/php5/cgi/php.ini لزيادة الحماية
إلغاء تفعيل بعض دوال التي تمكن من تنفيذ الأوامر عن طريق php على الخادم
في ملف /etc/php5/cgi/php.ini نغير قيمة disable_functions إلى الدوال المطلوب إلغاءها:
هذه قائمة منتقات من الدوال الغير مستعملة كثيرا والتي قد يكون تفعيلها يشكل خطر على الخادم
dl, system, shell_exec, proc_open, proc_nice, proc_close, passthru, exec, escapeshellcmd, escapeshellarg, symlink, virtual, link, apache_get_version, apache_get_modules, apache_child_terminate, apache_setenv, posix_uname, posix_access, posix_setuid, posix_setsid, posix_setpgid, posix_setgid, posix_seteuid, posix_setegid, highlight_file, show_source, popen, posix_mknod, posix_mkfifo, posix_kill, posix_getuid, posix_getsid, posix_getpwuid, posix_getpwnam, posix_getgrnam, posix_getgrgid, posix_getgid, posix_geteuid, posix_getegid, php_uname, pcntl_exec, curl_exec, curl_multi_exec, syslog, mysqli_set_local_infile_handler, mysqli_options, pfsockopen, session_save_path
قائمة الدول التي ألغينا تفعيلها تتغير على حسب الحاجة لهذه الدوال، حيث إذا ثبت أن أحد السكربتات تحتاج إحدى هذه الدوال يمكن استثناءها من القائمة بعد دراسة الدالة.
تفعيل open_basedir للحد من تنقل المستخدمين في الخادم
نحرر ملف /etc/php5/cgi/php.ini ونغير قيمة open_basedir إلى
open_basedir=/home
إلغاء تفعيلexpose_php لإخفاء بعض المعلومات عن السيرفر والتي تعتبر هامة لدى المهاجمين
expose_php=Off
الحد الأقصى لوقت تنفيذ كل سكربت، بالثواني.
max_execution_time=30
تحديد الحد الأقصى من الذاكرة التي قد تستهلك من طرف سكربت معين. ويكون الاختيار على حسب حجم ذاكرة الخادم ، كما يساهم عدد زوار المواقع في تحديد قيمتها، القيمة الافتراضية لحد الذاكرة هي 64M
memory_limit=64M
أيضا بعض السكربتات تتطلب حد معين من قيمة الذاكرة لتعمل بشكل جيد، مثلا دروبال (7) تتطلب على الأقل 32M بينما في النسخة السابقة (6) تتطلب 16M فقط
على العموم تمت تجربة 3 سكربتات معروفة وردبريس جوملا! ودروبال جميعهم يعملون بشكل جيد بهذا الإعداد
يتبع إن شاء الله