PDA

توجه ! این یک نسخه آرشیو شده میباشد و در این حالت شما عکسی را مشاهده نمیکنید برای مشاهده کامل متن و عکسها بر روی لینک مقابل کلیک کنید : آموزشن ایمن سازی Open SSH (هدیه nginxweb)



nginxweb
June 28th, 2015, 13:35
درود بر همه کاربران عزیز و بزرگوار

با آموزش اختصاصی ایمن سازی سرویس 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 در اینجا (http://www.snailbook.com/faq/ssh-1-vs-2.auto.html) ببینید


3- غیر فعال کردن root login برای دسترسی:

اکثر حملات مانند brute force ها بوسیله هدفشان لاگین در یوزر root سرور شما میباشد که برای مقابله با آنها بهتر است که دسترسی لاگین root غیر فعال شود برای این مورد در همان فایل کانفیگ sshd عبارت:

PermitRootLogin

را پیدا کنید و مقدار مقابلش را به no تغییر دهید:


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

و اگر کامنت بود از حالت کامنت خارج نمایید


و در پایان سرویس سرویس را با دستور زیر ریستارت نمایید تا تنظیمات اعمال شود.



service sshd restart


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

بازم وقت آزاد داشته باشم حتما خدمتتون آموزش هایی خواهم نوشت.

ارادتمند شما: محمدزاده (تیرماه 1394)

irmafia
June 28th, 2015, 14:01
یه همچین آموزشی از شما بعید بود.

به هر حال ممنون

nginxweb
June 28th, 2015, 14:04
یه همچین آموزشی از شما بعید بود.

به هر حال ممنون

زنده باشید.

از چه نظر میفرمایید بعید بود...؟ نقصی در آموزش هست؟ اگر نقص و کوتاهی هست بفرمایید تا جای ممکن تصحیح کنیم یا کامل تر شود

iMohsen
June 28th, 2015, 14:05
توصیه های خوبی بود .
اگر بتونید پورت رو با فورواردینگ داخلی تغییر بدید بهتره که اگر اتک یا bruteforce بیاد رو پورت اول بشه با lfd یا ipfw شناسایی و بلاکش کرد قبل از این که به authentication برسه .

توصیه دوم هم این که جدا از UseDNS استفاده نکنید . تو همین فایل sshd_config میشه روی No تنظیم کرد .

nginxweb
June 28th, 2015, 14:08
توصیه های خوبی بود .
اگر بتونید پورت رو با فورواردینگ داخلی تغییر بدید بهتره که اگر اتک یا bruteforce بیاد رو پورت اول بشه با lfd یا ipfw شناسایی و بلاکش کرد قبل از این که به authentication برسه .

توصیه دوم هم این که جدا از UseDNS استفاده نکنید . تو همین فایل sshd_config میشه روی No تنظیم کرد .

ممنون مجسن جان همشهری عزیز برای شرکت در تاپیک

بله UseDNS همیشه پیشنهاد میشه که استفاده نشود که البته جز موارد پیشنهادی بخش security check فایروال csf است که اکثرا اعمال میکنند . همچنین موارد دیگر مانند access host و استفاده از host.deny - host.allow و limit access per ip نیزبسیار مفید است

ارادت

OmidX
June 28th, 2015, 23:02
اگر از کلید های لاگین استفاده شه ، دیگه نمیشه با پسورد لاگین کرد ، درسته ؟

InterServer.ir
June 28th, 2015, 23:08
سلام

آموزش خوبی بود 2 مورد برام جای سوال داشت که با ابن آموزش شما رفع شد

دوستان می تونید با استفاده از این آموزش ssh سرور های مجازی ساز رو هم امن کنید

zarat
June 28th, 2015, 23:27
خیلی ممنون آموزش های خوبی بود .
فقط در مورد قابلیت Key Based Authentication متوجه نشدم که چه کاری انجام میده و اگه ست بشه دیگه نمیشه با پسورد لاگین کرد ؟ کمی توضیح بدین ممنون میشم .

xmohammadx
June 28th, 2015, 23:31
سلام
عزیز کار جالب و بسیار عالی بود
فقط من روی وی پی اس انجام میدادم یه جاهایی دیگه واقعا نفهمیدم چی شد
قسمت کلید لاگین

nginxweb
June 28th, 2015, 23:57
درود بر همه دوستان

عزیزانی که با Key Based Authentication مشکل داشتن و جای سوال هست واسشون خدمتتون عرض کنم key-based authentication یک سیستم امنیتی هستش که برای بالا بردن امنیت ssh استفاده میشود و وقتی شما فعال نمایید حالت password authentication استاندارد غیر فعال میگردد که برای امنیت بیشتر میتواند در فایل کانفیگ ssh پارامتر زیر را پیدا کنید:


PasswordAuthentication

و روی حالت no قرار دهید:



PasswordAuthentication no


توجه داشته باشید تنظیمات فوقدر سیستم عامل های گروه Red Hat Enterprise Linux کاربرد دارد.

پیشنهاد شخصی بنده این هستش اگر سرور برای استفاهد شخصی هست نیاز نیست روی بحث key Authentication خیلی حساس باشید و همان تغییر پورت و لیمیت یوزر ها و همینطور محدود کردن دسترسی با آیپی کفایت میکند.

ارادتمند شما
محمدزاده

SamaN DL
June 29th, 2015, 11:04
بسیار سپاس♥ بعد مدتها آموزش تخصصی در انجمن مشاهده شد.x

آرزوی موفقیت, منتظر آموزش های بعدی شما هستیم.

nginxweb
June 29th, 2015, 15:05
بسیار سپاس♥ بعد مدتها آموزش تخصصی در انجمن مشاهده شد.x

آرزوی موفقیت, منتظر آموزش های بعدی شما هستیم.

زنده باشید
انشالله اگر تایمی باشه و عمری باقی حتما آموزش های جدید تهیه خواهم کرد

شما هم موفق باشید