مدونه محمد الدليجان

Twitter: mohdulblog

حماية الـ SSH لسيرفرك الخاص

السلام عليكم ورحمه الله وبركاته
بسم الله الرحمن الرحيم

 

اللَّهُمَّ انْفَعْنَا بِمَا عَلَّمْتَنَا , وَعَلِّمْنَا مَا يَنْفَعُنَا , وَزِدْنَا عِلْمًا إِلَى عِلْمِنَا

 

معلومات عن التدوينه :

المتطلبات: وجود برنامج Putty & PuttyGen.

المستوى: متوسط.

المخرجات: معرفة طريقة حماية السيرفر من المتطفلين وزيادة مستوى الأمان بالسيرفر.

مجال التدوينه:شرح طرق مختلفة لحماية سيرفرك وزيادة مستوى الأمان .

الشرح:

الشرح والأمثلة على توزيعة CentOs 7 وبالأمكان تطبيقها على اغلبيه التوزيعات الأخرى

الطريقة الأولى :- إلغاء الدخول بحساب Root

  1. تسجيل دخول للسيرفر عن طريق المستخدم root ومن ثم
  2. إنشاء مستخدم أخر بأي إسم ترغبه.
    باستخدام الأمر useradd
    اسم المستخدم الجديد هو secuser

    [root@Node1 ~]# useradd secuser

  3. تحرير لائحة المستخدمين المسموح لهم الدخول وتنفيذ الأوامر كـ root
    عن طريق تنفيذ الأمر التالي :
    visudo
    نبحث عن النص التالي :

    ## Same thing without a passwordLL=(ALL)       ALL

ونضيف النص التالي تحته مباشرة:

%sectest  ALL=(ALL)       NOPASSWD: ALL

نقوم بتغير الكلمة السرية للمستخدم الجديد عن طريق الأمر

passwd secuser

وندخل الكلمة السرية الجديدة مرتين للتأكيد.

الأن نقوم بتسجيل الخروج من حساب Root ونسجل دخول بحساب secuser الجديد

نقوم بتجربه الأمر التالي للوصول لحساب الـ Root

sudo bash

خطوة اخيرة , التعديل على ملف /etc/passwd لضمان عدم تسجيل دخول اي شخص عن طريق حساب الـ Root

نقول بتعديل الملف عن طريق اي محرر كتابي vi,vim,nano

اول مدخل بالملف هو مدخل عن حساب الـ Root

اجعله يبدو بالشكل التالي :

root:x:0:0:root:/root:/sbin/nologin

الطريقة الثانية :- تغير منفذ الاتصال للـ SSH

نحرر ملف اعدادات البروتوكول SSH

الملف موجود في هذا العنوان

/etc/ssh/ssh_config

نبحث عن التالي:

#   Port 22

نعدل السطر السابق ونضع رقم المنفذ الجديد ونحذف الـ#
نفرض اننا استخدمنا المنفذ رقم 552

التعديل بيكون كالتالي:

   Port 552

تأكد من عدم استخدام منفذ لبرنامج اخر مثلا الويب سيرفر عاده يستخدم منفذ 80.

تأكد من فتح المنفذ الجديد 552 في جدار الحماية

عن طريق الأمر التالي:

firewall-cmd --permanent --zone=public --add-port=552/tcp

وإعاده تشغيل جدار الحماية عن طريق الأمر التالي:

firewall-cmd --reload

نسوي ريستات للسيرفس , عن طريق الأمر التالي

service sshd restart

الان من برنامج Putty نتأكد من تغير البورت للبورت الجديد 552

كالتالي :-

blog

 

الطريقة الثالثة :- الدخول عن طريق Public & Private Key

الطريقه التقليدية لدخول السيرفر هي عن طريق اسم المستخدم والكلمة السرية ,,

