: :
مانده تا پایان تخفیف
فقط تا آخر امروز
فقط امروز
محمد نصیری
بنیانگذار انجمن تخصصی فناوری اطلاعات ایران ، هکر کلاه خاکستری ، کارشناس امنیت اطلاعات و ارتباطات

آموزش راه‌ اندازی SSH سرور در لینوکس (سناریو محور + نکات امنیتی)

پروتکل SSH (Secure Shell) یک پروتکل ارتباطی امن است که برای دسترسی به سرورهای لینوکسی از راه دور استفاده می‌شود. این پروتکل جایگزین امن‌ تری برای روش‌های قدیمی مانند Telnet و RSH است که اطلاعات را بدون رمزگذاری ارسال می‌کردند. SSH از رمزنگاری قوی برای انتقال داده‌ها استفاده می‌کند و می‌تواند برای مدیریت سرورها، اجرای دستورات از راه دور، انتقال امن فایل‌ها و حتی ایجاد تونل‌های رمزگذاری‌ شده به کار رود. به دلیل امنیت بالای این پروتکل، استفاده از آن در سرورهای لینوکسی امری ضروری محسوب می‌شود و اکثر توزیع‌های لینوکس به‌صورت پیش‌فرض از آن پشتیبانی می‌کنند.

مجموعه دوره آموزش لینوکس (Linux) و دواپس - مقدماتی تا پیشرفته

راه اندازی SSH سرور لینوکس

1. کاربردهای اصلی SSH

SSH نه‌ تنها برای ورود امن به سرورها از راه دور مورد استفاده قرار می‌گیرد، بلکه ابزارهای جانبی مانند SCP و SFTP نیز برای انتقال فایل‌ ها بر بستر SSH طراحی شده‌ اند. بسیاری از مدیران سرور برای مدیریت راه دور و انجام وظایف سیستمی از SSH بهره می‌برند. همچنین، SSH در شبکه‌ های کامپیوتری برای ایجاد تونل‌ های امن، فوروارد کردن پورت‌ها (Port Forwarding) و حتی اجرای دستورات توزیع‌ شده در چندین سرور استفاده می‌شود. در سازمان‌ها، استفاده از SSH به‌عنوان یک روش استاندارد برای مدیریت سیستم‌ های مبتنی بر لینوکس و یونیکس پذیرفته شده است.

۲. سناریوی عملی: راه‌اندازی یک SSH سرور امن

فرض کنید شما یک سرور لینوکس دارید که از راه دور باید به آن دسترسی داشته باشید. سرور شما ممکن است در یک دیتاسنتر، یک محیط ابری مثل AWS، یا در یک شبکه داخلی قرار داشته باشد. برای مدیریت آن، نیاز به یک ارتباط امن از طریق SSH دارید. در این سناریو، ابتدا نصب SSH Server را انجام می‌ دهیم، سپس تنظیمات امنیتی را اعمال می‌کنیم تا خطر حملات کاهش پیدا کند. در نهایت، روش‌ های تست و اطمینان از صحت کارکرد SSH را بررسی خواهیم کرد. این سناریو برای مدیران شبکه، متخصصان امنیت و توسعه‌دهندگان که نیاز به کنترل از راه دور سرورها دارند بسیار مفید خواهد بود.

۳. نصب OpenSSH Server در توزیع‌های مختلف لینوکس

بسته به توزیع لینوکس، ممکن است بسته OpenSSH Server به‌صورت پیش‌فرض نصب باشد یا نیاز به نصب دستی داشته باشد. در Ubuntu و Debian-based (مانند Kali، Ubuntu Server)، این بسته از طریق apt قابل نصب است. در CentOS و RHEL از yum یا dnf استفاده می‌شود و در Arch Linux هم pacman ابزار مدیریت بسته است. پس از نصب، سرویس sshd باید فعال و اجرا شود. اگر در حال استفاده از یک سرور ابری (Cloud VPS) هستید، ممکن است ارائه‌ دهنده‌ ی خدمات شما به‌طور پیش‌فرض SSH را نصب کرده باشد، اما بهتر است تنظیمات امنیتی را بررسی کنید.

دستورات نصب بر اساس توزیع:

در اوبونتو و Debian-based

sudo apt update
sudo apt install openssh-server -y

در CentOS و RHEL

sudo yum install -y openssh-server
sudo systemctl enable sshd
sudo systemctl start sshd

در Arch Linux

sudo pacman -S openssh
sudo systemctl enable sshd
sudo systemctl start sshd

پس از نصب، می‌ توانید با دستور systemctl status sshd وضعیت سرویس را بررسی کنید.

۴. بررسی وضعیت SSH Server و اطمینان از عملکرد آن

