[align=right]با سلام.
شاید شما هم از آن دسته مدیران سرورهایی باشید که از حملات Brute Force رنج می برند و یا در پی برقراری امنیت بیشتر برای سرویس SSH می باشند.
در بسیاری از منابع گفته شده که برای برقراری امنیت SSH آن را به IP محدود کنید. اما آیا ایجاد این محدودیت کافی است ؟ فرض کنید شما در سفر هستید و با مشکلی در سرور مواجه شده اید. آنگاه چطور میخواهید مشکل را برطرف کنید در حالی که ورود به SSH به یک آیپی یا رنج آیپی خاص محدود شده است ؟
در این تاپیک برای شما روشی را توضیح خواهیم داد که میتوانید بدون این دردسرها، امنیت SSH سرور خود را بالا ببرید.
همانطور که میدانید برای ورود به SSH، چندین راه وجود دارد :
1- Password authentication
2- Key authentication
و روش های دیگر که ما با آن ها در این مبحث کاری نداریم.
ما میخواهیم password authentication را غیر فعال کرده و key authentication را فعال کنیم که دارای امنیت نسبتاً بهتری نسبت به روش دیگر می باشد.
در روش key authentication، دو موضوع قابل بررسی است : public key - private key
زمانی که شما قصد استفاده از این روش را دارید، ابتدا باید با استفاده از دستور ssh-keygen در سرور خود، فایل public key را ایجاد کنید. این فایل
فایل های ایجاد شده در مسیر زیر دخیره می شوند :
زمانی که شما قصد ورود به SSH را دارید، سرویس SSH از public key استفاده می کند تا درخواست ها را در حالت قفل شده نگه دارد و این قفل تنها با کلید آن یعنی private key باز خواهد شد.
این مسئله باعث می شود تا هکرهایی که از بزرگترین لیست های پسورد هم استفاده می کنند توانایی دستیابی به پسورد شما را نداشته باشند. زیرا شما از یک " پسورد " استفاده نمی کنید ! همچنین با فعال سازی قابلیت passphrase می توانید لایه دوم هم برای ورود به ssh server را ایجاد کنید و آن لایه دوم، وارد کردن یک پسورد خواهد بود ! اما تا زمانی که شخصی از مرحله اول عبور نکند، توانایی دست یابی به مرجله دوم را نخواهد داشت.
مراحل فعال سازی key authentication در SSH
تا به اینجا ما توضیحاتی در رابطه با این روش ارائه نمودیم و ثابت کردیم که این روش از روش password authentication به مراتب امن تر است !
حال میخواهیم شما را با فعال سازی آن در سرور آشنا نمائیم.
ابتدا دایرکتوری ssh. را در root سرور ایجاد نمائید و سپس برای آن دسترسی 700 را اعمال نمائید.
به ترتیب با دستورات زیر :
حال، دستور زیر را برای ایجاد key های گفته شده در بالا اجرا کنید :
[/align][align=right]
خروجی به شکل زیر خواهد بود :[/align][align=center]
[/align][align=right]
همانطور که مشاهده می کنید در ابتدا مسیر دخیره سازی key را از شما می پرسد که به صورت پیشفرض همان ssh. می باشد که برای رد شدن از آن enter را وارد می کنید و سپس passphrase مورد نظر را درخواست می کند. چنانچه نیاز به passphrase ندارید میتوانید از این مرحله نیز بدون وارد کردن هیچ عبارتی عبور کنید.
حالا شما key ها را ایجاد نمودید. حالا میتوانید با ویرایش فایل /etc/ssh/sshd_config ، password auth را غیر فعال نموده
برای فعال سازی key authentication ، علامت # را از خط های زیر برداشته :
و سپس قبل از خط زیر، علامت # بگذارید :
سپس خط زیر را پیدا نموده و مقدار آن را به no تغییر دهید :
UsePAM قابلیت این را به شما خواهد داد که از هر دو روش password auth و key auth برای ورود به ssh استفاده کنید. اما با این کار شما قادر به استفاده از key ها نخواهید بود. به عبارت دیگر، password authentication در اولویت قرار خواهد داشت.
ورود با استفاده از ssh key
تا به این مرحله شما را با ایجاد ssh keys آشنا نمودیم. حال نوبت آن است که ورود از طریق این key ها را نیز شرح دهیم.
نرم افزار مورد نظر ما برای ورود به سرور در این آموزش، putty می باشد زیرا دارای طرفداران زیادی است.
در ابتدا شما باید محتویات فایل زیر را کپی کرده و با فرمت ppk در سیستم خود ذخیره نمائید :
توجه داشته باشید که روش مورد نظر ما در این آموزش، استفاده از RSA Key می باشد.
بنابراین توجه داشته باشید که در خط آخر، عبارت زیر وجود داشته باشد :
حال برنامه puttygen را از لینک زیر دریافت کنید :
برنامه را باز کرده و از قسمت Load، فایل private key که محتویات آن را کپی و با فرمت ppk ذخیره کرده بودید بارگزاری کنید.
چنانچه شما برای فایل private key خود passphrase تعریف کرده باشید، هم اکنون از شما خواسته می شود که باید آن را وارد کنید.[align=center]
[/align][/align][align=right]
و چنانچه passphrase نداشته باشید از شما خواسته می شود تا بر روی گزینه save private key کلیک کنید تا کلید مورد نظر به شکل قابل قبول برای ورود به سرور با استفاده از نرم افزار putty تبدیل شود.[/align][align=center]
[/align][align=right]
هم اکنون فایل را با فرمت ppk ذخیره نمائید.
برنامه puuty را باز کرده و در قسمت session، در قسمت host name آیپی سرور خود را وارد نموده و در قسمت port نیز پورت ssh را وارد نمائید. سپس یک نام دلخواه برای آن در نظر گرفته و در کادر Saved sessions وارد نمائید اما در این مرحله آن را save نکنید.[/align][align=center]
[/align] [align=right]
به قسمت Data از مجموعه ی Connection مراجعه نموده و در قسمت Auto-login username ، root را وارد کنید. ( یا اکانتی که دسترسی root داشته و مجوز ورود به ssh را داشته باشد.[/align][align=center]
[/align] [align=right]
حال به قسمت Auth از مجموع SSH مراجعه نموده و در قسمت Private key file for authentication ، فایل خروجی برنامه puttygen را بازگذاری نمائید.
[/align][align=center]
[/align] [align=right]
حال به قسمت session باز گشته و بر روی save کلیک کنید. سپس[/align][align=center]
[/align] [align=right]
سپس بر روی نام connection مورد نظر کلیک کرده و open را بزنید تا وارد سرور شوید. در صورتی که passphrase را فعال کرده باشید، قبل از ورود از شما خواته می شود که باید آن را وارد کنید.
موفق و پیروز باشید[/align]
شاید شما هم از آن دسته مدیران سرورهایی باشید که از حملات Brute Force رنج می برند و یا در پی برقراری امنیت بیشتر برای سرویس SSH می باشند.
در بسیاری از منابع گفته شده که برای برقراری امنیت SSH آن را به IP محدود کنید. اما آیا ایجاد این محدودیت کافی است ؟ فرض کنید شما در سفر هستید و با مشکلی در سرور مواجه شده اید. آنگاه چطور میخواهید مشکل را برطرف کنید در حالی که ورود به SSH به یک آیپی یا رنج آیپی خاص محدود شده است ؟
در این تاپیک برای شما روشی را توضیح خواهیم داد که میتوانید بدون این دردسرها، امنیت SSH سرور خود را بالا ببرید.
همانطور که میدانید برای ورود به SSH، چندین راه وجود دارد :
1- Password authentication
2- Key authentication
و روش های دیگر که ما با آن ها در این مبحث کاری نداریم.
ما میخواهیم password authentication را غیر فعال کرده و key authentication را فعال کنیم که دارای امنیت نسبتاً بهتری نسبت به روش دیگر می باشد.
در روش key authentication، دو موضوع قابل بررسی است : public key - private key
زمانی که شما قصد استفاده از این روش را دارید، ابتدا باید با استفاده از دستور ssh-keygen در سرور خود، فایل public key را ایجاد کنید. این فایل
فایل های ایجاد شده در مسیر زیر دخیره می شوند :
کد:
.ssh/authorized_keys
این مسئله باعث می شود تا هکرهایی که از بزرگترین لیست های پسورد هم استفاده می کنند توانایی دستیابی به پسورد شما را نداشته باشند. زیرا شما از یک " پسورد " استفاده نمی کنید ! همچنین با فعال سازی قابلیت passphrase می توانید لایه دوم هم برای ورود به ssh server را ایجاد کنید و آن لایه دوم، وارد کردن یک پسورد خواهد بود ! اما تا زمانی که شخصی از مرحله اول عبور نکند، توانایی دست یابی به مرجله دوم را نخواهد داشت.
مراحل فعال سازی key authentication در SSH
تا به اینجا ما توضیحاتی در رابطه با این روش ارائه نمودیم و ثابت کردیم که این روش از روش password authentication به مراتب امن تر است !
حال میخواهیم شما را با فعال سازی آن در سرور آشنا نمائیم.
ابتدا دایرکتوری ssh. را در root سرور ایجاد نمائید و سپس برای آن دسترسی 700 را اعمال نمائید.
به ترتیب با دستورات زیر :
کد:
mkdir ~/.ssh chmod 700 ~/.ssh
کد:
ssh-keygen
خروجی به شکل زیر خواهد بود :[/align][align=center]
[/align][align=right]
همانطور که مشاهده می کنید در ابتدا مسیر دخیره سازی key را از شما می پرسد که به صورت پیشفرض همان ssh. می باشد که برای رد شدن از آن enter را وارد می کنید و سپس passphrase مورد نظر را درخواست می کند. چنانچه نیاز به passphrase ندارید میتوانید از این مرحله نیز بدون وارد کردن هیچ عبارتی عبور کنید.
حالا شما key ها را ایجاد نمودید. حالا میتوانید با ویرایش فایل /etc/ssh/sshd_config ، password auth را غیر فعال نموده
برای فعال سازی key authentication ، علامت # را از خط های زیر برداشته :
کد:
#RSAAuthentication yes #PubkeyAuthentication yes #AuthorizedKeysFile .ssh/authorized_keys
کد:
PasswordAuthentication yes
کد:
UsePAM yes
ورود با استفاده از ssh key
تا به این مرحله شما را با ایجاد ssh keys آشنا نمودیم. حال نوبت آن است که ورود از طریق این key ها را نیز شرح دهیم.
نرم افزار مورد نظر ما برای ورود به سرور در این آموزش، putty می باشد زیرا دارای طرفداران زیادی است.
در ابتدا شما باید محتویات فایل زیر را کپی کرده و با فرمت ppk در سیستم خود ذخیره نمائید :
کد:
~/.ssh/id_rsa
بنابراین توجه داشته باشید که در خط آخر، عبارت زیر وجود داشته باشد :
کد:
-----END RSA PRIVATE KEY-----
کد:
http://the.earth.li/~sgtatham/putty/latest/x86/puttygen.exe
چنانچه شما برای فایل private key خود passphrase تعریف کرده باشید، هم اکنون از شما خواسته می شود که باید آن را وارد کنید.[align=center]
[/align][/align][align=right]
و چنانچه passphrase نداشته باشید از شما خواسته می شود تا بر روی گزینه save private key کلیک کنید تا کلید مورد نظر به شکل قابل قبول برای ورود به سرور با استفاده از نرم افزار putty تبدیل شود.[/align][align=center]
[/align][align=right]
هم اکنون فایل را با فرمت ppk ذخیره نمائید.
برنامه puuty را باز کرده و در قسمت session، در قسمت host name آیپی سرور خود را وارد نموده و در قسمت port نیز پورت ssh را وارد نمائید. سپس یک نام دلخواه برای آن در نظر گرفته و در کادر Saved sessions وارد نمائید اما در این مرحله آن را save نکنید.[/align][align=center]
[/align] [align=right]
به قسمت Data از مجموعه ی Connection مراجعه نموده و در قسمت Auto-login username ، root را وارد کنید. ( یا اکانتی که دسترسی root داشته و مجوز ورود به ssh را داشته باشد.[/align][align=center]
[/align] [align=right]
حال به قسمت Auth از مجموع SSH مراجعه نموده و در قسمت Private key file for authentication ، فایل خروجی برنامه puttygen را بازگذاری نمائید.
[/align][align=center]
[/align] [align=right]
حال به قسمت session باز گشته و بر روی save کلیک کنید. سپس[/align][align=center]
[/align] [align=right]
سپس بر روی نام connection مورد نظر کلیک کرده و open را بزنید تا وارد سرور شوید. در صورتی که passphrase را فعال کرده باشید، قبل از ورود از شما خواته می شود که باید آن را وارد کنید.
موفق و پیروز باشید[/align]