راهنمای امنیت و سخت شدن وب سرور Nginx

بهترین اقدامات امنیتی Nginx.


Nginx سریعترین سرور وب در صنعت است و در حال حاضر ، رتبه دوم را در سهم بازار دارد.

در ابتدا در سال 2004 منتشر شد ، و از آن زمان به بعد شهرت بسیار خوبی کسب کرده و در میلیون ها سایت شلوغ برتر استفاده شده است.

یک دلیل برای آن وجود دارد – نگینکس سریع چشمک می زند.

در این مقاله ، در مورد برخی از راهنماهای اساسی برای تأمین امنیت Nginx برای یک محیط تولید صحبت خواهم کرد. بیایید شروع کنیم.

SSL / TLS

صدور گواهینامه SSL

اولین قدم در امنیت وب اجرای SSL است تا بتوانید با https به برنامه های وب دسترسی داشته باشید و یک لایه رمزگذاری در ارتباط اضافه کنید.

  • از OpenSSL برای تولید CSR با 2048 بیت و sha-2 استفاده کنید

opsls req-node-new -sha256-newkey rsa: 2048-bestout bestflare.key-best bestflare.csr

  • دستور فوق باعث می شود CSR و فایلهای کلیدی در جریان مستقیم کار کنند. فراموش نکنید که نام پرونده .csr و .key را تغییر دهید.

CSR را که توسط یک مجوز گواهی امضا شده است دریافت کنید و پس از آنکه گواهی امضا شده را دریافت کردید ، می توانید همانطور که در زیر است اجرا کنید.

  • ورود به سرور Nginx
  • به پوشه Conf که در آن پرونده ssl.conf دارید ، بروید.

توجه: در نصب پیش فرض در لینوکس ، این پرونده را در زیر خواهید داشت /etc/nginx/conf.d.

  • پرونده را ویرایش کرده و موارد زیر را اضافه کنید ، که Nginx را قادر می سازد در پورت 443 گوش دهد

سرور {
443 ssl؛
server_name bestflare.com؛
ssl در؛
ssl_certificate /opt/cert/bestflare.pem؛
ssl_certificate_key /opt/cert/bestflare.key؛
}

توجه: فراموش نکنید که گواهی و مسیر پرونده اصلی را تغییر دهید.

  • پیکربندی را ذخیره کنید و Nginx را مجدداً راه اندازی کنید. گواهی SSL با موفقیت پیاده سازی می شود.

bestflare-ssl-cert

بهینه سازی SSL / TLS

داشتن SSL به این معنی نیست که کاملاً ایمن باشد و اینجاست که به عنوان یک متخصص امنیت وب ، باید برای پیکربندی وب سرور پیکربندی کنید.

برای شروع ، من اجرای آن را توصیه می کنم اسکن SSL در برابر وب سایت برای پیدا کردن نمره و آسیب پذیری اساسی.

ssl-labs-rating-c

بنابراین رتبه فعلی SSL Labs است “ج” و هدف این است که آن را “A.”

پروتکل های ضعیف SSL / TLS را غیرفعال کنید

SSL 3 ، TLS 1.0 و TLS 1.1 آسیب پذیر است و ما فقط به پروتکل قوی TLS 1.2 اجازه خواهیم داد.

  • پرونده ssl.conf را ویرایش کرده و در زیر بلوک سرور اضافه کنید

ssl_protocols TLSv1.2؛

  • پرونده ssl.conf را ذخیره کرده و Nginx را مجدداً راه اندازی کنید

سوئیت های ضعیف رمزگذاری را غیرفعال کنید

سوئیت های ضعیف رمزگذاری ممکن است منجر به آسیب پذیری مانند logjam شود ، به همین دلیل باید فقط به رمزگذاری قوی اجازه دهیم.

  • موارد زیر را در پرونده ssl.conf به بلوک سرور اضافه کنید

