پورت مثل یک رابط، درگاه یا ساده تر یک واسط است که به عنوان پیش نیاز اتصال به SSH مورد استفاده قرار میگیرد. در سرورهای لینوکس معمولا از پورت 22 استفاده می شود تا به سرور وصل شویم. پورت 22 به طور پیش فرض در سرورهای لینوکسی فعال است. اما موضوع این است که این پورت مورد حملات زیادی قرار می گیرد که نوع این حملات بیشتر از نوع Brute Force است که با هدف هک و شناسایی پسورد روت سرور انجام می شود.
به زبان ساده، فردی که از آن به عنوان مهاجم یاد می کنیم، با استفاده از IP های تصادفی و نام کاربری root و پورت 22 که مقادیر پیش فرض هستند، رمزهای عبور مختلف را تست می کند تا بتوانند به سرور شما دسترسی پیدا کنند.
تغییر پورت ssh سرور
با کمک یک فایروال، می توانید تلاش برای اتصال را پس از 3 ورود ناموفق، مسدود کنید. اما باز هم در اینصورت منابع شبکه شما درگیر حملات هستند و حتی ممکن است از این روش برای حملات شبکه استفاده شود! این نوع حملات به گونه ای عمل می کنند که سرور شما را کاملا درگیر و مشغول میکنند در نهایت سرور با کمبود منابع مواجه می شود و حتی ممکن است برای لحظات تا ساعاتی از دسترس خارج گردد به این نوع اتک ها، حملات DDoS می گویند. راه حل تمام این مشکلات تغییر پورت SSH است برای همین تصمیم گرفتیم در این مقاله نحوه تغییر پورت SSH در سرور مجازی لینوکس را به طور کامل آموزش دهیم.
آموزش عوض کردن پورت اتصال به سرور مجازی
پورت SSH در سرور مجازی لینوکس در فایل sshd_config تعریف شده است. این فایل در مسیر /etc/ssh/sshd_config قرار دارد.
برای تغییر SSH ابتدا باید ترمینال لینوکس را باز کنید و سپس با استفاده از SSH به سرور خود متصل شوید. با ویرایش فایل sshd گزینه پورت را تنظیم کنید سپس فایل را ذخیره کنید. باید فایل را ویرایش کرده و گزینه port را تنظیم کنید که از طریق دستور زیر امکان پذیر است:
nano /etc/ssh/sshd_config
پس از انجام این کار، باید به دنبال عبارت port 22 یا #port 22 باشید. رایج ترین پورتی که به جای پورت 22 استفاده می شود پورت 2222 است که برای تنظیم پورت روی 2222 می توانید آن را به صورت زیر وارد کنید:
port2222
البته این را در نظر داشته باشید چون پورت اتصال به دایرکت ادمین نیز 2222 است ممکن است در برخی فایروال ها مشکل ایجاد کند پس بهتر است پورت دیگری را انتخاب کنید.
شما می توانید پس از انجام دادن این مرحله، تغییرات اعمال شده را در فایل مربوطه ذخیره کنید و فایل را ببندید.
نکات مهم درباره عوض کردن پورت shh سرور
پورت های 0 تا 1023 در سیستم برای سرویس های مختلف محافظت می شوند و شما نمی توانید از این پورت ها استفاده کنید. مثلا پورت 80 برای http، پورت 443 برای https و … است و باید از بین 1024 تا 65535 را انتخاب کنید.
در هنگام تعویض پورت باید به یک نکته مهم توجه کنید، یعنی اگر به صورت موقت selinux را خاموش نکنید و سپس سرویس SSH را مجددا راه اندازی کنید، دسترسی شما از طریق SSH برای همیشه قطع خواهد شد.
غیرفعال کردن Selinux
برای خاموش کردن Selinux می توانید از دستور زیر استفاده کنید:
nano /etc/selinux/config
برای تغییر دادن پورت به 2222 یا هر پورت دلخواه دیگری باید دستور زیر را تایپ کنید:
# semanage port -a -t ssh_port_t -p tcp 2222
تنظیمات فایروال
پس از طی مراحل فوق، کاری که باید انجام دهید این است که پذیرش درخواست ها از پورت SSH 2222 را در سرور مجازی لینوکس خود بروز کنید. اگر از UFW روی سرور مجازی اوبونتو و دبیان لینوکس استفاده می کنید، دستور زیر می تواند به شما کمک کند:
$ sudo ufw allow 2222/tcp
اما هنگام اجرای دستور به این نکته توجه داشته باشید که اگر دسترسی غیر از root استفاده می کنید، از دستور sudo استفاده کنید، اما اگر از دسترسی root استفاده می کنید، نیازی به وارد کردن دستور sudo نیست. ساختار مربوط به iptables به شرح زیر است:
sudo /sbin/iptables -A INPUT -m state –state NEW -m tcp -p tcp –dport 2222 -j ACCEPT
اگر از سیستم عامل های FreeBSD / OpenBSD / NetBSD Unix استفاده می کنید، ساختار فایروال pf در pf.conf به شرح زیر است:
pass log on $ext_if proto tcp to any port 2222 keep state
برای باز کردن پورت جدید، میتوانید دستورات زیر را با کمک فایروال روی توزیعهای لینوکس Fedora/CentOS/RHEL/Oracle اجرا کنید:
$ sudo firewall-cmd –permanent –zone=public –add-port=2222/tcp $ sudo firewall-cmd –reload
فراموش نکنید که تنظیمات فایروال خود را به روز کنید. در غیر این صورت دستورات اجرا شده می توانند دسترسی SSH شما را غیرفعال کنند.
پس از تمام این موارد، باید سرویس sshd خود را مجددا راه اندازی کنید، برای راه اندازی مجدد sshd، باید از دستور زیر در توزیع های مختلف لینوکس مانند CentOS/RHEL/Fedora استفاده کنید:
$ sudo service sshd restart
اگر از FreeBSD Unix استفاده می کنید، باید دستور زیر را تایپ کنید:
$ sudo service sshd restart
مراقب باشید که پورت TCP 2222 باز باشد و برای این کار باید از دستور netstat یا دستور ss استفاده کنید.
ss -tulpn | grep 2222 netstat -tulpn | grep 2222
برای استفاده از پورت SSH جدید تعیین شده با خط فرمان، باید توجه داشته باشید که ساختار آن باید یکی از موارد زیر باشد:
ssh -p {port} user@server sftp -P {port} openssh-server scp -P {port} source target scp -P {port} /path/to/foo user@server:/dest/
جمع بندی
در این مقاله نحوه تغییر پورت SSH در سرور مجازی لینوکس را به صورت گام به گام توضیح دادیم که چطور پورت پیش فرض ssh سرور مجازی یا فیزیکی را تغییر دهید و برای اتصال به سرور از پورتی بجز پورت 22 استفاده کنید و تمامی نکات در این زمینه را بیان کردیم. پس از مطالعه مقاله نکات و هشدارهایی را که به طور کامل بیان کردیم را رعایت کنید تا مشکلی پیش نیاید در صورت نیاز به راهنمایی بیشتر در این زمینه می توانید در قسمت نظرات از ما بخواهید تا در اسرع وقت شما را راهنمایی کنیم.
پاسخ دهی