بیش از 5 مورد
بیش از 18 مورد
بیش از 18 مورد
بیش از 12 مورد
بیش از 10 مورد
بیش از 8 مورد
بیش از 16 مورد
بیش از 5 مورد
بیش از 1 مورد
بیش از 15 مورد
در دنیای دیجیتال امروز، پروتکل 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 شماره ۲۲ است که هدف اصلی اسکنرهای خودکار و باتنتها قرار میگیرد. تغییر آن به یک پورت غیراستاندارد (مانند ۲۲۲۲ یا عددی بین ۱۰۲۴ تا ۶۵۵۳۵) میتواند حملات رندم را به طور قابل توجهی کاهش دهد، زیرا مهاجمان معمولاً پورتهای پیشفرض را هدف قرار میدهند. این تغییر امنیت از طریق 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 را حدس بزند، کنترل کامل سرور را به دست میآورد. غیرفعال کردن آن، مهاجمان را مجبور به استفاده از کاربران معمولی و سپس sudo میکند، که لایه امنیتی اضافی اضافه میکند. این تنظیم معمولاً پیشفرض است، اما بررسی کنید.
۱. فایل /etc/ssh/sshd_config را ویرایش کنید.
۲. خط #PermitRootLogin prohibit-password را پیدا کنید و به PermitRootLogin no تغییر دهید (یا اگر وجود ندارد، اضافه کنید).
۳. سرویس را ریاستارت کنید:
sudo systemctl restart sshd
حالا، با یک کاربر غیر-root وارد شوید و از sudo برای کارهای اداری استفاده کنید. اگر نیاز به root دارید، از sudo -i استفاده کنید. همچنین، برای کاربران sudo، فایل /etc/sudoers را بررسی کنید تا فقط کاربران مجاز دسترسی داشته باشند.
احراز هویت با رمز عبور ضعیف است و مستعد 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های خاص را مجاز کنید.
sudo usermod -aG sshusers username
sudo ufw allow from 192.168.1.100 to any port 2222 proto tcp
(فقط از IP خاص). یا درsshd_config: Match Address 192.168.1.0/24
و سپس تنظیمات خاص.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) قبل از تغییرات، و تغییرات را در یک جلسه تست کنید تا قفل نشوید. اگر مشکلی پیش آمد، از کنسول سرور استفاده کنید. با پیروی از این راهنما، ریسک نفوذ را به حداقل برسانید و تمرکزتان را روی توسعه بگذارید. برای جزئیات بیشتر، منابع رسمی توزیع لینوکستان را بررسی کنید.
مرجع تخصصی شبکه ایران ؛ جایی که دانش، تجربه و منابع ارزشمند دنیای شبکه به زبان ساده و کاربردی در اختیار علاقهمندان، دانشجویان و متخصصان این حوزه قرار میگیرد.
طراحی شده توسط تیم فوژان
دیدگاهها
هیچ دیدگاهی برای این محصول نوشته نشده است.