با سلام خدمت کاربران عزیز . همان طور که از عنوان مشخص است امروز در مورد بالا بردن امنیت ssh با استفاده از روشی خاص بحث خواهیم کرد . به طور خلاصه می توان گفت که دسترسی ssh را تنها به یک کاربر محدود می کنیم و shell پیش فرض این کاربر را هم محدود به دستور su می کنیم و در آخر اسکریپتی تهیه می کنیم تا قبل از باز شدن shell یوزر محدود خود , پسوردی دوم و عددی random از ما سوال شود .

سناریو :

در این سناریو قصد داریم دسترسی تمامی یوزر ها از جمله روت را از طریق ssh به سرور مسدود کنیم به جز یوزری به نام login

یعنی تمامی افراد برای اتصال به ssh از این یوزر باید استفاده کنند سپس بعد از وارد شده به یوزر خود su کنند .

نکته این جاست که shell پیش فرض این یوزر login بسیار محدود است و فقط اجرای دستور su در آن امکان پذیر است . همچنین قبل از وارد شدن به این یوزر یک عدد تصادفی نمایش داده می شود که کاربر باید آن را دستی وارد کند و در آخر پسورد دوم ( به غیر از پسورد یوزر login ) را وارد کند . در نهایت به آن محیط shell محدود که گفتیم وارد می شود .

 

توضیحات :

در اکثر سیستم ها و توزیع های لینوکسی shell پیش فرض یوزر ها و مخصوصا یوزر روت bash می باشد . البته shell های دیگری هم وجود دارد اما اکثرا از bash مخصوصا در لینوکس استفاده می کنند . زمانی که به صورت ریموت با استفاده از ssh به سرور متصل می شود یا حتی زمانی که پشت سیستم نشسته ایم و اقدام به لاگین کردن در سیستم می کنیم و یا حتی زمانی که با استفاده از دستور su به یوزری دیگر سویچ می کنیم , در همه ی این موارد shell جدید در سیستم باز و اجرا می شود و این shell متناسب با کانفیگ یوزر صورت می گیرد .

اگر فایل passwd را دیده باشید می دانید که یکی از قسمت هایش مربوط به shell اجرایی یوزر است .

خب حالا سناریو ما از این جا آغاز می شه که shell پیش فرض یوزر login رو به یک bash اسکریپتی که جلوتر می نویسیم متصل می کنیم تا محدودیت های خودمون رو به طور کامل اعمال کنیم .

 

نصب و کانفیگ lshell :

shell ای که برای یوزر login در نظر گرفته شد تا فقط امکان استفاده از دستور su را داشته باشد , lshell نام دارد . این شل در مخازن موجود است پس برای نصب به شکل زیر عمل می کنیم :

در توزیع های debian base :

در توزیع های redhat base :

فایل کانفیگ این shell در مسیر زیر قرار دارد :

پیشنهاد می شود قبل از انجام هر کاری از آن یک بک آپ تهیه کنید :

حال این فایل کانفیگ را با یک ویرایشگر مثل nano باز کنید :

حال تغییرات زیر را متناسب با سیستم و یا سرور خودتون اعمال کنید : ( پیشنهادی OSLearn )

 

نوشتن اسکریپتی محدود برای پرسیدن پسوردی دوم و عددی رندم :

در واقع اسکیریپتی که در جلوتر می نوسیم shell پیش فرض یوزر login می شود . به این صورت که این بعد از لاگین این اسکریپت برای یوزر اجرا شده و اگر مراحلی که در نظر گرفتیم را درست طی کند , lshell برایش اجرا می شود .

ابتدا یک فایل با نام bash.limit در مسیر زیر ایجاد می کنیم :

حال این فایل را با یک ویرایشگر باز می کنیم :

اساس کار این اسکریپت را بر روی دو شرط قرار می دهیم . اولی پرسیدن عددی رندم و دومی وارد کردن پسورد :

توجه داشته باشید که در قسمت MY_PASSWORD باید پسوردی عددی که در نظر دارید را وارد کنید .

در آخر پرمیشن اجرا به این اسکریپت می دهیم :

 

ساخت یوزر login :

برای ساخت یوزری که در بالا گفته شد از دستور adduser به شکل زیر استفاده می کنیم :

نکته : از سویچ s- برای مشخص کردن shell پیش فرض این یوزر استفاده کردیم . توجه داشته باشید که shell این یوزر را اسکریپتی که در بالا نوشتیم در نظر گرفته ایم .

نکته : از سویچ m- برای ساخت و از سویچ d- برای مشخص کردن مسیر home دایرکتوری این یوزر استفاده کردیم .

حال با استفاده از دستور passwd پسوردی مناسب و قوی برای این یوزر در نظر می گیریم :

 

محدود کردن لاگین به ssh از طریق دیگر یوزر ها :

برای این منظور باید تغییراتی را در فایل کانفیگ ssh انجام دهیم . برای این منظور ابتدا فایل کانفیگ ssh را با یک ویرایشگر باز می کنیم :

سپس عبارت زیر را در خط آخر اضافه می کنیم :

همان طور که مشخص است تنها یوزری که اجازه دسترسی دارد , یوزر login است و طبیعتا دیگر یوزر ها مثل روت و … نمی توانند اقدام به لاگین کنند .

در آخر لازم است تا یک بار سرویس ssh راه اندازی مجدد شود . برای این منظور :

 

تست و آزمایش سناریو :

تمام ! حال نوبت به دیدن مراحل است . برای این منظور ابتدا سعی کنید اقدام به لاگین کردن در ssh از طریق یوزر هایی مثل روت و … کنید . طبیعتا با تغییراتی که انجام دادیم نمی توان با هیچ یوزری به جز یوزر login اقدام به لاگین کرد :

OSLearn.ir_00

برای لاگین به ssh طبق تنظیماتی که انجام دادیم باید به شکل زیر عمل کرد :

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

OSLearn.ir_01

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

OSLearn.ir_03

حال به shell محدوی که برای این یوزر در نظر گرفته ایم وارد می شوید . توجه داشته باشید که با تغییراتی که انجام دادیم , تنها می توان از دستور su استفاده کرد و در صورتی که دو از دستورات ممنوعه استفاده کنید ارتباط با سرور قطع می شود .

OSLearn.ir_04

حال کافیست به شکل زیر به یوزر خودمون سویچ کنیم :

OSLearn.ir_05

لازم به ذکر است که تمامی روش های گفته شده تنها درصدی در بالا بردن امنیت کمک می کنند و توقع ایجاد امنیتی 100٪ بی جا است .

موفق و موید باشید

 

نویسنده : ایمان همایونی
ایمیل نویسنده : info@OSLearn.ir
منبع : وب سایت او اس لرن – http://oslearn.ir
از مطالب وب سایت راضی هستید ؟ رضایت خودتون رو با دونیت به ما اعلام کنید. لطفا برای دونیت روی آیکون زیر کلیک کنید.
 حمایت مالی

درباره نویسنده :

ایمان همایونی هستم، از سال 2009 با گنو لینوکس فعالیت خودم رو در زمینه ی کامپیوتر و IT شروع کردم و تا الان موفق به گذروندن دوره هایLPIC 1 / LPIC 2 / VCP5-DCV / MCITP / CCNA / MTCNA شدم . مدتی در زمینه امنیت فعالیت هایی داشتم اما در حال حاضر تمرکز خودم رو بر روی مجازی سازی و لینوکس گذاشته ام .

تمام پست های من - وب سایت من