دانشنامه مارال هاست دانشنامه مارال هاست
  • صفحه اصلی
  • مقالات
    • هاست اشتراکی
    • دامنه
    • سرور مجازی
    • کنترل پنل سی‌پنل
    • کنترل پنل پلسک
    • کنترل پنل دایرکت ادمین
    • ایمیل
    • CloudLinux
    • Cloudflare
  • تماس با ما
دانشنامه مارال هاست دانشنامه مارال هاست
دانشنامه مارال هاست دانشنامه مارال هاست
  • صفحه اصلی
  • مقالات
    • هاست اشتراکی
    • دامنه
    • سرور مجازی
    • کنترل پنل سی‌پنل
    • کنترل پنل پلسک
    • کنترل پنل دایرکت ادمین
    • ایمیل
    • CloudLinux
    • Cloudflare
  • تماس با ما
امنیت
  • Folder icon closed Folder open iconCIA Triad چیست؟ آشنایی با سه اصل اساسی امنیت اطلاعات
  • Folder icon closed Folder open iconAttack Surface چیست؟ آشنایی با سطح حمله در امنیت سایبری
  • Folder icon closed Folder open iconThreat چیست؟ آشنایی با مفهوم تهدید در امنیت سایبری
  • Folder icon closed Folder open iconVulnerability چیست؟ آشنایی با آسیب‌پذیری در امنیت سایبری
  • Folder icon closed Folder open iconExploit چیست؟ آشنایی با مفهوم اکسپلویت در امنیت سایبری
  • Folder icon closed Folder open iconRisk چیست؟ آشنایی با مفهوم ریسک در امنیت سایبری
  • Folder icon closed Folder open iconCVE چیست؟ آشنایی با سیستم شماره‌گذاری آسیب‌پذیری‌های امنیتی
  • Folder icon closed Folder open iconCVSS چیست؟ آشنایی با سیستم امتیازدهی آسیب‌پذیری‌های امنیتی
  • Folder icon closed Folder open iconبعد از خرید سرور مجازی لینوکس(VPS)، اولین کارهایی که باید انجام دهید
  • Folder icon closed Folder open iconآموزش تغییر Hostname سرور در لینوکس
  • Folder icon closed Folder open iconآموزش تنظیم صحیح Timezone و NTP در لینوکس
  • Folder icon closed Folder open iconآموزش بروزرسانی کامل سیستم‌عامل لینوکس همه توزیع ها
  • Folder icon closed Folder open iconآموزش ساخت کاربر جدید و حذف استفاده روزمره از Root در لینوکس
  • Folder icon closed Folder open iconآموزش تنظیم صحیح sudo در لینوکس
  • Folder icon closed Folder open iconآموزش تنظیم Banner ورود به SSH در لینوکس
  • Folder icon closed Folder open iconآموزش مدیریت Password Policy در لینوکس
  • Folder icon closed Folder open iconآموزش نصب و راه‌اندازی SSH Key Authentication در لینوکس
  • Folder icon closed Folder open iconآموزش غیرفعال کردن ورود مستقیم Root از طریق SSH
  • Folder icon closed Folder open iconتغییر پورت SSH؛ آیا واقعاً امنیت سرور را افزایش می‌دهد؟
  • Folder icon closed Folder open iconآموزش محدود کردن کاربران مجاز SSH در لینوکس
  • Folder icon closed Folder open iconآموزش محدود کردن دسترسی SSH بر اساس IP در لینوکس
  • Folder icon closed Folder open iconآموزش تنظیم LoginGraceTime در SSH؛ کاهش زمان انتظار برای احراز هویت
  • Folder icon closed Folder open iconآموزش تنظیم MaxAuthTries در SSH؛ محدود کردن تعداد تلاش‌های ورود ناموفق
  • Folder icon closed Folder open iconآموزش بررسی لاگ‌های SSH در لینوکس
  • Folder icon closed Folder open iconآموزش عیب‌یابی مشکلات SSH در لینوکس
  • Folder icon closed Folder open iconآموزش کامل UFW در لینوکس؛ راه‌اندازی، مدیریت و ایمن‌سازی فایروال سرور
  • Folder icon closed Folder open iconnftables چیست؟ آشنایی با فایروال نسل جدید لینوکس و جایگزین iptables
  • Folder icon closed Folder open iconآموزش کامل Firewalld در لینوکس
  • Folder icon closed Folder open iconآموزش کامل ConfigServer Security & Firewall (CSF)
  • Folder icon closed Folder open iconآموزش مشاهده Loginهای اخیر در لینوکس
  • Folder icon closed Folder open iconآموزش بررسی پردازش‌های مشکوک در لینوکس
  • Folder icon closed Folder open iconآموزش بررسی Cron Jobهای مشکوک در لینوکس
  • Folder icon closed Folder open iconآموزش کامل Fail2Ban در لینوکس؛ نصب و راه‌اندازی
  • Folder icon closed Folder open iconآموزش نصب RKHunter در لینوکس
  • Folder icon closed Folder open iconآموزش نصب Chkrootkit در لینوکس
  • Folder icon closed Folder open iconآموزش اسکن سرور با RKHunter و Chkrootkit
  • Folder icon closed Folder open iconآموزش نصب، پیکربندی و اسکن سرور با AIDE در لینوکس
  • Folder icon closed Folder open iconآموزش نصب، پیکربندی و استفاده از Auditd در لینوکس
  • Folder icon closed Folder open iconآموزش نصب، اسکن و تحلیل امنیت سرور با Lynis در لینوکس
  • Folder icon closed Folder open iconآموزش نصب، بروزرسانی و اسکن سرور با ClamAV در لینوکس
  • Folder icon closed Folder open iconآموزش Hardening وب‌سرور Nginx
  • Folder icon closed Folder open iconآموزش Hardening وب‌سرور Apache
  • Folder icon closed Folder open iconآموزش Hardening PHP
  • Folder icon closed Folder open iconآموزش Hardening پایگاه داده MySQL
  • Folder icon closed Folder open iconآموزش Hardening سرویس Redis
  • Folder icon closed Folder open iconآموزش Hardening سرویس Docker
  • Folder icon closed Folder open iconآموزش Hardening سرویس FTP
