Category Archives: خوادم

إخفاء إصدار أباتش عن الزوار على أوبنتو

السلام عليكم،

أول خطوة يقوم بها المتسللون والقراصنة قبل محاولة الاختراق هي عادة البحث عن إصدار الخادم الذي يُشغل الموقع المراد اختراقه حتى يتسنى لهم معرفة الثغرات المحتملة الموجودة. في هذه التدوينة أقدم شرحا لإخفاء اسم الخادم وإصداره عن أعين المتسللين مما يزيد من صعوبة الاختراق. غني عن القول أن هذا لا يغني عن التحديث الدائم للخادم وإجراءات الأمان الأخرى. هي فقط خطوة من بين خطوات أخرى كثيرة.

معرفة إصدار خادم أباتش

إذا كانت لديك صلاحيات Root فإن بإمكانك معرفة إصدار أباتش المثبت لديك عبر الأمر

sudo apt-cache policy apache2

مثال على المُخرجات

[sudo] password for zeine77:
apache2:
Installed: 2.2.22-1ubuntu1.4
Candidate: 2.2.22-1ubuntu1.4
Version table:
*** 2.2.22-1ubuntu1.4 0
500 http://archive.ubuntu.com/ubuntu/ precise-updates/main amd64 Packages
500 http://archive.ubuntu.com/ubuntu/ precise-security/main amd64 Packages
100 /var/lib/dpkg/status

كما يتضح فإن الإصدار المثبت هنا هو 2.2.22-1ubuntu1.4

وإذا لم تكن لدي صلاحيات Root ؟

 في الإعدادات الافتراضية فإن أباتش يظهر نظام التشغيل وإصدار الخادم أسفل صفحة الخطأ التي تظهر عند طلب صفحة غير موجودة، مثلا

Not Found

The requested URL /fail was not found on this server.

Apache/2.2.22 (Ubuntu) Server at myproject.localhost Port 80
 
توجد طريقة أخرى لمعرفة إصدار خادم الوب عبر الأمر
telnet <IP> 80
مع إبدال IP بقيمته، مثلا
telnet 127.0.0.1 80
ثم طلب طباعة HEADER عبر الأمر
HEAD / HTTP/1.1

ثم الضغط مرتين على زر Enter

مثال للمخرجات
Trying 127.0.0.1...
Connected to 127.0.0.1.
Escape character is '^]'.
HEAD / HTTP/1.1
HTTP/1.1 400 Bad Request
Date: Thu, 22 Aug 2013 13:51:27 GMT
Server: Apache/2.2.22 (Ubuntu)
Vary: Accept-Encoding
Connection: close
Content-Type: text/html; charset=iso-8859-1
Connection closed by foreign host.
نلاحظ رقم الإصدار.

إخفاء الإصدار والتوقيع

لإخفاء إصدار خادم أباتش من الظهور نغير بعض الإعدادات في الملف security الموجود طبقا للإعدادات الافتراضية في المجلد /etc/apache2/conf.d
الأمر:

sudo nano /etc/apache2/conf.d/security

نبحث عن السطر ServerTokens OS ونُبدل “OS” ب “Prod” فيصبح السطر كما يلي

ServerTokens Prod

نحفظ التغييرات (عبر الاختصار CTRL + O) ثم نغلق الملف (عبر الاختصار والتأكيد CTRL + X)

يجب إعادة تحميل أباتش حتى تؤخذ التغييرات بالاعتبار:

sudo service apache2 reload

الآن عند طلب صفحة غير موجودة تظهر صفحة الخطأ التالية

Not Found

The requested URL /fail was not found on this server.

Apache Server at myproject.localhost Port 80
 

نلاحظ أن رقم الإصدار اختفى، ولكن بقي “توقيع” الخادم، لحذفه نعيد تحرير الملف السابق ثم نبحث عن

#ServerSignature Off
ServerSignature On

نضع علامة # أمام ServerSignature On وننزعها من أمام ServerSignature Off
فيصبح السطران كالتالي

