PDA

توجه ! این یک نسخه آرشیو شده میباشد و در این حالت شما عکسی را مشاهده نمیکنید برای مشاهده کامل متن و عکسها بر روی لینک مقابل کلیک کنید : بررسی سرویس دهنده ssh در لینوكس



p2m
January 19th, 2012, 01:16
http://www.iranianlearn.com/article/img/898.jpg

فرض كنید مسئول یك شبكه كامپیوتری هستید و بخشی از شبكه در شهر دیگری مستقر است وشمابرای مدیریت سیستم ها مجبورید روزانه چندین دفعه با هر سیستم از راه دورارتباط برقراركنید. برای هر سیستم باید یك عملیاتpassphrase را انجام دهیدواین،وقت وانرژی زیادی از شما خواهدگرفت. فرمان ssh-agent این امكانرابه شما می دهدكه فقط یك بار مجبورباشید به سیستم راه دور متصل شویدوبر روی سیستم مقصد سرویسagent را فعال كنید.



در هنگام نصب لینوكس، اگر دقت كرده باشید،این امكان رادارید كه سرویس دهنده(ssh secure shell) رافعال كنید. SSH سرویسی برای مدیریت ودسترسی به كامپیوتر یاشبكه از راه دور است.rsh و telnet و ftpدیگر ابزارهای برقراری ارتباط ومدیریت یك سیستم راه دورهستند اما مكانیزهای امنیتی در آن هااستفاده نشده است و به راحتی می توان با شنود كردن ارتباط میان دو كامپیوتر در سطح شبكه ، به اطلاعات بسیار ارزشمندی مانند اسم ورمز كاربری كامپیوتری راه دور دست یافت.SSH یك تونل ارتتاطی رمز شده میان دو كامپیوتر به وجود می آورد و داده های به صورت كد شده میان دو كامپیوتر تبادل می شوندودر نتیجه حتی در صورت به دست آوردن اطلاعات تبادل شده میان این دو كامپیوتر، امكان بهره برداری از آنها وجود ندارد. SSH یك سرویس امنیتی برای مقابله باطیف گسترده ای از حملا ت اینترنتی است. SSH ذاتا یك پروتكل است و استانداردهای یك ارتباط رمز شده برای اداره یك سیستم از راه دور را فراهم می كند.۱SSHاولین نسخه از این پروتكل است كه با اصلاحاتیSSH۲تبدیل شده است. SSH۲ ازامكانات وقابلیت های بیشتری به نسبت نسخه قبلی برخوردار است ودستورات وبرنامه های گسترده تری دارد.نسخه رایگان وآزاد این پروتكل، با نام open SSH توسط گروه سیستم عامل openBSD منتشرمی شود.SSH یك ابزار كاملا خط فرمان است كه فقط در كنسول های متنی قابل استفاده می باشدو برای به كارگیری درسیستم های mac و ویندوزنیز به كنسول خط فرمان نیاز دارد.ارائه راهنمای كاملی از راه اندازی ، پیكربندی واستفاده از سرویس SSH به طور موثر وكارا،كاری خارج از عهده یك مقاله است وكتابی مفصل وجامع را طلب می كند.هد ف این نوشتار شناخت این سرویس امنیتی در كنار قابلیت های آن درسیستم عامل لینوكس وارائه كلیدهایی به خواننده برای
پیگری و مطالعه هدفمند موضوع است.

● شروع كار باSSH
SSH یك برنامه سرویس دهنده/سرویس گیرنده است.بر روی كامپیوتر راه دوری كه باید به آن متصل شد،برنامه سرویس دهنده sshd نصب می شود وبرنامه های كاربردی بر روی سیستم های كاربران یا مدیر سیستمی كه می خواهد از راه دور كامپیوترمورد نظررااداره كند،اجرا می شوند.همچنین می تواناز شاخه etc/ssh/ به فایل های پیكربندی برنامه دسترسی داشت.sshdconfig فایل پیكربندی سرویس دهنده sshd است.دایركتوری HIME/ssh$ برروی سیستم هركاربرشامل فایل هایی مانندكلیدعمومی وفایل های پیكربندی خود كاربرمی باشد.دربسیاری از توزیع های لینوكس هردو سرویس به صورت پیش فرض نصب و تنظیم می شوند.SSH از پروتكل SSL برای تبادل اطلاعات رمز شده میان سیستم ها استفاده می كند. بنابراین برای كار با SSH به نصب openSSL نیاز دارید.در صورتی كه این دو سرویس برروی توزیع لینوكس نصب نباشند، می توان با دریافت بسته های نرم افزاری آن ها، به نصب وپیكربندی این دوسرویس اقدام نمود.