امنیت

آموزش Hardening وب‌سرور Nginx

آموزش Hardening وب‌سرور Nginx

مقدمه

نصب Nginx تنها اولین قدم در راه‌اندازی یک وب‌سرور است. تنظیمات پیش‌فرض این وب‌سرور برای اجرا طراحی شده‌اند، نه برای حداکثر امنیت. به همین دلیل، پس از نصب Nginx باید مجموعه‌ای از تنظیمات امنیتی یا Hardening روی آن اعمال شود تا سطح حمله (Attack Surface) کاهش یابد.

در این مقاله، مهم‌ترین اقدامات برای ایمن‌سازی Nginx را به‌صورت عملی بررسی می‌کنیم.


بررسی نسخه Nginx

ابتدا نسخه نصب‌شده را بررسی کنید:

nginx -v

اطلاعات کامل‌تر:

nginx -V

همیشه از نسخه‌های پشتیبانی‌شده و به‌روز استفاده کنید.


بروزرسانی Nginx

Ubuntu / Debian

sudo apt update

sudo apt upgrade nginx

AlmaLinux / Rocky Linux

sudo dnf update nginx

مخفی کردن نسخه Nginx

به‌صورت پیش‌فرض، نسخه Nginx در هدر HTTP و صفحات خطا نمایش داده می‌شود.

فایل تنظیمات:

/etc/nginx/nginx.conf

داخل بخش http اضافه کنید:

server_tokens off;

بررسی تنظیمات:

sudo nginx -t

اعمال تغییرات:

sudo systemctl reload nginx

غیرفعال کردن Auto Index

اگر Auto Index فعال باشد، کاربران می‌توانند محتویات پوشه‌ها را مشاهده کنند.

داخل Virtual Host:

autoindex off;

محدود کردن متدهای HTTP

در بیشتر وب‌سایت‌ها فقط این متدها کافی هستند:

  • GET
  • POST
  • HEAD

برای مسدود کردن سایر متدها:

location / {

    limit_except GET POST HEAD {
        deny all;
    }

}

جلوگیری از دسترسی به فایل‌های مخفی

