
به اشتراک بگذارید
افزایش امنیت وب سرور Nginx یکی از حیاتیترین اقداماتی است که هر مدیر سیستم یا صاحب وبسایتی باید بلافاصله پس از خرید سرور مجازی انجام دهد؛ چرا که وبسرورها به طور پیشفرض اطلاعات زیادی را درباره هویت و نسخه دقیق خود فاش میکنند. زمانی که شما یک درخواست به سرور میفرستید، Nginx در هدرهای پاسخ (HTTP Headers) و صفحات خطا، نسخه دقیق خود را اعلام میکند که این موضوع دقیقاً مانند این است که نقشه نقاط ضعف خانهتان را روی درب ورودی نصب کنید.
در دنیای امنیت سایبری سال 2024 و 2025، متد “Information Reconnaissance” یا شناسایی اطلاعات، اولین مرحله از یک حمله موفق است. هکرها با استفاده از ابزارهای اسکن خودکار، ابتدا نسخه نرمافزارهای شما را استخراج کرده و سپس به سراغ پایگاه دادههای CVE (آسیبپذیریهای شناخته شده) میروند تا اکسپلویت مخصوص آن نسخه را پیدا کنند.
| مورد بررسی | وضعیت پیشفرض | وضعیت مطلوب پس از آموزش |
| نمایش نام سرور | فعال (Nginx) | غیرفعال یا شخصیسازی شده |
| نمایش شماره نسخه | فعال (e.g. 1.18.0) | کاملاً مخفی (Hidden) |
| صفحات خطای ۴۰۴/۵۰۳ | دارای امضای نسخه | بدون هیچ اطلاعات فنی |
- ✅ جلوگیری از شناسایی سریع توسط رباتهای اسکنر
- ✅ ایجاد تاخیر در فرآیند شناسایی برای هکرهای انسانی
حتماً زمانی که این مقاله را باز کردهاید، به دنبال راهی هستید تا جلوی کنجکاویهای بی مورد رباتها و ابزارهای اسکن امنیتی را بگیرید و یک لایه حفاظتی محکم روی سرور خود بکشید. ما در این راهنمای جامع از بلاگ وبداده، به شما یاد میدهیم که چگونه با استفاده از دستورات ساده اما قدرتمند، هویت فنی سرور خود را پنهان کنید. اگر به دنبال امنیت واقعی و حرفهای هستید، این مقاله برای شماست؛ پس همراه ما باشید… 😉👇
آنچه در این مقاله میخوانید:

مفهوم Server Tokens چیست؟
برای درک بهتر، بیایید یک تشبیه کاربردی را به کار ببریم: تصور کنید وبسرور شما مثل یک آپارتمان در یک ساختمان بزرگ (اینترنت) است. قابلیت Server Tokens مانند پلاک روی درب آپارتمان است که نه تنها شماره واحد، بلکه نام ساکنان، مدل قفل درب و حتی سال ساخت قفل را هم به هر کسی که از جلوی درب رد میشود، نشان میدهد! به طور پیشفرض، Nginx این قابلیت را فعال نگه میدارد تا عیبیابی برای توسعهدهندگان راحتتر باشد؛ اما در محیط عملیاتی (Production)، این یک ریسک بزرگ است.
ساختار نشت اطلاعات در Nginx به شکل زیر است:
درخواست کاربر (HTTP Request)
⬇️
وبسرور Nginx
⬇️
[پاسخ سرور با هدر پیشفرض]
│
├─ Server: nginx/1.25.3 (افشای نام و نسخه!)
└─ Content-Type: text/html
چرا به مخفی کردن نسخه Nginx نیاز داریم؟
اهمیت افزایش امنیت وب سرور Nginx زمانی مشخص میشود که به آمارهای سال 2024 نگاهی بیندازیم. طبق گزارشهای امنیتی، بیش از 60٪ حملات موفق از طریق بهرهبرداری از نسخههای آپدیت نشده نرمافزارها صورت میگیرد. وقتی هکر نسخه دقیق سرور شما را بداند، دیگر نیازی به امتحان کردن روشهای مختلف ندارد؛ او مستقیماً به سراغ کدی میرود که برای همان نسخه خاص نوشته شده است.
دلایل اصلی استفاده از این متد عبارتند از:
- جلوگیری از حملات هدفمند: هکرها نمیتوانند به راحتی لیست آسیبپذیریهای CVE مربوط به نسخه شما را استخراج کنند.
- کاهش نویز در لاگهای سرور: وقتی سرور شما اطلاعاتی فاش نکند، رباتهای اسکنر کمتری وقت خود را روی آن تلف میکنند.
- رعایت استانداردهای PCI DSS: اگر سایت فروشگاهی دارید، پنهان کردن نسخههای نرمافزاری یکی از الزامات امنیتی است.
- حرفهای نشان دادن برند: یک سرور کانفیگ شده و امن، نشاندهنده تخصص تیم فنی شماست.
پیشنیازهای افزایش امنیت در Nginx
قبل از شروع مراحل عملی، باید مطمئن شوید که دسترسیهای لازم را دارید. این آموزش بر روی تمامی توزیعهای لینوکس (Ubuntu, CentOS, Debian) و در تمامی سرویسهای وبداده قابل اجراست.
- دسترسی به کاربر root یا کاربری با سطح دسترسی
sudo. - نصب بودن وبسرور Nginx روی سرور مجازی یا اختصاصی.
- آشنایی مقدماتی با ویرایشگرهای متن مثل
nanoیاvim. - پیشنهاد ما: استفاده از سرور مجازی هلند وب داده برای بالاترین پایداری.
آموزش عملی مخفی کردن ورژن Nginx
در این بخش همراه تیم وبداده باشید تا به صورت عملی و گامبهگام، هویت سرور شما را مخفی کنیم. ما برای این سناریو از یک سرور لینوکس استاندارد استفاده کردهایم که Nginx روی آن فعال است.
نمودار سناریو:
Webdade.com Security Lab
1🖥️ [Server Status] -> Version Visible (Vulnerable)
2🗄️ [Action] -> Edit nginx.conf & Set server_tokens off
3💾 [Result] -> Version Hidden (Secured)
1- ویرایش فایل پیکربندی اصلی
ابتدا باید فایل تنظیمات اصلی Nginx را باز کنید. این فایل معمولاً در مسیر /etc/nginx/nginx.conf قرار دارد. دستور زیر را در ترمینال وارد کنید:
sudo nano /etc/nginx/nginx.conf 2- استفاده از آموزش دستور server_tokens off
در فایل باز شده، به دنبال بخش http بگردید. اگر خط مربوط به server_tokens وجود دارد، آن را پیدا کنید؛ در غیر این صورت، باید آن را به صورت دستی اضافه کنید.
◀️ تنظیمات پیشنهادی:
مقدار را از on به off تغییر دهید:
http {
...
server_tokens off;
...
} - 🔸 مرحله 1: با قرار دادن این دستور در بلاک http٬ این تنظیم به تمام وبسایتهای روی سرور اعمال میشود.
- 🔸 مرحله 2: اگر میخواهید فقط برای یک دامنه خاص این کار را انجام دهید، دستور را در بلاک server مربوط به آن دامنه در پوشه sites-available قرار دهید.
; (نقطه ویرگول) را اضافه کنید، در غیر این صورت Nginx با خطا مواجه خواهد شد.3- تست سینتکس و بارگذاری مجدد
قبل از اینکه تنظیمات را نهایی کنیم، باید مطمئن شویم که هیچ غلط املایی در فایل وجود ندارد:
sudo nginx -t اگر پیام syntax is ok را دریافت کردید، با دستور زیر سرویس را ریلود کنید:
sudo systemctl reload nginx 
تغییر نام سرور در Nginx (شخصیسازی پیشرفته)
اگر میخواهید یک قدم فراتر بروید و هکرها را کاملاً گیج کنید، میتوانید نام “Nginx” را هم به چیز دیگری تغییر دهید؛ مثلاً “WebDade-Secure-Server”. این کار با استفاده از حذف نام سرور از هدر HTTP و جایگزینی آن با یک نام دلخواه انجام میشود.
برای این کار به ماژول headers-more-nginx-module نیاز دارید. در اکثر نسخههای مدرن، میتوانید آن را به راحتی نصب کنید:
sudo apt install libnginx-mod-http-headers-more-filter سپس در بلاک http فایل کانفیگ اضافه کنید:
more_set_headers "Server: WebDade-Security"; این ترفند باعث میشود ابزارهای اسکن خودکار فکر کنند شما از یک سیستم اختصاصی استفاده میکنید و از حملات عمومی علیه Nginx صرف نظر کنند.
بررسی هدرهای امنیتی وبسایت و اعتبارسنجی
حالا وقت آن است که ببینیم آیا تلاشهای ما نتیجه داده است یا خیر. بهترین راه برای تست، استفاده از دستور curl است.
curl -I [http://yourdomain.com](http://yourdomain.com) مقایسه قبل و بعد:
| ویژگی | قبل از تنظیمات | بعد از تنظیمات |
|---|---|---|
| فیلد Server | Server: nginx/1.25.3 | Server: nginx |
| امنیت در برابر CVE | ضعیف | بهبود یافته |
معایب و محدودیتهای پنهان کردن نسخه Nginx
ما در وبداده معتقدیم باید صادقانه با مخاطب صحبت کرد. مخفی کردن نسخه Nginx یک لایه دفاعی است، نه یک زره ضد گلوله!
- ❌ محدودیت 1: این کار جلوی آسیبپذیریهای واقعی را نمیگیرد؛ اگر نسخه شما قدیمی باشد، همچنان آسیبپذیر است، فقط هکر باید کمی بیشتر تلاش کند تا نسخه را بفهمد.
- ❌ محدودیت 2: برخی از سیستمهای مانیتورینگ قدیمی ممکن است برای شناسایی سرور به این هدرها نیاز داشته باشند (که البته بسیار نادر است).
- ❌ محدودیت 3: پنهانسازی هرگز جایگزین “Patch Management” یا همان آپدیت مداوم نمیشود.
در سال 2025، یکی از مشتریان یک شرکت که از یک نسخه قدیمی Nginx استفاده میکرد، مورد حمله رباتهای اسکنر قرار گرفت. هکرها با شناسایی نسخه 1.14 (که دارای یک آسیبپذیری بحرانی در بخش بافر بود)، قصد نفوذ داشتند. پس از بررسی لاگها متوجه شدند که هکر در کمتر از ۳3 ثانیه پس از شناسایی نسخه، اکسپلویت مربوطه را اجرا کرده بود.
پس از پاکسازی، اولین کاری که انجام شد افزایش امنیت وب سرور Nginx با پنهان کردن ورژن بود. در حمله دوم که دو هفته بعد رخ داد، ربات مهاجم به دلیل عدم تشخیص نسخه، شروع به تست اکسپلویتهای تصادفی کرد که باعث شد سیستم IPS (جلوگیری از نفوذ) در شرکت سریعاً آیپی مهاجم را شناسایی و مسدود کند. این یعنی “پنهانسازی” زمان طلایی را برای سیستمهای دفاعی خرید.
افزایش امنیت وب سرور Nginx با خدمات تخصصی وبداده
اگر مدیریت سرور برای شما دشوار است یا وقت کافی برای اعمال این تنظیمات را ندارید، وبداده در کنار شماست. ما با ارائه راهکارهای نوین هاستینگ، امنیت را به بخشی جداییناپذیر از سرویس شما تبدیل میکنیم.
- ✅ سرورهای مجازی با امنیت سطح بالا
- ✅ مانیتورینگ 24 ساعته برای شناسایی نشت اطلاعات
- ✅ پشتیبانی فنی متخصصی
نتیجهگیری: افزایش امنیت وب سرور NGINX با پنهان کردن ورژن
در این مقاله آموختیم که چگونه با یک تغییر ساده در پیکربندی، گام بزرگی در جهت افزایش امنیت وب سرور Nginx برداریم. مخفی کردن نسخه Nginx شاید به تنهایی تمام مشکلات امنیتی شما را حل نکند، اما قطعاً یکی از ستونهای اصلی در “دفاع در عمق” (Defense in Depth) است. با استفاده از دستور server_tokens off و ترفندهای پیشرفتهای که بررسی کردیم، شما میتوانید شناسایی سرور خود را برای مهاجمان دشوارتر کنید.
فراموش نکنید که امنیت یک فرآیند مستمر است، نه یک پروژه یکباره. همیشه سرورهای خود را آپدیت نگه دارید و از پسوردهای پیچیده استفاده کنید. امیدوارم این آموزش از بلاگ وبداده برای شما مفید بوده باشد و بتوانید امنیت وبسایت خود را به سطح حرفهای برسانید.
در صورتی که در هر مرحله از کانفیگ با مشکلی مواجه شدید یا سوالی داشتید، میتوانید در بخش نظرات با ما در ارتباط باشید؛ متخصصان ما در وبداده آماده راهنمایی شما هستند. 🚀
سوالات متداول از مخفی کردن نسخه Nginx
1- آیا مخفی کردن نسخه باعث کندی سایت میشود؟
خیر، دستور server_tokens off هیچ تاثیر منفی بر سرعت یا عملکرد وبسرور شما ندارد و فقط حجم هدرهای خروجی را چند بایت کاهش میدهد.




