
به اشتراک بگذارید

به اشتراک بگذارید
چرا باید پورت SSH را در سرور مجازی تغییر دهیم؟ پورت SSH، دروازه ورود امن به سرور لینوکسی شماست. اما چون پورت پیشفرض آن 22 است، اولین هدف هکرها در حملات Brute-force به حساب میآید. با تغییر پورت SSH در سرور مجازی، احتمال شناسایی و نفوذ خودکار را بهشدت کاهش میدهید.
اگر از یک وی پی اس ایران استفاده میکنید، اهمیت این کار دوچندان است؛ چون امنیت شبکه داخلی و دسترسی پایدار برای کسبوکار شما حیاتی است. در این مقاله از بلاگ وب داده موارد زیر را می آموزیدپس تا انتها همراه ما باشید.
آنچه در این مقاله میخوانید:
پورت SSH چیست؟ وقتی شما از طریق ترمینال (یا نرمافزاری مثل PuTTY یا Termius) به یک سرور لینوکسی متصل میشوید، این اتصال از طریق یک پروتکل خاص به نام SSH (Secure Shell) برقرار میشود.
SSH وظیفه دارد دادهها، دستورات و رمز عبور شما را بهصورت رمزگذاریشده بین کامپیوتر شما و سرور منتقل کند تا هیچکس در مسیر نتواند اطلاعات را بخواند. اما برای اینکه سیستم بداند «کدام سرویس در حال گوش دادن به درخواستهاست»، از مفهومی به نام پورت (Port) استفاده میشود.هر پورت در شبکه مثل یک در ورودی است که بستههای اطلاعاتی از طریق آن وارد یا خارج میشوند.
پورت 22 به صورت پیش فرض برای سرویس SSH در همهی سیستمعاملهای لینوکسی رزرو شده است. به زبان سادهتر، وقتی شما مینویسید:
ssh root@192.168.1.10🚨چرا باید پورت SSH را تغییر دهیم؟
پیش از تغییر پورت، باید چند اقدام حیاتی انجام دهید تا از قطع اتصال جلوگیری کنید.
ssh root@your-server-ip قبل از تغییر پورت SSH، لازم است اطمینان حاصل کنید که به سرور خود از طریق دسترسی VNC متصل میشوید. در صورتی که در فرآیند تغییر پورت SSH خطایی رخ دهد و اتصال شما قطع شود، تنها راه بازیابی دسترسی به سرور، استفاده از کنسول VNC است.
VNC در واقع محیطی گرافیکی برای مدیریت مستقیم سرور است که بدون نیاز به پورت SSH کار میکند و امکان ویرایش فایلها یا بازگردانی تنظیمات را در صورت بروز خطا برایتان فراهم میکند. برای استفاده از آن:
1️⃣از طریق پنل مجازیسازی یا کنترلپنل سرور خود، گزینه VNC Console را باز کنید.
2️⃣وارد سرور شوید و فایل تنظیمات SSH (/etc/ssh/sshd_config) را در صورت نیاز ویرایش کنید.
3️⃣و پس از رفع خطا، سرویس SSH را مجدداً راهاندازی نمایید.
یکی از پیشنیازهای کلیدی برای تغییر پورت SSH این است که پورت جدید را قبل از هر تغییری در فایروال باز کنید تا در صورت ریاستارت سرویس، دسترسی شما قطع نشود. برای مثال اگر میخواهید پورت 2222 را به جای پورت 22 استفاده کنید می بایست آن را در فایروال لینوکس Allow کنید البته در صورتی که فایروال شما فعال باشد. در ادامه، مراحل دقیق برای توزیعهای متداول را ذکر کرده ایم.
2222 را بهعنوان پورت جدید تنظیم کنید، کافی است دستور زیر را وارد کنید:# بررسی وضعیت فایروال در اوبونتو:
sudo ufw status
# دستور اضافه کردن پورت جدید به فایروال:
sudo ufw allow 2222/tcp # بررسی firewalld و زون فعال:
sudo systemctl is-active firewalld
#افزودن پورت جدید (برای زون پیشفرض، معمولاً public):
sudo firewall-cmd --permanent --add-port=2222/tcp
sudo firewall-cmd --reload | محدوده پورت | نوع پورت | توضیح |
|---|---|---|
| 0–1023 | System Ports | رزرو برای سرویسهای سیستمی |
| 1024–49151 | Registered Ports | قابل استفاده برای سرویسهای اختصاصی |
| 49152–65535 | Dynamic Ports | موقت و تصادفی |
cp /etc/ssh/sshd_config /etc/ssh/sshd_config.backup فایل پیکربندی اصلی که تمامی تنظیمات SSH در آن ذخیره می شود معمولاً در مسیر /etc/ssh/sshd_config قرار دارد. این فایل (sshd_config) مثل یک دفترچه تنظیمات است که به سرویس SSH میگوید چطور کار کند، از چه پورتی استفاده کند، چه کسانی میتوانند وارد شوند و غیره.
🔶برای ویرایش آن در ترمینال لینوکس با دسترسی root از دستور زیر استفاده کنید:
sudo nano /etc/ssh/sshd_config 🔶پس از وارد کردن دستور بالا وارد محتویات فایل می شوید و امکان ویرایش آن را خواهید داشت. می بایست در این فایل سطر زیر را پیدا کنید یعنی Port 22 .
عدد 22 پورت پیشفرض SSH است ، برای پیدا کردن سریعتر این خط، در ویرایشگر nano کلیدهای Ctrl + W را همزمان بزنید و کلمه Port را تایپ کنید.
#Port 22 
🔶پس از اینکه پورت را پیدا کردید باید علامت # را حذف کرده و عدد پورت را به پورت جدید تغییر دهید. (ما 2222 را وارد کردیم ولی شما می توانید پورت جدید دلخواه خود را جایگزین کنید.)
Port 2222 
🔶در انتها پس از تغییر پورت SSH در سرور مجازی در ویرایشگر کلیدهای Ctrl + O را بزنید و برای تایید Enter را بزنید و در ادامه Ctrl + X را بزنید تا از محیط ویرایشگر خارج شوید.
🔶سپس سرویس SSH را ری استارت کنید. برای این کار دستور زیر را در ترمینال لینوکس وارد کرده و Enter کنید.
sudo systemctl restart ssh
# یا
sudo systemctl restart sshd

دقت داشته باشید که در برخی توزیعهای لینوکس نام سرویس ممکن است sshd.service باشد.
🔶در مرحله بعد حتما systemctl status ssh بگیرید.
🔶در ادامه در صورتی که سیستم عامل شما Ubuntu24 است پس از ری استارت کردن سرویس SSH می بایست دستور زیر را وارد کنید تا پورت جدید به صورت کامل معرفی شود.
systemctl daemon-reload 
# باز کردن پورت جدید
ufw allow 2222/tcp
# بررسی وضعیت
ufw status # باز کردن پورت جدید
firewall-cmd --add-port=2222/tcp --permanent
# اعمال تغییرات
firewall-cmd --reload
# بررسی
firewall-cmd --list-ports قبل از بستن پورت قدیمی، باید اتصال روی پورت جدید را تست کنید تا مطمئن شوید که پورت جدید درست کار می کند. اگر این کار را نکنید و مستقیما پورت قدیمی را ببندید، ممکن است دیگر نتوانید به سرور خود وارد شوید! (مثل اینکه در خانه را قفل کنید و کلید جدید قفل را باز نکند.)
برای این کار لازم است با استفاده از دستور زیر به سرور SSH بزنید یا ترمینال جدید باز کنید و در انتها نیز شماره پورت جدید را وارد کنید مانند زیر:
ssh root@your-server-ip -p 2222 در دستور بالا root نام کاربری است که میخواهید با آن وارد سرور شوید.
your-server-ip آدرس IP سرور شماست، مثلا 185.88.153.10
p 2222- یعنی از پورت 2222 استفاده کن همان پورتی جدیدی که در مرحله قبل ست کردیم (به جای پورت پیشفرض 22).
✅ اگر اتصال موفق بود، سیستم از شما رمزعبور خواسته و سپس وارد سرور می شوید و این به این معناست که همه چیز درست کار می کند.
🔶در این حالت باید پورت قبلی (یعنی پورت 22) را در فایروال ببندید تا امنیت بیشتری داشته باشید. برای این کار بسته به نوع فایروالی که روی سرورتان نصب است، یکی از دستورات زیر را استفاده کنید:
اگر از فایروال رایج در Ubuntu یعنی UFW را استفاده میکنید از دستور مربوط به آن و اگر از CentOS/RHEL استفاده میکنید از دستور firewall-cmd استفاده کنید:
sudo ufw delete allow 22/tcp
# یا
sudo firewall-cmd --remove-port=22/tcp --permanent
sudo firewall-cmd --reload در آخر جهت تست نهایی، بعد از اینکه همه کارها را انجام دادید، اتصال فعلی خود را قطع کنید و پس از چند دقیقه (تغییرات فایروال ممکن است کمی طول بکشد تا کاملا اعمال شود) دوباره سعی کنید وارد سرور شوید:
ssh root@your-server-ip -p 2222 همانند نسخههای قبلی اوبونتو/دبیان، معمولا نیاز است که پورتهای شنود (listening ports) را در فایل sshd_config تغییر دهید و سپس اجازه دسترسی را در فایروال صادر کنید. با این حال، برای نسخههای جدیدتر اوبونتو مانند Ubuntu 24، نیاز داریم که تغییراتی در فایلهای مرتبط با ssh.socket نیز اعمال کنیم. پس در صورتی که از اوبونتو 24 استفاده می کنید برای تغییر پورت SSH مراحل زیر را انجام دهید.
🔶برای این کار پس ورود به ترمینال لینوکس با استفاده از دستور وارد محیط ویرایش فایل ssh.socket شوید.
systemctl edit ssh.socket 🔶با اجرای دستور بالا فایل /etc/systemd/system/ssh.socket.d/override.conf برای ویرایش باز می شود. سپس، محتوای زیر را در آن وارد کنید:
[Socket]
ListenStream=
ListenStream=2222 📌توجه داشته باشید که عبارت ListenStream= (بدون هیچ مقداری پس از آن) مورد نیاز است تا مشخص کنیم که دیگر از پورت پیشفرض 22 استفاده نخواهیم کرد. مانند تصویر زیر