location ~ /\. {
    deny all;
}

این قانون فایل‌هایی مانند موارد زیر را محافظت می‌کند:

  • .git
  • .env
  • .htaccess
  • .bash_history

جلوگیری از دسترسی به فایل‌های Backup

location ~* \.(bak|old|backup|swp|tmp)$ {
    deny all;
}

جلوگیری از دسترسی به فایل‌های تنظیمات

location ~* \.(ini|conf|log|env)$ {
    deny all;
}

غیرفعال کردن Directory Traversal

location ~ \.\. {
    deny all;
}

محدود کردن حجم Upload

برای جلوگیری از ارسال فایل‌های بسیار بزرگ:

client_max_body_size 20M;

این مقدار را متناسب با نیاز وب‌سایت تنظیم کنید.


تنظیم Timeoutها

نمونه تنظیمات:

client_body_timeout 10;
client_header_timeout 10;
send_timeout 10;
keepalive_timeout 30;

این تنظیمات می‌توانند اثر برخی حملات Slow HTTP را کاهش دهند.


فعال کردن HTTPS

تمام وب‌سایت‌ها باید از HTTPS استفاده کنند.

نمونه:

listen 443 ssl http2;

غیرفعال کردن TLSهای قدیمی

فقط نسخه‌های جدید را فعال کنید:

ssl_protocols TLSv1.2 TLSv1.3;

استفاده از Cipherهای امن

ssl_prefer_server_ciphers on;

Cipher Suite مناسب را نیز مطابق توصیه‌های روز انتخاب کنید.


فعال کردن HSTS

add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always;

فقط زمانی این هدر را فعال کنید که کل سایت و زیر‌دامنه‌ها از HTTPS استفاده کنند.


اضافه کردن Headerهای امنیتی

add_header X-Frame-Options "SAMEORIGIN" always;

add_header X-Content-Type-Options "nosniff" always;

add_header Referrer-Policy "strict-origin-when-cross-origin" always;

add_header Permissions-Policy "geolocation=(), microphone=(), camera=()" always;

برای وب‌سایت‌های مدرن، اضافه کردن Content-Security-Policy (CSP) نیز توصیه می‌شود، اما باید متناسب با ساختار سایت تنظیم شود تا باعث اختلال در عملکرد نشود.


محدود کردن Rate Request

نمونه:

limit_req_zone $binary_remote_addr zone=login:10m rate=5r/s;

سپس:

location /login {

    limit_req zone=login burst=10;

}

این تنظیم می‌تواند از حملات Brute Force و Flood روی صفحات ورود جلوگیری کند.


محدود کردن تعداد اتصال

limit_conn_zone $binary_remote_addr zone=addr:10m;

سپس:

limit_conn addr 20;

غیرفعال کردن Trace

Nginx به‌صورت پیش‌فرض از متد TRACE پشتیبانی نمی‌کند و معمولاً نیازی به تنظیم اضافه برای غیرفعال‌سازی آن نیست.


محافظت از فایل‌های PHP

اگر از PHP-FPM استفاده می‌کنید، فقط فایل‌های PHP موردنیاز را پردازش کنید.

همچنین اجرای فایل‌های PHP از مسیرهای Upload را غیرفعال کنید.

نمونه:

location ~* ^/uploads/.*\.php$ {
    deny all;
}

بررسی تنظیمات

پس از هر تغییر:

sudo nginx -t

اگر خروجی:

syntax is ok
test is successful

بود:

sudo systemctl reload nginx

تست امنیت

پس از اعمال تنظیمات، موارد زیر را بررسی کنید:

  • Headerهای امنیتی
  • TLS Version
  • Cipher Suite
  • HSTS
  • Directory Listing
  • HTTP Methods

ابزارهای پیشنهادی:

  • SSL Labs
  • Security Headers
  • Mozilla Observatory
  • Nmap (اسکریپت‌های NSE)

بهترین روش‌ها

  • Nginx را همیشه بروزرسانی کنید.
  • فقط پورت‌های 80 و 443 را باز نگه دارید.
  • نسخه Nginx را مخفی کنید.
  • HTTPS را اجباری کنید.
  • از Headerهای امنیتی استفاده کنید.
  • Rate Limiting را فعال کنید.
  • دسترسی به فایل‌های حساس را مسدود کنید.
  • لاگ‌های Nginx را به‌صورت دوره‌ای بررسی کنید.
  • در صورت امکان از WAF مانند ModSecurity یا Imunify360 استفاده کنید.

