تیک۴

آشنایی با پروتکل SSH

Secure Shell

قبل از آشنایی با پروتکل SSH لازم است تفاوت های آن را با پروتکل Telnet که قبل از پیدایش SSH بسیار مورد استفاده بوده را مورد برسی قرار دهیم.

SSH و Telnet چیست؟

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

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

یکی از مهم ترین خطراتی است که هر کاربر متصل به اینترنت در یک شبکه عمومی را تهدید می کند. هکرها می توانند با ده ها نرم افزار ساده و کوچک، تمام اطلاعات ارسالی یا دریافتی روی کامپیوتر شما را از طریق پورت های باز شنود و حتی ذخیره یا دستکاری کنند. اگر برایتان پیش آمده که آدرس یک سایت را وارد مرورگر اینترنت کرده اید، اما سایت دیگری باز شده یا پنجره دانلود نرم افزاری گشوده شده است، مطمئن باشید اطلاعات شما شنود و دستکاری می شود.

پروتکل SSH  به شما کمک می کند که اطلاعات را به صورت امن و رمزنگاری شده روی شبکه و اینترنت مبادله کنید و از شنود یا استراق سمع در امان باشید.

تفاوت بین SSH  و Telnet  در چیست؟

اصلی ترین و مهمترین تفاوت بحث امنیت است.

Telnetهیچگونه مکانیزم امنیتی ندارد ، رمز عبور شما زمانیکه از Telnet برای اتصال به دستگاه مورد نظر استفاده می کنید بصورت رمزنگاری نشده یا در اصطلاح فنی Clear Text  رد و بدل می شود و یک هکر می توانید این رمز عبور را به سادگی در شبکه شنود کرده و اطلاعات احراز هویتی شما را بدست بیاورد. اما زمانیکه شما از SSH  استفاده می کنید رمز عبور شما بصورت رمزنگاری شده منتقل می شود و مهاجم نمی تواند محتویات آن را شناسایی و رمز عبور را پیدا کند.

SSh  چیست؟

SSHمخفف کلمه  Secure shell یک پروتکل امن برای ایجاد ارتباط بین (Client) سرویس گیرنده و (Server) سرویس دهنده است. SSH قبل از ارسال اطلاعات انها را در سمت کاربر (بدون دخالت کاربر) رمزگزاری کرده وبه سرویس گیرنده می فرستد.

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

به طور ساده، SSH  یک متد یا پروتکلی است که میان دو کامپیوتر یک ارتباط امن و غیر قابل نفوذ ایجاد می کند. با استفاده از SSH دو کامپیوتر راه دور روی یک شبکه یا اینترنت می توانید اطلاعات را به صورت رمزشده و غیر قابل شنود مبادله کنید.

در حقیقت SSH  با ایجاد یک تونل یا یک خط ارتباطی امن میان این دو کامپیوتر از نفوذ هکرها جلوگیری می کند و حتی اگر هکری بتواند اطلاعات را شنود کند، قادر به رمز گشایی یا درک آن ها نیست به این روش، ‎Tunneling ‏SSH  نیز می گویند.

SSh چیست؟

پروتکل SSH  کاربردهای فراوانی دارد که در ذیل به برخی از آن‌ها اشاره شده است :

معماری SSH :

پروتکلSSH-2  دارای معماری داخلی واضح با لایه‌های کاملاً جدا از هم می‌باشد.

این معماری بهSSH  انعطاف‌پذیری قابل توجهی می‌دهد تا به عنوان برنامه‌ای مطمئن استفاده شود. این لایه‌ها به شرح زیر می‌باشند:

لایه اتصال در SSH :

این لایه، خط مشی و مفهوم کانال‌ها را تعریف می‌کند. منظور از کانال، همان مسیر ارسال درخواست‌های متقاضی به سرویس‌دهنده است. پروتکل SSH  می‌تواند از چندین کانال به طور همزمان (مانند انتقال داده در هر دو جهت در یک ارتباط) استفاده کند.