ssl_ciphers "EECDH + ECDSA + AESGCM EECDH + aRSA + AESGCM EECDH + ECDSA + SHA384 EECDH + ECDSA + SHA256 EECDH + aRSA + SHA384 EECDH + aRSA + SHA256 ETDH + aRSA + RC4 ETDE EDH + aRSA L! L! ! MD5! EXP! PSK! SRP! DSS"؛

  • فایل را ذخیره کرده و Nginx را مجدداً راه اندازی کنید

گواهی زنجیره ای را نصب کنید

نداشتن گواهینامه زنجیره ای نیز در رتبه بندی کلی تأثیر می گذارد و ممکن است هنگام مرور در یک مرورگر مدرن مانند Chrome ، خطایی نشان دهد. شما باید مجوز زنجیره ای را از اختیار بگیرید. بیشتر شما در وب سایت آنها یا فقط Google آن را پیدا خواهید کرد.

  • مطالب مربوط به گواهی زنجیره ای را مانند زیر در مجوز وب سایت اضافه کنید. در مثال من می تواند /opt/cert/bestflare.pem باشد

زنجیره گواهی

  • پرونده را ذخیره کرده و Nginx را مجدداً راه اندازی کنید

Secure Diffie-Hellman برای TLS

دیفی هلمن نسبت به آنچه تصور می شد از امنیت کمتری برخوردار است. یکی از بهترین روشهایی که اخیراً در یک لیست اضافه شده است ، تأمین امنیت دیفی هلمن است. تولید DH GROUP منحصر به فرد و اضافه کردن ssl_dhparam در پرونده ssl.conf این کار را انجام می دهد.

  • با استفاده از OpenSSL گروه منحصر به فرد DH ایجاد کنید

opensl dhparam -out dhparams.pem 4096

  • چند دقیقه طول خواهد کشید و یک پرونده dhparams.pem را در یک فهرست کار فعلی تولید می کنید
  • dhparams.pem را در پوشه گواهی کپی کنید
  • ssl.conf را تغییر داده و موارد زیر را در بلاک سرور اضافه کنید

ssl_dhparam /opt/cert/dhparams.pem؛

  • پرونده را ذخیره کرده و Nginx را مجدداً راه اندازی کنید

این باید برای بهینه سازی SSL / TLS کافی باشد و اجازه دهید دوباره URL را تست کنیم تا رتبه را مشاهده کنیم.

ssllabs-a-rating

وو هو! بنابراین اکنون می توانید ببینید “آ” رتبه بندی توسط SSLLabs. آفرین!

در اینجا کامل ssl.conf است

پیکربندی سرور # HTTPS
سرور {
443 ssl؛
server_name bestflare.com؛
ssl در؛
ssl_certificate /opt/cert/bestflare.pem؛
ssl_certificate_key /opt/cert/bestflare.key؛
ssl_protocols TLSv1 TLSv1.1 TLSv1.2؛
ssl_prefer_server_ciphers در؛
ssl_ciphers "EECDH + ECDSA + AESGCM EECDH + aRSA + AESGCM EECDH + ECDSA + SHA384 EECDH + ECDSA + SHA256 EECDH + aRSA + SHA384 EECDH + aRSA + SHA256 ETDH + aRSA + RC4 ETDE EDH + aRSA L! L! ! MD5! EXP! PSK! SRP! DSS"؛
ssl_dhparam /opt/cert/dhparams.pem؛
}

نشت اطلاعات

در نصب پیش فرض Nginx ، اطلاعات حساس بسیار فاش شده ای وجود دارد ، که می تواند به هکرها کمک کند تا برای حمله آماده شوند.

اگر در حال کار بر روی یک محیط سازگاری PCI هستید ، این به عنوان آسیب پذیری نشت اطلاعات در نظر گرفته می شود و باید مورد را برطرف کنید.