ServerSignature Off
#ServerSignature On

نعيد تحميل أباتش.

sudo service apache2 reload
الآن عند طلب صفحة غير موجودة تظهر صفحة الخطأ التالية

Not Found

The requested URL /fail was not found on this server.

رابط مختصر للمشاركة مع أصدقائك عبر شبكات التواصل الاجتماعي http://wp.me/p1vJeS-f1

للحصول على آخر الإضافات مباشرة بعد نشرها يُرجى الاشتراك في تغذيات RSS.

تدوينات ذات علاقة

تهيئة بيئة تطوير PHP وتثبيت ووردبرس WordPress

السلام عليكم، وأهلا بكم في هذه التدوينة التي سأشرح فيها تهيئة بيئة بي أتش بي ثم تثبيت منصة التدوين المعروفة WordPress على توزيعة أوبنتو.
ووردبرس غني عن التعريف، في عالم مواقع الويب والمدونات خصوصا. تقدم ويكيبديا وورد برس بأنه

    نظام لإدارة المواقع بشكل عام والمدونات بشكل خاص وتم بناءه باستخدام لغة PHP وقواعد بيانات MySQL، وهو مفتوح المصدر وقام ببرمجته مجموعة من المطورين المتطوعين.

14.7% من أفضل 1 مليون موقع يستخدم ووردبريس حسب إحصائيات أليكسا إنترنت، و 22% من المواقع الجديدة تستخدم ووردبريس

يخضع ووردبرس لرخصة جنو العمومية.

يحتاج ووردبرس لبيئة تطوير بي أتش بي للعمل عليها، لذا سنقوم أولا بإعداد هذه البيئة.

تهيئة بيئة تطوير PHP: تثبيت الحزمة XAMPP

من الشائع في عالم لينوكس تثبيت كل من خادم أباتش Apache، بيئة PHP وقاعدة بيانات Mysql (لأكون أدق، Mysql هو نظام لإدارة قواعد البيانات) بشكل منفصل، لكننا هنا سنقوم بتثبيتها معا باستخدام حزمة (X Apache Mysql Perl PHP) المعروفة اختصارا ب XAMPP . للمعلومة الحزمة متوفرة على نظم windows و Mac و Solaris أيضا.
أول خطوة نذهب لموقع XAMPP الرسمي ,

تنزيل XAMPP

صفحة تنزيل، في أسفل الصورة يظهر مجموع MD5 XAMPP

على صفحة الموقع ننزل نسخة ليونكس من الإصدار الأخير من الحزمة كما يظهر في الصورة أعلاه. أثناء كتابة هذه السطور، آخر نسخة هي 1.8.1 . في خانة Notice تظهر جميع محتويات الحزمة، ومن بينها ما نبحث عنه، خادم أباتش Apache، بيئة PHP وقاعدة بيانات Mysql.

بعد اكتمال التنزيل اذهب إلى المجلد حيث يوجد الملف المضغوط، سنقوم أولا من التحقق من الملف عبر مجموع MD5 (الموجود أسفل رابط التحميل، انظر الصورة أعلاه). بالنسبة للإصدار 1.8.1 سيكون كما يلي، إذا كنت نزلت نسخة مختلفة سيكون مجموع MD5 مختلفا

echo "e7092eafff81ad363de45d192774b4d6 xampp-linux-1.8.1.tar.gz" | md5sum -c

لتثبيت XAMPP ينبغي أن نكون في وضع المستخدم الجذر root، لذا نُدخل الأمر

sudo su

ثم نقوم بفك ضغظ الملف واستخراج محتواه ووضعها في مجلد /opt عن طريق الأمر (انتبه لاسم الملف إذا كنت نزلت  نسخة مغايرة للإصدار 1.8.1)

tar xvfz xampp-linux-1.8.1.tar.gz -C /opt

 


