امنیت در ssh

Online Secure Connection Concept Illustration with Padlock and Cyber Background. Online Encryption Technologies. 

معرفی ssh

 پوسته امن ( Secure Shell) یا به اختصار اس‌اس‌اچ ( SSH) یک پروتکل اینترنتی است که امکان تبادل اطلاعات با استفاده از یک کانال امن را بین دو دستگاه متصل در شبکه ایجاد می‌کند. دو نسخه اصلی این پروتکل به نام‌های SSH1  و SSH-2 شناخته می شود. در ابتدا ssh تنها بر روی سیستم‌های مبتنی بر یونیکس و لینوکس برای دسترسی به حساب‌های پوسته استفاده می شد، اس‌اس‌اچ جایگزنی برای تل‌نت و سایر پوسته‌های ارتباط از راه دور غیر امن ایجاد شده است، قرار بر این است که مایکروسافت نیز به صورت پیش فرض ssh را در سیستم عامل خود تعبیه نماید. Open SSH نسخه متن‌باز Open-source یا رایگان SSH می باشد. همچنین شما می توانید از ssh به عنوان tunneling و port forwarding نیز استفاده نمائيد. شما در این مقاله می آموزید که ارتباط سرویس ssh خود را امن تر نگه دارید.

فایل ها و پورت  پیش فرضssh

فایل تنظیمات سرور Openssh

/etc/ssh/sshd_config

فایل تنظیمات کاربر Openssh

/etc/ssh/ssh_config   

پوشه تنظیمات ssh کاربری

~/.ssh/

پوشه کلید های عمومی ssh

~/.ssh/authorized_keys

پورت پیش فرض SSH

SSH default port : TCP 22

استفاده از SSH 2

با توجه به این که ssh 1 دچار مشکل man-in-the-middle و security vulnerabilities  میباشد، همیشه سعی نمایید که از پروتکل ssh 2 استفاده کنید. برای این منظور فایل sshd_config را باز نموده و بررسی کیند که تنظیمات به صورت ذیل باشد.

Protocol 2

تعریف دسترسی کاربران ssh

به صورت پیش فرض تمامی کاربری می توانند با استفاده از کلمه عبور و کلید های عمومی به سرور متصل شوند.بعضی مواقع ممکن است که برای سرویس های ftp و یا سرور میل خود کاربر تعریف نمائيد و به صورت پیش فرض این کاربران امکان اتصال به ssh را نیز دارا باشند. همچنین ممکن است که اسکریپتی بر روی سرور نصب نمائيد که اقدام به ایجاد کاربر بر روی سرور نماید ، شما می توانید برای جلوگیری از لاگین کاربران تنها کاربرانی که خود تعیین می نمائيد به سرور متصل گردند، برای این منظور از متغییر AllowUsers در فایل sshd_config به صورت ذیل استفاده می نمائيم.

AllowUsers root parspack ali

همچنین روش دیگر استفاده از یک قانون دیگر میباشد که تمامی کاربران امکان اتصال ssh داشته باشند به غیر از کاربران ذکر شده.

DenyUsers mehrdad milad ashkan

تنظیم زمان منتظر بودن

شما می توانید زمانی که یک کاربر در سرور بدون وارد کردن دستور است را تنظیم نمائيد تا در صورت اجرا نکردن دستوری اتصال خاتمه یاید. ۳۰۰ در متغییر مورد نظر ۵ دقیقه می باشد.

ClientAliveInterval 300

ClientAliveCountMax 0

غیر فعال کردن کاربر root

در بیشتر شبکه ها ممکن است چندین مدیر شبکه وجود داشته و همگی با کاربر root اقدام به ورود به سرور نموده و تغییرات خود را به انجام رسانند، بررسی اقدامات انجام شده سخت بوده برای همین منظور کاربر root غیر فعال می گردد.

PermitRootLogin no

فعال کردن بنراخطار

می توانید برای نشان دادن یک پیغام در هنگام ورود از مسیر ذیل این مورد را فعال نمائيد.

Banner /etc/issue

تغییر پورت پیش فرض ssh و IP اتصال

شما می توانید پورت پیش فرض ssh که ۲۲ می باشد را به پورت دیگری تغییر دهید،‌ همچنین در صورتی که چندین IP بر روی سرور خود تنظیم نموده اید تمامی آنها به صورت معمول به سرور متصل می گردند، شما می توانید با تنظیمات ذیل IP هایی که امکان اتصال به سرور را دارند تنظیم نمائيد و برای دیگر IP های امکان اتصال میسر نباشد.

Port 4441

ListenAddress 192.168.1.5

ListenAddress 192.168.1.10

غیر فعال نمودن ورود بدون کلمه عبور

در صورتی که متغییر ذیل به درستی تنظیم نشده باشند امکان اتصال کاربران بدون کلمه عبور میسر می گردد و می بایست اقدام به تغییر و غیر فعال نمودن این متغییر نمائيد.

PermitEmptyPasswords no

لاگ های ssh

شما می توانید از طریق دستور ذیل اقدام به بررسی لاگ های سرویس SSH نمائيد.

grep 'sshd' /var/log/auth.log

به روز رسانی SSH

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

پس از انجام تغییرات با توجه به سیستم عامل لینوکس خود یکی از دستورات ذیل را استفاده نمائيد.

systemctl restart sshd

service sshd restart

اتصال ssh از طریق کلید عمومی

یکی از بهترین روش های اتصال به سرور استفاده از کلید عمومی می باشد، با این کار به جای وارد نمودن کلمه عبور سرور در هر بار اتصال از کلید عمومی خود برای اتصال استفاده می نمائيم و از افشا شدن کلمه عبور در هنگام ورود از صفحه کلید جلوگیری می نمائيم.  ابتدا توسط دستور SSH-Kegen اقدام به ایجاد کلید عمومی و خصوصی می نمائيم.

ssh-keygen -t rsa

سپس توسط دستور ذیل فایل کلید عمومی خود را به سروری که قصد اتصال داریم منتقل می نمائيم.

cat .ssh/id_rsa.pub | ssh [email protected] 'cat >> .ssh/authorized_keys'

پس از آن سطح دسترسی فایل ها و پوشه ها را تنظیم می کنیم.

ssh  [email protected] "chmod 700 .ssh; chmod 640 .ssh/authorized_keys"

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

ssh  [email protected]

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