تغییر پورت SSH لینوکس برای امنیت بیشتر
- مقالات آموزشی امنیت وردپرس
- بروزرسانی شده در
اگه برای بار اول لینوکس رو نصب کرده باشید طبیعتاً برای ورود به کنسول لینوکس خودتون باید با پورت ۲۲ وارد ترمینال لینوکس بشید. امروز قصد داریم نحوه تغییر پورت SSH رو به شما وردپرسیها و لینوکسیهای عزیز توضیح بدیم. 🙂
اگه از لینوکس برای کارهای شخصی خودتون استفاده میکنید اصلاً مهم نیست که از چه پورتی استفاده میکنید. اما اگه لینوکس رو برای سرور مجازی یا سرور اختصاصی خودتون استفاده میکنید باید حتماً امنیت سیستم رو مد نظر داشته باشید. یکی از مهمترین مسائل امنیتی در لینوکس، جلوگیری از ورود اشخاص به ترمینال لینوکس شماست.
از روشهای جلوگیری از ورود اشخاص و هکرها، تغییر پورت در هر سیستم هست. دلیل این که میتونید Port ورود خودتون رو تغییر بدید اینه که با تغییر پورت، شما آدرس ورود به کنسول سیستم رو تغییر دادید. پس میتونید با خیال راحتتری به مدیریت سیستم عامل خودتون بپردازید. امروز قصد داریم شما رو با نحوه تغییر پورت SSH آشنا کنیم.
آنچه در این مقاله میخوانید
تغییر پورت SSH لینوکس
برای تغییر پورت SSH لینوکس ابتدا باید وارد ترمینال بشید. اگه نمیدونید چطور وارد سیستم بشید، از آموزش ورود به SSH لینوکس استفاده کنید.

پس از وارد شدن به کنسول یا ترمینال لینوکس، میتونید با اجرای دستور زیر وارد فایل تنظیمات اصلی SSH لینوکس بشید.
vi /etc/ssh/sshd_config
حالا وارد ویرایشگر فایل خواهید شد. به دنبال خط زیر بگردید:
# Port 22
علامت # ابتدای این خط رو حذف کنید. برای اینکه بتونید ویرایش رو شروع کنید باید دکمه i رو روی کیبورد خودتون فشار بدید. بعد از حذف این علامت از ابتدای خط، کافیه عدد ۲۲ رو به شماره دلخواه خودتون تغییر بدید. پیشنهاد میکنیم از یک پورت پنج رقمی آزاد (مانند 49160) استفاده کنید چون ممکنه پورتهای دیگه روی سیستم شما مشغول باشند یا توسط هکرها اسکن بشن.

حتماً قبل از ریاستارت کردن سرویس SSH، باید پورت جدیدی که انتخاب کردید رو در فایروال سرور خودتون (مانند UFW در اوبونتو یا Firewalld در سنتاواس و آلمالینوکس) باز کنید. در غیر این صورت، پس از خروج، دسترسی شما به سرور به صورت کامل قطع میشه.
دکمه Esc کیبورد رو فشار بدید و دستور زیر رو برای ذخیره تغییرات و خروج تایپ کنید:
:wq
با این کار از ویرایشگر vi خارج میشید. حالا دستور زیر رو در SSH وارد کنید تا سرویس SSH ریست بشه و تغییرات اعمال بشن:
systemctl restart sshd
حالا برای ورود به SSH باید به این صورت اقدام کنید:
ssh root@192.168.0.1 -p 49160
آموزش باز کردن پورت جدید در فایروال UFW (مخصوص اوبونتو و دبیان)
بزرگترین اشتباه کاربران اینه که پورت رو تغییر میزنن اما فایروال رو باز نمیکنند. قبل از این که سرویس SSH رو ریاستارت کنید، پورت جدید رو در فایروال UFW آزاد کنید تا دسترسی سرور قطع نشه. برای این کار کافیه دستور زیر رو در ترمینال وارد کنید:
ufw allow 49160/tcp
بعد از وارد کردن این دستور، برای اطمینان از اعمال تغییرات روی فایروال، دستور ریلود کردن فایروال رو به این صورت اجرا کنید:
ufw reload

