SSH / سرویس یا نرم افزار
SSH چیست ؟
SSH کوتاه شده عبارت Secure Shell می باشد که در فارسی ما آن را پوسته امن می نامیم. SSH در واقع یک برنامه برای ورود به دیگر کامپیوتر ها تحت شبکه می باشد ولی با دسترسی های خاص که تا حدودی قابل پیکر بندی می باشد. همانطور که از نام آن معلوم است یکی از مزیت های بسیتر مهم آن امن بودن و رمز نگاری اطلاعات در هنگام انتقال اطلاعات می باشد.
باید عرض کنم که این برنامه فقط اطلاعات اعتبار سنجی برای ورود (Authentication) را امن نمی کند، بلکه کلیه اطلاعات رد و بدل شده را رمز نگاری میکند. و این نیز دلیلی بسیار محکم برای پیروز شدن SSH در برابر پروتکل هایی همچون RCP, Telnet, Rlogin و …. می باشد.
لازم است به این نکته توجه داشته باشید که این پروسه رمز نگاری بصورت نامرئی و کاملا خودکار انجام میگیرد. ینی من و شما به عنوان کاربر هیچگاه متوجه این پروسه رمز نگاری نخواهیم شد.
اطلاعات در کامپیوتر مبدا به صورت خودکار رمز نگاری میشود، و پس از رسیدن به سیستم مقصد رمز گشایی می شود. کاربران عزیز دقت داشته باشند که SSH به صورت کلاینت / سرور کار می کند.
یعنی بدین صورت که کلاینت با فرستادن اطلاعات ورود، به سرور اقدام به اتصال خواهد کرد و سرور پس از بررسی، در صورت صحت اطلاعات ارسال شده به کاربر اجازه ورود خواهد داد.
SSH
وقتی تمامی حروف آن به صورت بزرگ نوشته شده باشد در واقع بیانگر سرویس SSH می باشد.
ssh
اگر تمامی حروف آن به صورت کوچک نوشته شده باشد، در واقع بیانگر نرم افزار کلاینت آن می باشد.
SSH1
به اولین نسخه از پروتکل SSH گفته می شود که در سال 1995 نوشته شد. با توجه به این که نسخه های اولیه تمام نیاز های کاربران را پوشش نمیداد، و دارای مشکلاتی بود تا نسخه 1.9 ارتقا یافت، سپس به صورت Open Source (متن باز) در اختیار کاربران قرار گرفت.
SSH2
این واژه معرف نسخه تجاری این پروتکل می باشد، با توجه به این که بسیاری از کاربران نیاز های مختلفی را داشتند و همین طور سازنده پروتکل یعنی (Tatu Yionen) نیاز به کسب درآمد داشت، این نسخه را به صورت تجاری عرضه کرد. این نسخه متعلق به شرکت Tectia می باشد.
SSHD
در سرویس های لینوکس این نکته وجود دارد که سرویس ها (Deamons) در بسیاری از مواقع در آخر آن ها واژه d اضافه میشود. که این موضوع یکی از ویژگی های Deamon ها بوده است.
پس sshd در واقع سرویس ssh در سیستم عامل های لینوکسی می باشد، والبته بجز لینوکس در دیوایس های سیسکو و بعضی از سیستم عامل های موبایل نیز مورد استفاده قرار می گیرد.
Open SSH
این عبارت بیانگر نسخه متن باز پروتکل SSH می باشد. از آنجا که سورس اولیه SSH به صورت رایگان در اینترنت وجود داشت، و بعضی از کاربران که مایل به پرداخت هزینه به شرکت Tectia برای خرید نسخه دو آن نبودند، به فکر ارایه این محصول بصورت رایگان افتادند، که در نهایت گروه Open BSD این عمل را انجام داد، و نام آن را Open SSH گذاشت.
ویژگی های پروتکل SSH
رمز نگاری کلیه اطلاعات
برای جلوگیری از شنود اطلاعات کلیه اطلاعات رمزنگاری میشود، که این امر مهم ترین علت استفاده از این پروتکل می باشد.
تایید هویت کاربران با استفاده از روش های متفاوت مثل Password یا کلید شناسایی (Public / Host Key)
امکان امن کردن پروتکل های دیگر مثل FTP که برای انتقال اطلاعات مورد استفاده قرار می گیرد.
امکان فشرده سازی اطلاعات در این پروتکل وجود دارد که برای کسانی که ارتباط کم سرعتی را دارند میتواند بسیار مفید واقع بشود.
امکان رکورد کردن Log در این نرم افزار وجود دارد که Administrator با کانفیگ کردن آن می تواند پس از بروز مشکل با مراجعه به Log File های مربوطه به SSH خطا را تشخیص داده و مشکل را حل کند.
مزایای SSH به سایر روش های قدیمی ارتباطی مثل Telnet
رمز گذاری داده ها (Data Encryption)
یک Secure Connection بین Server و Client تشکیل خواهد شد که جلوگیری از Sniff شدن Data ها (شنود اطلاعاتی) می تواند مهم ترین مزیت این سرویس باشد.
Data Integrity
بررسی یکپارچگی داده ها و جلوگیری از حملاتی از نوع Insertion & Reply Attack
در پروتکل TCP/IP فقط وجود Packet ها و صحت آن ها از نظر مشخصات فنی با بررسی Packet ها انجام می شود، ولی اگر Data ها عمدا تخریب و جایگزین شده باشند، چه اتفاقی خواهد افتاد؟
لازم به ذکر است که Data Encryption بدون استفاده از Session ID امکان جلوگیری کردن از حملات Reply Attack را ندارد.
از نسخه دوم SSH این قابلیت اضافه شد تا Packet ها در مسیر ارسال، جایگزین و یا شبیه سازی نشوند.
در این نوع حمله، هکر دیتای تبادلی در Session را مانیتور نمی کند، بلکه مثل نرم افزار های Key Logger خروجی صفحه کلید را مانیتور نموده و با مقایسه Packet های Type شده جاری SSH متوجه کارکتر های خاص تایپ شده مثل Danial می شود.
قابلیت فشرده سازی یا Compression
SSH علاوه بر رمز گذاری اطلاعات ارسالی نیز میتواند آن ها را فشرده هم بکند، که این کار در ارتباط های کم سرعت بسیار مفید خواهد بود.
Prevent impersonation of host عدم اتصال به سرور جعلی
در یک اتصال SSH هنگام اتصال به سرویس دهنده هویت سنجی Authentication انجام میگرد و اگر یک Machine با مشخصات سرویس دهنده در مسیر کاربر قرار گرفته باشد، امکان میزبانی Client و یا برعکس را ندارد. در حالیکه در پروتکل های قدیمی مثل Telnet این یک امر اجتناب ناپذیر است.
این دسته از حملات به حمله مرد میانی معروف است
به این نوع حملات اصطلاحا Man-in-The-Middle-Attack گفته می شود.
Log File یا Log Access
SSH امکان فعال یا غیر فعال شدن فرایند تهیه Log File ها را دارد، با فعال شدن این امکان در مواقع بروز مشکل، Administrator بعد از بروز خطا اولین موردی که برای رفع مشکل بررسی می کند، Log File ها می باشد.
SSH Key
یکی دیگر از قابلیت های SSH امکان هویت سنجی بوسیله کلید های عمومی و اختصاصی می باشد.
SSH Public Key
SSH Private Key
از کلید عمومی برای اتصال های شناخته شده استفاده می شود.
Public Key for known hosts
این کلید به صورت خودکار در یک مسیر مشخص ساخته می شود، و هنگام اتصال به سرویس دهنده ایجاد می شود.
برای ساخت یک کلید ابزار های متنوعی را می توان استفاده کرد. به عنوان مثال یک ابزار که از محصولات putty است، می تواند در این زمینه مفید واقع بشود. ولی در خود سیستم عامل لینوکس فرمانی برای ساخت آن نیز وجود دارد.
امنیت در SSH
پورت استاندارد TCP برای SSH ، پورت ۲۲ است. سرویس SSH را روی هر سروری به روش های مختلفی وجود دارد که یکی از این روش ها تغییر پورت سرویس SSH می باشد که در ادامه به آن خواهیم پرداخت.
- تغییر پورت
- غیرفعال کردن امکان ورود مبتنی بر رمز عبور متنی و استفاده از کلید PGP (کلید عمومی) برای احراز هویت
- غیرفعال کردن امکان ورود کاربر root از طریق SSH
تغییر پورت سرویس SSH
فایل sshd_config را با استفاده از ویرایشگر nano بازکنید. این فایل در آدرس زیر قرار گرفته است: (با فرض سرور لینوکسی)
/etc/ssh
مطابق با عکس زیر:
یک نظر در “سرویس SSH”
فوق العاده عالی و دقیق
سپاس