اگر لاگ ورود سرورتان را باز کنید، احتمالا با هزاران تلاش ناموفق برای ورود روی پورت ۲۲ روبرو میشوید. تغییر پورت SSH این ترافیک را تقریبا صفر میکند، اما بگذارید از همان ابتدا صادق باشیم: این کار به تنهایی سرور شما را امن نمیکند. کاری که میکند کم کردن نویز و سخت تر کردن کار اسکنرهای خودکار است. در این راهنما پورت را جابجا میکنیم و مهمتر از آن، تله ای را بررسی میکنیم که در نسخه های جدید اوبونتو باعث میشود تغییر پورت هیچ اثری نداشته باشد.
تغییر پورت دقیقا چه چیزی را حل میکند
بیشتر تلاش های ورود به سرور شما کار آدم نیست؛ کار ربات هایی است که کل فضای آدرس اینترنت را روی پورت ۲۲ اسکن میکنند. وقتی سرویس را روی پورت دیگری میبرید، این ربات ها دیگر شما را پیدا نمیکنند و لاگ ها تمیز میماند. مزیت واقعی همینجاست: وقتی لاگ پر از نویز نباشد، یک تلاش مشکوک واقعی به چشم می آید.
اما اگر کسی سرور شما را هدف گرفته باشد، یک اسکن ساده پورت جدید را در چند ثانیه پیدا میکند. پس تغییر پورت را به عنوان لایه اول ببینید، نه جایگزین احراز هویت کلیدی و فایروال.
قبل از هر تغییری راه برگشت خود را باز بگذارید
بیشترین موردی که باعث قفل شدن مدیران بیرون سرور میشود، بستن ترمینال قبل از تست پورت جدید است. تا زمانی که اتصال جدید را با موفقیت تست نکرده اید، نشست فعلی خود را نبندید. اگر ارتباط قطع شود، همان نشست باز تنها راه اصلاح تنظیمات است.
اگر پنل مدیریت سرور شما کنسول یا VNC دارد، قبل از شروع مطمئن شوید که با آن میتوانید وارد شوید. این کار سی ثانیه وقت میگیرد و در بدترین حالت، ساعت ها دردسر را حذف میکند.
پورت جدید را در فایل پیکربندی تعریف کنید
در اوبونتو ۲۲.۰۴ به بعد و دبیان ۱۲ به بعد، فایل اصلی پیکربندی یک خط Include دارد که پوشه sshd_config.d را میخواند. به جای دست زدن به فایل اصلی، یک فایل جداگانه بسازید. اینطور در به روز رسانی های بعدی تنظیمات شما دست نخورده میماند.
عددی بین ۱۰۲۴ تا ۶۵۵۳۵ انتخاب کنید و مطمئن شوید سرویس دیگری روی آن گوش نمیدهد. از پورت های شناخته شده مانند ۸۰، ۴۴۳ یا ۳۳۰۶ فاصله بگیرید.
sudo nano /etc/ssh/sshd_config.d/99-custom-port.confPort 2222sudo nano /etc/ssh/sshd_config
# خط Port 22 را پیدا و به Port 2222 تغییر دهیدتله اصلی: سوکت اکتیویشن در نسخه های جدید
از اوبونتو ۲۲.۱۰ به بعد (و طبیعتا در ۲۴.۰۴ و ۲۶.۰۴)، سرویس SSH به صورت پیشفرض با سوکت سیستمی مدیریت میشود. یعنی این systemd است که پورت را باز میکند و بعد اتصال را به sshd تحویل میدهد. نتیجه اش این است که هر چه در sshd_config بنویسید نادیده گرفته میشود و سرویس همچنان روی ۲۲ گوش میدهد.
این دقیقا همان جایی است که بیشتر راهنماهای قدیمی از کار می افتند. اول بررسی کنید که سیستم شما در این وضعیت هست یا نه.
systemctl is-enabled ssh.socketsudo systemctl edit ssh.socket[Socket]
ListenStream=
ListenStream=2222sudo systemctl daemon-reload
sudo systemctl restart ssh.socket- خط خالی ListenStream= حتما لازم است؛ مقدار پیشفرض را پاک میکند.
- اگر آن خط را ننویسید، سرور همزمان روی ۲۲ و پورت جدید گوش میدهد.
- روش جایگزین: با دستور systemctl disable --now ssh.socket سوکت را غیرفعال و سرویس ssh.service را فعال کنید.
فایروال را قبل از ری استارت باز کنید
ترتیب کارها اینجا اهمیت دارد. اگر اول سرویس را ری استارت کنید و بعد سراغ فایروال بروید، در همان فاصله دسترسی خود را از دست میدهید. پس اول پورت جدید را باز کنید.
sudo ufw allow 2222/tcp
sudo ufw statusتست پیکربندی و اعمال نهایی
قبل از ری استارت، درستی فایل پیکربندی را بررسی کنید. اگر ایرادی در فایل باشد، این دستور آن را نشان میدهد و سرویس بدون خطا بالا نمی آید.
بعد از ری استارت، یک ترمینال جدید باز کنید و با پورت تازه وصل شوید. تا وقتی این اتصال موفق نشده، نشست قبلی را نبندید.
sudo sshd -tsudo systemctl restart ssh
sudo ss -tlnp | grep sshdssh -p 2222 user@your-server-ipبعد از جابجایی پورت چه کارهایی ارزش دارند
حالا که نویز کم شده، وقت آن است که لایه های اصلی امنیت را اضافه کنید. ورود با کلید به جای رمز عبور، مهمترین قدمی است که میتوانید بردارید و برخلاف تصور، پیاده سازی آن ده دقیقه بیشتر طول نمیکشد.
- ورود با کلید عمومی را فعال و سپس PasswordAuthentication را غیرفعال کنید.
- ورود مستقیم کاربر root را با PermitRootLogin no ببندید.
- ابزار fail2ban را نصب کنید تا آدرس های مهاجم به صورت خودکار مسدود شوند.
- اگر آی پی ثابت دارید، دسترسی به پورت SSH را فقط به همان آدرس محدود کنید.
پرسش های پرتکرار
چرا بعد از تغییر Port در فایل sshd_config هنوز پورت ۲۲ باز است؟
در اوبونتو ۲۲.۱۰ به بعد سرویس SSH با سوکت سیستمی مدیریت میشود و پورت را systemd باز میکند. باید مقدار ListenStream را در ssh.socket بازنویسی کنید یا سوکت را غیرفعال و سرویس ssh.service را فعال کنید.
آیا تغییر پورت SSH واقعا امنیت را بالا میبرد؟
به تنهایی خیر. این کار جلوی اسکنرهای خودکار را میگیرد و لاگ ها را تمیز نگه میدارد، اما در برابر حمله هدفمند محافظتی ایجاد نمیکند. ورود با کلید و غیرفعال کردن رمز عبور تاثیر واقعی دارند.
اگر بعد از تغییر پورت دسترسی خود را از دست دادم چه کنم؟
از کنسول یا VNC پنل سرور وارد شوید و مقدار قبلی را برگردانید. به همین دلیل تا وقتی اتصال با پورت جدید را تست نکرده اید، نشست فعلی خود را نبندید.
به راهنمای بیشتری نیاز دارید؟
تیم پشتیبانی هایوهاست برای انتخاب و مدیریت سرویس کنار شماست.