پوسته امن ( Secure Shell ) یا به اختصار اساساچ ( SSH ) یک پروتکل اینترنتی است که امکان تبادل اطلاعات با استفاده از یک کانال امن را بین دو دستگاه متصل در شبکه ایجاد میکند . دو نسخه اصلی این پروتکل به نامهای SSH1 و SSH2 شناخته می شود. در ابتدا SSH تنها بر روی سیستمهای مبتنی بر یونیکس و لینوکس برای دسترسی به حسابهای پوسته استفاده می شد ولی به تدریج به جایگزینی مناسب برای تلنت ( Telnet ) و سایر پوستههای ارتباط از راه دور غیر امن بدل گردید . محبوبیت و ضریب امنیت SSH تا حدی است که ماکروسافت نیز تمایل خود را برای استفاده از آن در سیستم عامل ویندوز اعلام کرده است . Open SSH نسخه متنباز ( Open-source ) و رایگان SSH می باشد . کاربر های SSH فقط به اتصال ساده بین دو دستگاه محدود نشده و حتی شما می توانید با استفاده از ssh ارتباطات tunneling و یا port forwarding را نیز پیاده سازی نمائيد. با توجه به اینکه سرویس SSH یک پل ارتباطی به سرور شماست ، اعمال تنظیمات امنیتی بر روی آن می تواند سهم بزرگی در امنیت سرور شما ایفا کند. در این مقاله به شما تغییر در پیکره بندی بخش های مختلف این سرویس ، تغییر پورت پیشفرض ، محدود کردن نام کاربری های مجاز به اتصال و مواردی از این دست را آموزش خواهیم . با ما همراه باشید.
مسیر فایل تنظیمات و پورت پیشفرض
فایل تنظیمات سرور Openssh
/etc/ssh/sshd_config
فایل تنظیمات کاربر Openssh
/etc/ssh/ssh_config
پوشه تنظیمات ssh کاربری
~/.ssh/
پوشه کلید های عمومی ssh
~/.ssh/authorized_keys
پورت پیش فرض ssh
SSH default port : TCP 22
استفاده از ssh2
با توجه به این که 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 mehrzad milad ashkan
تنظیم زمان انتظار
شما می توانید زمانی که یک کاربر در سرور بدون وارد کردن دستور است را تنظیم نمائيد تا در صورت اجرا نکردن دستوری اتصال خاتمه یاید. مبنای زمان در این بخش ثانیه بوده و لذا عدد 300 معادل با 5 دقیقه می باشد.
ClientAliveInterval 300
ClientAliveCountMax 0
غیر فعال کردن کاربر root
در بیشتر شبکه ها ممکن است چندین مدیر شبکه وجود داشته و همگی با کاربر root اقدام به ورود به سرور نموده و تغییرات خود را به انجام رسانند . لذا پیشنهاد می گردد در این موارد هر کاربر با نام کاربری مختص خود که می تواند عضو گروه سودور ( Sudoer ) باشد استفاده کند. برای همین منظور کاربر root غیر فعال می گردد.
PermitRootLogin no
فعال کردن بنراخطار
اگر می خواهید پیغام خاصی در هنگام اتصال نمایش داده شود می توانید آن را در مسیر زیر تنظیم کنید.
Banner /etc/issue
تغییر پورت پیش فرض ssh و IP اتصال
شما می توانید پورت پیش فرض ssh که ۲۲ می باشد را به پورت دیگری تغییر دهید، همچنین در صورتی که چندین IP بر روی سرور خود تنظیم نموده اید تمامی آنها به صورت معمول به سرور متصل می گردند، شما می توانید با تنظیمات ذیل IP هایی که امکان اتصال به سرور را دارند تنظیم نمائيد و برای دیگر IP های امکان اتصال میسر نباشد.
Port 4441
ListenAddress 192.168.1.5
ListenAddress 192.168.1.10
غیر فعال نمودن ورود بدون کلمه عبور
اکیدا توصیه می گردد این بخش از تنظیمات را بررسی کنید. در صورت عدم پیکره بندی صحیح این بخش ، اگر اکانت کاربری کلمه عبور خالی تنظیم کرده باشد ، می تواند به سرور اتصال SSH برقرار کند که ریسک امنیتی بسیار بالایی دارد.
PermitEmptyPasswords no
لاگ های ssh
می توانید با استفاده از دستور مقابل لاگ های سرویس SSH را مطالعه فرمایید.
grep 'sshd' /var/log/auth.log
به روز رسانی SSH
با توجه به اهمیت بالای این سرویس ، پشنهاد می شود همواره جدید ترین بروزرسانی های پکیج OpenSSH را دریافت و نصب فرمایید.
پس از اتمام بروزرسانی ، جهت استارت مجدد سرویس ، با توجه به سیستم عامل لینوکس خود یکی از دستورات ذیل را استفاده نمائيد.
systemctl restart sshd
service sshd restart
اتصال ssh از طریق کلید عمومی
یکی از بهترین روش های اتصال به سرور استفاده از کلید عمومی می باشد، با این کار به جای وارد نمودن کلمه عبور سرور در هر بار اتصال از کلید عمومی صادر شده برای اتصال استفاده نموده و از افشا شدن کلمه عبور در هنگام ورود با صفحه کلید جلوگیری می نمائيم. ابتدا توسط دستور SSH-Keygen اقدام به ایجاد کلید عمومی ( Public Key ) و خصوصی ( Private key ) می نمائيم.
ssh-keygen -t rsa
سپس توسط دستور ذیل فایل کلید عمومی خود را به سروری که قصد اتصال داریم منتقل می نمائيم.
cat ~/.ssh/id_rsa.pub | ssh root@192.168.22.22 "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys"
پس از آن سطح دسترسی فایل ها و پوشه ها را تنظیم می کنیم.
chmod 700 .ssh
chmod 640 .ssh/authorized_key
آخرین دیدگاهها