ملحوظة
:
إذا كنتَ تستخدم معمارية 64 بت فسيتوجب عليك تنزيل حزم التوافق مع معمارية 32 بت عبر الأمر

sudo apt-get install ia32-libs  

نغير صلاحيات المجلد حيثُ /opt/lampp/htdocs/ حيث يتوجب أن توضع ملفات PHP لكي يتمكن الخادم من تفسيرها وعرض صفحات الوب

chmod 777 -R /opt/lampp/htdocs/

بهذا نكون قد أنهينا تثبيت XAMPP.

لتشغيل XAMPP (وبالتالي تشغيل Mysql و PHP و Apache) ننفذ الأمر (بصلاحيات root)

/opt/lampp/lampp start

للتأكد من نجاح عملية التثبيت، نشغل XAMPP ثم ندخل الصفحة http://localhost

صفحة البداية في XAMPP

صفحة البداية في XAMPP

ولإيقاف تشغيله

/opt/lampp/lampp stop

إذا كان كل ما تريد هو تهيئة بيئة لتطوير التطبيقات بلغة PHP فإنه بإمكانك ذلك الآن بعد أن ثبت XAMPP. جميع ملفات PHP يجب أن توضع تحت مجلد /opt/lampp/htdocs أو مجلد متفرع عنه ليتاح إمكانية ترجمتها من طرف خادم أباتش، ويمكن الوصول إليها عبر المسار localhost/filename.php حيث filename.php هو اسم الملف الموجود تحت مجلد htdocs، إذا كان الملف موجودا في مجلد متفرع عنه، مثلا /opt/lampp/htdocs/test يكون الوصول إليه هكذا عبر المتصفح localhost/test/filename.php

الآن صار بإمكاننا تثبيت WordPress.

كخطوة أولى يحتاج ووردبرس لقاعدة بيانات لذا سنقوم بإنشائها.

تأكد من تشغيل XAMPP ثم ادخل للعنوان التالي http://localhost/phpmyadmin/

إذا واجهتك رسالة تقول

Access forbidden!

New XAMPP security concept:
Access to the requested object is only available from the local network.
This setting can be configured in the file “httpd-xampp.conf”.

فيجب اتباع الخطوات التالية لحل المشكل.
افتح الملف httpd-xampp.conf الموجود تحت المسار /opt/lampp/etc/extra عبر الأمر

sudo gedit /opt/lampp/etc/extra/httpd-xampp.conf

(طبعا يمكنك اختيار محرر نصوص آخر إذا كنت لا ترغب ب gedit أو إذا لم يكن متاحا على نظامك )

في آخر الملف ستجد الأسطر التالية

#
# New XAMPP security concept
#
<LocationMatch “^/(?i:(?:xampp|security|licenses|phpmyadmin|webalizer|server-status|server-info))”>
Order deny,allow
Deny from all
Allow from ::1 127.0.0.0/8 \
fc00::/7 10.0.0.0/8 172.16.0.0/12 192.168.0.0/16 \
81.196.40.94/32
ErrorDocument 403 /error/XAMPP_FORBIDDEN.html.var
</LocationMatch>

الأمر يتعلق بصلاحيات الدخول لخادم Apache، الإعداد الافتراضي – لأسباب أمنية – الذي يأتي في حزمة XAMPP هو منع وصول المستخدمين. لتصحيح الأمر نضيف Require all granted مباشرة قبل سطر ErrorDocument لتصح الأسطر أعلاه كما يلي(التغييرات باللون الأخضر)

<LocationMatch “^/(?i:(?:xampp|security|licenses|phpmyadmin|webalizer|server-status|server-info))”>
Order deny,allow
Deny from all
Allow from ::1 127.0.0.0/8 \
fc00::/7 10.0.0.0/8 172.16.0.0/12 192.168.0.0/16 \
81.196.40.94/32
Require all granted
ErrorDocument 403 /error/XAMPP_FORBIDDEN.html.var
</LocationMatch>

