فارسی|English

توصیه ها و تنظیماتی برای امن تر کردن سرور ssh

ssh ابزاری است برای گرفتن شل از سرور، و همیشه هدفی هیجان انگیز برای یک کرکر است، و امن کردن آن از واجبات. اولین باری که یک سرور VPS اجاره کردم، فکر می کردم کسی یک آی پی تنها در گوشه ای از دنیا را پیدا نخواهد کرد، چه برسد بخواهد حمله ای هم انجام دهد. اما صبح روز بعد، در لاگ auth تعداد زیادی آی پی دیدم که تلاش کرده بودند با ترکیبات مختلفی از user و password به سرور لاگین کنند: حمله‌های اتوماتیک.

در این مقاله، تجربیات و آموخته‌هایم درباره امن کردن ssh را در اختیار شما قرار می دهم.

تغییر پورت پیش فرض

هر چند با یک port scanning سریع می شود فهمید سرویس ssh روی کدام پورت گوش می دهد، اما همانطور که در اولین تجربه من دیدید، بیشتر حمله ها از طریق bot های اتوماتیک انجام می شود که پورت پیش فرض 22 را اسکن می کنند. بنابراین، اولین قدم تغییر پورت پیش فرض است. ترکیبات مشابه 22 مثل 2222 را هم استفاده نکنید، چرا که ربات ها این پورت ها هم اسکن می کنند.

برای تغییر پورت پیش فرض، در فایل

/etc/ssh/sshd_config

آپشن port را به عدد دیگری تغییر دهید و با

service ssh restart

سرویس ssh را دوباره استارت کنید که روی پورت جدید گوش بدهد.

اخطار اگر فایروال تنظیم کرده اید، قبل از اعمال این تغییرات، مطمئن شوید این پورت در فایروال باز است. اگرنه ممکن است دیگر به سرور دسترسی نداشته باشید!

لاگین با کاربر غیر روت

بهتر است دسترسی لاگین را از کاربر روت بگیرید، و با کاربر دیگری لاگین کنید. بعد از لاگین، با دستور su root یا sudo -i به روت سوئیچ کنید. با این کار، اگر کرکری بتواند به ssh شما نفوذ کند، باید از یک مرحله دیگر هم عبور کند.

برای این کار، اول یک کاربر جدید تعریف کنید که عضو هیچ گروهی هم نباشد (هیچ دسترسی‌ای نداشته باشد). بعد در همان فایل sshd_config، با اضافه کردن کانفیگ زیر، فقط به این کاربر اجازه لاگین بدهید:

AllowUsers serveruser

به این ترتیب مطمئن می‌شوید اگر کاربر دیگری روی سیستم تعریف شود، و پسورد ضعیفی داشته باشد، کرکر نمی تواند از آن استفاده کند.

یک بار سرویس ssh را restart کنید، و با این کاربر لاگین کنید که مطمئن شوید تنظیمات صحیح است. بعد با تغییر این آپشن:

PermitRootLogin no

دسترسی لاگین را از روت بگیرید.

fail2ban

با فعال کردن fail2ban، اگر یک آی پی خاص چند بار تلاش کند که لاگین کند و موفق نشود، rule جدیدی به فایروال اضافه می شود که آن IP را reject کند. و این rule برای مدت زمانی فعال خواهد ماند.

نحوه تنظیم fail2ban خودش مقاله دیگری را می طلبد.

امیدوارم با به کار گیری این چند روش، سرور امن تری داشته باشید (-:

لیست پست‌ها