بازگشت به مجله
امنیتتیم فنی هایوهاست۹ دقیقه مطالعه

تغییر پورت SSH در اوبونتو و دبیان بدون قطع دسترسی

پورت پیشفرض ۲۲ را جابجا کنید و با تله سوکت اکتیویشن آشنا شوید؛ همان موردی که باعث میشود بیشتر راهنماهای قدیمی روی اوبونتو ۲۴.۰۴ به بعد کار نکنند.

دسترسی راه دور

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

1

تغییر پورت دقیقا چه چیزی را حل میکند

بیشتر تلاش های ورود به سرور شما کار آدم نیست؛ کار ربات هایی است که کل فضای آدرس اینترنت را روی پورت ۲۲ اسکن میکنند. وقتی سرویس را روی پورت دیگری میبرید، این ربات ها دیگر شما را پیدا نمیکنند و لاگ ها تمیز میماند. مزیت واقعی همینجاست: وقتی لاگ پر از نویز نباشد، یک تلاش مشکوک واقعی به چشم می آید.

اما اگر کسی سرور شما را هدف گرفته باشد، یک اسکن ساده پورت جدید را در چند ثانیه پیدا میکند. پس تغییر پورت را به عنوان لایه اول ببینید، نه جایگزین احراز هویت کلیدی و فایروال.

2

قبل از هر تغییری راه برگشت خود را باز بگذارید

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

اگر پنل مدیریت سرور شما کنسول یا VNC دارد، قبل از شروع مطمئن شوید که با آن میتوانید وارد شوید. این کار سی ثانیه وقت میگیرد و در بدترین حالت، ساعت ها دردسر را حذف میکند.

3

پورت جدید را در فایل پیکربندی تعریف کنید

در اوبونتو ۲۲.۰۴ به بعد و دبیان ۱۲ به بعد، فایل اصلی پیکربندی یک خط Include دارد که پوشه sshd_config.d را میخواند. به جای دست زدن به فایل اصلی، یک فایل جداگانه بسازید. اینطور در به روز رسانی های بعدی تنظیمات شما دست نخورده میماند.

عددی بین ۱۰۲۴ تا ۶۵۵۳۵ انتخاب کنید و مطمئن شوید سرویس دیگری روی آن گوش نمیدهد. از پورت های شناخته شده مانند ۸۰، ۴۴۳ یا ۳۳۰۶ فاصله بگیرید.

ساخت فایل پیکربندی اختصاصی
sudo nano /etc/ssh/sshd_config.d/99-custom-port.conf
محتوای فایل
Port 2222
در اوبونتو ۱۸.۰۴ و ۲۰.۰۴ که پوشه Include وجود ندارد
sudo nano /etc/ssh/sshd_config
# خط Port 22 را پیدا و به Port 2222 تغییر دهید
4

تله اصلی: سوکت اکتیویشن در نسخه های جدید

از اوبونتو ۲۲.۱۰ به بعد (و طبیعتا در ۲۴.۰۴ و ۲۶.۰۴)، سرویس SSH به صورت پیشفرض با سوکت سیستمی مدیریت میشود. یعنی این systemd است که پورت را باز میکند و بعد اتصال را به sshd تحویل میدهد. نتیجه اش این است که هر چه در sshd_config بنویسید نادیده گرفته میشود و سرویس همچنان روی ۲۲ گوش میدهد.

این دقیقا همان جایی است که بیشتر راهنماهای قدیمی از کار می افتند. اول بررسی کنید که سیستم شما در این وضعیت هست یا نه.

بررسی فعال بودن سوکت
systemctl is-enabled ssh.socket
اگر خروجی enabled بود، پورت سوکت را بازنویسی کنید
sudo systemctl edit ssh.socket
این بخش را در فایلی که باز میشود اضافه کنید
[Socket]
ListenStream=
ListenStream=2222
اعمال تغییرات
sudo systemctl daemon-reload
sudo systemctl restart ssh.socket
نمودار اینکه چرا در سیستم های جدید تنظیم Port در sshd_config اثری ندارد
در حالت سوکت اکتیویشن، این systemd است که پورت را باز میکند نه sshd.
  • خط خالی ListenStream= حتما لازم است؛ مقدار پیشفرض را پاک میکند.
  • اگر آن خط را ننویسید، سرور همزمان روی ۲۲ و پورت جدید گوش میدهد.
  • روش جایگزین: با دستور systemctl disable --now ssh.socket سوکت را غیرفعال و سرویس ssh.service را فعال کنید.
5

فایروال را قبل از ری استارت باز کنید

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

باز کردن پورت جدید در UFW
sudo ufw allow 2222/tcp
sudo ufw status
6

تست پیکربندی و اعمال نهایی

قبل از ری استارت، درستی فایل پیکربندی را بررسی کنید. اگر ایرادی در فایل باشد، این دستور آن را نشان میدهد و سرویس بدون خطا بالا نمی آید.

بعد از ری استارت، یک ترمینال جدید باز کنید و با پورت تازه وصل شوید. تا وقتی این اتصال موفق نشده، نشست قبلی را نبندید.

بررسی صحت پیکربندی
sudo sshd -t
اعمال و بررسی پورت در حال گوش دادن
sudo systemctl restart ssh
sudo ss -tlnp | grep sshd
تست اتصال از یک ترمینال جدید
ssh -p 2222 user@your-server-ip
7

بعد از جابجایی پورت چه کارهایی ارزش دارند

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

  • ورود با کلید عمومی را فعال و سپس PasswordAuthentication را غیرفعال کنید.
  • ورود مستقیم کاربر root را با PermitRootLogin no ببندید.
  • ابزار fail2ban را نصب کنید تا آدرس های مهاجم به صورت خودکار مسدود شوند.
  • اگر آی پی ثابت دارید، دسترسی به پورت SSH را فقط به همان آدرس محدود کنید.

پرسش های پرتکرار

چرا بعد از تغییر Port در فایل sshd_config هنوز پورت ۲۲ باز است؟

در اوبونتو ۲۲.۱۰ به بعد سرویس SSH با سوکت سیستمی مدیریت میشود و پورت را systemd باز میکند. باید مقدار ListenStream را در ssh.socket بازنویسی کنید یا سوکت را غیرفعال و سرویس ssh.service را فعال کنید.

آیا تغییر پورت SSH واقعا امنیت را بالا میبرد؟

به تنهایی خیر. این کار جلوی اسکنرهای خودکار را میگیرد و لاگ ها را تمیز نگه میدارد، اما در برابر حمله هدفمند محافظتی ایجاد نمیکند. ورود با کلید و غیرفعال کردن رمز عبور تاثیر واقعی دارند.

اگر بعد از تغییر پورت دسترسی خود را از دست دادم چه کنم؟

از کنسول یا VNC پنل سرور وارد شوید و مقدار قبلی را برگردانید. به همین دلیل تا وقتی اتصال با پورت جدید را تست نکرده اید، نشست فعلی خود را نبندید.

به راهنمای بیشتری نیاز دارید؟

تیم پشتیبانی هایوهاست برای انتخاب و مدیریت سرویس کنار شماست.

گفتگو با پشتیبانی

ادامه یادگیری

مشاهده همه