لأخذ التغييرات بالاعتبار يجب إعادة تشغيل الخادم عبر الأمر

sudo /opt/lampp/lampp restart

تثبيت WordPress

phpMyAdmin هو واجهة عبر الوب لإدارة نظم إدارة قواعد البيانات ك ماي أس كيو أل MySQl سنستخدمها لإنشاء قاعدة البيانات التي سيعتمد عليها نظام إدارة المحتوى ووردبرس للعمل.

بالضغط على Databases في القائمة الموجودة في الواجهة ستجد الخانات التالية، عبئها كما في الصورة

إنشاء قاعدة بيانات

إنشاء قاعدة بيانات ووردبرس

سنقوم بإعداد قاعدة البيانات ليستخدمها ووردبرس

إنشاء قاعدة بيانات ووردبرس

إنشاء قاعدة بيانات ووردبرس

نبدأ بإضافة مستخدم جديد لقاعدة البيانات وإعطائه الصلاحيات اللازمة

إدارة الصلاحيات

إدارة الصلاحيات

إضافة مستخدم

إضافة مستخدم لقاعدة البيانات

ستظهر لنا نافذة منبثقة في أعلاها توجد بيانات المستخدم الجديد، ثم تأتي بعدها خانة الصلاحيات والأذون حيثُ نحدد الصلاحيات التي سنمنحها للمستخدم الجديد. نبدأ ببيانات المستخدم. إذا اخترت توليد كلمة السر عبر الضغط هلى الزر generate فعليك الاحتفاظ بها بحيث يمكنك استعادتها عند الحاجة، كما سنرى في الخظوات الموالية.

بيانات المستخدم

بيانات المستخدم

ثم الصلاحيات، نفترض أننا هنا نهيئ بيئة تجريبية للتطوير ونمنح المستخدم الجديد كل الصلاحيات(صلاحية البحث في قاعدة البيانات، إدخال بيانات جديدة، إنشاء جدول بيانات، إدارة هيكل القاعدة…). في حال كان التثبيت على بيئة غير تجريبية يجب أن تكون صلاحيات المستخدم محدودة بحيث نأخذ اعتبارات الأمان في الحسبان.

صلاحيات المستخدم الجديد

صلاحيات المستخدم الجديد

بعد تأكيد إضافة المستخدم الجديد عبر الضغط على Add user، يمكن التأكد من إضافة المستخدم الجديد بالنظر لقسم الصلاحيات Privileges

المستخدم وصلاحياته

المستخدم وصلاحياته

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

ننزل آخر إصدار من ووردبرس عبر الأمر

wget -c http://wordpress.org/latest.zip

(الخيار c- في الأمر wget هو لاستكمال التنزيل في حال انقطاعه، للمزيد عن الأمر wget يمكنك مراجعة هذه التدوينة)

نفذ الأمر التالي في المجلد حيثُ نزلت ملف ووردبرس لفك الضعط

unzip latest.zip

بعد فك الضغط ستحصل على مجلد wordpress قم بنقله إلى مجلد htdocs الموجود تحت المسار /opt/lampp عبر الأمر (تأكد من اسم المجلد الناتج عن فك الضغط)

sudo mv  wordpress/ /opt/lampp/htdocs

ربط ووردبرس مع قاعدة البيانات

داخل المجلد wordpress (الناتج عن فك ضغط الملف بعد التنزيل) ستجد ملفا باسم wp-config-sample.php ، افتحه، سيحوي الملف الأسطر التالية :

/** The name of the database for WordPress */
define(‘DB_NAME‘, ‘wordpress_db‘ );
/** MySQL database username */
define(‘DB_USER‘, ‘wordpress_user‘ );
/** MySQL database password */
define(‘DB_PASSWORD‘, ‘password_here‘ );
/** MySQL hostname */
define(‘DB_HOST‘, ‘localhost‘ );

