مرجع تخصصی شبکه ایران

VoIP

بیش از 5 مورد

Vmware

بیش از 18 مورد

Virtualization

بیش از 18 مورد

Utility

بیش از 12 مورد

Mikrotik

بیش از 10 مورد

Microsoft

بیش از 8 مورد

Linux

بیش از 16 مورد

HPE

بیش از 5 مورد

Developers

بیش از 1 مورد

Cisco

بیش از 15 مورد

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

| تعداد کامنت 0
نحوه ایمن‌ سازی SSH در لینوکس

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

طبق گزارش‌های امنیتی، هزاران حمله روزانه به پورت‌های SSH پیش‌فرض رخ می‌دهد، بنابراین ایمن‌سازی آن ضروری است. در این مقاله جامع، گام‌به‌گام به بررسی روش‌های ایمن‌ سازی SSH در لینوکس می‌پردازیم، از تغییر پورت پیش‌فرض تا استفاده از کلیدهای عمومی/خصوصی. این راهنما بر اساس بهترین شیوه‌های امنیتی از منابع معتبر مانند Blumira، Red Hat و DigitalOcean تهیه شده و برای توزیع‌های لینوکس مانند Ubuntu، CentOS است. فرض می‌کنیم شما دسترسی root یا sudo به سرور دارید.

قبل از شروع، مطمئن شوید که OpenSSH (سرویس SSH پیش‌فرض در اکثر توزیع‌ها) نصب شده است. اگر نیست، با دستور sudo apt install openssh-server (در Ubuntu/Debian) یا sudo yum install openssh-server (در CentOS) آن را نصب کنید. سپس، سرویس را با sudo systemctl start ssh راه‌اندازی و با sudo systemctl enable ssh برای بوت خودکار فعال کنید.

۱. تغییر پورت پیش‌فرض SSH (از ۲۲ به پورت دلخواه)

پورت پیش‌فرض SSH شماره ۲۲ است که هدف اصلی اسکنرهای خودکار و بات‌نت‌ها قرار می‌گیرد. تغییر آن به یک پورت غیراستاندارد (مانند ۲۲۲۲ یا عددی بین ۱۰۲۴ تا ۶۵۵۳۵) می‌تواند حملات رندم را به طور قابل توجهی کاهش دهد، زیرا مهاجمان معمولاً پورت‌های پیش‌فرض را هدف قرار می‌دهند. این تغییر امنیت از طریق obscurity (پنهان‌کاری) فراهم می‌کند، اما نباید تنها لایه حفاظتی باشد.

گام‌های تغییر پورت:

۱. فایل پیکربندی SSH را ویرایش کنید:

sudo nano /etc/ssh/sshd_config

(یا از vi/emacs استفاده کنید).

۲. خط #Port 22 را پیدا کنید، کامنت (#) را بردارید و به Port 2222 (یا پورت دلخواه) تغییر دهید.

۳. سرویس SSH را ری‌استارت کنید:

sudo systemctl restart sshd

۴. فایروال را به‌روزرسانی کنید:

اگر از UFW (در Ubuntu) استفاده می‌کنید، دستور sudo ufw allow 2222/tcp را اجرا کنید و سپس sudo ufw reload.

برای firewalld (در CentOS)، از

sudo firewall-cmd –permanent –add-port=2222/tcp

و سپس

sudo firewall-cmd –reload

استفاده کنید.

۵. پورت قدیمی را مسدود کنید:

sudo ufw deny 22/tcp

یا معادل آن در firewalld.

نکته: پس از تغییر، در اتصال بعدی از کلاینت، پورت جدید را مشخص کنید، مثلاً ssh user@server-ip -p 2222. اگر SELinux فعال است (در توزیع‌هایی مانند CentOS)، پورت جدید را با sudo semanage port -a -t ssh_port_t -p tcp 2222 اضافه کنید.

۲. غیرفعال کردن ورود مستقیم با کاربر root

ورود مستقیم با root خطرناک است، زیرا اگر مهاجم رمز عبور root را حدس بزند، کنترل کامل سرور را به دست می‌آورد. غیرفعال کردن آن، مهاجمان را مجبور به استفاده از کاربران معمولی و سپس sudo می‌کند، که لایه امنیتی اضافی اضافه می‌کند. این تنظیم معمولاً پیش‌فرض است، اما بررسی کنید.

گام‌ها:

۱. فایل /etc/ssh/sshd_config را ویرایش کنید.

۲. خط #PermitRootLogin prohibit-password را پیدا کنید و به PermitRootLogin no تغییر دهید (یا اگر وجود ندارد، اضافه کنید).

۳. سرویس را ری‌استارت کنید:

sudo systemctl restart sshd

حالا، با یک کاربر غیر-root وارد شوید و از sudo برای کارهای اداری استفاده کنید. اگر نیاز به root دارید، از sudo -i استفاده کنید. همچنین، برای کاربران sudo، فایل /etc/sudoers را بررسی کنید تا فقط کاربران مجاز دسترسی داشته باشند.

۳. استفاده از احراز هویت مبتنی بر کلید (Key-Based Authentication)

