هي اداة شبكات تساعد في "التحكم في جهاز ما عن بعد"
مثال
لديك اكثر من حاسوب في المنزل وتود ان تقوم بنقل بعض الملفات من مكان لأخر او تود ان تشغل اغنيه ما على حاسوبك الرئيسي بينما انت في الحمام تفعل ما تمليه عليك الطبيعه وبين يديك حاسوبك المحمول.
سأبدأ الشرح مفترضا انه لديك sshعلى جهازك ان لم يكن لديك فقم بتنزيل التالي "
# aptitude install ssh2 openssh-server openssh-client
الأن الى الخطوة التاليه
تفعيل الـ
SSH لابد ان تكون الـ ssh مفعله لكي تستطيع ان تتحكم بالحاسوب ولتفعيلها نكتب الامر التالي ونحن المستخدم الجذر
"الأمر التالي في إعتقادي يصلح لجميع التوزيعات"
# /etc/init.d/ssh restart
* Restarting OpenBSD Secure Shell server... [ OK ]
الأن تأكدنا من تفعيل أداتنا ,سنقوم الأن بالدخول على الحاسوب المراد التحكم به او الخادوم الخاص بك على الشبكة
ssh serverusername@serverip
pass:ادخل كلمة السر الخاصة بالمستخدم
حيث ان serverusername=اسم المستخدم على الخادوم
serverip=الأي بي الخاص بالخادوم
الأن ستجد امامك في سطر الأوامر
serverusername@servername:~$
انت الان على الجهازالمراد التحكم به او الخادوم,تستطيع ان تكتب جميع الأوامر التي تريدها وتفعيلها من تشغيل ملفات الموسيقى الى إفناء بعض البرامج التي تعمل والغير مرغوب فيها او اي شئ اخر تريده,انت الان كأنك على الجهاز الاخر تماما:)
مثال
انت الان تجلس في الحمام 'كالعادة'وتود ان تسمع مزيكا معينه
مشغل الموسيقى المفضل لدي هو mplayer
ssh serverusername@serverip
pass:*****
mplayer /home/username/bobmarley/400years.mp3
أو يمكنك ان تستعرض ملفاتك الرسومية وذلك عن طريق تغيير الأمر الى
ssh -X serverusername@serverip
لحظة...لكني لا اريد ان افعل ذلك فحسب اريد ان انقل بعض الملفات من الخادوم الى جهازي او العكس ماذا افعل ؟؟؟
النقل من الخادوم اليك
بداية توقف في المكان الذي تود ان تنقل اليه
cd /home/urusername/fat7eya/
ومن ثم نكتب الأمر التالي
scp serverusername@serverip:/home/serverusername/nameoffile .
ملاحظة
""قم بإضافة -rفي حالة نقلك لملف"
النقل منك الى الخادوم
كما فعلنا سابقا مع بعض الإختلافات
scp /home/urusernam/thenamefothefile serverusername@serverip:/serverhome/serveruser/
sshpublickey
سنستفاد بمعرفة مفتاح الsshالعام في كوننا سنتسطيع بعد ذلك منع اي شخص من الوصول الى الجهاز بإستخدام كلمة سر ,لابد من ان يستخدم المفتاح العام الذي لن يستطيع بالتأكيد ان يضيفه الى الجهاز الا بعد موافقتك:)وفي هذا حماية اكبر,وايضا لبعض من هم مثلي من سيئي التذكر فيكفيهم ان يتذكروا كلمة سر واحده لكل خواديمهم
لاتكتب الامر التالي وانا مستخدم جذر
حسنا الان سنقوم الأن بخلق المفتاح بكتابةالأمر التالي
سيطلب منك بعد كتابة الأمر ان تحدد له مكان الملف الذي تود ان تحتفظ به بالمفتاح يمكنك ان تتركه فارغا وسيقوم بحفظه في المسار الذي سيعطيه لك سيطلب منك كلمة سر"هنا يطلب عباره لبيان مدى الاهميه" لابد من ان تكون قويه
ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/home/b/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/b/.ssh/id_rsa.
Your public key has been saved in /home/b/.ssh/id_rsa.pub.
الان سنقوم بنقل المفتاح لكل الخواديم التي نتصل بها .
ssh-copy-id -i ~/.ssh/id_rsa.pub serverusername@serverip
للتأكد من نجاح العملية سنحاول الإتصال بالخادوم
ssh serverusername@serverip
ستجده قد اظهر لك الامر التالي
Enter passphrase for key '/home/b/.ssh/id_rsa':
ادخل كلمة السر ,الان انت انتهيت
حسنا الان الجزء الجيد في الموضوع ,وهو منع الدخول الا بالمفتاح
نحتاج الى ان تكون مستخدم جذر الان داخل الخادوم,ومن ثم قم بتحرير الملف التالي بإستخدام محررك المفضل"استخدم mcedit"
ssh serverusername@serverip
Enter passphrase for key '/home/b/.ssh/id_rsa':
الان كن مستخدم جذر
# mcedit /etc/ssh/sshd_config
ستجد داخل الملف سطر يخبرك ان
#PasswordAuthentication no
سنقوم بحذف العلامة السابقه
PasswordAuthentication no
حسنا لن يستطيع احد ان يصل الى خادومك بكلمة سر
التأمين أول حاجه نفكر نعملها عشان نأمن خدمه شغاله بشكل مستمر على الخادوم اننا نغير المنفذ لمنفذ أخر و لنجعله مثلا لايقل عن اربعة ارقام ليصعب الامر أكثر على برمجيات مثل nmap وبرمجيات ال Brute force -تترجم ازاى دى ؟ّ- مثال : البورت رقم 7700 تقريبا لن تجده مستخدم من اى خدمه أخرى على توزيعتك وبالتالى يمكنك استخدامه
وعشان نعمل ده هنروح بمحررنا المفضل على etc/ssh/sshd_config/ ونبحث عن كلمة port وهنلاقى حاجه شبه كده
#What ports, IPs and protocols we listen for
Port 22 ----> غير بقى الرقم للرقم اللى انت اختارته اذا واحنا بنعمل لج ل SSH هيبقى الامر شكله كده
$ ssh -p <port> user@myIPaddress
2- مالك ذكرها فى مقاله وهى الولوج ل SSH ياستخدام المفتاح العام ومنع الولوج باستخدام كلمة السر وبالتالى لن يستطيع احد الدخول لخادومك الا اذا حصل على مفتاحك الخاص .. جميل الكلام ده ونقدر نضيف عليه خطوه تأمينيه تانيه وهى اننا نتحكم فى المستخدمين اللى يقدرو يستخدموا SSH على نفس المكنه. ودى نقدر نعملها باننا نضيف السطر ده فى ملف الاعداد
etc/ssh/sshd_config/
# echo AllowUsers <username> >> /etc/ssh/sshd_config
حطوه هامه جدا قبل ان ننساها وهى منع المستخدم الجذر root من الولوج نهائيا . هنروح للسطر
PermitRootLogin yes ---> change it to no
3- فى الخطوه دى هنمنع استخدام االبام PAM و الدى ان اس DNS ولو كمان مش محتاج تباصى ال X لجهازك
هنروح للجزء اللى فيه حاجات شبه كده ولو ملقتش حاجات موجوده اصلا يبقى ضيفها
X11Forwarding yes ----> change it to no
UsePAM yes ---> change it to no
UseDNS yes ---> chnage it to no
4- جه وقت اللعب :)
ممكن نعمل اعلان ظريف مطبوع على الشل وبيظهرلك اول لما تحاول تلج بال SSH والاظرف انه بيظهر برده ﻷى حد بيحاول يلج فممكن انت تحرق دمه بالرساله دى وانت وزوقك بقى :P عشان نعمل كده هنفتح ملف نصى عادى ونكتب فيه اللى احنا عاوزينه ونعمل بقى اشكال بالحروف وحركات وبعدين نحفظه ونروح للسطر المسئول عن الحكايه دى فى ملف الاعداد ونشاورله بس على مكان الملف
هتلاقى السطر ده شبه كده :
#Banner /etc/issue.net
غير بقى المسار اللى موجود للمسار اللى موجود فيه الملف اللى انت عملته وطبعا متنساش تشيل علامة الشباك عشان الامر يبقى فعال
طبعا فيه افتكاسات تانيه لتأمين SSH ولكن اعتقد ان الخطوات البسيطه اللى فوق بتعمل تأمين محترم ل SSH واهو حاجه أحسن من مفيش خالص :)