وأدخل قيم المتغيرات التالية ، المتغيرات مبينة باللون الأحمر وقيمها باللون الأخضر، ما سنغيره ليتوافق مع إعدادات قاعدة البيانات لدينا هو قيم المتغيرات، وليس المتغيرات نفسها.
– DB_NAME: اسم قاعدة البيانات، wordpress_db في حالتي هنا
– DB_USER: اسم المستخدم الذي أنشأناه في الخطوات السابقة، wordpress_user
– DB_PASSWORD: كلمة السر التي المُولدة سابقا

– DB_HOST: الخادم المضيف لقاعدة البيانات، في حالتنا هنا هو الخادم المحلي، أي localhost

بعد إجراء التغييرات احفظ الملف باسم wp-config.php في نفس المجلد. (أي /opt/lampp/htdocs/wordpress)

الآن كل شيء جاهز لتنفيذ سكريبت تثبيت ووردبرس، لذا ادخل العنوان التالي

http://localhost/wordpress/wp-admin/install.php

إذا جرى كل شيء على ما يرام فستظهر لك صفحة تطلب منك معلومات عن الموقع الذي تريد إنشاءه، املأ الخانات ثم اضعط زر Install WordPress

الآن ووردبرس جاهز للاستعمال، الصفحة الرئيسية توجد هنا http://localhost/wordpress/ وصفحة إدارة الموقع من هنا http://localhost/wordpress/wp-admin

اشترك في خدمة RSS واحصل على آخر إضافات المدونة
إلى الملتقى.

شرح كيفية تثبيت خادم Apache Tomcat على Ubuntu

السلام عليكم ورحمة الله،

أهلا بكم في هذه التدوينة السريعة التي أقدم لكم فيها شرحا مفصلا عن كيفية تثبيت خادم Apache Tomcat 7 على توزيعة أوبونتو. الطريقة المقدمة هنا أُنجزت على توزيعة أوبنتو 12.04 وتحققتُ من صلاحيتها للإصدارات 11.10 و 11.04 و 10.10

فلنبدأ على بركة الله

كأول خطوة، ينبغي الذهاب إلى الرابط التالي http://tomcat.apache.org/download-70.cgi  . في القسم Core أسفل الصفحة ستجد عدة ملفات مضغوطة، بعضها للتثبيت على Windows، طبعا هذه لاتهمنا نحن معشرَ اللينكساويين . اختر  أحد الملفين المضغوطين حسب اختيارك. ( سأفترض أنك قمت باختيار صيغة tar.gz ). ضع الملف المضغوط في دليلك الشخصي.

افتح طرفية Terminal وقم بإدخال الأمر التالي، مع مراعاة رقم الإصدار (7.0.29  أثناء كتابة هذه التدوينة)

tar xvzf apache-tomcat-7.0.29.tar.gz

الأمر tar يستخدم لتجميع مجموعة من الملفات داخل مجلد واحد أو لفك ضغط ملف مضغوط (عبر الخيار x في سطر اﻷوامر السابق). الخيارات v و z وf هي لإظهار أسماء الملفات أثناء فك الضغط و تعيين نوعية الضغط (.gz) و لتمرير اسم الملف المراد فك ضغطه على التوالي.

بعد فك ضغط الملف أدخل الأمر التالي ( يجب أن تكون لديك صلاحيات root ). انتبه لإدخال اسم المجلد الصحيح (نفس اسم الملف في أمر tar أعلاه ولكن دون امتداد .tar.gz )

sudo mv apache-tomcat-7.0.29/ /usr/share/tomcat7

الخطوة الموالية هي تعديل متغيرات النظام، لذا قم بتنفيذ الأمر التالي

sudo gedit /etc/environment

بعدها سيظهر لك ملف نصي وبداخله مجموعة من المتغيرات وقيمها. عندي مثلا يظهر بالشكل التالي

PATH=”/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:$JAVA_HOME:$JRE_HOME”
LANGUAGE=”en”
LANG=”en_US.UTF-8″
LC_NUMERIC=”en_US.UTF-8″
LC_MEASUREMENT=”en_US.UTF-8″
JAVA_HOME=”/usr/lib/jvm/java-6-oracle”
JRE_HOME=”/usr/lib/jvm/java-6-oracle/jre”

تأكد من قيم متغيرات إصدارة جافا لديك JAVA_HOME و JRE_HOME  (قد تكون مختلفة عما هو موجود لدي). إذا لم تكن موجودةقم بإضافتها. JAVA_HOME تشير إلىمكان تثبيت ملفات جافا و JRE_HOME إلى المجلد الفرعي  jre  الموجود داخل دليل ملفات جافا.  في أغلب الحالات توجد ملفات تثبيت جافا في الدليل “/usr/lib” أو “/usr/local” (ابحث عن المجلد  jvm في الدليلين). قيم المتغيرات يجب أن تكون بين مزدوجتين “”. قم بإضافة JAVA_HOME$ و  JRE_HOME$ (رمز $ مهم ) إلى قيم المسار PATH الموجود في بداية الملف مفصولة عن بيقية القيم بنقطتين . مثلا إذا كان PATH=”/usr/local” قبل إضافة المتغيرين فإنه يجب أن يكون هكذا بعدها PATH=”/usr/local:$JAVA_HOME:$JRE_HOME” .

قيم متغيرات النظام جاهزة الآن، يمكننا إذن إعداد Tomcat الآن.
أدخل الأمر التالي في الطرفية (بعد حفظ الملف السابق)

sudo gedit /usr/share/tomcat7/bin/catalina.sh

أضف السطرين (نفس السطرين الذين قمت بإضافتهما سابقا إلى الملف environment) إلى الملف catalina.sh الذي قمت بفتحه للتو مباشرة بعد عبارة #!/bin/sh

JAVA_HOME=”/usr/lib/jvm/java-6-oracle”
JRE_HOME=”/usr/lib/jvm/java-6-oracle/jre”

احفظ الملف.

بالعودة إلى الطرفية نفذ الأمر التالي

sudo gedit /usr/share/tomcat7/conf/tomcat-users.xml

أفرغ الملف من محتواه و قم بنسخ لصق ما يلي

<?xml version=’1.0′ encoding=’utf-8′?>

<tomcat-users>
<role rolename=”manager-gui”/>
<role rolename=”manager-script”/>
<role rolename=”manager”/>
<role rolename=”admin-gui”/>
<role rolename=”admin-script”/>
<role rolename=”admin”/>

<user username=”admin” password=”admin” roles=”manager-gui,admin-gui,manager,admin,manager-script,admin-script”/>
</tomcat-users>

إذا كنت ترغب في أن يكون admin  اسم الدخول و admin كلمة السر يمكنك حفظ الملف و إغلاقه، وإلا عدل الملف بحيث تكتب اسم الدخول أمام username بين المزدوجتين مكان admin ، نفس الشيئ بالنسبة لكلمة السر (أمام password).
احفظ الملف وأغلقه.

الخطوة الأخير هي إطلاق Tomcat عن طريق الأمر

sudo /usr/share/tomcat7/bin/startup.sh

إذا كان كل شيئ سار على ما يرام فإن مُخرجات الطرفية ستكون شبيهة بما يلي

Using CATALINA_BASE:   /usr/share/tomcat7
Using CATALINA_HOME:   /usr/share/tomcat7
Using CATALINA_TMPDIR: /usr/share/tomcat7/temp
Using JRE_HOME:        /usr/lib/jvm/java-6-oracle
Using CLASSPATH:       /usr/share/tomcat7/bin/bootstrap.jar:/usr/share/tomcat7/bin/tomcat-juli.jar

عنوان الدخول إلى الواجهة الرئيسية للخادم هو http://localhost:8080/ ، وعنوان واجهة إدارة التطبيقات (Host mnager) هو http://localhost:8080/host-manager/html

أتمنى أن تكون هذه التدوينة قد ساعدتكم 🙂