ایمن سازی یا (OpenSSH)

الناز منشاری ۱۹ خرداد ۱۳۹۶ ۰ دیدگاه

 OpenSSH

ایمن‌سازی یا (OpenSSH)، همانند پروتکل (telnet) عمل می‌کند و تعدادی عملیات را برای ایمن‌سازی ارتباط و محیط سیستم‌عامل به‌عنوان نصب (SSH) می‌توان مطرح کرد.

استفاده از نام کاربری و رمز عبور قوی

یکی از مهم‌ترین مسائلی که به آن باید توجه داشت، جلوگیری از لو رفتن نام کاربری و رمز عبور است. به خاطر داشته باشید استفاده از نام کاربری و رمز عبور قوی طبق استانداردها سبب می‌شود امنیت بیشتر و امکان حدس زدن و یا شناختن آن بسیار کاهش یابد. برای ایجاد یک رمز عبور قوی لازم است تا از یک (Password generator) استفاده کنید، یا اگر خود می‌خواهید آن را انتخاب کنید نکات زیر را در آن رعایت کنید:

  • حداقل تعداد کاراکترها در آن ۸ باشد.
  • استفاده از کاراکترهای (Upper & Lower case) در آن.
  • در آن هم از کاراکتر الفبا و هم از اعداد استفاده شود.
  • از کاراکترهای غیر الفبایی نیز در آن استفاده گردد.

جلوگیری از لاگین شدن (root)

تنظیمات مربوط به (SSH) در آدرس (/etc/ssh/sshd_config) است. بنابراین برای جلوگیری از ورود (root) دستورهای زیر را اجرا می‌کنیم.

# Prevent root logins:

PermitRootLogin no

و سپس (restart) می‌کنیم:

service sshd restart

اگر نیاز به دسترسی (root) داشتید، می‌توانید در ابتدای دستورات مورد نظر خود از پیشوند (Su) استفاده کنید.

محدود کردن لاگین‌های کاربران

به یاد داشته باشید تنها به افرادی اجازه‌ی ورود به سیستم بدهید که نیاز دارند و از اعطای این حق به همه خودداری کنید. برای مشخص کردن کاربرانی که مجوز (login) کردن دارند، ابتدا باید آن‌ها را تعریف کرد. به تنظیمات (SSH) در آدرس (/etc/ssh/sshd_config) بروید و نام کاربری کاربران را اضافه کنید.

AllowUsers allice bob

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

(SSH) دارای دو پروتکل است که با نام‌های پروتکل ۱ و پروتکل ۲ شناخته می‌شود. پروتکل ۱ به‌نسبت دارای امنیت کمتری است و می‌بایست آن را غیرفعال کنید؛ مگر آن که بدانید مستقیماً به همان نیاز دارید. برای غیر فعال کردن این پروتکل باز به تنظیمات (SSH) در آدرس (/etc/ssh/sshd_config) می‌رویم و پروتکل را (uncomment) می‌کنیم:

# Protocol 2,1

 Protocol 2

 سپس (sshd) را (restart) می‌کنیم.

استفاده از پورت‌های کمتر شناخته

به‌طور پیش‌فرض (ssh) برای دریافت کانکشن‌ها از پورت ۲۲ استفاده می‌کند؛ اگر هکری بخواهد به سیستم شما نفوذ کند، به راحتی می‌تواند با اسکن کردن پورت ۲۲ به اطلاعات پی ببرد. بنابراین لازم است تا پورت آن را از حالت پیش فرض به یکی از پورت‌های دیگر تغییر دهیم. بسیاری از افراد پورت ۲۲۲۲ را به‌عنوان پورت جایگزین و یا ۸۰۸۰ را به‌عنوان پورت جایگزین برای (http) قرار می‌دهند. البته انتخاب پورت ۲۲۲۲ خیلی عاقلانه نیست؛ چرا که بدلیل شباهت به پورت ۲۲ هکرها حتماً آن را نیز اسکن می‌‍کنند. بهتر است پورتی را انتخاب کنید که کمتر شناخته شده باشد. برای این‌که تنظیمات پورت را تغییر دهید:

# Run ssh on a non-standard port:

Port 2345  #Change me

و سپس (ssh) را (restart) کنید. به یاد داشته باشید این تغییرات پورت را در فایروال و روترها نیز تأثیر گذار است و باید تغییراتی در آن‌ها نیز ایجاد کنید. برای مثال در (CentOS 7) نیاز است تا تغییرات زیر در فایروال انجام گیرد:

$ firewall-cmd --add-port 2345/tcp

$ firewall-cmd --add-port 2345/tcp --permanent

در سیستم‌عامل‌های (CentOS 6) و بالاتر نیاز است تا (selinux ، Labeling) را نیز تنظیم کنید.

$ semanage port -a -t ssh_port_t -p tcp 2345 #Change me

برای شناساندن پورت (ssh) به کلاینت نیز از دستور زیر استفاده می‌کنیم:

ssh -p 2345 myserver

