هنگام دسترسی به سیستمهای مختلف از طریق شبکه، مدیران سیستم به یک اتصال ایمن نیاز دارند تا از حملات سایبری مخرب در امان بمانند. از آنجایی که شبکههای بزرگ دارای نقصهای امنیتی هستند، پروتکلهای رمزگذاری مانند TLS/SSL، IPsec، S/MIME، PGP و SSH برای ایجاد ارتباط ایمن بسیار کاربردی و ضروری هستند. در ادامه قصد داریم با یکی از مهمترین آنها یعنی پروتکل SSH آشنا شویم.
پروتکل SSH چیست؟
پروتکل SSH یکی از پروتکلهای مدیریتی راه است که به کاربران امکان میدهد از طریق اینترنت به سرورهای راه دور خود دسترسی داشته و آنها را کنترل و اصلاح کنند. بهترین امکان برای افراد مخصوصا مدیران سیستم است که در یک شبکه ناامن به صورت ایمن به رایانه خود دسترسی داشته باشند.
SSH هم به پروتکل شبکه رمزنگاری و هم مجموعه تمام ابزارهایی که برای پیاده سازی پروتکل استفاده شدند، اشاره دارد. مدل استفاده شده در این پروتکل، کلاینت-سرور است و برنامه مشتری را که جلسه نمایش داده میشود به برنامه سرور یا سرور مجازی که جلسه اجرا میشود، متصل میکند. پیاده سازی این پروتکل با پشتیبانی از پروتکلهایی که برای شبیه سازی ترمینال یا انتقال فایل است، صورت میگیرد.
از این سرویس به عنوان جایگزینی ایمن برای Telnet استفاده میشود. در این پروتکل برخلاف Telnet از تکنیکها و الگوریتمهای رمزنگاری شده استفاده میشود تا تمام ارتباطات به صورت ایمن و رمزگذاری شده صورت گیرند. با کمک این پروتکل مکانیزمی ایمن برای احراز هویت کاربر، انتقال ورودیها و بازگرداندن خروجیها فراهم شده است.
پروتکل SSH چگونه کار میکند؟
نحوه استفاده از ssh به این صورت است که برای جایگزینی برنامههای شبیه سازی ترمینال ناامن یا ورود به سیستم، مانند rlogin، Telnet (ورود از راه دور) و rsh (پوسته از راه دور) ایجاد شده و دقیقا همان عملکردها را فعال میکند. پروتکل SSH همچنین جایگزینی برای برنامههای انتقال فایل مانند پروتکل انتقال فایل FTP و کپی از راه دور rcp است. در واقع این پروتکل دارای سه لایه مهم است:
- لایه انتقال: این لایه برای تضمین ارتباط ایمن بین مشتری و سرور استفاده میکند، بر نحوه رمزگذاری و رمزگشایی دادهها نظارت میکند و به منظور محافظت از یکپارچگی اتصال استفاده میشود. از دیگر وظایف این لایه ذخیره و فشرده سازی دادهها است.
- لایه احراز هویت: همانطور که گفته شد این پروتکل بسیار ایمن است، به همین دلیل در این لایه احراز هویت مشتری صورت میگیرد.
- لایه اتصال: پس از احراز هویت و برقراری ارتباط، کانالهای ارتباطی از طریق این لایه مدیریت میشوند.
دستگاهی که درخواست اطلاعات یا خدمات از سرویس گیرنده داشته باشد، با این پروتکل اجازه اتصال به دستگاه دیگر یعنی سرور را کسب میکند. اتصال به سرور از طریق این پروتکل باعث میشود تا سرور مانند یک کامپیوتر محلی قابل کنترل باشد. فرآیند احراز هویت نیز قبل از اتصال صورت گرفته تا ارتباطات به صورت ایمن برقرار شوند.
نحوه استفاده از SSH چگونه است؟
استفاده از پروتکل SSH با یک کلاینت مانند ویندوز یا لینوکس شروع میشود. این دستگاه از طریق این پروتکل به یک سرور راه دور متصل میشود.
در مرحله بعد، کاربران آدرس IP یا نام میزبان و شماره پورت دستگاه راه دور را همراه با اعتبار کاربری مانند نام کاربری و رمز عبور یا کلید عمومی وارد میکنند. سرور راه دور یک پورت خاص را برای درخواستهای اتصال مشتری ورودی نظارت می کند. در نهایت، در صورت صحیح بودن اعتبار کاربر، یک جلسه SSH جدید ایجاد میشود.
با استفاده از یک کلاینت مبتنی بر خط فرمان مانند OpenSSH، کاربران SSH را اجرا میکنند و با استفاده از نام کاربری خود و آدرس IP و پورت رایانه راه دور درخواست اتصال میکنند:
مشتری و سرور مجازی لینوکس یا سرورهای دیگر اطلاعات شناسایی را مبادله میکنند و رمز عبور یا کلید عمومی را درخواست میکنند. پس از وارد کردن رمز عبور، در صورت صحیح بودن اطلاعات کاربری، جلسه SSH شروع میشود.
معرفی کاربردهای SSH
مدیریت ایمن، دسترسی از راه دور به منابع، به روز رسانیها و … از جمله کاربردهای مهم پروتکل SSH هستند. علاوه بر آن میتوان به کمک این پروتکل نگهداری از سخت افزار، مدیریت روتر و مدیریت پلتفرم مجازی سازی را نیز به راحتی انجام داد.
اتصال به میزبان راه دور
مهمترین هدف و کاربرد پروتکل SSH اتصال سرور به یک آدرس IP مشخص یا یک پورت خاص است. به این صورت میتوان از راه دور به صورت مستقیم و همانند کامپیوتر محلی، سرور را کنترل کرده و به برنامههای موجود در سرور دسترسی داشت.
ایجاد کانال امن برای انتقال داده
تکنیک SSH میتواند تونلی بسیار ایمن بین دو طرف میزبان و سرور ایجاد کند تا از طریق آن هر نوع انتقال فایلی در بستر ایمن انجام شود.
استفاده از شبکه خصوصی مجازی
از این پروتکل میتوان برای مدیریت زیرساختهای مهم و اساسی در یک مجموعه مانند روترها، سخت افزارهای استفاده شده برای سرور، پلتفرمهای مجازی سازی، سیستم عاملها و … استفاده نمود. برای خودکار سازی دسترسی به سرور بدون رمز عبور و همچنین مدیریت پیکربندی و تهیه نسخه پشتیبان از کلیدهای SSH استفاده میشود.
اتصالات ایمن خودکار
در محیطهای شرکتی، اتصالات SSH خودکار معمولا برای انتقال فایل های رمزگذاری شده و احراز هویت خودکار برای فرآیندهای ماشین به ماشین استفاده میشود. وظایف خودکار شامل پشتیبانگیری و بایگانی دادهها، گزارش دهی، پاکسازی پایگاه داده، پشتیبان گیری از سیستم و نگهداری شبکه است.
تفاوت SSH و Telnet چیست؟
Telnet یک پروتکل کاربردی است که به کاربران کمک میکند تا با یک سیستم راه دور ارتباط برقرار کنند. این پروتکل از یک رابط مبتنی بر متن برای ایجاد یک ترمینال مجازی استفاده میکند و به مدیران اجازه میدهد تا به برنامههای دیگر دستگاهها دسترسی داشته باشند.
امنیت
این دو پروتکل شباهتهای زیادی به یکدیگر دارند، اما میتوان گفت مهمترین تفاوت آنها در امنیت آنهاست. SSH بسیار امنتر از Telnet است که باعث شده است تقریباً به طور کامل جایگزین Telnet در استفاده روزمره شود. Telnet و SSH از پورتهای پیش فرض متفاوتی استفاده میکنند. Telnet فقط میتواند دادهها را به صورت متن ساده انتقال دهد، اما SSH میتواند ترافیک را در هر دو جهت رمزگذاری کند.
Telnet از هیچ مکانیسم یا پروتکل امنیتی در هنگام ارسال داده استفاده نمیکند. این امر آن را بسیار آسیب پذیر میکند مگر اینکه در شبکههای خصوصی و قابل اعتماد استفاده شود.
عملکرد
Telnet به یک برنامه سرور در سیستم راه دوری که میخواهید مدیریت کنید و همچنین برنامه کلاینت نصب شده روی ماشین محلی نیاز دارد. علاوه بر آن از پروتکل TCP و پورت 23 برای برقراری ارتباط با یک سیستم راه دور استفاده میکند. این سیستم سپس به عنوان یک سرور Telnet عمل میکند.
اما پروتکل SSH با ایجاد یک اتصال امن به سرور از طریق پورت 22 شروع میشود. پس از احراز هویت مبتنی بر کلید و پس از اینکه کلاینت سرور را تأیید کرد، یک کلید جلسه تولید و برای مشتری و سرور ارسال میشود. این کلید ترافیک جلسه جاری را رمزگذاری میکند.
در نهایت، سرور با استفاده از یک جفت کلید SSH ایجاد شده، کلاینت را تأیید میکند. هنگامی که مشتری احراز هویت شد، یک اتصال رمزگذاری شده برقرار میشود و دو سیستم به طور ایمن دادهها را مبادله میکنند.
احراز هویت
Telnet از هیچ مکانیزم احراز هویت در هنگام برقراری اتصال استفاده نمیکند.
رایجترین و امن ترین احراز هویت SSH، احراز هویت با کلید عمومی است. هنگامی که یک جفت کلید SSH تولید میشود، مشتری کلید خصوصی را نگه میدارد، در حالی که کلید عمومی به یک سرور ارسال میشود. اگر یک کلاینت سعی کند با استفاده از SSH به یک سرور دسترسی پیدا کند، سرور با مقایسه کلید عمومی و کلید خصوصی، کلاینت را احراز هویت میکند. اگر کلیدها مطابقت داشته باشند، دو سیستم میتوانند یک اتصال امن برقرار کنند.
چند مورد از متداولترین دستورات SSH
با توجه به کاربردهای مختلف پروتکل SSH دستورات مختلفی نیز وجود دارد که میتوان برای استفاده از این پروتکل به کار برد. ابتداییترین شکل دستور در SSH برای فراخوانی برنامه و نام میزبان مقصد یا آدرس پروتکل اینترنت است:
با این دستور به مقصد server.example.org متصل میشود. میزبان نیز با درخواست رمز عبور به این درخواست پاسخ میدهد.
اگر شناسه کاربری برای میزبان راه دور متفاوت باشد، دستور باید با شناسه کاربر میزبان راه دور صادر شود و به صورت زیر نوشته میشود.
SSH میتواند از خط فرمان، برای صدور یک فرمان واحد در میزبان راه دور و سپس خروج از آن استفاده کند. به عنوان مثال:
این دستور، دستور Unix ls را اجرا میکند که تمام محتویات دایرکتوری فعلی را در میزبان راه دور فهرست میکند.
سوالات متداول
چگونه میتوان از SSH برای انتقال فایل استفاده کرد؟
برای انتقال فایل میتوان از دستور wget استفاده نمود. از طریق نرم افزارهای FTP نیز به این پروتکل برای انتقال فایل دسترسی دارید.
چگونه میتوان از SSH برای ورود به یک سرور استفاده کرد؟
کاربران آدرس IP یا نام میزبان و شماره پورت دستگاه راه دور را همراه با اعتبار کاربری مانند نام کاربری و رمز عبور یا کلید عمومی وارد میکنند. سرور راه دور یک پورت خاص را برای درخواستهای اتصال مشتری ورودی نظارت می کند. در نهایت، در صورت صحیح بودن اعتبار کاربر، یک جلسه SSH جدید ایجاد میشود.