حماية الـ SSH لسيرفرك الخاص
السلام عليكم ورحمه الله وبركاته
بسم الله الرحمن الرحيم
اللَّهُمَّ انْفَعْنَا بِمَا عَلَّمْتَنَا , وَعَلِّمْنَا مَا يَنْفَعُنَا , وَزِدْنَا عِلْمًا إِلَى عِلْمِنَا
معلومات عن التدوينه :
المتطلبات: وجود برنامج Putty & PuttyGen.
المستوى: متوسط.
المخرجات: معرفة طريقة حماية السيرفر من المتطفلين وزيادة مستوى الأمان بالسيرفر.
مجال التدوينه:شرح طرق مختلفة لحماية سيرفرك وزيادة مستوى الأمان .
الشرح:
الشرح والأمثلة على توزيعة CentOs 7 وبالأمكان تطبيقها على اغلبيه التوزيعات الأخرى
الطريقة الأولى :- إلغاء الدخول بحساب Root
- تسجيل دخول للسيرفر عن طريق المستخدم root ومن ثم
- إنشاء مستخدم أخر بأي إسم ترغبه.
باستخدام الأمر useradd
اسم المستخدم الجديد هو secuser[root@Node1 ~]# useradd secuser
- تحرير لائحة المستخدمين المسموح لهم الدخول وتنفيذ الأوامر كـ 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
كالتالي :-
الطريقة الثالثة :- الدخول عن طريق Public & Private Key
الطريقه التقليدية لدخول السيرفر هي عن طريق اسم المستخدم والكلمة السرية ,,
الأن يمكنك إضافه حماية إضافية , عن طريق استخدام Public & Private Key وبهذه تضمن ان اي شخص معاه الكلمة السرية ماراح يدخل الا لما يكون عنده الكي الي عندك ,, ( عباره عن ملف فيه مفتاح لدخول السيرفر وتستطيع تشفيرة بكلمه مرور اضافيه )
باستخدام برنامج Putty Gen
واجهة البرنامج :-
بالضغط على زر Generate لإنشاء المفتاح الخاص بك , يطلب منك البرنامج بتحريك الماوس على المساحه الفارغة.
بعد ذلك سيتم إنشاء المفتاح الخاص بك , وسيظهر لك كالتالي :
نحفظ المفتاح عن طريق الضغط على
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
المفتاح ممكن ننسخه مباشره من البرنامج
ونحفظ الملف. بكذا اقدر ادخل السيرفر على المستخدم test بدون كلمة سرية فقط باستخدام الـ Private Key
الأن نضيف الـ Private Key الى برنامج Putty من القائمه التاليه:-
من هذه القائمة نختار المفتاح السري Private Key وندخل معلومات السيرفر بمكان الاتصال وسيتم السؤال عن المستخدم فقط وسيتم الدخول بدون طلب كلمة سرية.
هل أستطيع جمع الطرق الثلاثة معاً ؟
نعم وبدون اي مشاكل ..
هل يوجد طرق اخرى لم تذكر ؟
نعم يوجد طرق اخرى عن طريق استخدام جدار الحماية
كيف تختار الخدمات المناسبه لك بعنايه ؟
سؤال يتجاهله اغلب التقنيين , حيث أنهم بالافتراض
معتادون على خدمات معينه يتم تعميمها في كافة استخداماتهم دون مراعاة لمتطلبات
كل حالة , فمثلا عند برمجه سكربت جديد لا ينظر إلى متطلبات السكربت والضغط
المتوقع عليه وغيرها, ويتم يختار الويب سيرفر بناء على ما تم اختياره من قبل
مواقع أخرى سابقة ويشمل ذلك سيرفر قواعد البيانات وسيرفر الايميل وغيرها من
الخدمات التي تؤثر بشكل كبير على الأداء ,مستوى الحماية, الإصلاحات ,و سهوله
التطوير ,في السطور القادمة سوف اتطرق بشكل مبسط بالخطوات
كيف ممكن نختار الخدمه المناسبه لنا
أولا: تحليل متطلبات السكربت (البرنامج) :
السكربت سواء تم برمجته بشكل مسبق ومكتمل او انه في طور
البرمجة ,يجب أن تؤخذ بعين الاعتبار العناصر التالية :
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 الاداء |
|
Including Apache and Lighttpd 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 الحجم |
|
|
File System |
Index Systems نظام الفهرسه |
|
|
يستخدم الملفات كقاعد بيانات وعاده يكون خفيف وللاستعمالات الخفيفه مثال فعال على استخدامه في انظمه الاندرويد |
Resource Utilization استخدام الموارد |
Very High مشهور جدا |
Very low غير مشهور |
High مشهور |
Popularity الشهره |
خامسا: اختيار لغه البرمجه وبيئه العمل
( الفريم ورك )
يعتمد اختيارك للغه على اختيارك للبيئه التشغيل ( الاوبريتنج سستم ) حيث تعمل بعض اللغات على بعض الانظمه والانظمه الاخرى لاتعمل عليها بالشكل المناسب مثال لغه ASP.Net تعمل بشكل ممتاز مع انظمه ويندوز ولكن تعمل بشكل ضعيف على انظمه لينكس وتحتاج اضافات على الابتاتشي وقد لاتؤدي اداء قوي كما تؤديه في انظمه وندوز. *هذا القسم ممكن تكمله الحديث فيه لاحقا *
سأتوقف هنا لكي لا تصبح التدوينه ثقيله وتقل فائدتها ..
في حال وجود اي استفسار يمكنكم التواصل بالرد على التدوينه او التواصل معي عبر الايميل من صفحه اتصل بي
سعدت بوجودكم وان شاء الله ان التدوينه مفيده لكم
مصادر اضافيه:
موقع لعرض انواع المعالجات وسرعتها والمقارنه بينها
http://www.cpubenchmark.net/high_end_cpus.html
أحدث التعليقات