اشتباهات رایج

  • نمایش نسخه Nginx
  • فعال بودن Auto Index
  • استفاده از TLS 1.0 یا TLS 1.1
  • عدم استفاده از Headerهای امنیتی
  • عدم محدود کردن درخواست‌ها
  • قرار دادن فایل‌های Backup در مسیر قابل دسترس وب
  • عدم بررسی تنظیمات با nginx -t قبل از Reload

چک‌لیست

پس از Hardening، موارد زیر را بررسی کنید:

  • Nginx بروزرسانی شده است.
  • نسخه Nginx مخفی شده است.
  • HTTPS فعال است.
  • TLSهای قدیمی غیرفعال شده‌اند.
  • Headerهای امنیتی اضافه شده‌اند.
  • Directory Listing غیرفعال است.
  • فایل‌های حساس قابل دسترس نیستند.
  • Rate Limiting فعال شده است.
  • تنظیمات بدون خطا بارگذاری شده‌اند.

جمع‌بندی

Hardening وب‌سرور Nginx یکی از مهم‌ترین مراحل ایمن‌سازی هر سرور لینوکسی است. با اعمال تنظیماتی مانند مخفی کردن نسخه Nginx، غیرفعال کردن Directory Listing، محدود کردن متدهای HTTP، استفاده از TLSهای امن، افزودن Headerهای امنیتی و فعال کردن Rate Limiting، می‌توان سطح حمله سرور را به میزان قابل توجهی کاهش داد.

البته Hardening تنها به Nginx محدود نمی‌شود. برای رسیدن به یک زیرساخت امن، باید این تنظیمات در کنار فایروال، Fail2Ban، بروزرسانی منظم سیستم‌عامل، مانیتورینگ لاگ‌ها و رعایت اصول امنیتی در لایه‌های دیگر نیز پیاده‌سازی شوند.

کیان پور

هنوز نیاز به کمک دارید؟

آیا سوالی دارید؟

آیا این مقاله برای شما مفید بود؟ بله خیر

مطالب اخیراً بازدیدشده

  • ریدایرکت شدن پیشخوان در وردپرس
  • Domain Parking چیست؟ راهنمای کامل پارک دامنه و کاربردهای آن
  • آیا می‌توان چند رکورد MX برای یک دامنه تعریف کرد؟
  • مشاهده بیشتر

نظرات خود را بنویسید... لغو پاسخ

اشتراک گذاری این مقاله

آموزش Hardening وب‌سرور Nginx

کپی کردن لینک

Clipboard Icon

جدیدترین مقالات

آموزش نصب و راه‌اندازی RustDesk Server با Docker
آموزش نصب و راه‌اندازی RustDesk Server با Docker
2 minutes جولای 2, 2026
آموزش نصب و راه‌اندازی Matrix Synapse + Element Web + Coturn با Docker روی ...
4 minutes جولای 2, 2026
CXS چیست و چگونه کار می‌کند
1 minute می 3, 2026
ساخت سرور چت المنت بروی لینوکس
5 minutes آوریل 25, 2026
Geo Routing و Geo DNS
2 minutes آوریل 22, 2026

تقویم

آگوست 2026
شیدسچپج
1234567
891011121314
15161718192021
22232425262728
293031 
« جولای    

عضویت

جدیدترین پست‌ها

آموزش نصب و راه‌اندازی RustDesk Server با Docker
آموزش نصب و راه‌اندازی RustDesk Server با Docker
2 minutes جولای 2, 2026
آموزش نصب و راه‌اندازی Matrix Synapse + Element Web + Coturn با Docker روی Ubuntu 24.04
4 minutes جولای 2, 2026
CXS چیست و چگونه کار می‌کند
1 minute می 3, 2026
ساخت سرور چت المنت بروی لینوکس
5 minutes آوریل 25, 2026
Geo Routing و Geo DNS
2 minutes آوریل 22, 2026

سلام