الأن يمكنك إضافه حماية إضافية , عن طريق استخدام Public & Private Key وبهذه تضمن ان اي شخص معاه الكلمة السرية ماراح يدخل الا لما يكون عنده الكي الي عندك ,, ( عباره عن ملف فيه مفتاح لدخول السيرفر وتستطيع تشفيرة بكلمه مرور اضافيه )

باستخدام برنامج Putty Gen

المتواجد هنا للتحميل

واجهة البرنامج :-

 

puttygen

 

بالضغط على زر Generate لإنشاء المفتاح الخاص بك , يطلب منك البرنامج بتحريك الماوس على المساحه الفارغة.

 

بعد ذلك سيتم إنشاء المفتاح الخاص بك , وسيظهر لك كالتالي :

 

puttygen2

نحفظ المفتاح عن طريق الضغط على

Save Private Key

و

Save Public Key

بالأماكن اضافه passphrase ( كلمة سرية لحماية الـ Private Key )

الـ Public Key هو المفتاح العام الي تقدر توزعه لاي شخص , وتضعه بسيرفرك ( سأشرحه بالأسفل )

الـ Private Key تستخدمه لنفسك فقط وتحتفظ فيه بمكان آمن , ومن خلاله تستطيع الدخول لسيرفرك ( سأشرحه أيضاً )

نسجل دخول بالمستخدم الي نبي نستخدمه بتسجيل الدخول بالمفتاح بدون كلمه سرية

نفرض المستخدم اسمه test

نذهب للمجلد التالي (نغير اسم المجلد test على حسب اسم المستخدم )

/home/test/.ssh

في حاله عدم وجود المجلد “.ssh” ننشئ المجلد

mkdir .ssh

ننشى ملف جديد بأسم (authorized_keys) اذا ماكان موجود مسبقاً

عن طريق الأمر التالي

touch authorized_keys

نستخدم اي محرر نصي لتحرير الملف authorized_keys

ونضيف عليه المفتاح الرئيسي Public Key

المفتاح ممكن ننسخه مباشره من البرنامج

puttygen3ونحفظ الملف. بكذا اقدر ادخل السيرفر على المستخدم test بدون كلمة سرية فقط باستخدام الـ Private Key

الأن نضيف الـ Private Key الى برنامج Putty من القائمه التاليه:-

putty4من هذه القائمة نختار المفتاح السري Private Key وندخل معلومات السيرفر بمكان الاتصال وسيتم السؤال عن المستخدم فقط وسيتم الدخول بدون طلب كلمة سرية.

 هل أستطيع جمع الطرق الثلاثة معاً ؟

نعم وبدون اي مشاكل ..

هل يوجد طرق اخرى لم تذكر ؟

نعم يوجد طرق اخرى عن طريق استخدام جدار الحماية

طريقة الإحتفاظ بالصور والملفات مشفرة

السلام عليكم ورحمه الله وبركاته
بسم الله الرحمن الرحيم

 

اللَّهُمَّ انْفَعْنَا بِمَا عَلَّمْتَنَا , وَعَلِّمْنَا مَا يَنْفَعُنَا , وَزِدْنَا عِلْمًا إِلَى عِلْمِنَا

 

معلومات عن التدوينه :

المتطلبات: وجود برنامج WinRar .

المستوى: مبتدئ.

المخرجات: معرفه طريقة تشفير الملفات وضغطها باستخدام الـ Winrar , استخدام خدمات التخزين بالانترنت للاحتفاظ بها.

مجال التدوينه:شرح استخدام طرق وخطوات تشفير وضغط الملفات و واستخدام خدمات التخزين بالانترنت .

الفيديو :

 

 

مواقع التخزين بالانترنت :

  • https://www.dropbox.com
  • http://drive.google.com
  • https://skydrive.live.com
  • https://www.justcloud.com
  • https://www.zipcloud.com
  • https://www.mypcbackup.com
  • https://www.sugarsync.com
  • http://www.crashplan.com
  • https://www.box.com

رابط WinRar :

http://www.rarlab.com/download.htm

الشراء عبر الانترنت

السلام عليكم ورحمه الله وبركاته
بسم الله الرحمن الرحيم

 

اللَّهُمَّ انْفَعْنَا بِمَا عَلَّمْتَنَا , وَعَلِّمْنَا مَا يَنْفَعُنَا , وَزِدْنَا عِلْمًا إِلَى عِلْمِنَا

 

معلومات عن التدوينه :

المتطلبات: معرفه باللغه الانجليزيه .

المستوى: مبتدئ.

المخرجات: معرفه طرق اختيار شركه البريد , معرفه المواقع الموثوقه , معرفه احتياجات التسوق .

مجال التدوينه:شرح استخدام طرق وخطوات الشراء من الانترنت وعرض لبعض المواقع .

الفيديو :

 

اداه فحص المواقع (لايتم الاعتماد بشكل كلي عليها ) : www.mywot.com
بالامكان ايضا البحث عن الموقع في محرك البحث جوجل

المواقع الموثوقه :-

الفساتين:

 

promgirl.com
http://www.newyorkdress.com
http://www.simplydresses.com/
http://www.goddiva.co.uk
TjFormal

الملابس:

 

http://shop.nordstrom.com/
http://www.neimanmarcus.com
http://www.ralphlauren.com
http://www.forever21.com/

 ملابس اطفال:

 

http://www.rightstart.com/

 

المكياج:

 

الاكسسوارات والشنط:

http://www.designersimports.com/ http://www.shoes.com/
http://www.tedbaker.com/

 

الاجهزه الالكترونيه:

 

 مواقع شامله:

 

 مواقع صينيه :

 

 

مواقع شركات البريد :
www.worldship1.com

www.myus.com

www.aramex.com

www.dhl.com.sa

 

للاسئله والاستفسارات في الردود , يرجى قراءه الردود قبل السؤال تجنبا لتكرار الاسئله

   
 

دورة تويتر101 , كيف تربط موقعك عن طريق API Twitter

السلام عليكم ورحمه الله وبركاته
بسم الله الرحمن الرحيم

 

اللَّهُمَّ انْفَعْنَا بِمَا عَلَّمْتَنَا , وَعَلِّمْنَا مَا يَنْفَعُنَا , وَزِدْنَا عِلْمًا إِلَى عِلْمِنَا

 

معلومات عن التدوينه :

المتطلبات: معرفه اساسيات لغه البرمجه PHP <ويمكن الاستغناء بمعرفه اي لغه اخرى> , معرفه بسيطه في HTML معرفه بسيطه في الـ Object Oriented .

المستوى: مبتدئ – متوسط .

المخرجات: معرفه طرق ربط الموقع بتويتر لاستخراج المعلومات , تسجيل الدخول بالموقع باستخدام معرف تويتر .

المستفيدون:المبرمجين .

مجال التدوينه:شرح استخدام API تويتر لربط الموقع عن طريق استخدام Twitter Library جاهز لتوقيع الطلبات المرسله لموقع تويتر.

 

تنقسم التدوينه لقسمين :

1. القسم النظري: يشمل المعلومات اللازم لاستعمال تويتر في المواقع , شرح للواجهه البرمجيه لتويتر API وطريقه التعامل معاها و اخيرا طرق الاتصال بموقع تويتر .

2. القسم العملي:تجربه عمليه على ما ذكر في الدوره لتشمل فكره برنامج <مقترحه من الجمهور> يتطلب اسم المستخدم ويعرض تويتاته فقط بدون الريتويت وبدون الردود على المغردين الاخرين .

1. القسم النظري:

بالنسبه للتويتر API يوجد 3 انواع من الAPI :-

أ. API للبحث , للاستعلام من موقع تويتر عن تويتات بكلمات معينه , تويتات لاشخاص , للبحث عن اشخاص او الاطلاع على الترند في تويتر.

ب. REST API , للاستعلام عن حساب مستخدم , الاستعلام عن تويتات شخص , وكافه الاوامر المستخدم في تويتر وهو موضوع الدوره وسيتم التفصيل فيه.

ج. Streaming API لفتح اتصال مستمر مع موقع تويتر لعمل تويتر كلاينت مثل برنامج TwitBot او MetroTwit , يستخدم في مجال جلب كميه معلومات كبيره وتحليلها وتخزين البيانات لعمل الاحصائات وغيرها وكذلك متابعه عدد كبير جدا من التويتات.
معلومات يجب ان تكون بالحسبان في كل مره نبرمج موقع يستخدم تويتر :

1. عدد الطلبات إلى موقع تويتر محدود بـ 150 طلب في حال الطلب بشكل عام وبدون الطلب بالنيابه عن شخص لكل IP, و 350 في طلب في حال الطلب بالنيابه عن شخص مثل مايحدث بالكثير من برامج الجوال والمواقع.

2. اكثر عدد من التويتات يمكنك قراءته هو 3200 تويته وبالنسبه للبحث فهو 1500 تويته.

3. تحويل اي كلمه بالطلب الى UTF-8 عن طريق URL encoded مثل الكلمات العربيه.

أقسام الـ REST API الرئيسيه :

1. Timelines للتعامل مع التايم لاين عموما .

2. Tweets للتعامل مع التويتات , نشر تويته , حذف تويته , استعلام عن عدد الريتويت .

3. Search ببساطه بحث عن تويته او شخص .

4. Friends & Followers للتعامل مع الفلونج والفلورز و الفلو والان فلو .

 

روابط مهمه :
المثال الاول : — تم الغاء هذه الطريقة من قبل تويتر —
http://www.mohdul.com/twitter.txt

المكتبه البرمجيه Abrahm TwitterOAuth :
https://github.com/abraham/twitteroauth

المثال الثاني :
www.mohdul.com/twitter.zip
يحتاج تغير الـ Consumer Key ليعمل على موقعك بشكل صحيح

Twitter Rest API :
https://dev.twitter.com/docs/api

التفاصيل تطول بالجزء النظري .. سسنتقل الان للجزء العملي من الدوره وهو عباره عن برمجه لسكربت يعرض تويتات شخص بدون الردود على الاخرين , سيتم عرض نسختين من البرنامج واحده بدون استخدام تسجيل دخول , والاخرى مع تسجيل دخول. الشرح في الفيديو ادناه , يفضل المشاهده بوضع فل سكرين لوضوح افضل

 

 

 

 

تحديث :

تم الغاء التعامل مع الواجهة البرمجية بدون تسجيل دخول – يعني لازم تستخدم زي المثال الثاني –

كيف تختار الخدمات المناسبه لك بعنايه ؟

 

 


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


أولا: تحليل متطلبات السكربت (البرنامج) :

السكربت سواء تم برمجته بشكل مسبق ومكتمل او انه في طور
البرمجة ,يجب أن تؤخذ بعين الاعتبار العناصر التالية :
1. عدد زوار الموقع(بشكل تقريبي ).

2. نوع الخدمات المقدمة للزائر.

3. لغة البرمجة المستخدمة.

4. وقت تسليم المشروع.

5. تكلفة المشروع(المبلغ المخصص له).

 توجد عدة عناصر اخرى سيتم شرحها لاحقا مرورا بالخطوات التالية

نكتفي بهذه العناصر .. سوف يتم شرحها لاحقا بعد تكمله بقيه الخطوات

ثانيا: اختيار الهاردوير للسيرفر

 (العتاد كما يسميه البعض)



استنادا للعناصر التي تم ذكرها  سابقا ,يمكننا تحديد جميع مواصفات السيرفر في
هذه المرحلة بشكل مبدئي و ليس بدرجة عالية من الدقة لأنه كلما كثرت المواصفات
وزادت زاد مستوى الأداء .وقد نصل لمرحلة معينة لا يزداد فيها مستوى الأداء
لاعتماده على عناصر أخرى غير الهاردوير ومواصفاته .   نوع المعالج , سرعه
المعالج , نوع وسرعه الرام , نوع وسرعه الهاردسك , سرعه كرت ألشبكه وسرعه
الاتصال جميعها يتم اختيارها بناء على العناصر التي تم ذكرها في الخطوة الأولى
. على سبيل المثال لو افترضنا أننا نملك شركه استضافه بسيطه مكونه من 50 موقع من مواقع صغيره – متوسطه الحجم من حيث الزوار والضغط
وتقدم خدمات بسيطه اشبهه بكونها صفحات ثابته , في هذه الحاله نحتاج معالج من المعالجات المتوسطه القوه مثال Core 2 Duo ليس بالضروره i7 او i5 , بالنسبه للرام فهي العامل الاساسي وتم ذكر تفاصيل اختيارها في القسم التالي بالنسبه لسرعه الرام قد يخفى على بعضكم ان الرام تختلف بالسرعه حيث بعض الانواع تكون بسرعات مختلفه 66 , 100 , 133 MHz تختلف اختلاف جذري من ناحيه الاداء في حالتنا هنا المتوسط يعتبر معقول وهو 100
الهاردسك , الهاردسك انواع كثيره حاليا يوجد نوعان منتشره وهم SATA,SAS ساضع بجدول الفروق الجوهريه بين الاثنين :

 

 

\ SAS SATA
السرعه 15000 RPM 7200RPM
التأخير 5.7 جزء من الثانيه 13 جزء من الثانيه
الكتابه\القراءه اما كتابه او قراءه كتابه وقراءه بنفس الوقت


للمثال المذكور ممكن استخدام ساتا يفي بالغرض لكن لاداء افضل نستخدم ساس لنظام التشغيل ونستخدم ساتا للتخزين الكبير لانه ارخص بالسعر

واكثر بالحجم
 .

 

ثالثا: اختيار الويب سيرفر

 ( خادم الويب )

وذلك بناء على عاملين مهمين هما عدد الزوار ونوع الخدمة المقدمة
, بالنسبة لعدد الزوار للموقع , لو افترضنا أن موقعا عدد زواره اكثر من
1000 في نفس الوقت ,إذا تم اختيار سيرفر أباتشي سيكون خيارا متعب من ناحية
الرام حيث ان كل مستخدم يحتاج قرابة 2 ميغا من الرام فاقل رام نحتاجها في
هذه الحالة هي 3-4 جيجا رام , بالنسبة لنوع الخدمة المقدمة ينبغي أن نتساءل
أولا عن نوع صفحات الانترنت المقدمة هل هي بسيطة و ثابتة ؟,هل ستقدم خدمات
تقوم بحسابات واسترجاع بيانات ؟ ,هل ستقوم بتوفير محتوى فيديو أو صوتي
كاليوتيوب وغيرهم ؟   للاجابة على هذه الاسئلة ينبغي ذكر نوعين رئيسين
من الويب سيرفر الاول يخدم الملفات المتغيره ( الداينمك ) كصفحات الـ بي اتش بي وغيرها والاخر يخدم الملفات الثابته ( الستاتك ) كملفات الفيديو والصوت والصور , الاباتشي يعتبر من افضل السيرفرات بخدمه الملفات المتغيره , في هذا الجدول فروقات بالاداء والمميزات بين بعض انواع الخوادم:

 

Apache

Nginx

Lighttpd

IIS

/

process-based server

لكل طلب يتم فتح نسخه جديده من البرنامج

asynchronous server

نسخه واحده من البرنامج لكل الطلبات

asynchronous server

نسخه واحده من البرنامج لكل الطلبات

Architectureالبناء

1000req/sec

10,000req/sec

10,000req/sec

143req/sec

concurrent requests

