Submitted by MaLek on Mon, 02/07/2007 - 05:08.
( categories: )

الـSSH

هي اداة شبكات تساعد في "التحكم في جهاز ما عن بعد"

مثال

لديك اكثر من حاسوب في المنزل وتود ان تقوم بنقل بعض الملفات من مكان لأخر او تود ان تشغل اغنيه ما على حاسوبك الرئيسي بينما انت في الحمام تفعل ما تمليه عليك الطبيعه وبين يديك حاسوبك المحمول.

سأبدأ الشرح مفترضا انه لديك 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

لحظة...لكني لا اريد ان افعل ذلك فحسب اريد ان انقل بعض الملفات من الخادوم الى جهازي او العكس ماذا افعل ؟؟؟

النقل من الخادوم اليك

بداية توقف في المكان الذي تود ان تنقل اليه

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 واهو حاجه أحسن من مفيش خالص :)

http://malek-x.net


Nice.

MSameer's picture

Can you please post more info about PermitRootLogin ? And how to allow/deny certain users or groups ?


WWW: The place for organized randoms!

فل ,حعمل

MaLek's picture

فل ,حعمل الكلام دا على النهاردة بالليل ,بس اتمنى الزمالك يفوز عشان الواحد يبقى عنده دفعه معنويه :) http://MaLek-x.net

اضافات امنيه لتأمين SSH من مراهقين الانترنت

AMS's picture

كلام جميل يامالك... هو ده الشغل وبخصوص كلام سمير انا كتبت شوية حاجات كده ع السريع عن تأمين SSH



أول حاجه نفكر نعملها عشان نأمن خدمه شغاله بشكل مستمر على الخادوم اننا نغير المنفذ لمنفذ أخر و لنجعله مثلا لايقل عن اربعة ارقام ليصعب الامر أكثر على برمجيات مثل 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 واهو حاجه أحسن من مفيش خالص :)


معلش بقى يعم مالك تعوضوا الكاس فى 2010000000 ان شاء الله

نياهاهاهاهها

Sorry, no Arabic keyboard

MSameer's picture

Sorry, no Arabic keyboard here:

This is the 1st time I know about the Banner. Thanks :-)

as for changing the port, somone looking for the ssh server using the service banner or fingerprint will find it anyway this is not that important I guess ?


WWW: The place for organized randoms!

> as for changing the

AMS's picture

> as for changing the port, somone looking for the ssh server using the service banner or fingerprint will find it anyway this is not that important I guess ?

انت تقصد يعنى لما اجى مثلا استخدم ال nmap واعمل

 # nmap -sS -pO -sV 192.168.1.2 

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

طيب حد عنده افتكاسه لموضوع ال fingerprint ده

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

What I do is: AllowGroups

MSameer's picture

What I do is: AllowGroups foo

And add the users I need only to that group.

you can use port knocking if you want but I don't personally use it.

The other point is to strengthen the security so that even if an introder manages to get a valid username and password pair, he won't be able to do anything with them.


WWW: The place for organized randoms!

جديده عليا الـ

AMS's picture

جديده عليا الـ Port knocking بس ربنا يخليلنا ويكيبيديا :)

عموما اﻷمن والحمايه بحرها واسع قوى وكل يوم فيها جديد

و عشان كده هنفضل دايما نتعلم ونستفيد

:)

شاكرين

Alaa's picture

شاكرين مساهمتك بس خد بالك أن دي ويكي، يعني الأفضل بدل الاضافة في تعليق أنك تحرر مقال مالك و تضيف ليه

cheers,
Alaa


husband of the Grand Waragi Master

http://www.manalaa.net

أاااخ معلش

AMS's picture

أاااخ معلش فاتتنى دى ياعلاء

نيو ديزاين بقى ياجدعان :)


ممكن لو سمحتوا حد من اللى له صلاحيات التحرير يحرر التعليق بتاعى ويضيفه لمقالة مالك

اعمل النيو

Alaa's picture

اعمل النيو ديزاين و أنا متأكد أن المديرين هيستخدموه لو كان كويس

لكن اطلب تصميم جديد من هنا للقرن اللي جاي مفيش حاجة هتتغير

cheers,
Alaa


husband of the Grand Waragi Master

http://www.manalaa.net

انا حررت

MaLek's picture

انا حررت الموضوع تاني,وضفت الجزء بتاعك زي ماهو فل ؟ __ http://MaLek-x.net

great work :-)

DarKnesS_WolF's picture

also you can use rsync to do scp work ;-) and it will be like that

rsync -rvHP /file/want/to/send username@sshserver:/path/i/want/to/put/thefile/

bas keda ;-)

wa fih AllowUsers foo so that user bas will be able to ssh


peace


Live Free Or Die Trying...
GPG Key ID:0x6FD809F4

للتوضيح rsync

Alaa's picture

للتوضيح rsync بيتيح امكانية استكمال تنزيل الملفات أو حتى انزال التعديلات فقط. يعني بيضيف مزايا rsync فوق ssh

cheers,
Alaa


husband of the Grand Waragi Master

http://www.manalaa.net

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.