آموزش باز کردن پورت جدید در فایروال Firewalld (مخصوص CentOS و آلمالینوکس)
در این بخش برای مدیران سرورهای مبتنی بر ردپت (RedHat) مثل سنتاواس، آلمالینوکس و راکی لینوکس توضیح میدیم که چطور پورت پنجرقمی جدید رو باز کنند. برای این کار باید با ابزار firewall-cmd، پورت رو به صورت دائمی (Permanent) تعریف کنید. دستور زیر رو وارد کنید:
firewall-cmd --permanent --zone=public --add-port=49160/tcp
حالا برای این که فایروال پورت جدید رو بشناسه و تغییرات ثبت بشن، باید یک بار اون رو ریلود کنید. این کار با دستور زیر انجام میشه:
firewall-cmd --reload

تغییر پورت SSH در نرمافزار پوتی (PuTTY) برای ویندوزیها
بعد از این که تمام مراحل رو با موفقیت انجام دادید و پورت تغییر کرد، کاربران ویندوزی برای ورود مجدد به سرور نباید مثل قبل عمل کنند. اگه با همان تنظیمات قبلی اقدام کنید، نرمافزار خطا صادر میکنه و متصل نمیشه.
برنامه PuTTY رو باز کنید و در کادر Host Name مثل همیشه آیپی سرور خودتون رو بنویسید. اما حالا باید در کادر Port، عدد ۲۲ رو پاک کنید و شماره پورت جدیدی که تنظیم کردید (مثلاً 49160) رو وارد کنید. در نهایت برای این که هر بار مجبور به تایپ این عدد نباشید، از بخش Saved Sessions یک اسم انتخاب کنید و روی دکمه Save کلیک کنید.

نحوه تغییر پورت SSH در پنلهای ابر سرور (مثل ابر آروان یا دیجیتالاوشن)
گاهی اوقات فایروالهای سختافزاری یا شبکه خود شرکتهای ارائهدهنده سرور مجازی، جلوی پورتهای جدید رو میگیرند و مانع ورود میشن. این یعنی علاوه بر فایروال داخلی لینوکس، یک فایروال بیرونی هم وجود داره.
به مدیران وبسایت یاد میدیم که در چنین شرایطی حتماً وارد پنل کاربری هاستینگ یا شرکت ابری خودتون بشید و به بخش مدیریت سرور و قسمت Security Groups یا Firewall برید. در این بخش باید یک قانون جدید (Inbound Rule) تعریف کنید و شماره پورت جدید رو در شبکه ابر هم مجاز کنید تا ترافیک ورودی به راحتی به سرور شما برسه.
غیرفعال کردن ورود مستقیم با کاربر روت (Root) برای امنیت دوبرابر
تغییر پورت عالیه، اما برای امنیت کامل کافی نیست. پیشنهاد میشه بعد از تغییر پورت، قابلیت ورود مستقیم با کاربر اصلی روت رو کاملاً غیرفعال کنید. با این کار، حتی اگه هکرها پورت جدید سرور رو هم پیدا کنند، چون نام کاربری اصلی (Root) مسدود شده، نمیتونند با حملات بروتفورس وارد بشن.
برای این کار، دوباره با دستور vi /etc/ssh/sshd_config وارد فایل تنظیمات بشید و به دنبال عبارت زیر بگردید: PermitRootLogin yes
کافیه کلمه yes رو به no تغییر بدید، فایل رو ذخیره کنید و یک بار دیگه با دستور systemctl restart sshd سرویس رو ریاستارت کنید. از این به بعد، مدیران وبسایت باید ابتدا با یک نام کاربری معمولی وارد بشن و سپس با دستور su - به دسترسی روت برسند.
عیبیابی و نجات سرور در صورت قطع شدن دسترسی بعد از تغییر پورت
اگه حین انجام مراحل اشتباهی رخ داد یا فراموش کردید فایروال رو باز کنید و بعد از خروج، دسترسی شما به سرور کاملاً قطع شد، اصلاً نیازی به نصب مجدد سیستمعامل نیست. برای حل این مشکل یک راهکار سریع وجود داره.
باید سریعاً وارد پنل مدیریت سرور مجازی خودتون در شرکت هاستینگ بشید و روی گزینهای به نام کنسول VNC یا کنسول نجات کلیک کنید. این کنسول بدون نیاز به شبکه و SSH، تصویر مستقیم سرور رو به شما ارائه میکنه. اونجا میتونید با نام کاربری روت وارد بشید، فایروال رو موقتاً خاموش کنید یا پورت رو اصلاح کنید تا دسترسی مجدداً برقرار بشه.
بررسی لاگهای لینوکس برای دیدن تلاشهای ناکام هکرها
برای این که متوجه بشید این تغییر پورت چقدر به امنیت سرور کمک کرده، میتونید فایل لاگهای مربوط به تلاش برای ورود به سرور رو بررسی کنید تا ببینید هکرها چطور پشت پورت ۲۲ قدیمی متوقف میشن و دستخالی برمیگردند!
در توزیعهای اوبونتو و دبیان با اجرای دستور زیر، امکان بررسی لاگهای زنده تلاش برای ورود فراهم میشه: tail -f /var/log/auth.log
در سرورهای آلمالینوکس یا سنتاواس هم کافیه دستور زیر رو وارد کنید تا لیست تمام آیپیهایی که بیهوده برای ورود به پورت قبلی تلاش میکنند رو ببینید و از امنیت بالای سرور جدید خودتون مطمئن بشید: tail -f /var/log/secure
نصب و تنظیم Fail2Ban؛ نگهبان هوشمند برای مسدودسازی خودکار آیپی هکرها
تغییر پورت SSH یک حرکت عالی هست، اما هکرهای سمج با ابزارهای اسکن پورت بالاخره میتونن پورت جدید شما رو هم پیدا کنند. اینجاست که ابزار فوقالعاده Fail2Ban وارد بازی میشه تا مثل یک نگهبان ۲۴ ساعته از سرور شما محافظت کنه. وظیفه این ابزار اینه که لاگهای سرور رو در لحظه زیر نظر بگیره و اگه ببینه یک آیپی مشخص داره پشتسرهم رمزهای اشتباه وارد میکنه (مثلاً ۳ بار در یک دقیقه)، اون آیپی رو به عنوان مهاجم شناسایی میکنه. سپس Fail2Ban دستبهکار میشه و به فایروال سرور دستور میده که این آیپی رو برای یک مدت مشخص (مثلاً ۲۴ ساعت یا حتی برای همیشه) کاملاً مسدود کنه تا حتی نتونه صفحه سایت شما رو هم باز کنه.
برای نصب این ابزار کاربردی در اوبونتو و دبیان کافیه دستور:
sudo apt install fail2ban
و در سنتاواس و آلمالینوکس دستور:
sudo dnf install fail2ban
رو در ترمینال وارد کنید. بعد از نصب، به مسیر /etc/fail2ban/ برید و تنظیمات رو در فایل jail.local انجام بدید؛ در این فایل میتونید مشخص کنید که بعد از چند بار تلاش ناموفق (maxretry) و برای چه مدتی (bantime) آیپی خاطی بلاک بشه. در نهایت با اجرای دستور:
systemctl restart fail2ban
این نگهبان هوشمند فعال میشه و از اون به بعد، خیالتون راحت هست که هیچ هکری نمیتونه با حملات بروتفورس و تست کردن هزاران رمز عبور، سرور شما رو زیر فشار بذاره.
چطور در لحظه متوجه نفوذ به سرور بشویم؟
بسیاری از مدیران سایتها فکر میکنند تا زمانی که سایت بالا هست یعنی هیچ مشکلی برای سرور پیش نیومده، در حالی که ممکنه هکرها وارد سرور شده باشند و بدون سرصدا در حال استخراج ارز دیجیتال یا ارسال اسپم با منابع شما باشند! یکی از سادهترین راهها برای مچگیری در این شرایط، بررسی میزان مصرف پردازنده و رم سرور هست. برای این کار کافیه ابزار محبوب htop رو روی لینوکس نصب کنید تا با وارد کردن همین کلمه در ترمینال، یک پنل گرافیکی و زنده از وضعیت منابع سرور رو ببینید. اگه بدون اینکه بازدید سایت شما بالا رفته باشه، متوجه شدید مصرف CPU یا RAM به ۱۰۰ درصد رسیده، باید فوراً به امنیت سرور شک کنید و لیست پروسههای در حال اجرا رو در همان صفحه بررسی کنید.
یک ترفند امنیتی و جذاب دیگه برای مانیتورینگ زنده اینه که دستور who یا w رو در ترمینال بزنید تا در لحظه ببینید چه کسانی با چه آیپیهایی همین الان به SSH سرور متصل هستند. اگر آیپی ناشناسی رو دیدید، با دستور pkill -u username میتونید فوراً اتصالش رو قطع کنید. همچنین برای اینکه کارتون راحتتر بشه، میتونید از سرویسهای مانیتورینگ آنلاین و رایگان مثل نتدیتا (Netdata) استفاده کنید که یک داشبورد خوشساخت تحت وب به شما میده و حتی میتونید تنظیمش کنید تا در صورت بروز هرگونه رفتار مشکوک یا بالا رفتن ناگهانی لود سرور، فوراً در تلگرام یا ایمیل به شما آلارم بفرستد.
سوالات متداول در مورد تغییر پورت SSH لینوکس
تغییر پورت SSH سرعت اتصال به سرور رو کم میکنه؟
خیر، تغییر پورت هیچ تاثیری روی سرعت، پهنای باند یا کیفیت اتصال شما به سرور نداره و فقط یک لایه امنیتی جدید ایجاد میکنه.
بهترین شماره برای پورت جدید SSH چیه؟
پیشنهاد ما استفاده از اعداد بین ۴۹۱۵۲ تا ۶۵۵۳۵ هست. این محدوده پورتهای داینامیک و آزاد هستند و تداخلی با سرویسهای اصلی سیستمعامل ایجاد نمیکنند.
اگه بعد از تغییر پورت، فایروال رو باز نکنم چه اتفاقی میافته؟
تا زمانی که از اتصال فعلی خودتون خارج نشدید مشکلی نیست؛ اما به محض خروج، دسترسی شما به صورت کامل به سرور قطع میشه و برای حل آن باید حتماً از طریق کنسول VNC اقدام کنید.
بعد از تغییر پورت باز هم امکان حمله بروت فورس وجود داره؟
بله، هکرهای حرفهای با اسکن کردن پورتهای سرور ممکنه پورت جدید رو پیدا کنند. به همین دلیل توصیه میکنیم حتماً در کنار تغییر پورت، ورود کاربر روت رو هم غیرفعال کنید.
چطور میتونم پورت جدید رو در مک یا لینوکس وارد کنم؟
کاربران ویندوزی از نرمافزار پوتی استفاده میکنند، اما در مک یا لینوکس کافیه ترمینال رو باز کنید و پورت جدید رو با سوییچ -p در انتهای دستور به این صورت وارد کنید: ssh root@your_ip -p 49160
جمعبندی
امنیت سرور یک پروسه همیشگی هست و تغییر پورت ۲۲ لینوکس به عنوان اولین و کلیدیترین قدم در این مسیر به حساب میاد. با این کار ساده، جلوی ۹۰ درصد از رباتها و اسکنرهای خودکار هکرها رو میگیرید و نویز لاگهای سرور خودتون رو به شدت کم میکنید تا منابع سرور بیهوده هدر نره. این ترفند ساده به شما کمک میکنه تا بخش زیادی از حملات اولیه رو در همان پشت درهای سرور خنثی کنید و با خیال راحتتری به مدیریت بقیه بخشهای سایت بپردازید.
اما یادتون باشه که امنیت هیچوقت ۱۰۰ درصد نیست و نباید فقط به تغییر پورت دلخوش کنید؛ پس در کنار این کار، حتماً ابزارهایی مثل Fail2Ban رو برای مسدودسازی خودکار آیپیها راه بیاندازید، ورود مستقیم روت رو ببندید و وضعیت منابع رو با ابزارهای مانیتورینگ زیر نظر بگیرید. با ترکیب این روشها، یک سد دفاعی محکم برای سرور خودتون میسازید تا سرور وردپرسی شما مثل یک گاوصندوق امن باقی بمونه و راه نفوذ هکرها به طور کامل بسته بشه.
موفق و پیروز باشید. 🙂
رضا جان مقاله خوبی بود-ولی هکرهای عزیز تر از جان میان پورتهارو اسکن می کنند و بعد از مدتی به راحتی پیدا میشه-باید به صورت دوره ای تعویض بشه این پورت