شرح مسئله

برای عوض کردن پورت دیفالت ssh دلایل گوناگونی وجود دارد از جمله:

۱- گاهی مخابرات لطف میکند پورت ۲۲ را فیلتر میکند و وای بر آن سیس‌ادمینی که به سرورش اس‌اس‌اچ نداشته باشد.

۲- عوض کردن دیفالت‌ها اگر به صورت کیلین انجام شود کار خوبیست مخصوصن اگر در مفروضات آقا یا خانم کرکر خللی ایجاد کند.

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

تغییر پورت

در این گام باید به سرویس ssh بگویید رو پورتی غیر از پورت ۲۲ لیسن کند. برای این منظور فایل زیر را باز کنید:

nano /etc/ssh/sshd_config

دقت کنید در این دایرکتوری فایل دیگری با نام ssh_config هم وجود دارد. این فایل تنظیمات پیشفرض برای کلاینت ssh است نه سرور. ما با آن کاری نداریم. این خط را پیدا کنید:

Port 22

و این عدد را به مقدار دلخواه (ترجیحا پورتی که در حال استفاده یا رزرو نباشد) تغییر دهید. حالا سرویس را ریست کنید:

service ssh restart

تست تنظیمات سرویس

تا وقتی مطمئن نشدید تنظیمات جدید به درستی اعمال شده و کار می‌کند session را نبندید چون اگر درست نباشد ممکن است هیچ راهی برای برگرداندن تنظیمات نداشته باشید. روی کلاینت خود به سرور ssh بزنید با این تفاوت که -p و پورت جدید را هم در انتهای آن بذارید:

ssh username@hostname -p portnumber

تنظیمات فایروال

روی ترافیک inbound سرور پورت ۲۲ را ببندید و پورت جدید را باز کنید. نحوه اعمال این تنظیم می‌تواند بسته به شرایط فرق کند. اگر شما یک فایروال سخت‌افزاری دارید یه طور است. اگر روی خود سیستم‌عامل iptable تنظیم می‌کنید یه طور است. اگر از security groupهای سرویس‌های کلود استفاده می‌کنید هم طور دیگریست.

تست تنظیمات فایروال

به پورت ۲۲ تل‌نت بزنید. نباید وصل شود:

telnet hostname 22