آموزشن ایمن سازی Open SSH (هدیه nginxweb)
درود بر همه کاربران عزیز و بزرگوار
با آموزش اختصاصی ایمن سازی سرویس SSH در خدمت شما هستم. سعی میکنیم به ساده ترین زبان ممکن این آموزش را بنویسم که دوستان تازه کار نیز بخوبی بتوانند درک کنند.
همانطور که میدانید سرویس sshd یکی از مهم ترین سرویس های هر سرور میباشد که اتصال به این سرویس برابر با دسترسی کامل به فایل های سیستمی سرور و سایت ها میباشد. با توجه به این پس مهمترین قدم در امنیت کارکرد سرور شما ایمن سازی این سرویس میباشد . در این پست که اختصاصی کاربران انجمن وب هاستینگ نوشته ام ایمن سازی این سرویس را خدمتتون توضیح خواهم داد.
خوب بریم سراغ کار:
1- تغییر پورت سرویس sshd
قدم اول در ایمن سازی سرویس ssh بحث پورت این سرویس است. این سرویس بطور پیش فرض از پورت 22 استفاده میکند که برای امنیت باید پورت را تغییر دهید که جهت اینکار در سرور دستور زیر را وارد کنید:
کد:
nano -w /etc/ssh/sshd_config
در محیط ادیتو عبارت :
Port 22
را پیدا کنید و به پورت دلخواه تغغیر دهید مانند:
http://8pic.ir/images/p33y9pyj5ustypnf7c4g.png
برای اینکه مطمئن شوید که شماره پورت مد نظرتون در سرور باز است یا نیست باید بررسی کنید که سرویسی روی سرور روی پورت فوق فعالا ست یا خیر که از دستور زیر میتوانید استفاده کنید:
کد:
netstat -ntap | grep 1337
اگر سرویسی فعال نبود با خیال راحت پورت را جهت سرویس ssh استفاده نمایید.
2- استفاده از پروتکل ssh نسخه 2:
سرویس sshd دارای 2 پروتکل است که پروتکل شماره 1 امنیت مناسبی ندارد و به همین منظور پیشنهاد میشه همیشه از پروتکل شماره 2 استفاده نمایید. برای فعالسازی این مورد کافیست عبارت :
Protocol 2 را در فایل کانفیگ سرویس یعنی همان sshd_config فعال کنید و اگر وجود ندارد اضافه نمایید.
مانند:
http://8pic.ir/images/ei2tvi34b21cxyw6mk83.png
اطلاعات کاملتر در مورد مقایسه پروتکل 1 و 2 در اینجا ببینید
3- غیر فعال کردن root login برای دسترسی:
اکثر حملات مانند brute force ها بوسیله هدفشان لاگین در یوزر root سرور شما میباشد که برای مقابله با آنها بهتر است که دسترسی لاگین root غیر فعال شود برای این مورد در همان فایل کانفیگ sshd عبارت:
PermitRootLogin
را پیدا کنید و مقدار مقابلش را به no تغییر دهید:
مثال:
http://8pic.ir/images/yunrhjdd864l0ea8pl97.png
4- محدود کردن کاربران:
برای امنیت بیشتر این سرویس بهتر است که دسترسی ssh را فقط محدود به کاربران خاصی کنید که اگر کسی توانست یوزر دیگری در سرور ایجاد کند نتواند در این سرویس وارد شود
برای این مورد در فایل کانفیگ عبارت AllowUsers را پیدا کنید و نام یوزر مورد نظر را جلوی آن وارد نمایید. مانند:
http://8pic.ir/images/99vzn3qta4drbxjerbo5.png
5- فعال کردن قابلیت Key Based Authentication:
استفاده از کلید های لاگین در ssh بشدت برای افزایش امنیت توصبه میشه و پیشنهاد میکنم حتما این مورد را استفاده کنید.
شما میتوانید key ها را بصورا public و همینطور private بسیازید
برای اینکار از دستور زیر استفاده کنید:
نقل قول:
ssh-keygen -t rsa -b 4096
این دستور 2 فایل در مسیر ~/.ssh/ ایجاد میکند یکی بنام id_rsa که همان private key شما است و دیگری id_rsa.pub که publickey میباشد
حال باید public key را در تنظیمان ssh وارد کنید که برای این مورد از دستور ssh-copy-id استفاده نمایید بصورت زیر:
نقل قول:
ssh-copy-id -i ~/.ssh/id_rsa.pub user@serverip
دستور فوق بصورت خودکار public key را در ~/.ssh/authorized_keys/ مینویسد
6- مجدد به همان فایل کانفیگ یعنی sshd_config بر میگردیم و عبارت زیر را پیدا کنید:
نقل قول:
AuthorizedKeysFile %h/.ssh/authorized_keys
و اگر کامنت بود از حالت کامنت خارج نمایید
و در پایان سرویس سرویس را با دستور زیر ریستارت نمایید تا تنظیمات اعمال شود.
امیدوارم مورد استفاده شما بوده باشه این مقاله
بازم وقت آزاد داشته باشم حتما خدمتتون آموزش هایی خواهم نوشت.
ارادتمند شما: محمدزاده (تیرماه 1394)
پاسخ : آموزشن ایمن سازی Open SSH (هدیه nginxweb)
یه همچین آموزشی از شما بعید بود.
به هر حال ممنون
پاسخ : آموزشن ایمن سازی Open SSH (هدیه nginxweb)
نقل قول:
نوشته اصلی توسط
irmafia
یه همچین آموزشی از شما بعید بود.
به هر حال ممنون
زنده باشید.
از چه نظر میفرمایید بعید بود...؟ نقصی در آموزش هست؟ اگر نقص و کوتاهی هست بفرمایید تا جای ممکن تصحیح کنیم یا کامل تر شود
پاسخ : آموزشن ایمن سازی Open SSH (هدیه nginxweb)
توصیه های خوبی بود .
اگر بتونید پورت رو با فورواردینگ داخلی تغییر بدید بهتره که اگر اتک یا bruteforce بیاد رو پورت اول بشه با lfd یا ipfw شناسایی و بلاکش کرد قبل از این که به authentication برسه .
توصیه دوم هم این که جدا از UseDNS استفاده نکنید . تو همین فایل sshd_config میشه روی No تنظیم کرد .
پاسخ : آموزشن ایمن سازی Open SSH (هدیه nginxweb)
نقل قول:
نوشته اصلی توسط
iMohsen
توصیه های خوبی بود .
اگر بتونید پورت رو با فورواردینگ داخلی تغییر بدید بهتره که اگر اتک یا bruteforce بیاد رو پورت اول بشه با lfd یا ipfw شناسایی و بلاکش کرد قبل از این که به authentication برسه .
توصیه دوم هم این که جدا از UseDNS استفاده نکنید . تو همین فایل sshd_config میشه روی No تنظیم کرد .
ممنون مجسن جان همشهری عزیز برای شرکت در تاپیک
بله UseDNS همیشه پیشنهاد میشه که استفاده نشود که البته جز موارد پیشنهادی بخش security check فایروال csf است که اکثرا اعمال میکنند . همچنین موارد دیگر مانند access host و استفاده از host.deny - host.allow و limit access per ip نیزبسیار مفید است
ارادت
پاسخ : آموزشن ایمن سازی Open SSH (هدیه nginxweb)
اگر از کلید های لاگین استفاده شه ، دیگه نمیشه با پسورد لاگین کرد ، درسته ؟
پاسخ : آموزشن ایمن سازی Open SSH (هدیه nginxweb)
سلام
آموزش خوبی بود 2 مورد برام جای سوال داشت که با ابن آموزش شما رفع شد
دوستان می تونید با استفاده از این آموزش ssh سرور های مجازی ساز رو هم امن کنید
پاسخ : آموزشن ایمن سازی Open SSH (هدیه nginxweb)
خیلی ممنون آموزش های خوبی بود .
فقط در مورد قابلیت Key Based Authentication متوجه نشدم که چه کاری انجام میده و اگه ست بشه دیگه نمیشه با پسورد لاگین کرد ؟ کمی توضیح بدین ممنون میشم .
پاسخ : آموزشن ایمن سازی Open SSH (هدیه nginxweb)
سلام
عزیز کار جالب و بسیار عالی بود
فقط من روی وی پی اس انجام میدادم یه جاهایی دیگه واقعا نفهمیدم چی شد
قسمت کلید لاگین
پاسخ : آموزشن ایمن سازی Open SSH (هدیه nginxweb)
درود بر همه دوستان
عزیزانی که با Key Based Authentication مشکل داشتن و جای سوال هست واسشون خدمتتون عرض کنم key-based authentication یک سیستم امنیتی هستش که برای بالا بردن امنیت ssh استفاده میشود و وقتی شما فعال نمایید حالت password authentication استاندارد غیر فعال میگردد که برای امنیت بیشتر میتواند در فایل کانفیگ ssh پارامتر زیر را پیدا کنید:
PasswordAuthentication
و روی حالت no قرار دهید:
نقل قول:
PasswordAuthentication no
توجه داشته باشید تنظیمات فوقدر سیستم عامل های گروه Red Hat Enterprise Linux کاربرد دارد.
پیشنهاد شخصی بنده این هستش اگر سرور برای استفاهد شخصی هست نیاز نیست روی بحث key Authentication خیلی حساس باشید و همان تغییر پورت و لیمیت یوزر ها و همینطور محدود کردن دسترسی با آیپی کفایت میکند.
ارادتمند شما
محمدزاده