SSH از دو كلیدعمومی(public) وخصوصی (private) برای احرازهویت و رمز گشایی اطلاعات استفاده می كند. كلید عمومی میان تمامی كاربران به اشتراك گذاشته می شود،اما هر كاربر فقط یك كلید خصوصی منحصربه فرد داردكه با استفاده از آن،شناسایی واحرازهویت می گردد.۱ SSH ازالگوریتم رمزنگاریRSA برای كد كردن اطلاعات استفاده می كند،ولی علاوه براز الگوریتم DSA نیز استفاده می كند.پس از نصب وپیكربندیSSH، باید كلیدهای عمومی تولید و میان سیستم هابه اشتراك كذاشته شوند.
برای راه اندازی یك سرویسSSH پس ازنصب برنامه،مراحل كاربه صورت زیرخواهد بود:
۱- تولید كلید های عمومی و خصوصی برای هركاربر.
۲- به اشتراك گذاری كلید عمومی میان تمامی كامپیوترهایی كه می خواهند از سرویسSSH استفاده كنند.
۳- دسترسی به حساب كاربری سیستمی كه باید از راه دور با آن ارتباط داشت.

● تولید كلید های RSA
پس از نصب سرویس SSH، در اولین گام باید كلید عمومی وخصوصی ساخته شود.در۲ SSH این امكان وجود دارد كه از هر دو الگوریتم رمزنگاریrsa و dsa برای ساخت كلیدها استفاده شود،ولی در۱ SSH فقط الگوریتمrsa به كار برده می شود.برای تولید كلیدهایrsa یا dsaازفرمان sshkeygenدر حساب ریشه استفاده می كنیم
–keygen-trsa [ [misagh@teamset
بااجرا این دستوراز مكانی كه می خواهید فایل های شما در آن جا ذخیره شوند سوال می شود.آرگومان t باعث نشان دادن مراحل كار ونام ومكان فایل می شود.می توانید با كمك صفحات manاز آرگومان های دیگر این فرمان هم كمك بگیرید. پارامترrsa هم به برنامه می گوید كه برای رمز كردنusemame وpasswordاز این الگوریتم استفاده شود.اصطلاحا به عملیات رمز نمودن اطلاعات ویا رمز گشایی آن هاpassphrase گفته می شود.می توانیداز الگوریتمdsa هم در SSH۲استفاده كنید. به صورت پیش فرض سیستم، دایركتوری مخفیssh رادر دایركتوری خانگی شما برای ذخیره فایل هادرنظر می گیرد. (HOME/.ssh$) درssh۱ نامidentity.pub ودرSSH۲idrsa.pub برای فایل كلید عمومی انتخاب می شود. در ادامه یك رمز برای كد كردن اسم ورمز كاربری شما و تولید كلید عمومی و خصوصی درخواست می شود.اگر این رمز را وارد نكنید،ممكن است سیستم به صورت پیش فرض یك عدد را انتخاب كند یا مجددا از شما تقاضای یكpassphrase كند. بعداز اتمام عملیات،اكنون در دایركتوری HOME/.ssh/idrsa$ یاHOME/.ssh/identity$ می توانید كلیدعمومی وخصوصی تولید شده را مشاهده كنید.HOME/.ssh/authorizedkeys$ دایركتوری مهم دیگری است كه درهمین شاخه وجود دارد وباید كلید عمومی تمام كاربران در این دایركتوری به اشتراك گذاشته شود. پس ازاینكه كلید عمومی ساخته شد،یك كپی ازآن را باید در دایركتوری به همین نام، ولی برروی كامپیوتری كه می خواهید از راه دوربه آن متصل شوید، كپی كنید. فرمانkeygen این قابلیت را دارد كه بتوانید یك passphrase جدید برای خود درست كنید یا آن را تغییر دهید.برای این منظور می توان از آرگومان-p استفاده كرد.اگر تمایل دارید از الگوریتم رمزنگاری dsa درpassphrsae استفاده كنید، درهمان فرمان بالا das را به جایrsa به كار ببرید.

● برقراری یك نشست SSH با سرویس راه دور
برای راه اندازی سرویس دهندهSSH برروی یك سیستم، از دستورزیراستفاده می شود:etc/init.d/ssh start/برنامه های كاربردی زیادی تحت سرویسSSH قابل اجرا هستند. مهمترین آن ها خود برنامهSSH است، با استفاده ازاین برنامه می توان با یك كامپیوتر راه دور (كامپیوتری خارج از یك شبكهlan ) به یك كامپیوتر شبكه متصل شد و رامین و دستورات خود را در شبكه اجرا كرد ودر اصطلاح ازراه دور به یك كامپیوترlogin كرد. برای آن كه بتوانیدبه یك كامپیوترراه دوردسترسی داشته باشید، نیاز است برروی كامپیوتر مقصد، سرویس دهندهssh فعال باشد وكلیدعمومی شما نیزبه اشتراك گذاشته شده باشد. برنامهSSH این مكان را می دهد كه وارد ترمینال سیستم راه دور شوید.درست مانند آن كه الان در مقابل آن سیستم ایستاده اید ومی خواهید دستورات خود را اجرا كنید. یا از طریق كنسولX window بتوانید با محیط های گرافیكی سیستم كار كنید. شكل كلی فرمانSSH به صورت زیر می باشد: ssh hostname
كافی است نام شبكه یا ماشینی كه می خواهیداز راه دور به آنlogin كنید را مقابل فرمانssh وارد كنید.به مثال های زیر توجه كنید:

ssh kemel.linuxteam.com
ssh ۶۹۱.۷۱.۱۵۱.۷
ssh rootrobin

دراین فرمان می توان نام ماشین یك كاربر خاص را نیز وارد كرد وپس از وارد پسورد سیستم ،مانند این است كه اكنون در مقابل آن سیستم نشسته اید:


۸ masteam.totule.com-۱client[lient۱۲@masteamclient۱۲]
client@masteam.totule.com&#۰۳۹;s password:
lastlogin:sat may۱۹۱۲:۴۰:۰۳ ۲۰۰۵ form masteam. Totule.com
$ [lient۸@mateam client]

برای خاتمه ارتباط با ماشین راه دور، از فرمان logout استفاده می شود.


$ logout [client۸@mateamclient۸]
Connection to mastteam closed

انتقال فایل با برنامه هایscp وsftp
در یك ارتباط راه دور با SSH می توان فایل راازیك ماشین به ماشین راه دور دیگری انتقال داد. برنامه scp این امكان را تحت یك نشست SSH فراهم می كند. ساختارفرمان به صورت زیر خواهد بود.

Scp name-of source file name –of –distination file
$ scp myfileclient۸[client۲۱ masteam client۲۱]
masteam.totule.com:/lib/myfile

دراین دستورهمیشه نام كامپیوتروكاربر پیش از نام دایركتوری یا فایل آورده می شود.همچنین برای كپی كردن یك دایر كتوری ، بایداز آرگومانr استفاده كنید.

$ scp r reportsclinet۸masteam.totule[clinet۲۱masteam clinet۲۱]
.com:/lib/myfile

اگر بخواهید ازسیستم راه دوری كه به آن login كرده اید فایلی را به سیستم خود منتقل كنید، ابتدا با دستور ssh به سیستم راه دور متصل شوید ودر گام بعدی با دستورscp فایل های مورد نظر را به سیستم خود منتقل نمایید.
Scp به تمام نیاز شما پاسخ می دهد.اما گروهی از كاربران با پروتكل FTP آشنایی بیشتری دارند وبا تكنیك های این روش انتقال فایل در اینترنت،خو گرفته اند.درSSH۲ ،فراهم آورنده این سرویس sftp است. با این ویژگی كه شما از یك كنسول حفاظت شده برای تبادل اطلاعات وفایل های خود استفاده می كنید.

● جلوگیری از تكرار
فرض كنید مسئول یك شبكه كامپیوتری هستید و بخشی از شبكه در شهر دیگری مستقر است وشمابرای مدیریت سیستم ها مجبورید روزانه چندین دفعه با هر سیستم از راه دورارتباط برقراركنید. برای هر سیستم باید یك عملیاتpassphrase را انجام دهیدواین،وقت وانرژی زیادی از شما خواهدگرفت. فرمان ssh-agent این امكانرابه شما می دهدكه فقط یك بار مجبورباشید به سیستم راه دور متصل شویدوبر روی سیستم مقصد سرویسagent را فعال كنید.در مراجعات بعدی فقط كافی استكه شما دستورات خود را بدون login كردن به سیستم انجام دهید. پروسه agent كلید خصوصی شما را درحافظه خود نگهداری می كند تا در ارتباط های بعدی ، خود سرویس دهنده عملیات احرازهویت را انجام دهد. به دوطریق می توان ازسرویس agent استفاده كرد.دراولین حالت با استفاده از مد ssh-agent دستورات وعملیات خود را انجام می دهید. مثلا فرض كنید می خواهید به كنسول خط فرمان سیستم راه دوردسترسی داشته باشیدوفرامین خود را در آن تایپ واجرا كنید :

ssh-agent xterm
این دستور به شما اجازه می دهد تمامی دستورات وفرامین خود را بدون نیاز به احرازهویت برروی سیستم راه دور انجام دهید .هربرنامه ای كه درxterm اجرا شود، به كلیدخصوصی شما دسترسی خواهدداشت وبا مقایسه آن با كلید عمومی به صورت خودكار، مجوز شما صادرخواهدشد. گفتنی است در نخستین بار كه به سیستم راه دور دسترسی پیدا كردید، قبل ازهرعملیاتی باید سرویس agent را فعال كنید تا در دسترسی های بعدی بتوانیدازاین سرویس استفاده كنید.
درروش دوم می توان با استفاده ازمد eval به اجرای سرویسagent در پس زمینه اقدام كرد:

Ssh
Eval ssh-agent $

● پیكربندی
از بین فایل های ودایركتوری های سرویسSSH ، شما بیشتر با فایل های sshdconfig وssh/config . كارخواهیدداشت وباید گزینه های آن ها را تنظیم كنید.
Sshdconfig فایل پیكربندی سرویس دهنده sshd است كه تنظیمات امنیتی وسیستمی ازجمله تعیین شماره پورتSSH ، شماره نسخه پروتكلSSL ،مدیریت رمزهای وعبور كاربران وكاردر بالاترین مجوز دسترسی را دراختیار شمامی گذارد. مهمترین تنظیمات كاربران درفایلssh/config . قرارداردكه هركاربر می تواندبه صورت مستقیم به آن دسترسی وسرویس SSH سیستم خود را به طوردلخواه تنظیم كند. مهمترین پارامترهای این فایل عبارتند از:
▪ Catchmod : برای غیر فعال كردن عملیات پرس وجو
▪ Compression : امكان استفاده از قابلیت فشرده سازی فایل ها
▪ Escapechar : تنظیمات مرتبط با كاراكترهای ویژه در سرویسSSH
▪ Forwardagent :امكان استفاده از سرویسagent
▪ Forwardx۱۱ :امكان برقراری یك نشست بامحیط های گرافیكی به صورت امن
▪ Hostname : تنظیم شدن نام حقیقی ماشینی كه به آنlogin می شود
▪ Identityfile : تنظیمات مربوط به فایل های شناسهRSA
▪ passwordAuthentication : فعال كردن رمزعبوردرفرایند احراز