فرض كنيد مسئول يك شبكه كامپيوتري هستيد و بخشي از شبكه در شهر ديگري مستقر است و شما براي مديريت سيستمها مجبوريد روزانه چندين دفعه با هر سيستم از راه دور ارتباط برقراركنيد. براي هر سيستم بايد يك عمليات passphrase را انجام دهيد و اين ، وقت و انرژي زيادي از شما خواهد گرفت. فرمان ssh-agent اين امكان را به شما مي دهدكه فقط يك بار مجبور باشيد به سيستم راه دور متصل شويد و بر روي سيستم مقصد سرويس agent را فعال كنيد.
در هنگام نصب لينوكس، اگر دقت كرده باشيد ، اين امكان را داريد كه سرويس دهنده (ssh secure shell) را فعال كنيد. SSH سرويسي براي مديريت و دسترسي به كامپيوتر يا شبكه از راه دور است.rsh و telnet و ftp ديگر ابزارهاي برقراري ارتباط و مديريت يك سيستم راه دور هستند اما مكانيزهاي امنيتي در آن ها استفاده نشده است و به راحتي مي توان با شنود كردن ارتباط ميان دو كامپيوتر در سطح شبكه ، به اطلاعات بسيار ارزشمندي مانند اسم و رمز كاربري كامپيوتري راه دور دست يافت.SSH يك تونل ارتباطي رمز شده ميان دو كامپيوتر به وجود مي آورد و داده هاي به صورت كد شده ميان دو كامپيوتر تبادل مي شوند و در نتيجه حتي در صورت به دست آوردن اطلاعات تبادل شده ميان اين دو كامپيوتر ، امكان بهره برداري از آنها وجود ندارد. SSH يك سرويس امنيتي براي مقابله با طيف گسترده اي از حملا ت اينترنتي است. SSH ذاتا يك پروتكل است و استانداردهاي يك ارتباط رمز شده براي اداره يك سيستم از راه دور را فراهم مي كند.1SSH اولين نسخه از اين پروتكل است كه با اصلاحاتيSSH2 تبديل شده است. SSH2 از امكانات وقابليت هاي بيشتري به نسبت نسخه قبلي برخوردار است و دستورات و برنامه هاي گسترده تري دارد. نسخه رايگان و آزاد اين پروتكل ، با نام open SSH توسط گروه سيستم عامل openBSD منتشرمي شود. SSH يك ابزار كاملا خط فرمان است كه فقط در كنسول هاي متني قابل استفاده مي باشد و براي به كارگيري در سيستم هاي mac و ويندوز نيز به كنسول خط فرمان نياز دارد. ارائه راهنماي كاملي از راه اندازي ، پيكربندي و استفاده از سرويس SSH به طور موثر و كارا ، كاري خارج از عهده يك مقاله است وكتابي مفصل و جامع را طلب مي كند. هدف اين نوشتار شناخت اين سرويس امنيتي در كنار قابليت هاي آن در سيستم عامل لينوكس و ارائه كليدهايي به خواننده براي پيگري و مطالعه هدفمند موضوع است.
شروع كار با SSH
SSH يك برنامه سرويس دهنده/ سرويس گيرنده است. بر روي كامپيوتر راه دوري كه بايد به آن متصل شد، برنامه سرويس دهنده sshd نصب مي شود و برنامه هاي كاربردي بر روي سيستم هاي كاربران يا مدير سيستمي كه مي خواهد از راه دور كامپيوتر مورد نظر را اداره كند، اجرا مي شوند. همچنين مي توان از شاخه etc/ssh/ به فايل هاي پيكربندي برنامه دسترسي داشت. sshdconfig فايل پيكربندي سرويس دهنده sshd است. دايركتوري HIME/ssh$ برروي سيستم هركاربر شامل فايل هايي مانند كليد عمومي و فايل هاي پيكربندي خود كاربر مي باشد. در بسياري از توزيع هاي لينوكس هردو سرويس به صورت پيش فرض نصب و تنظيم مي شوند.SSH از پروتكل SSL براي تبادل اطلاعات رمز شده ميان سيستم ها استفاده مي كند. بنابراين براي كار با SSH به نصب openSSL نياز داريد. در صورتي كه اين دو سرويس برروي توزيع لينوكس نصب نباشند، مي توان با دريافت بسته هاي نرم افزاري آن ها ، به نصب و پيكربندي اين دو سرويس اقدام نمود.
SSH از دو كليدعمومي (public) و خصوصي (private) براي احراز هويت و رمز گشايي اطلاعات استفاده مي كند. كليد عمومي ميان تمامي كاربران به اشتراك گذاشته مي شود ، اما هر كاربر فقط يك كليد خصوصي منحصربه فرد داردكه با استفاده از آن، شناسايي و احراز هويت مي گردد.1 SSH از الگوريتم رمزنگاري RSA براي كد كردن اطلاعات استفاده مي كند ، ولي علاوه بر از الگوريتم DSA نيز استفاده مي كند.پس از نصب و پيكربنديSSH، بايد كليدهاي عمومي توليد و ميان سيستم ها به اشتراك گذاشته شوند.
براي راه اندازي يك سرويسSSH پس از نصب برنامه ، مراحل كاربه صورت زيرخواهد بود:
1- توليد كليد هاي عمومي و خصوصي براي هركاربر.
2- به اشتراك گذاري كليد عمومي ميان تمامي كامپيوترهايي كه مي خواهند از سرويس SSH استفاده كنند.
3- دسترسي به حساب كاربري سيستمي كه بايد از راه دور با آن ارتباط داشت.
توليد كليد هاي RSA
پس از نصب سرويس SSH ، در اولين گام بايد كليد عمومي و خصوصي ساخته شود.در2 SSH اين امكان وجود دارد كه از هر دو الگوريتم رمزنگاري rsa و dsa براي ساخت كليدها استفاده شود ، ولي در1 SSH فقط الگوريتم rsa به كار برده مي شود. براي توليد كليدهاي rsa يا dsaاز فرمان sshkeygenدر حساب ريشه استفاده مي كنيم
–keygen-trsa [ [misagh@teamset
بااجرا اين دستور از مكاني كه مي خواهيد فايل هاي شما در آن جا ذخيره شوند سوال مي شود. آرگومان t باعث نشان دادن مراحل كار و نام و مكان فايل مي شود. مي توانيد با كمك صفحات manاز آرگومان هاي ديگر اين فرمان هم كمك بگيريد. پارامترrsa هم به برنامه مي گويد كه براي رمز كردن usemame و password از اين الگوريتم استفاده شود. اصطلاحا به عمليات رمز نمودن اطلاعات و يا رمز گشايي آن ها passphrase گفته مي شود. مي توانيد از الگوريتم dsa هم در SSH 2 استفاده كنيد. به صورت پيش فرض سيستم ، دايركتوري مخفي ssh را در دايركتوري خانگي شما براي ذخيره فايل ها در نظر مي گيرد. (HOME/.ssh$) درssh1 نامidentity.pub و در SSH2idrsa.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 691.71.151.7
ssh rootrobin
دراين فرمان مي توان نام ماشين يك كاربر خاص را نيز وارد كرد و پس از وارد پسورد سيستم ، مانند اين است كه اكنون در مقابل آن سيستم نشسته ايد:
8 masteam.totule.com-1client[lient12@masteamclient12]
client@masteam.totule.com's password:
lastlogin:sat may1912:40:03 2005 form masteam. Totule.com
[lient8@mateam client]
براي خاتمه ارتباط با ماشين راه دور ، از فرمان logout استفاده مي شود.
logout [client8@mateamclient8]
Connection to mastteam closed
انتقال فايل با برنامه هايscp وsftp
در يك ارتباط راه دور با SSH مي توان فايل را از يك ماشين به ماشين راه دور ديگري انتقال داد. برنامه scp اين امكان را تحت يك نشست SSH فراهم مي كند. ساختار فرمان به صورت زير خواهد بود.
Scp name-of source file name –of –distination file
scp myfileclient8[client21 masteam client21]
masteam.totule.com:/lib/myfile
در اين دستور هميشه نام كامپيوتر و كاربر پيش از نام دايركتوري يا فايل آورده مي شود. همچنين براي كپي كردن يك داير كتوري ، بايداز آرگومانr استفاده كنيد.
scp r reportsclinet8masteam.totule[clinet21masteam clinet21]
.com:/lib/myfile
اگر بخواهيد ازسيستم راه دوري كه به آن login كرده ايد فايلي را به سيستم خود منتقل كنيد، ابتدا با دستور ssh به سيستم راه دور متصل شويد و در گام بعدي با دستورscp فايل هاي مورد نظر را به سيستم خود منتقل نماييد.
Scp به تمام نياز شما پاسخ مي دهد.اما گروهي از كاربران با پروتكل FTP آشنايي بيشتري دارند و با تكنيك هاي اين روش انتقال فايل در اينترنت، خو گرفته اند. در SSH2 ، فراهم آورنده اين سرويس 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
? Forwardx11 : امكان برقراري يك نشست با محيط هاي گرافيكي به صورت امن
? Hostname : تنظيم شدن نام حقيقي ماشيني كه به آنlogin مي شود
? Identityfile : تنظيمات مربوط به فايل هاي شناسه RSA
? passwordAuthentication : فعال كردن رمز عبور در فرايند احراز
ارسال مقاله توسط کاربر محترم سايت : sm1372/ن