احراز هویت با رمز عبور ضعیف است و مستعد brute-force. در عوض، از کلیدهای عمومی/خصوصی استفاده کنید، که امن‌تر است زیرا کلید خصوصی روی کلاینت محلی ذخیره می‌شود و عمومی روی سرور. این روش رمزنگاری‌شده است و حتی اگر کلید عمومی لو برود، بدون خصوصی بی‌فایده است.

گام‌های تنظیم کلیدها:

۱. روی کلاینت (کامپیوتر محلی) کلیدها را تولید کنید:

ssh-keygen -t ed25519 -C

“your_email@example.com” (ed25519 الگوریتم امن‌تری نسبت به RSA است). کلیدها در ~/.ssh/id_ed25519 (خصوصی) و ~/.ssh/id_ed25519.pub (عمومی) ذخیره می‌شوند. یک passphrase قوی برای کلید خصوصی وارد کنید. ۲. کلید عمومی را به سرور کپی کنید:

ssh-copy-id user@server-ip

  یا به صورت دستی:

cat ~/.ssh/id_ed25519.pub | ssh user@server-ip “mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys”

۳. مجوزها را تنظیم کنید: روی سرور،

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

اجرا کنید تا فقط مالک دسترسی داشته باشد. ۴. تست کنید: ssh user@server-ip اگر passphrase بخواهد، وارد شوید.

برای امنیت بیشتر، از الگوریتم‌های قوی مانند ed25519 یا RSA با حداقل ۴۰۹۶ بیت استفاده کنید. اگر چندین کلاینت دارید، کلیدها را revoke کنید اگر گم شوند.

۴. غیرفعال کردن احراز هویت با رمز عبور

پس از تنظیم کلیدها، ورود با رمز عبور را غیرفعال کنید تا فقط کلیدها مجاز باشند. این کار brute-force را کاملاً بی‌اثر می‌کند.

گام‌ها:

۱. فایل /etc/ssh/sshd_config را ویرایش کنید.

۲. خط #PasswordAuthentication yes را به PasswordAuthentication no تغییر دهید.

۳. #PubkeyAuthentication yes را مطمئن شوید که فعال است (کامنت نباشد).

۴. سرویس را ری‌استارت کنید.

همچنین، #ChallengeResponseAuthentication no را تنظیم کنید تا روش‌های دیگر غیرفعال شوند. حالا، فقط کاربران با کلید مجاز وارد می‌شوند.

۵. محدود کردن دسترسی کاربران و IPها

برای کاهش سطح حمله، فقط کاربران و IPهای خاص را مجاز کنید.

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

در /etc/ssh/sshd_config، خط AllowUsers user1 user2 را اضافه کنید (کاربران مجاز را لیست کنید). یا از گروه‌ها: AllowGroups sshusers و کاربران را به گروه اضافه کنید:

sudo usermod -aG sshusers username

محدود کردن IPها:

از فایروال:

sudo ufw allow from 192.168.1.100 to any port 2222 proto tcp

(فقط از IP خاص). یا در

sshd_config: Match Address 192.168.1.0/24

و سپس تنظیمات خاص.

۶. استفاده از ابزارهای اضافی برای امنیت بیشتر

Fail2Ban: این ابزار لاگ‌های SSH را نظارت می‌کند و IPهای مشکوک (مانند تلاش‌های ناموفق زیاد) را بلاک می‌کند. نصب:

sudo apt install fail2ban

پیکربندی در /etc/fail2ban/jail.local با فعال کردن jail sshd. دو-عامل احراز هویت (2FA): از Google Authenticator استفاده کنید. نصب:

sudo apt install libpam-google-authenticator

سپس در sshd_config، ChallengeResponseAuthentication yes و در /etc/pam.d/sshd اضافه کنید. پیام بنر: در sshd_config، Banner /etc/issue.net اضافه کنید و در فایل بنر، هشدار قانونی بنویسید. به‌روزرسانی منظم: همیشه SSH را به‌روز نگه دارید: sudo apt update && sudo apt upgrade openssh-server بررسی آسیب‌پذیری‌ها مانند CVEها ضروری است. لاگینگ و نظارت: لاگ‌ها را در /var/log/auth.log بررسی کنید و از ابزارهایی مانند Logwatch استفاده کنید.

ایمن‌سازی SSH فرآیندی مداوم است که با ترکیب تغییر پورت، استفاده از کلیدها، غیرفعال کردن root و رمز عبور، و ابزارهای کمکی مانند Fail2Ban، سرور شما را در برابر تهدیدات مقاوم می‌کند. همیشه پشتیبان از فایل sshd_config بگیرید (cp /etc/ssh/sshd_config /etc/ssh/sshd_config.bak) قبل از تغییرات، و تغییرات را در یک جلسه تست کنید تا قفل نشوید. اگر مشکلی پیش آمد، از کنسول سرور استفاده کنید. با پیروی از این راهنما، ریسک نفوذ را به حداقل برسانید و تمرکزتان را روی توسعه بگذارید. برای جزئیات بیشتر، منابع رسمی توزیع لینوکس‌تان را بررسی کنید.

دسته بندی ها , برچسب

اشتراک‌گذاری در :

دیدگاهها

هیچ دیدگاهی برای این محصول نوشته نشده است.

اولین نفری باشید که دیدگاهی را ارسال می کنید برای “نحوه ایمن‌ سازی SSH در لینوکس (از پورت تا کلید)”

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *