اموزش تامین امنیت openssh

تامین امنیت openssh

Ssh ( پوسته امن ) یک پروتکل رمزنگاری شبکه برای آغاز session های پوسته ی مبتنی بر متن بر روی یک دستگاه ریموت به روشی امن است .openssh یک کلاینت و سرور استاندارد ssh است که توسط بسیاری از توزیع های لینوکس مورد استفاده قرار میگیرد . آن یک ابزار اتصالی است که بیشتر مدیران شبکه به آن اعتماد دارند و کارهای خود را با آن انجام میدهند . OpenSSH تمامی ترافیکها ( شامل پسورد نیز می شود ) را برای از بین بردن استراق سمع، دزدیدن کانکشن و سایر حملات رمز نگاری می کند . به عبارت دیگر ،OpenSSH تضمین میکند که کانکشن ها در سرور شما امن است . این آموزش بهترین شیوه ها را برای تنظیم و پیکربندی سرورSSH امن پوشش می دهد .

امنیت OpenSSH :

شش وظیفه ی بسیار مهم برای امن کردن تنظیمات سرور SSH وجود دارد :

  1. از پسورد قوی استفاده کنید .
  2. پورت پیش فرض ssh را تغییر دهید .
  3. همیشه از پروتکل نسخه ی 2 استفاده کنید .
  4. لاگین روت را غیر فعال کنید .
  5. دسترسی کاربران را محدود کنید
  6. برای احراز هویت از روشهای مبتنی بر کلید (key ) استفاده کنید .

استفاده از پسورد قوی

پسورد کلمه یا رشته ای از کاراکترهاست که برای احراز هویت کاربر استفاده می شود تا هویت آن برای دسترسی به منابع تایید گردد . سعی کنید پسورد خود را از افرادی که نباید به سرور دسترسی داشته باشند ، پنهان نگه دارید . از پسوردهای قوی و پیچیده استفاده کنید . پسوردهایی که حدس زدنش برای دیگران سخت و برای شما آسان است مناسب بوده و می توانید از آن استفاده کنید . از پسوردهایی همچون admin 123 یا admin خودداری کنید . حدس زدن این پسوردها بسیار آسان است . از به کار بردن پسوندهایی که در آن از تاریخ تولد ، نام همسر ، فرزند و غیره استفاده شده جدا پرهیز کنید . یک پسورد خوب باید شامل کاراکترهایی همچون ‘.!;/’ باشد . حتما از کاراکترهایی با حروف بزرگ و کوچک استفاده کنید .

پورت پیش فرض ssh را تغییر دهید

پورت پیش فرض ssh 22 است شما باید این پورت را تغییر دهید . فایل تنظیمات SSH در دایرکتوری /etc/sshd/ قرار گرفته است . شما باید فایل /etc/ssh/sshd_config را ویرایش کنید .

nano /etc/ssh/sshd_config

به دنبال خط port بگردید :

Port 22

حالا این مقدار به عددی که دوست دارید تغییر دهید :

Port 1337

ssh port

لطفا پورتی را انتخاب کنید که بر روی سرور وجود نداشته باشد . شما می توانید لیست پورتهای مورد استفاده را با استفاده از دستور زیر بدست آورید :

netstat -ntap

نتیجه ی این دستور لیستی تقریبا بزرگ است که تمامی پورتهای باز و کانکشن ها را نشان میدهد . اگر می خواهید بدانید که پورت مورد نظر شما وجود دارد باید از دستور زیر استفاده کنید :

netstat -ntap | grep 4422

در این مثال من پورت 4422 را بررسی کردم . اگر دستور نتیجه ای نداشته باشد ، پس پورت آزاد است و می توانید از آن استفاده کنید .

 

از پروتکل 2 استفاده کنید

 

Ssh دو نسخه یا ورژن پروتکل دارد . پروتکل قدیمی 1 که نا امن بوده و یک نسخه ی جدید به نام پروتکل 2 که امنتر است . همیشه از پروتکل 2 برای سرور ssh استفاده کنید . 

protocol 2

لاگین روت را غیر فعال کنید

 

شما باید لاگین مستقیم برای کاربر روت را غیر فعال کنید زیرا حملات brute forceزیادی در برابر کاربر روت وجود دارد .

مهم :قبل از غیر فعال کردن کاربر روت ، لاگین ssh خود را با یک کاربر غیر روت جایگزین که میخواهید برای لاگین ssh از آن استفاده کنید ، بررسی کنید .

PermitRootLogin no

permitrootlogin

بعد از اینکه مقدار PermitRootLogin را به no تغییر دادید ، شما نمی توانید با کاربر روت لاگین شوید .

 

کاربر را محدود کنید

شما باید یک کاربر جدید برای لاگین به سرور ایجاد کنید .فرض کنید کاربران ruiko و mikoto را برای لاگین به سرور ایجاد کرده اید ، پس شما میتوانید یک خط جدید ایجاد کنید :

AllowUsersruikomikoto

allowusers

در /etc/ssh/sshd_config می توانید دسترسی به ssh را برای این کاربران محدود کنید .

از احراز هویت مبتنی بر کلید استفاده کنید

پیشنهاد میکنم حتما از این گزینه استفاده کنید . زیرا تنظیمات آن بسیار آسان بوده و بسیار امنتر از تایید هویت مبتنی بر پسورد است . اولین کاری که باید انجام دهید این است که ابتدا یک جفت کلید public-private بر روی کامپیوتر محلی ایجاد کنید . برای اینکار می توانید ا ز دستورات زیر استفاده کنید :

ssh-keygen -t rsa -b 4096

این دستور دو فایل در مسیر ~/.ssh/ ایجاد خواهد کرد . id_rsa یک کلید خصوصی و id_rsa.pub کلید عمومی است .اگر پسوردی خواست می توانید آن را خالی بگذارید .

ssh keygen

حالا کلید id_rsa.pub را بر روی سرور با دستور ssh-copy-id آپلود کنید .

ssh-copy-id -i ~/.ssh/id_rsa.pub user@serverip

این دستور کلید عمومی را در فایل ~/.ssh/authorized_keys/ در سرور به طور خودکار می نویسد .

حالا دوباره به سرور بر گردید و فایل تنظیمات ssh را دوباره ویرایش کنید .

nano /etc/ssh/sshd_config

خطوط زیر را uncomment کنید :

AuthorizedKeysFile     %h/.ssh/authorized_keys

authorize

در نهایت سرور ssh را ریستارت کنید:

systemctl restart sshd

سعی کنید به سرور وصل شوید:

ssh -p ‘4422’ ‘user@serverIP’

نتیجه گیری :

OpenSSH دسترسی ریموت استانداردی برای سرورهایی مانند یونیکس بوده و جایگزینی برای پروتکل telnet است. SSHاین اطمینان را می دهد که کانکشن ار کامپیوتر محلی به سرور امن بوده و رمز نگاری شده است. نصب اولیه و اساسی openssh بسیار امن بوده اما ما می توانیم برای بهبود این امنیت از راهنمای بالا استفاده کنیم .
09123781949