بعد از نصب، برای اطمینان از اجرای صحیح سرویس SSH، از دستور systemctl status sshd استفاده کنید. اگر سرویس SSH فعال نباشد، باید آن را به‌صورت دستی استارت کنید. برخی از سیستم‌ عامل‌ ها مانند CentOS و RHEL به دلیل تنظیمات امنیتی پیش‌فرض، ممکن است فایروال فعال داشته باشند که مانع دسترسی به SSH می‌شود. در این صورت، باید تنظیمات فایروال را بررسی و پورت موردنظر را باز کنید. همچنین، بررسی لاگ‌های سیستم (/var/log/auth.log در Debian و /var/log/secure در CentOS) می‌تواند به شما در رفع مشکلات احتمالی کمک کند.

۵. تنظیمات امنیتی SSH

برای افزایش امنیت، توصیه می‌شود تنظیمات پیش‌فرض SSH را تغییر دهید. یکی از مهم‌ ترین اقدامات، غیر فعال کردن ورود مستقیم با کاربر Root است، زیرا حساب Root یکی از اهداف اصلی حملات Brute Force محسوب می‌شود. علاوه بر این، تغییر پورت پیش‌فرض SSH از ۲۲ به یک عدد دیگر می‌تواند باعث کاهش احتمال حملات خودکار شود. همچنین، برای جلوگیری از ورود کاربران غیرمجاز، می‌توان لیستی از کاربران مجاز (AllowUsers) را در تنظیمات SSH مشخص کرد. یکی از روش‌ های بسیار امن، استفاده از احراز هویت مبتنی بر کلید عمومی (Public Key Authentication) است که می‌توان به‌ طور کامل ورود با رمز عبور را غیرفعال کرد.

تنظیمات امنیتی پیشنهادی در /etc/ssh/sshd_config

PermitRootLogin no
Port 2222
PasswordAuthentication no
PubkeyAuthentication yes
AllowUsers admin

بعد از اعمال تغییرات، حتماً سرویس SSH را ری‌ استارت کنید:

sudo systemctl restart sshd

۶. نحوه تست اتصال SSH

بعد از انجام تنظیمات، می‌توانید از طریق کلاینت SSH روی یک سیستم دیگر اتصال را بررسی کنید. در سیستم‌ عامل‌ های لینوکس و macOS، دستور ssh به‌صورت پیش‌ فرض در ترمینال موجود است. در ویندوز نیز می‌توان از PowerShell یا نرم‌افزارهایی مانند PuTTY استفاده کرد. برای تست اتصال، کافی است دستور زیر را اجرا کنید:

ssh user@server_ip -p 2222

اگر کلید SSH را روی سرور تنظیم کرده باشید، نیازی به وارد کردن رمز عبور نخواهید داشت. در غیر این صورت، پس از وارد کردن رمز عبور، باید صفحه ترمینال سرور را مشاهده کنید.

سوالات متداول

اگر دسترسی به SSH را از دست بدهم چه کار کنم؟

اگر تنظیمات اشتباه باعث قطع دسترسی شما شده است، می‌توانید از کنسول مدیریتی سرور (مثلاً کنسول VPS) استفاده کنید و فایل تنظیمات /etc/ssh/sshd_config را به حالت قبل بازگردانید.

چگونه می‌توانم تعداد ورودهای ناموفق به SSH را مشاهده کنم؟

از دستور زیر برای مشاهده تلاش‌های ناموفق ورود استفاده کنید: sudo cat /var/log/auth.log | grep "Failed password" در CentOS مسیر لاگ‌ها /var/log/secure است.

چطور می‌توانم SSH را روی یک کاربر خاص محدود کنم؟

در فایل /etc/ssh/sshd_config مقدار زیر را اضافه کنید: AllowUsers admin سپس سرویس را ری‌استارت کنید.

چرا کلیدهای SSH روی سرور کار نمی‌کنند؟

اطمینان حاصل کنید که پرمیژن‌ها به‌درستی تنظیم شده‌اند: chmod 700 ~/.ssh chmod 600 ~/.ssh/authorized_keys همچنین بررسی کنید که PubkeyAuthentication در sshd_config روی yes تنظیم شده باشد.


محمد نصیری
محمد نصیری

بنیانگذار انجمن تخصصی فناوری اطلاعات ایران ، هکر کلاه خاکستری ، کارشناس امنیت اطلاعات و ارتباطات

محمد نصیری هستم ، بنیانگذار انجمن تخصصی فناوری اطلاعات ایران و مجموعه توسینسو ، هکر قانونمند و کارشناس امنیت سایبری ، سابقه همکاری با بیش از 80 سازمان دولتی ، خصوصی ، نظامی و انتظامی در قالب مشاور ، مدرس و مدیر و ناظر پروژه ، مدرس دوره های تخصص شبکه ، امنیت ، هک و نفوذ ، در حال حاضر در ایران دیگه رسما فعالیتی غیر از مشاوره انجام نمیدم ، عاشق آموزش و تدریس هستم و به همین دلیل دوره های آموزشی که ضبط می کنم در دنیا بی نظیر هستند.

نظرات