فیلتر کردن (SSH) در فایروال

اگر شما تنها یک (IP) برای دسترسی (Remote) دارید، بهتر است تا دیگر ارتباط‌ها را در فایروال مثلا توسط (Iptable‌)ها  فیلتر کنید:

iptables -A INPUT -p tcp -s 72.232.194.162 --dport 22 -j ACCEPT

اگر شما نمی‌توانید آدرس (IP) مبدأ را محدود کنید و می‌بایست که پورت (SSH) را باز بگذارید، در آن صورت استفاده از (0Iptabl)ها می‌توانند جلوی حمله‌ی (Brute-force attack) را با مسدود کردن لاگین‌های تکراری از یک (IP) آدرس بگیرند.

iptables -A INPUT -p tcp --dport 22 -m state --state NEW -m recent --set --name ssh --rsource iptables -A INPUT -p tcp --dport 22 -m state --state NEW -m recent ! --rcheck --seconds 60 --hitcount 4 --name ssh --rsource -j ACCEPT

دستور اول (IP‌)هایی که ورود یا سعی بر ورود می‌کنند را رکورد و نگه‌داری می‌کند و دستور دوم چک می‌کند که ‌(IP) ورودی در۶۰ ثانیه بیش از ۴ باز قصد ورود نداشته باشد. آن‌گاه اجازه دسترسی به آن داده می‌شود.

استفاده از کلیدهای عمومی و خصوصی

استفاده از کلیدهای رمزدار شده برای احراز هویت دو هدف اصلی را تأمین می‌کند. اول این‌که دیگر نیازی به وارد کردن رمز عبورهای سخت و طولانی نیست و ثانیاً بدون وجود کلید خصوصی (private) دیگر نمی‌توان احراز هویت کرد و وارد شد؛ درصورتی‌که قبلا با داشتن رمز عبور هر کسی می‌توانست به سیستم وارد شود و خطر حمله‌های تشخیص رمز نیز کاهش می‌یابد.

ابتدا یک جفت کلید (public/private) را در کلاینت خود ایجاد کنید و سپس آن را با سرور به اشتراک بگذارید. توجه داشته باشید هر کلاینتی که نیاز به برقراری ارتباط با سرور داشته باشد نیاز به داشتن این کلید دارد.

ssh-keygen -t rsa

این دستور سبب ایجاد دو فایل مخفی با نام‌های (id_rsa) «کلید خصوصی»، و (id_rsa.pub) «کلید عمومی» در دایرکتوری (~/..ssh) می‌سازد.

توجه داشته باشید بهتر است تا این کلید رمز گردد؛ وگرنه کلید به دست هر کسی بیفتد و سیستم شما دسترسی پیدا کند می‌تواند با سرور ارتباط برقرار کند.

پس از آن برای (private key) حق و مجوز تعریف کنید:

chmod 700 ~/.sshchmod 600 ~/.ssh/id_rsa

پس از آن کلید عمومی را بر روی سرور ذخیره کنید و (authorized_key) را نصب کنید:

cat id_rsa.pub >> ~/.ssh/authorized_keys

و نهایتاً اگر (StrictModes) در (/etc/ssh/sshd_config) به‌عنوان پیش‌فرض (Y) تعریف شده باشد، نیاز است تا حقوق دسترسی آن را مشخص کنید:

chmod 700 ~/.sshchmod 600 ~/.ssh/authorized_keys

مطمئن شوید قسمت‌های درستی از (SELinux) تنظیم شده‌اند:

restorecon -Rv ~/.ssh

برای غیرفعال کردن (password) به‌طور کامل می‌توان از دستور زیر استفاده کرد:

# Disable password authentication forcing use of keys

PasswordAuthentication no

استفاده از پرسش‌های متداول

برای مثال در ابتدای برای ورود سوال پرسیده می‌شود که: سیستم‌عامل (CentOS) از ورژن (X) و ورژن پیش از آن (Y) استفاده می‌کند. ورژن (X) دارای یک نقص است، آن را به‌روز‌رسانی کنم؟

در پاسخ باید جواب منفی داده شود؛ چرا که طبق صورت سوال ورژن (X) آخرین نسخه است و بعد از آن ورژن جدیدی نیامده است.

فناوران شبکه سینداد (آهنگ نوآوری)

سینداد یعنی هدیه‌ی سیمرغ، یا فرزند سیمرغ؛ به عبارتی یعنی خود سیمرغ، با همه ی شگفتی هایش، اما جوانتر و سرزنده تر. و این چیزی است که ما سعی می کنیم در سینداد باشیم. از سال ۱۳۸۵ دانش مان را به صورت خدماتی در حوزه ی هاستینگ، شبکه و تولید نرم افزار در اختیار مشتریان مان قرار داده ایم و به این افتخار می کنیم که تک تک آنها تا به امروز همراه ما مانده اند. باور داریم که سینداد صرفاً یک شرکت نیست، بلکه نوعی باور است به ارائه ی شگفت انگیز از هر چیز.