🔶در نهایت کافی است که هر دو سرویس ssh و ssh.socket را به صورت زیر راهاندازی مجدد کنید:
systemctl restart ssh
systemctl restart ssh.socket 📌فراموش نکنید که اگر از فایروال استفاده میکنید، باید پورت جدید یعنی 2222 را در فایروال مربوطه باز کنید.
🔶در آخر مجدد سعی کنید به سرور SSH بزنید. به یاد داشته باشید که هنگام اتصال از طریق SSH شما شماره پورت را تغییر داده اید، پس هنگام وارد کردن دستور ، پورت جدید را نیز وارد کنید (مانند ssh root@IP -p2222)و یا در صورتی که از طریق نرم افزار پوتی به سرور متصل می شوید پس از وارد کردن IP شماره پورت جدید را وارد کنید.
پس از تغییر پورت SSH در سرور ممکن است چند حالت رخ دهد:
🔶اتصال شما قطع شود و نتوانید دوباره وارد سرور شوید.
🔶 پورت جدید باز نشود و هنگام تست اتصال، پیغام خطا دریافت کنید.
🔶سرویس SSH کار نکند به دلیل اشتباه در تنظیمات.
خبر خوب اینکه اگر طبق راهنمای قبلی، اتصال قدیمی خود را باز نگه داشته باشید، میتوانید همه چیز را به حالت اول برگردانید!
✅برای این کار و جهت برگرداندن فایل تنظیمات به حالت قبل مراحل زیر انجام دهید:
ufw allow 22/tcp
# یا
firewall-cmd --add-port=22/tcp --permanent
firewall-cmd --reload sudo systemctl restart sshd sudo systemctl status sshd در انتها می توان گفت تغییر پورت SSH در سرور مجازی، یکی از ساده ترین اما مؤثرترین راهها برای افزایش امنیت دسترسی است. با رعایت اصول بالا، میتوانید در کمتر از 10 دقیقه، بدون خطر قطع اتصال، پورت را تغییر داده و فایروال را هماهنگ کنید.
در نهایت پیشنهاد میشود برای اطمینان از امنیت کامل، احراز هویت مبتنی بر کلید (Key Authentication) را فعال و ورود با رمز عبور را غیرفعال کنید. امنیت، نتیجه مجموعهای از اقدامات کوچک اما هوشمندانه است.
اگر سرور شما روی بستر VPS ایران میزبانی میشود، این تغییر نه تنها امنیت اتصال شما را بالا میبرد، بلکه با تنظیمات شبکه داخلی، سرعت و ثبات بیشتری در دسترسی خواهید داشت. امیدوارم این مقاله از بلاگ وب داده نیز برای شما مفید واقع شده باشد.
بین 1024 تا 65535 هر پورتی میتواند استفاده شود. معمولاً پورتهایی مانند 2222، 2200 یا 2024 امنترند.
📚 منابع و رفرنسها: