در پست قبل نحوه SSH زدن به سرور را بررسی کردیم . حالا قصد داریم نحوه تغییر پورت SSH را از پورت 22 به عدد دیگری بررسی کنیم. مورادی که پیش از انجام کار باید در نظر داشته باشید :
ss -tlpn| grep PORT-NUMBER
ابتدا به سرور وصل شده و فایل زیر را ادیت کنید :
nano /etc/ssh/sshd_config
در فایل باز شده #port 22 را پیدا کنید و خط هایلایت شده در تصویر را وارد نمایید. پورت مورد نظر ما برای جایگزین کردن پورت پیش فرض 2021 است. سپس با ctrl +x فایل را ذخیره و خارج شوید
حالا باید پورت جدید در SELINUX معرفی کرده و به جای پورت 22 BIND کنیم برای این کار از دستور زیر استفاده کنید: ( اگر دستور زیر خطا داد ابتدا پکیج policycoreutils را نصب کنید)
semanage port -a -t ssh_port_t -p tcp 2021
firewall-cmd –remove-service=ssh –permanent
در این مرحله باید پورت جدید را در فایروال اضافه نموده و پورت قبلی را حذف نمایید بدین ترتیب دسترسی برای پورت جدید ALLOW و برای 22 به صورت DENY میشود:
firewall-cmd –add-port=2021/tcp –permanent
در لینوکس برای اعمال تغییرات بعد از هر تغییر در کانفیگ فایل یک سرویس یا برنامه باید یکبار ریستارت شود لذا برای تغییر پورت SSH سرویس را یکبار ریستارت کنید:
systemctl restart sshd
حالا یک سشن جدید ایجاد کنید و تست کنید ارتباط با پورت جدید بدون مشکل برقرار گردد( بعد از ریستارت سشن فعلی از بین نمیرود و شما میتوانید در صورت وجود مشکل همچنان سیستم را کانفیگ نماید)
در مثال بالا به جای عدد 2021 هر پورتی به دلخواد شما و ازاد میباشد را انتخاب کنید.
حالا برای کانتکت شدن طبق تصویر از پورت جدید استفاده کنید و اگر از ترمینال استفاده میکنید با کامند زیر پورت را مشخص نمایید:
ssh root@IP-p 2021
مثال بالا برروی توزیع centos اجرا شده و در موارد جزیی ممکن است در برخی از distribution های دیگر متفاوت باشد.