برای غیرفعال کردن نشت اطلاعات باید از server_tokens off استفاده کنید. من این را در مقاله قبلی خود توضیح داده ام. نسخه را از بنر هدر سرور در Nginx حذف کنید

امنیت برنامه وب

پیکربندی پیش فرض Nginx کامل نیست و می تواند آسیب پذیری بسیاری داشته باشد ، به همین دلیل ما آنها را برای ایمن سازی سخت می کنیم.

غیرفعال کردن روشهای HTTP ناخواسته

بیشتر اوقات ، فقط به GET ، HEAD احتیاج دارید & درخواست HTTP POST را در برنامه وب خود قرار دهید. اجازه دادن به TRACE یا DELETE خطرناک است زیرا می تواند به حمله به سایت ردیابی اجازه دهد و به طور بالقوه اجازه می دهد هکرها اطلاعات کوکی را سرقت کنند.

  • nginx.conf را اصلاح کرده و زیر بلوک سرور را اضافه کنید

if ($ درخواست_method! ^ (GET | HEAD | POST) $)
{
بازگشت 405؛
}

پرونده را ذخیره کرده و Nginx را مجدداً راه اندازی کنید. اگر کسی سعی در استفاده از TRACE ، DELETE ، PUT ، OPTIONS داشته باشد ، اکنون 405 مجاز نیست.

Chandans-iMac: ~ chandan $ telnet bestflare.com 80
تلاش 128.199.100.162…
به bestflare.com وصل شد.
شخصیت فرار “^]” است.
TRACE / HTTP / 1.1
میزبان: آزمایش
HTTP / 1.1 405 مجاز نیست
سرور: nginx
تاریخ: شنبه ، 11 ژوئیه 2015 06:04:34 GMT
نوع محتوا: text / html
محتوا-طول: 166
اتصال: بستن

Clickjacking Attack

می توانید X-FRAME-OPTIONS را در هدر HTTP تزریق کنید تا از حمله به کلیک جلوگیری کنید.

این با افزودن زیر در پرونده nginx.conf حاصل می شود

گزینه های add_header X-Frame "SAMEORIGIN"؛

در بالای هدر به یک مرورگر دستور می دهد تا منابع را از همان مبدا بارگیری کند.

محافظت X-XSS

هدر HTTP را با محافظت X-XSS برای کاهش حمله برنامه نویسی Cross-Site تزریق کنید.

  • پرونده nginx.conf را اصلاح کنید تا موارد زیر اضافه شود

add_header X-XSS-Protection "1؛ حالت = بلوک"؛

  • فایل پیکربندی را ذخیره کرده و Nginx را مجدداً راه اندازی کنید. شما می توانید استفاده کنید تست هدرها ابزاری برای تأیید پس از اجرای.

همچنین شما می توانید علاقه مند به اجرای هدرهای امن توصیه شده OWASP باشید که در اینجا توضیح داده شده است.

پیاده سازی وزارت دفاع WAF

با اجرای برنامه کاربردی وب Firewall ModSecurance با OWASP Core Rule Set ، یک لایه امنیتی دیگر اضافه کنید.

از طرف دیگر ، اگر می توانید از امنیت مبتنی بر ابر مانند استفاده در نظر بگیرید سوکوري جلوی سرور Nginx.

Nginx را به روز نگه دارید

آخرین و مهمترین نکته این است که شما باید Nginx را به روز کنید زیرا در بسیاری از موارد عملکرد بهبود یافته است ، اصلاحات امنیتی و ویژگیهای جدیدی افزوده می شود.

امیدوارم این به شما کمک کند Nginx خود را ایمن نگه دارید.

در مرحله بعد ، ممکن است شما علاقه مند شوید که یاد بگیرید ساخت Nginx برای عملکرد بالا از ابتدا.

Jeffrey Wilson Administrator
Sorry! The Author has not filled his profile.
follow me
    Like this post? Please share to your friends:
    Adblock
    detector
    map