PDA

توجه ! این یک نسخه آرشیو شده میباشد و در این حالت شما عکسی را مشاهده نمیکنید برای مشاهده کامل متن و عکسها بر روی لینک مقابل کلیک کنید : Ssh چیست و چگونه امنیت آن را بالا ببریم ؟



irmizban
January 27th, 2012, 00:14
با سلام و درود به همه عزیزان .
ابتدا یک تعریف از SSH که بر گرفته از ویکی پدیا فارسی هست رو بیان میکنم :

به عنوان یک تعریف بسیار ساده می*توان SSH را این گونه بیان کرد : SSH یک روش قدرتمند و پر استفاده و البته نرم*افزاری است که برای دستیابی به امنیت شبکه طراحی شده است. هربار که داده*ای از طرف کامپیوتر به شبکه فرستاده می*شود، به صورت خودکار توسط SSH کدگذاری می*شود. هنگامی که داده به مقصد خود می*رسد به صورت خودکار کدگشایی می*شود. نتیجه*ای که خواهد داشت کدگذاری نامرئی خواهد بود. بدین صورت کاربران نهایی درگیر پروسه کدگذاری و کدگشایی نخواهند شد و از ارتباط امن خود می*توانند به خوبی استفاده کنند. امنیت سیستم کدگذاری SSH با استفاده از الگوریتم*های پیچیده و مدرن تضمین می*شود. تا آنجا که امروزه در سیستم*های حیاتی و بسیار حساس از این سیستم استفاده می*شود. به صورت معمول محصولاتی که از SSH استفاده می*کنند از دو بخش خادم و مخدوم ( Client/Server ) تشکیل می*شوند. Client*ها با استفاده از تنظیمات سرور مربوطه به آن وصل می*شوند و سرور وظیفه تایید هویت و قبول و یا رد ارتباط را به عهده دارد. نکته : باید توجه داشته باشید تشابه نام Secure Shell با محیط هایی مانند Bourne shell و یا C Shell نشان دهنده این نیست که SSH نیز محیطی است که وظیفه تفسیر فرامین برای سیستم*عامل را بر عهده دارد. با اینکه SSH تمامی مشکلات را حل نخواهد کرد، اما در مورد بسیاری از موارد می*تواند راه حل مناسبی باشد. برخی از این موارد عبارتند از :

* یک پروتکل خادم/مخدوم امن برای کدگذاری و انتقال داده*ها در شبکه.
* تعیین هویت کاربران به وسیله کلمه عبور ، host ، public key و یا استفاده از Kerberos،PGP و یا PAM
* قابلیت امن کردن برنامه*های ناامن شبکه مانند Telnet ، FTP و در کل هر برنامه*ای که بر اساس پروتکل TCP/IP بنا شده است.
* بدون هیچ تغییر در استفاده کاربر نهایی ( End User ) پیاده شده و قابلیت پیاده سازی بر روی بیشتر سیستم*عامل*ها را دارد.

و اما چگونه این ارتباط را امن نگه داریم .



قدم قدم محدود کردن دسترسی کاربران و یوزر ROOT به SSH است .
اگر شما بر روی سرور خود چند یوزر رو پشتیبانی و میزبانی میکنید برای امنیت بیشتر فقط به کسانی دسترسی به SSH بدهید که شما تمایل دارید آنها دسترسی داشته باشند .

ابتدا یک یا چند نام کاربری با دستور زیر ایجاد کنید:




useradd name

به جای name نام کاربری دلخواه رو وارد کنید و با تکرار آن می تونید نام کاربری دیگری نیز اضافه نمایید .
تا اینجا نام کاربری مشخص شده است حال برای نسبت دادن کلمه عبور به یوز یا یوز های ساخته شده از دستور زیر استفاده میکنیم :





passwd name

پس از اجرای دستور بالا سیستم از شما می خواهد که کلمه عبور را وارد نمایید و اینکار 2 مرتبه تکرار می شود .
( ایجاد نام کاربری در لینوکس دارای چند پارمترهست که امیدواریم در بخش های دیگر به آن بپردازیم )

نکته اینکه برای امنیت همواره از کلمات ساده برای رمز استفاده نکنید . مثلا معمولا عادت داریم پسورد ساده تشکیل شده از چند عدد یا حرف یا سال تولد یا اینکه کلمات نزدیک به کیورد مثل 123456 رو انتخاب میکنیم . فلسفه این است که همواره رمزی انتخاب کنید که قابل حدس زدن یا کرک شدن نباشد نه اینکه یادآوری آن برای شما آسان باشد ! . پس برای سرور خود از کلمات و کارکترهای مثل $ % ^ * استفاده کنید تا رمز گشای آن توسط Craker ها غیر ممکن شود !


در ادامه کار باید فایل /etc/ssh/sshd_config رو با دستور زیر باز کنید :




nano /etc/ssh/sshd_config

و بعد به وسیله کد زیر نام کاربرانی که مجوز استفاده از SSH رو دارن مشخص کنید .
کد:


AllowUsers javad reza omid

نکته بعدی اینکه SSH از دو Protocol می تونه استفاده کنه یکی Protocol 1 و دیگری Protocol 2 که Protocol 1 بابت اینکه قدیمی تر از Protocol 2 هست از امنیت کمتری برخودار هست . برای اینکار خط زیر که معمولا در اویل فایل sshd_config هست را مثل زیر تغییر دهید :



# Protocol 2,1 Protocol 2
بعد اینکه حتما پورت SSH رو تغییر بدین . در حالت کلی این پورت 22 هست . برای اینکه هکر ها با اسکن کردن پورت 22 نتونن ورود به SSH رو رمزگشای کنن این پورت رو به یک عدد مثلا 24456 تغییر بدین . نکته ای که باید توجه کنید اینکه پورت انتخابی شما نباید توسط سرویس های دیگری که روی سیستم عامل نصب هست مورد استفاده باشد .


اگر همیشه هنگام اتصال به اینترنت یک ای پی مختص به خود دارید و به عبارتی دیگر آی پی شما همواره یکتا یا dedicated هست میتوانید به فایرول سیستم خود بگویید که تنها ای پی شما اجازه دارد به پورت SSH وصل شود که اینکار امنیت اتصال رو بسیار بالا خواهد بود .




iptables -A INPUT -p tcp -s 127.0.0.1 --dport 22 -j ACCEPT
در مثال بالا به جای 127.0.0.1 ای پی اتصال خود به اینترنت رو وارد کنید و به جای 22 پورت اتصالی به SSH رو که مشخص کردین وارد کنید اگر هم اون رو تغییر ندادین که نیازی نیست !


البته موارد کلیدی بسیاری هست که به مرور این تایپک رو آپدیت میکنم .
سوالی هم بود در خدمت هستم .