تغییر پورت پیش فرض ssh سرور لینوکسی شما میتواند تا حدودی امنیت ماشین شما را را بالا ببرد. این جمله ایست که ما بعنوان نویسنده این مقاله آموزشی تا حدودی موافق و تا حدودی هم مخالف آن هستیم. مخالف هستیم چون اگر پورت پیش فرض را تغییر دهید یک هکر میتواند با اسکن روی سرور شما در صورتی که پالیسی خاصی توسط فایروال اعمال نشده باشد خیلی سریع شماره پورت ssh سرور شما را بدست بیاورد. همچنین موافق هستیم به این علت که با اعمال رول های درست توسط فایروال در صورت تغییر پورت ssh مهاجم به سختی پی به شماره پورت ssh سرور شما خواهد برد. و از همه مهمتر حملات کوری هستند که روی سرور ها انجام میشوند. یک مهاجم گاها به دنبال شما نیست و فقط رنجی از آی پی ها را با پورت پیش فرض اسکن میکند که تغییر شماره پورت میتواند مانع از انجام حملات کور روی سرور شما شود.
بیشتر بخوانید:
تغییر پورت ssh
تغییر شماره پورت بسیار ساده است و تنها با ویرایش یک عبارت، سپس ری استارت کردن سرویس ssh و باز کردن پورت مورد نظر در هر توزیعی از لینوکس قابل انجام است. دستورات زیر در سرورهای دبین، اوبونتو، ردهت، سنت او اس و فدورا یکسان است.
ابتدا با یک ویرایشگر متن به مسیر زیر رفته و فایل مورد نظر را باز کنید:
1 |
[root@arshatech ~]# vim /etc/ssh/sshd_config |
سپس خط زیر را در آن بیابید:
1 |
#Port 22 |
و آن را به صورت زیر و به دلخواه خود تغییر دهید. ما در اینجا شماره پورت را از ۲۲ به ۲۳۰۰ تغییر میدهیم:
1 |
Port 2300 |
حتما در نظر داشته باشید که بعد از تغییر پورت هرگز سرویس ssh را ری استارت نکنید. چرا که دسترسی شما از سرور بعلت بسته بودن پورت جدید توسط فایروال قطع خواهد شد. پس در این مرحله بسته به توزیع لینوکس و نسخه ای که از آن استفاده میکنید باید پورت مورد نظر را باز کنید. اگر شما از توزیع centos7 استفاده میکنید ابتدا باید selinux را غیرفعال و سپس توسط firewalld پورت مورد نظر خود را باز کنید.
از دست ندهید:
- آموزش غیر فعال کردن selinux به صورت موقت و دائم در RHEL/CentOS 7/6
- آموزش کامل کار با firewalld در سنت او اس ۷ (CentOS 7)
ابتدا به صورت زیر selinux را در سرور خود غیرفعال کنید:
1 |
[root@arshatech ~]# vim /etc/sysconfig/selinux |
1 2 3 4 5 6 7 8 9 10 11 |
# This file controls the state of SELinux on the system. # SELINUX= can take one of these three values: # enforcing - SELinux security policy is enforced. # permissive - SELinux prints warnings instead of enforcing. # disabled - No SELinux policy is loaded. SELINUX=disabled # SELINUXTYPE= can take one of three two values: # targeted - Targeted processes are protected, # minimum - Modification of targeted policy. Only selected processes are protected. # mls - Multi Level Security protection. SELINUXTYPE=targeted |
سپس سرور خود را ریبوت نمائید:
1 |
[root@arshatech ~]# reboot |
اگر شما از سنت او اس استفاده میکنید میتوانید پورت مورد نظر خود را از طریق سرویس firewalld به صورت زیر باز کنید:
1 |
[root@arshatech ~]# firewall-cmd --permanent --add-port=2300 |
1 |
success |
بعد از باز کردن پورت مورد نظر توسط فایرول حال برای اطمینان حاصل کردن از این امر میتوانید از دستورات netstat یا ss به صورت زیر استفاده کنید:
1 |
[root@arshatech ~]# netstat -tlpn | grep ssh |
1 2 |
tcp 0 0 0.0.0.0:2300 0.0.0.0:* LISTEN 2542/sshd tcp6 0 0 :::2300 :::* LISTEN 2542/sshd |
یا
1 |
[root@arshatech ~]# ss -tlpn | grep ssh |
1 2 |
LISTEN 0 128 *:2300 *:* users:(("sshd",pid=2542,fd=3)) LISTEN 0 128 :::2300 :::* users:(("sshd",pid=2542,fd=4)) |
حال با اطمینان پیدا کردن از باز بودن پورت مورد نظر برای سرویس ssh با خیالی آسوده سرویس ssh را ری استارت کنید:
1 |
[root@arshatech ~]# systemctl restart sshd |