الطلبات في نفس الوقت

Memory consuming

يستهلك الذاكره

Save Memory

يقلل استخدام الذاكره

Save Memory

يقلل استخدام الذاكره

Performance

الاداء

  • Static file serving

    يخدم الملفات الثابته

  • SSL/TLS support

    يخدم بروتوكول التشفير

  • Virtual hosts
  • Reverse proxying
  • Load balancing

    توزيع الضغط

  • Compression

    ضغط الملفات

  • Access controls
  • URL rewriting
  • Custom logging
  • Server-side includes
Including Apache and Lighttpd featuresيحتوي على مميزات اللايتباد والاباتشي
  • IPv6

    يدعم اي بي الاصدار 6

  • Backends
  • Memcached
  • X-Sendfile
  • Separated error logging per virtual server
  • Including some Apache features
Serving ASP filesيخدم ملفات الاي اس بي

Feature

المميزات

Easy of conf

سهل التركيب

Easy of conf

سهل التركيب

Easy of Conf

سهل التركيب

Medium

متوسط الصعوبه

Ease of Use

سهوله التركيب

Very High

مشهور جدا

High

مشهور

High

مشهور

Very High

مشهور جدا

Popularity

الشهره


رابعا: اختيار خادم قواعد البيانات


( داتابيس سيرفر )

وذلك بناء على عده عوامل منها:

1.السعر

2.الحجم

3.استخدام الموارد ( رام , هاردسك ومعالج وغيرها )

4.الفهرسه

في هذا الجدول مميزات بعض الخوادم لقواعد البيانات :


MySQL

MongoDB

SQLlite

/

Oracle

10gen

Leadership

الشركه المنتجه

Typical: replication and clustering

Typical: replication and sharding

Scaling

الحجم

  • B-Tree (default)
  • Hash (Memory tables and NDB only)
  • B-Tree (default)
  • Geospatial 2D

File System

Index Systems

نظام الفهرسه

  • Disk Space, MyISAM: Marginally larger than the data plus indexes
  • Disk Space, InnoDB: Somewhat larger than the data plus indexes
  • RAM: Allocates as much RAM as available; even more with memory tables.
  • CPU: Allocates a reasonable amount of CPU, relative to the task
  • Disk Space: between 2x and 10x data size, minimum active-database size of 50mb
  • RAM: Allocates a reasonable amount of RAM
  • CPU: Marginal, relative to the task

يستخدم الملفات كقاعد بيانات وعاده يكون خفيف وللاستعمالات الخفيفه مثال فعال على استخدامه في انظمه الاندرويد

Resource Utilization

استخدام الموارد

Very High

مشهور جدا

Very low

غير مشهور

High

مشهور

Popularity

الشهره



خامسا
: اختيار لغه البرمجه وبيئه العمل

 ( الفريم ورك )

 يعتمد اختيارك للغه على اختيارك للبيئه التشغيل ( الاوبريتنج سستم ) حيث تعمل بعض اللغات على بعض الانظمه والانظمه الاخرى لاتعمل عليها بالشكل المناسب مثال لغه ASP.Net تعمل بشكل ممتاز مع انظمه ويندوز ولكن تعمل بشكل ضعيف على انظمه لينكس وتحتاج اضافات على الابتاتشي وقد لاتؤدي اداء قوي كما تؤديه في انظمه وندوز. *هذا القسم ممكن تكمله الحديث فيه لاحقا *

سأتوقف هنا لكي لا تصبح التدوينه ثقيله وتقل فائدتها ..
في حال وجود اي استفسار يمكنكم التواصل بالرد على التدوينه او التواصل معي عبر الايميل من صفحه اتصل بي
سعدت بوجودكم وان شاء الله ان التدوينه مفيده لكم
مصادر اضافيه:
موقع لعرض انواع المعالجات وسرعتها والمقارنه بينها

http://www.cpubenchmark.net/high_end_cpus.html