نحوه مدیریت کانال‌ها و درخواست‌ها در این لایه قرار می‌گیرد. انواع کانال‌ها عبارتند از:

لایه‌ احراز هویت در SSH :

این لایه وظیفه احراز هویت متقاضی را برعهده دارد و می‌تواند از روش‌های متعددی برای احراز هویت استفاده کند. در واقع هنگامی که پروتکل SSH  از متقاضی درخواست رمز عبور می‌کند، احراز هویت آن در این لایه صورت می‌گیرد.

روش‌های احراز هویت که در این لایه قابل استفاده است، عبارتند از:

لایه انتقال در SSH :

این لایه، با مبادله کلیدهای اولیه انتقال، احراز هویت، رمزکردن، فشرده‌سازی و وارسی جامع سروکار دارد. اندازه بسته‌های این لایه که ارتباط آن را با دیگر لایه‌ها برقرار می‌کند، ۳۲۷۶۸ بایت است.

تبادل دوباره کلیدهای انتقال که معمولاً به ازای هر گیگابایت و یا هر ساعت انجام می‌شود از دیگر وظایف این لایه است.

اصطلاحات SSH :

نحوه استفاده از SSH :

فرض می‌کنیم شما سرور خود را خریداری کردید و حالا آمادگیِ آن را دارید که آن را پیکربندی کنید. برای اتصال و وارد شدن به سرور در حالت گرافیکی، باید از نرم افزارهای مربوط به این کار استفاده کنید.

نرم افزار  Putty یک نرم افزار سمت Client است. به این معنی که یک سرویس دهنده در سطح شبکه باید وجود داشته باشد، تا این نرم افزار بتواند به آن متصل شود. سرویس دهندۀ ما همان سرویس SSH است که همینک روی سرور ما به حالت اجرا است و اگر سرور خاموش باشد و یا سرویس SSH به درستی اجرا نباشد، قادر به اتصال به سرور از طریق پروتکل SSH  نخواهیم بود.

شاید برای شما این سؤال پیش بیاید که تفاوت بین نسخه های مختلف SSH چیست، در حقیقت این دو نسخه بیشتر در حوزه تائید کاربر (User Authentication) هست که با هم متفاوت هستند. SSH-1 گستره وسیع تری از متدهای تائید کاربر را پوشش می دهد، اما از اتصال همزمان در اکثر اونها پشتیبانی نمی کند. هر چند در SSH-2 شاهد متدهای RhostsRSA ، Kerberos و TIS نیستیم، اما در مقابل با بهره گیری از متد قدرتمند PublicKey و توسعه اون (DSA, RSA*, OpenPGP) توانسته است کاملا نیاز کاربران را رفع نماید. ضمن این که از اتصال همزمان نیز کاملاً پشتیبانی می کند. تفاوت مهم دیگر SSH-1 در قیاس با SSH-2 بحث امنیت است که در برخی اتصال ها فرصت حملات ورودی (Insertion Attack) را ایجاد می نماید.

مانند اف تی پی، برای اتصال به SSH هم روش های مختلفی وجود دارد. اما اگر از سیستم عامل ویندوز برای اتصال به سرور لینوکسی خود استفاده می کنید، نرم افزار PuTTY این کار را برای شما آسان کرده است. وقتی که PuTTY را اجرا کنید، صفحه ی پیکربندی نمایان می شود. ابتدا باید نام میزبان (آدرس آی پی) و سرویس دهنده SSH که میخواهید به آن متصل شوید (مثلا example.com) را وارد کنید. اگر فقط آدرس IP را میدانید،میتوانید فقط از آدرس IP استفاده کنید. اگر متناوباً از این تنظیمات استفاده مینمایید، میتوانید یک پروفایل PuTTY ایجاد کرده و این تنظیمات را در آن ذخیره نمایید.

خروج از نسخه موبایل