آموزش ایمن کردن SSH

آموزش ایمن کردن SSH


آیا با روش های ایمن سازی SSHآشنا هستید ؟ SSH مخفف کلمه Secure Shell می باشد که یک پروتکل برقراری ارتباط بر پایه TCP بصورت امن است. در این پروتکل با استفاده از تکنولوژی رمزنگاری ارتباط بین سرویس گیرنده و سرویس دهنده بصورت کاملا امن برقرار می شود تا سرویس گیرنده امکان اجرای دستورات مورد نیاز خود بصورت امن ازطریق خط فرمان Shell را داشته باشد.

اطلاعات کاملی در مورد SSH نیاز دارید ؟ مقاله ssh چیست را در سابین سرور بخوانید.

آموزش ایمن کردن SSH

در ابتدا باید شما بدانید که ssh صرفا برای سرورهای لینوکسی بوده و شما از دیگر سیستم عامل ها برای ارتباط با ssh کمک میگیرید. بعنوان مثال سیستم عامل ویندوز ، پروتکل ssh را نداشته و بجای آن از remote desktop استفاده میشود.

حال شما برای افزایش امنیت ssh سرور خود میبایست موارد زیر را در فایل sshd_config تغییر و این فایل را ذخیره نمایید. فایل ذکر شده در مسیر /etc/ssh/sshd_config قرار دارد که میتوانید با قرار دادن دستور vi یا استفاده از ابزار ویرایشگر nano این فایل را ویرایش و توسط دستور ctrl+x آن را ذخیره نمایید.

آموزش ایمیل کردن SSH
آموزش ایمیل کردن SSH

روش های امن کردن ssh

اگر چنانچه یک سرور لینوکسی دارید و میخواهید محیط ssh را برای خودتان ایمن کنید ،نیاز است تا تغییرات اساسی در sshd config سرور خود اعمال نمایید.

1- صرفا و فقط از پروتکل 2 استفاده کنید ( برای ورود به ssh ) پروتکل SSH نسخه 1 (SSH-1) دارای مشکلات زیاد و آسیب پذیری های امنیتی است.


2- فقط به کاربران خاص اجازه استفاده دهید تا در سرور شما دستورات خاصی را وارد و یا فایلی را حذف نمایند. ارائه دسترسی با استفاده از دستور زیر در فایل sshd_config قابل انجام است.



AllowUsers user1 user2

( بجای user 1 و user 2 میتوانید نام یوزر  را وارد کنید .)

3- شما باید یک تایمی را برای سرور خود اختصاص دهید تا اگر بیش از آن زمان هیچ دستوری در سرور وارد نکردید و کاری نمیخواستید انجام دهید ، از ssh بصورت خودکار خارج گردد. بنابر این باید تنظیمات Idle Log Out Timeout Interval را با استفاده از مقادیر زیر در sshd_config انجام دهید  : 


ClientAliveInterval 300
ClientAliveCountMax 0

4- اجرای فایل .rhosts را غیرفعال کنید. کافیست پارامتر زیر را در فایل sshd_config وارد کرده و یا پیدا کنید و به yes تغییر دهید .

IgnoreRhosts yes

5- Host-Based Authentication را غیر فعال کنید. این مورد یعنی احراز هویت مبتنی بر میزبان که میبایست حتما غیرفعال شود تا از دست هکرها حداقل کمی اسایش داشته باشید. 

برای غیرفعال کردن Host-Based Authentication کافیست پارامتر زیر را در فایل sshd_config وارد و سپس ذخیره نمایید و یا مقدار yes را به no تغییر دهید و حتما # ابتدایی را نیز حذف کنید.

HostbasedAuthentication no



6- وارد شدن به سیستم با یوزر روت را غیرفعال کنید. کافیت دستور زیر را وارد کنید. البته این مورد راهکار خوبی نیست و تنها در نوشتن به کار می آید. در عمل این کار بجز دردسر ، چیزی عاید ما نمیکند. شما بهتر است به این مورد زمانی اهمیت بدهید که سرور میزبانی وب ندارید و یک سرور شخصی است .

PermitRootLogin no

7- پورت SSH را تغییر دهید و اتصال IP را محدود کنید.

پیشنهاد مطالعه : آموزش تغییر پورت ssh

8- TCP wrapper کنترل دسترسی مبتنی بر میزبان را برای خدمات شبکه فراهم می کند ، که برای فیلتر کردن دسترسی شبکه به اینترنت استفاده می شود.
شما با اینکار میتوانید فایل /etc/hosts.allow را ویرایش کنید و کد زیر را داخل اون قرار بدید .

sshd : 192.168.1.100 172.16.20.10

با کد بالا شما ssh را از ادرس ایپی هایی که وارد کرده اید میتوانید وارد شوید که یکی از مهمترین ویژگی های ایمن سازی ssh نیز میتوان به این مورد اشاره کوتاهی کرد. اما چون همه سیستم های لوکال به این رنج ایپی ها دسترسی دارند ، بنابر این راه و روش درستی نیست . پس در نتیجه به نظر بنده راه حل بعدی ، بهترین روش میتواند باشد.

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

9- محدود کردن ورود به ssh از طریق ایپی : بهترین روش از نظر من برای ایمن سازی ssh در لینوکس همین مورد است. شما اگر دسترسی به ssh را محدود به ایپی کنید ، افراد غیر به راحتی نمیتوانند به سرور شما نفوذ کرده و یوزر و پسورد شما را نیز با بروت فورس بدست آورند. بنابر این حتما سعی کنید ، اگر شبکه داخلی دارید ، دسترسی ورود به ssh را به یک ایپی خاص محدود کنید که دقیقا روش محدود سازی به همان روش شماره 8 میباشد.

10- با کمک ایپی تیبلز ، ssh خود را ایمن تر کنید. شما میتوانید اتصال ssh را با استفاده از ایپی تییبلز محدود کنید تا فقط ادرس های ایپیی که در لیست سفید فایروال سرورتان قرار داده شده اند مجاز به اتصال باشند. به همین منظور شما میتوانید از کامند زیر استفاده کنید.

iptables -A INPUT -p tcp -m state –state NEW –source 192.168.1.200 –dport 8908 -j ACCEPT

sudo iptables -A INPUT -p tcp –dport 8908 -j DROP

الان کافیست از طریق دستور زیر ، رول هایی که تعریف کردید را ذخیره کنید و به به کار خود ادامه دهید.

sudo iptables-save > /etc/iptables/rules.v4

نتیجه گیری

اگر سرور میزبانی وب برای ارائه مثلا هاست وردپرس دارید ، بهتر است برخی از موارد اشاره شده را انجام و در انتها دقت کنید که حتما پورت ssh را تغییر داده و در فایروال سرور خود نیز این پورت را باز کنید و حتما پورت 22 را از tcp_in فایروال خود نیز خارج کنید.دقت داشته باشید با توجه به محدودیت ها و فیلترینگ در کشور ما ، ایمن سازی بیش از حد نز میتواند باعث ایجاد محدودیت در داخل کشور شود. بنابر این در حد معقولی باید ایمن سازی ها و محدودیت های سمت فایروال خود را داشته باشید.

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

5/5 - (8 امتیاز)

اسفندیار سلیمانیمشاهده نوشته ها

Avatar for اسفندیار سلیمانی

زندگی‌ مثل اسکرول ماوسه . هرچقدر هم گرون قیمت باشه بازم یه روزی خراب میشه . به یه شکل باور نکردنی ! پس تا هستیم قدر لحظاتمونو بدونیم و باور‌نکردنی زندگی کنیم.

بدون نظر

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *