الـ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
اضافات امنيه لتأمين SSH من مراهقين الانترنت
كلام جميل يامالك... هو ده الشغل وبخصوص كلام سمير انا كتبت شوية حاجات كده ع السريع عن تأمين SSH
أول حاجه نفكر نعملها عشان نأمن خدمه شغاله بشكل مستمر على الخادوم اننا نغير المنفذ لمنفذ أخر و لنجعله مثلا لايقل عن اربعة ارقام ليصعب الامر أكثر على برمجيات مثل nmap وبرمجيات ال Brute force -تترجم ازاى دى ؟ّ-
مثال : البورت رقم 7700 تقريبا لن تجده مستخدم من اى خدمه أخرى على توزيعتك وبالتالى يمكنك استخدامه
وعشان نعمل ده هنروح بمحررنا المفضل على etc/ssh/sshd_config/ ونبحث عن كلمة port وهنلاقى حاجه شبه كده
#What ports, IPs and protocols we listen forPort 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
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
> 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
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!
جديده عليا الـ
جديده عليا الـ Port knocking بس ربنا يخليلنا ويكيبيديا :)
عموما اﻷمن والحمايه بحرها واسع قوى وكل يوم فيها جديد
و عشان كده هنفضل دايما نتعلم ونستفيد
:)
أاااخ معلش
أاااخ معلش فاتتنى دى ياعلاء
نيو ديزاين بقى ياجدعان :)
ممكن لو سمحتوا حد من اللى له صلاحيات التحرير يحرر التعليق بتاعى ويضيفه لمقالة مالك
اعمل النيو
اعمل النيو ديزاين و أنا متأكد أن المديرين هيستخدموه لو كان كويس
لكن اطلب تصميم جديد من هنا للقرن اللي جاي مفيش حاجة هتتغير
cheers,
Alaa
husband of the Grand Waragi Master
انا حررت
انا حررت الموضوع تاني,وضفت الجزء بتاعك زي ماهو فل ؟ __ http://MaLek-x.net
great work :-)
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
للتوضيح rsync بيتيح امكانية استكمال تنزيل الملفات أو حتى انزال التعديلات فقط. يعني بيضيف مزايا rsync فوق ssh
cheers,
Alaa
husband of the Grand Waragi Master





Nice.
Can you please post more info about PermitRootLogin ? And how to allow/deny certain users or groups ?
WWW: The place for organized randoms!