تقویت امنیت HTTP response headers

مقدمه

سربرگ‌های پاسخ HTTP جفت‌های نام-مقدار رشته‌ای هستند که از سمت سرور با محتوایی که درخواست کرده‌اید، برگردانده می‌شوند. این‌ها به طور معمول برای انتقال اطلاعات فنی مانند نحوه‌ی ذخیره‌سازی محتوا توسط مرورگر، نوع محتوا، نرم‌افزاری که در سرور اجرا می‌شود و بسیاری موارد دیگر استفاده می‌شوند. اخیراً، سربرگ‌های پاسخ HTTP به‌طور فزاینده‌ای برای انتقال سیاست‌های امنیتی به مرورگر استفاده می‌شوند. با ارسال سیاست‌های امنیتی به کاربر به این شیوه، میزبان‌ها می‌توانند تجربه‌ی مرور ایمن‌تری را برای بازدیدکنندگان خود ارائه دهند و همچنین خطر برای همه طرف‌های مرتبط را کاهش دهند. بیایید به سربرگ‌های مبتنی بر امنیت بیشتری نگاهی بیندازیم.

سربرگ‌های اضافی

گام اول در تقویت سربرگ‌های پاسخ HTTP شما، نگاه کردن به سربرگ‌های اضافی است که می‌توانید از آنها استفاده کنید تا سایت خود را ایمن‌تر کنید. در زیر توضیح داده شده است، این سربرگ‌ها به مرورگر اطلاعات بیشتری درباره نحوه رفتار کردن شما درباره سایت می‌دهند. آنها می‌توانند برای ارسال سیاست‌های امنیتی، تنظیم گزینه‌های پیکربندی و غیرفعال کردن ویژگی‌های مرورگری که نمی‌خواهید برای سایت خود فعال شود، استفاده شوند. بعد از راه‌اندازی هر سربرگ، آن را با استفاده از SecurityHeaders.io بررسی کنید.

Content Security Policy – سیاست امنیت محتوا (CSP)

سربرگ CSP به شما اجازه می‌دهد تا یک لیست سفید از منابع تأییدشده برای محتوای سایت خود تعریف کنید. با محدود کردن منابعی که یک مرورگر می‌تواند برای سایت شما بارگیری کند، مانند فایل‌های js و css، CSP می‌تواند به عنوان یک پاسخ مؤثر به حملات XSS عمل کند. در اینجا یک سیاست ابتدایی برای اجبار TLS بر روی همه منابع و جلوگیری از هشدارهای محتوای مخلوط (Mixed-Content) آورده شده است.

Nginx:

add_header Content-Security-Policy "default-src https: data: 'unsafe-inline' 'unsafe-eval'" always;

Apache:

Header always set Content-Security-Policy "default-src https: data: 'unsafe-inline' 'unsafe-eval'"

IIS:

در سرورهای ویندوزی، IIS Manager را باز کنید و بر روی سایت مورد نظر کلیک کنید و سپس گزینه HTTP Response Headers را انتخاب کنید.

iis-response-headers

در پنل “Actions” بر روی دکمه “Add” کلیک کنید و سپس جزئیات سربرگ را وارد کنید.

CSP دارای ویژگی متعددی است که من در بالا شرح داده‌ام و همچنین می‌توانید از تحلیل‌گر CSP و سازنده CSP در report-uri.io استفاده کنید. این ابزاربه شما کمک کنند تا یک سیاست سفارشی برای سایت خود ایجاد کنید.

HTTP Strict Transport Security – امنیت انتقال سختگیرانه HTTPS

این سربرگ به سرور اجازه می‌دهد تا مرورگرها را به اتصال امن HTTPS به جای HTTP برای درخواست‌های آینده به وب‌سایت الزام کند. این اقدام می‌تواند از حملات MITM (Man-in-the-Middle) جلوگیری کند و امنیت ارتباطات را تأمین کند. بهترین راه برای اعمال آن این است که سرور این سربرگ را به همراه سیاست‌های امنیتی مناسبی تنظیم کند تا مرورگرها برای مدت زمان مشخصی (مثلا یک سال) تنها از اتصال HTTPS استفاده کنند و از هیچگونه سویه اینترنتی تلاش برای از پایین آوردن اتصال HTTPS جلوگیری شود.

Nginx:

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

Apache:

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

IIS:

پین‌کردن کلید عمومی HTTP (HTTP Public Key Pinning)

فهم درستی از اهمیت امنیت در ارتباطات اینترنتی بسیار اساسی است. اما امروزه، با افزایش تهدیدات امنیتی، ابزارهای جدیدی نیز برای تقویت امنیت ارتباطات وب ارائه شده‌اند. یکی از این ابزارها، سیاست پین‌کردن کلید‌های عمومی (HPKP) است که به وب‌سایت‌ها این امکان را می‌دهد که مرورگرها را مجبور کنند فقط با کلیدهایی که توسط خودشان تعیین شده‌اند، ارتباط برقرار کنند. این برنامه‌های امنیتی می‌توانند از تلاش‌هایی که به هدف تقلب و تزویر کلیدها انجام می‌شوند، جلوگیری کنند و سطح اعتماد کاربران به ارتباطات وب را افزایش دهند.

یکی دیگر از ابزارهای امنیتی موجود برای تقویت امنیت ارتباطات وب، فناوری HSTS (HTTP Strict Transport Security) است که به مرورگرها می‌گوید که باید همیشه از اتصال HTTPS استفاده کنند، به جای HTTP غیرامنیتی. این تکنولوژی باعث کاهش موارد ممکن حمله MITM (Man-in-the-Middle) می‌شود و از تهدیدات امنیتی حمایت می‌کند.

هرچند که امنیت این تکنولوژی‌ها بسیار حیاتی است، اما باید به دقت از آنها استفاده شود و نکات امنیتی آنها را رعایت کرد. به‌عنوان مثال، در مورد HPKP، اگر تنظیمات آن به‌طور نادرست انجام شود، ممکن است به این امر منجر شود که وب‌سایت شما برای کاربران غیرقابل دسترسی باشد. در نتیجه، همیشه مهم است که قبل از استفاده از این ابزارها، به دقت مطالعه و آموزش در زمینه استفاده صحیح و امنیتی آنها بپردازید و از راهنماها و منابع معتبر استفاده کنید.

Nginx:


add_header Public-Key-Pins "pin-sha256='X3pGTSOuJeEVw989IJ/cEtXUEmy52zs1TZQrU06KUKg='; pin-sha256='MHJYVThihUrJcxW6wcqyOISTXIsInsdj3xK8QrZbHec='; pin-sha256='isi41AizREkLvvft0IRW4u3XMFR2Yg7bvrF7padyCJg='; includeSubdomains; max-age=2592000" always;


Apache:

Header always set Public-Key-Pins "pin-sha256='X3pGTSOuJeEVw989IJ/cEtXUEmy52zs1TZQrU06KUKg='; pin-sha256='MHJYVThihUrJcxW6wcqyOISTXIsInsdj3xK8QrZbHec='; pin-sha256='isi41AizREkLvvft0IRW4u3XMFR2Yg7bvrF7padyCJg='; includeSubdomains; max-age=2592000"


IIS:

X-Frame-Options

سربرگ X-Frame-Options (RFC)، یا همان سربرگ XFO، بازدیدکنندگان شما را در برابر حملات کلیک‌جکینگ محافظت می‌کند. یک حمله‌کننده می‌تواند یک فریم (iframe) را در وب‌سایت خود بارگیری کرده و وب‌سایت شما را به عنوان منبع تنظیم کند، که کاری بسیار آسان است. با استفاده از CSS ماهرانه، می‌توانند وب‌سایت شما را در پس‌زمینه پنهان کنند و اشکال‌هایی با نمایی واقعی ایجاد کنند. وقتی بازدیدکنندگان شما روی لینکی که فکر می‌کنند بی‌خطر است کلیک می‌کنند، در واقع روی لینک‌هایی در وب‌سایت شما در پس‌زمینه کلیک می‌کنند. این ممکن است به نظر نیاید که این امر اشکالی داشته باشد تا زمانی که متوجه شویم مرورگر این درخواست‌ها را در محیط کاربر اجرا می‌کند، که ممکن است شامل ورود و احراز هویت کاربر به وب‌سایت شما شود!

سربرگ X-Frame-Options به مرورگرها اجازه می‌دهد که بدانند آیا محتوای وب‌سایت شما می‌تواند در یک فریم داخلی یک صفحه وب دیگر نمایش داده شود یا خیر. مقادیر معتبر شامل DENY به معنای اینکه وب‌سایت شما نمی‌تواند در فریم‌ها قرار گیرد، SAMEORIGIN که به شما اجازه می‌دهد وب‌سایت خود را فریم کنید یا ALLOW-FROM https://zagrio.com/ که به شما اجازه می‌دهد وب‌سایت‌هایی را که مجاز به فریم کردن وب‌سایت خود هستند مشخص کنید.

این سربرگ یکی از ابزارهای امنیتی مهم برای محافظت از وب‌سایت شما در برابر حملات امنیتی است.

Nginx:

add_header X-Frame-Options "SAMEORIGIN" always;

Apache:


Header always set X-Frame-Options "SAMEORIGIN"

IIS:

X-XSS-Protection

این سربرگ برای پیکربندی حفاظت از XSS (Cross-Site Scripting) داخلی که در مرورگرهای اینترنت اکسپلورر، کروم و سافاری (وب‌کیت) وجود دارد، استفاده می‌شود. تنظیمات معتبر برای این سربرگ شامل 0 که حفاظت را غیرفعال می‌کند، 1 که حفاظت را فعال می‌کند و 1؛ mode=block که به مرورگر می‌گوید اگر یک حمله را شناسایی کند، پاسخ را مسدود کند به جای اجازه دادن به اجرای اسکریپت است. این سربرگ به مرورگر اجازه می‌دهد تا در برابر حملات XSS (Cross-Site Scripting) محافظت شود. در حملات XSS، حمله‌کننده کدهای جاوااسکریپت مخرب را به وب‌سایت شما تزریق می‌کند تا اطلاعات کاربران را بدزدد یا به مخاطبان مورد نظر خود هدایت کند. با فعال‌سازی این سربرگ و تنظیم مقدار آن به “1”، مرورگرها می‌توانند به طور خودکار اقداماتی را انجام دهند تا از حملات XSS جلوگیری کنند. این امر به افزایش امنیت وب‌سایت شما کمک می‌کند.

Nginx:


add_header X-Xss-Protection "1; mode=block" always;

Apache:


Header always set X-Xss-Protection "1; mode=block"

IIS:

X-Content-Type-Options

این سربرگ برای کنترل نحوه‌ی تفسیر محتوای فایل‌ها توسط مرورگر استفاده می‌شود. مقادیر معتبر برای این سربرگ عبارتند از “nosniff” که به مرورگر می‌گوید که نوع محتوای فایل را از هدر Content-Type استخراج کند و از فایل‌هایی که نوع محتوایشان مشخص نیست استفاده نکند. این سربرگ از mime-sniffing توسط Google Chrome و اینترنت اکسپلورر برای تعیین نوع محتوای پاسخ، مستقیماً به دور از آنچه توسط سرور اعلام شده است، جلوگیری می‌کند.

Nginx:

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

Apache:


Header always set X-Xss-Protection "1; mode=block"

IIS:

حذف سربرگ‌ها

گام بعدی در تقویت سربرگ‌های شما نگاه کردن به سربرگ‌هایی است که می‌توانید آنها را حذف کنید تا مقدار اطلاعاتی که درباره‌ی سرور شما و نرم‌افزارهایی که بر روی آن اجرا می‌شوند فاش می‌شود، کاهش یابد. سرورها به طور معمول اطلاعاتی را که نرم‌افزاری که در آن اجرا می‌شود، چه نسخه‌هایی از نرم‌افزار در آن وجود دارد و چه چارچوب‌هایی آن را پشتیبانی می‌کنند، فاش می‌کنند. کاهش میزان اطلاعاتی که فاش می‌کنید همیشه مزیتی است. من برخی از رایج‌ترین سربرگ‌ها را بررسی کردم اما شما همیشه می‌توانید سربرگ‌های پاسخ HTTP سایت خود را بررسی کنید تا ببینید آیا هنوز سربرگ‌های دیگری وجود دارد که می‌توانید آن‌ها را با استفاده از ابزارهایی که در بالا اعلام شد، بررسی و حذف کنید.

سربرگ Server

سربرگ Server یکی از رایج‌ترین سربرگ‌هایی است که احتمالاً در یک وب‌سایت مشاهده خواهید کرد. در RFC تعریف شده است:

سربرگ پاسخ Server شامل اطلاعاتی درباره نرم‌افزار استفاده شده توسط سرور منبع برای پردازش درخواست است. این فیلد می‌تواند شامل چندین نشانه محصول (بخش 3.8) و توضیحاتی درباره سرور و هر زیرمحصول مهم باشد. نشانه‌های محصول به ترتیب اهمیت برای شناسایی برنامه فهرست شده‌اند.

این سربرگ طراحی شده است تا اطلاعاتی درباره برنامه وب‌سرور خاصی که بر روی سرور اجرا می‌شود، ارائه دهد، و مقادیر رایج به مایکروسافت IIS، NginX یا Apache اشاره می‌کنند. با این حال، RFC در ادامه بیان می کند:

توجه: فاش کردن نسخه دقیق نرم‌افزار سرور ممکن است سرور را به حملات در برابر نرم‌افزارهایی که به ثقل سوراخ‌های امنیتی شناخته شده اند، آسیب‌پذیرتر کند. ارائه‌دهندگان سرور تشویق می‌شوند که این فیلد را به یک گزینه قابل پیکربندی تبدیل کنند.

با این حال، بسیاری از تامین کنندگان، این کار را آنقدر آسان نمی‌کنند تا امکان تغییر مقدار سربرگ یا در ایده‌آل، حذف آن را فراهم کنند.

ادامه این مقاله به زودی منتشر خواهد شد …

Nginx Plus در مقایسه با Nginx عادی چه تفاوتی دارد؟

Nginx Plus در مقایسه با Nginx عادی چه تفاوتی دارد؟

1.1kviews

در مقاله 10 لود بالانس اوپن سورس و رایگان و در مبحث لود بالانسر‌ها (Load Balancer)ها اشاره‌ای کوتاه به Nginx Plus داشتیم، حال در این مقاله قصد داریم بیشتر آن را بررسی نماییم و در مورد آن صحبت کنیم.

Nginx Plus در مقایسه با Nginx عادی چه تفاوتی دارد؟

Apache HTTP پیشتاز وب سرورهاست واین موضوع از آمار نیز مشخص است، اما همین آمار نکته‌ی دیگری را نیز به ما متذکر می‌شوند و آن هم چیزی نیست جز قدرت گیری آهسته‌ی Nginx که قصد دارد پیشتازی را از Apache HTTP برباید.

nginx plus

Nginx به سرعت و بهروری بینظیرش معروف است و بیشترین سهم از سایت‌هایی با رنک زیر 10 هزر و صد هزار را داراست که خود نشان دهنده برتری آن است.

در تصویر زیر می‌توانید آمار استفاده از Nginx و Apache HTTP را مشاهده نمایید.

nginx plus

یکی از بزرگترین مزیت‌های Nginx اوپن سورس بودن آن است، و همین نکته باعث شده تا با بیشتر سرورهای بک اندی میانه خوبی داشته باشد. اگر تا حالا با Nginx کار کرده‌اید احتمالا نام Nginx Plus را هم شنیده‌اید که نسخه تجاری آن است.

همانطور که تا حالا حدس زده‌اید Nginx Plus نسبت به برادر کوچکترش مزایای بیشتری دارد. به عنوان مثال:

  • ماندگاری session ها برای اطمینان از هدایت به سرور بالا دستی
  • High-availability clustering برای جلوگیری از خرابی تک نقطه‌ای (SPOF)
  • بررسی سلامت لحظه‌ای سرور برای جلوگیری از ارسال درخواست به سرور‌های دچار مشکل
  • پایش سرویس‌‌ها با استفاده از DNS
  • لود بالانسر با ویژگی‌های کامل
  • کنترل بیشتر بر cache
  • کنترل داخلی برای رفع اشکال، استفاده صحیح از منابع ، عیب یابی
  • sign in تک مرحله‌ای
  • ماژول پویای WAF
  • کنترل پهنای باند برای پخش فایل‌های Mp4

Nginx Plus برای سیستم‌عامل‌های زیر در دسترس است:

  • RHEL / CentOS
  • Amazon Linux
  • Oracle Linux
  • FreeBSD
  • SUSE
  • Ubuntu
  • debian

و برای IaaS ها(infrastructure-as-a-service) زیر:

  • Google Cloud Platform (GCP)
  • Amazon Web Services (AWS)
  • Microsoft Azure

نصب Nginx Plus

Nginx برای این نسخه یک trial سی روزه در نظر گرفته که شما می‌توانید به راحتی آن را دانلود نموده و به بررسی آن بپردازید تا در صورت نیاز آن را تهیه نمایید. در زیر نسخه‌ای نمایش داده شده که بر روی گوگل کلاد نصب گشته است. در زیر نصب Nginx Plus با استفاده از اسکریپت نشان داده شده که بسیار راحت است. در قدم اول با استفاده از root در سرور لاگین کنید.

در قدم بعدی اسکریپت زیر را اجرا نمایید.

در ادامه متنی که در اسکریپت بالا با هشتگ مشاهده می‌شود را با hash key که توسط Nginx به شما داده می‌شود جایگزین نمایید.  مانند مثال زیر:

به همین راحتی!

حالا نیاز است که Nginx را راه اندازی کنیم و صحت نصب خود را مورد بررسی قرار دهیم:

با اجرای این دستور از نصب صحیح خود اطمینان حاصل می‌نمایید.

شروع و توقف Nginx

شروع و توقف Nginx Plus مانند نسخه رایگان و اوپن سورس آن است.

بررسی لحظه به لحظه Nginx Plus

همانطور که در بالا هم اشاهر شد Nginx Plus دارای بررسی لحظه به لحظه است که اطلاعات زیر را در اختیار شما می‌گذارد:

  • درخواست‌های لحظه‌ای وتعداد کل درخواست‌ها
  • درخواست‌ها در هر ثانیه
  • میزان ترافیک لحظه‌ای(send/recieve)
  • درخواست‌های Upstream

بررسی لحظه به لحظه Nginx Plus

بنظر می‌رسد که Nginx Plus یکی از بهترین راهکار‌ها برای استفاده به عنوان Software Delivery و لود بالانس (Load Balance) می‌باشد.

مرکز آموزش زاگریو

ipv6-on-nginx

IPv6 بر روی سرور Nginx: راهنمای فعال سازی

 

 

در این آموزش قصد داریم. با توضیحات مختصر نحوه فعال سازی IPv6 را بر روی سرور Nginx برای شما شرح دهیم. در ادامه با زاگریو همراه باشید.

پروتکل اینترنت نسخه ۶ (به انگلیسی: Internet Protocol version 6) یا به اختصار IPv6 جدیدترین نسخه پروتکل اینترنت (Internet Protocol) است که ارتباط‌های اینترنتی بر پایه آن شکل می‌گیرد. این نسخه قرار است جای نسخه ۴ این پروتکل (IPv4) را که هم‌اکنون استفاده می‌شود بگیرد. IPv4 از فضای آدرسی ۳۲ بیتی استفاده می‌کند. این فضای اجازهٔ آدرس‌دهی ۲۳۲ یعنی حدود ۴ میلیارد آدرس در اینترنت را می‌دهد. با توجه به این‌که امروزه بسیاری از دستگاه‌ها افزون بر کامپیوترها; مانند موبایل‌ها، دوربین‌ها و حتی لوازم خانگی و قاب عکس‌های دیجیتال به اینترنت متصل می‌شوند. این فضا رو به اتمام است و تاکنون با تمهیداتی مانند NAT سعی در جبران این کمبود داشته‌اند. IPv6 اما از فضای آدرس‌دهی ۱۲۸ بیتی استفاده می‌کند که اجازه داشتن ۲۱۲۸ آدرس یگانه را به ما می‌دهد و مشکل فضای آدرسی که هم‌اکنون با آن روبرو هستیم را رفع می‌کند.

همانطور که می‌دانید IPv6  نسبت به IPv4 ویژگی‌های بارز بهتری دارد که مهترین آن سرعت بیشتر آن نسبت به IPv4 می‌باشد. به صورتی که می‌تواند سرعت لود یک وب اپلیکیشن را از 25ms تا 300ms کاهش دهد. یکی از جالب ترین گزارش‌ها از وب سایت SUCURI نشان می‌دهد که 16% از وب‌سایت‌های پرطرفدار جهان با رتبه کمتر 1000 از IPv6 پشتیبانی می‌کنند که این مقدار در وب سایت‌هایی با رتبه زیر 1 میلیون 7% می‌باشد.

IPv6

نحو فعال سازی

به صورت پیش فرض Nginx به گونه‌ای پیکربندی شده که بتواند از IPv6 پشتیبانی کند. برای تایید این قابلیت کافی است که سری به فایل nginx.conf بزنید، شما در این بخش با خطی مانند زیر روبرو خواهید شد:

حال اگر شما آدرس IPv6 فعال دارید پس دیگر مشکلی نیست. و نیاز نیس چیزی را فعال نمایید اما اگر چند آدرس IPv6 دارید. و میخواهید از یک IP خاص و پورت خاص استفاده شود بهر است آن را مانند زیر تنظیم نمایید.

Nginx را دوباره راه اندازی نمایید. تا از صحت کار خود مطمئن گردید.

هدایت کاربر از صفحه 403 به 404

هدایت کاربر از صفحه 403 به 404

بعضی مواقع هست که ما نیاز داریم تا ارور 403 به کاربرانمان نشان داده نشود. این امر می‌توند به علت محتوایی باشد که از دید بعضی کاربران پنهان کرده‌ایم، اما مشکل اینجا نیست بلکه مشکل زمانی است، که هکرها با ارور 403 مواجه می‌شوند، این ارور به آن‌ها می‌گوید که مسیری که یافته‌اند صحیح است و تنها دسترسی ندارند. حال اگر ما به جای ارور 403 به آن‌ها ارور 404 نشان دهیم هکرها نمی‌توانند مطمئن باشند، که آدرس صحیحی را یافته‌اند.

روش‌های اجرای تکنیک در Nginx، Apache و وردپرس

در ادامه، راه‌هایی را برای اجرای این تکنیک در Nginx ،Apache و وردپرس به شما یاد خواهم داد و طبق تمام مقاله‌های قبلی توصیه من به شما این است که قبل از انجام تغییرات از فایلی که می‌خواهید بر آن تغییری اعمال نمایید پشتیبان تهیه نمایید.

هدایت کاربر از صفحه 403 به 404

Apache HTTP | هدایت کاربر از صفحه 403 به 404

در اولین قدم لاز است تا فایلی با نام پیشنهادی 404 در پوشه DocumentRoot بسازید.

حال در فایل httpd.conf خط زیر را اضافه نمایید.

کاری که در این خط انجام داده‌ایم این است که ارور 403 را به صفحه 404 بازگشت داده‌ایم.

حال فایل را ذخیره نمایید و Apache را دوباره راه اندازی نمایید.

هدایت کاربر از صفحه 403 به 404

Nginx

در قدم اول فایلی با نام 404.html بسازید. سپس در فایل پیکربندی Nginx و در زیر بخش server خط زیر را اضافه نمایید.

در این دستورات زمانی که Nginx صفحه مورد نظر را پیدا نکند، کاربر را به 404 سوق خواهد داد و زمانی نیز که کاربر با صفحه 403 روبرو شود کاربر را به صفحه 404 سوق خواهد داد.

WordPress

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

مدیریت سرور

کلام آخر…

در این مقاله در مورد هدایت کاربر از صفحه 403 به 404، صحبت کردیم. اگر هرگونه سوال و مشکل در این راه برای شما بوجود آمد، کارشناسان ما به صورت حرفه‌ای و ۲۴ ساعته به شما خدمات خواهند داد.

زاگریو

قراردادن رمزعبور برای صفحات در cPanel،Nginx، Apache

 

بعضی مواقع هست که شما نیاز دارید یک یا چند صفحه سایت را با گذاشتن رمزعبور برای صفحات از دید بعشی از مراجعان پنهان نمایید. این کار می‌تواند دلایل زیادی داشته باشد، از جامله حاضر نبودن صفحه یا داده های که نمی‌خواهید همه کاربران مشاهده کنند به این پروسه basic Authentication نیز می‌گویند.

در مقاله پیش رو می‌خواهیم به روش‌های متفاوت در Apache ، Nginx  و  wordpress و cPanel بپردازیم.

طریقه قرار دادن رمز برای صفحات در Apache

 

برای این منظور نیاز است که اول از همه یک فایل برای پسورد با تمام مجوزهای مورد نیازش ایجاد نمایید. فایل مورد نظر باید .htpasswd نام داشته باشد و می‌تواند در هر بخشی از سرور ذخیره شود. در این آموزش من این فایل را در پوشه پیکربندی /etc/httpd/conf ذخیره می‌نمایم.

شما می‌توانید این فایل را با دستور touch ایجاد نمایید.

حالا باید مشخص کنیم که کدام یوزرها و کلاینت‌ها می‌توانند دسترسی داشته باشند این کار را در فایل htpasswd انجام خواهیم داد.

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

در این میان پسورد شما به صورت رمزکذاری شده ذخیره می‌گردد و نیاز نیس که نگران آن باشید.

حال نیاز است url صفحه‌ای که نیاز است تا رمزگذاری شود را انتخاب نمایید. دستور زیر را می‌توانید در بخشی از فایل خود اضافه نمایید.

اگر دایرکتوری شما دارای /var/www/html/client می‌توانید به حای اضافه کردنت یک دایرکتوری جدید فقط بخش زیر را در ادمه آن وارد نمایید.

حالا Apache را دوباره با دستور زیر راه اندازی نمایید.

حال اگر به صفحه مورد نظر بروید با دستور نیاز به رمز مواجه خواهید شد.

رمزعبور برای صفحات

حال با رمزعبور و نام کاربری که قبلا تنظیم کرده‌اید می‌توانید وارد صفحه مورد نظر خود شوید.

 

طریقه قرار دادن رمز برای صفحات در Nginx

 

برای این منظور بهتر است اول دستور htpasswd را اجرا نمایید تا متوجه شوید که سرور دارای Apache HTTP است یا خیر در غیر اینصورت می‌توانید آن را با دستورات زیر نصب نمایید:

 

برای  CentOS/RHEL 8

برای CentOS/RHEL 7

برای Ubuntu

 

حال بیاید همانطور که در Apache اقدام به ساخت فایل و مجوزهایش اقدام نمودیم اینجا نیز اقدام نماییم:

فراموش نکنید که zagrio را با نام کاربری خود جایگزین نمایید.

حال خط زیر را به فایل فعال Nginx خود اضافه نمایید. دقت کنید که این خط به فایل nginx.conf که فایل پیکربندی Nginx می‌باشد اضافه می‌شود.

حالا Nginx را دوباره راه اندازی نمایید.

خط زیر را به فایل فعال در آدرس location / { اضافه نمایید.

 

طریقه قرار دادن رمزعبور برای صفحات در WordPress

خب بعضی اوقات هست که ما از وردپرس استفاده می‌کنیم و می‌خواهیم بخشی از سایت یا تمام آن را با رمز عبور محافظت کنیم. برای اینکار از افزونه PPWP استفاده خواهیم کرد. این افزونه با اکثر سازنده‌های صفحه مانند المنتور کار می‌کند و پیکربندی آن بسیار راحت است.

اما اگر قصد دارید بر صفحات عادی خود رمزعبور بگذارید می‌توانید از ویژگی‌های خود وردپرس کمک بگیرید. برای این منظور به صفحه مورد نظر خود بروید. رمزعبور برای صفحات

با انتخاب ویرایش قابلیت مشاهد با چند گزینه روبرو خواهید شد که یکی از آنها محافظت شده با رمز عبور است. با انتخاب این گزینه می‌توانید صفحه خود را با رمز عبور محافظت نمایید.

 

طریقه قرار دادن رمز برای صفحات در cPanel

اگر از cPanel برای هاست خود استفاده می‌کنید می‌توانید با استفاده از ویژگی Directory Privacy اقدام به قرار دادن رمزعبور برای صفحات خود نمایید برای این منظور لاز است تا:

اول وارد cPanel شوید. سپس Directory Privacy را جستجو نمایید.

رمزعبور برای صفحات

 

پوشه‌ای که می‌خواهید آن را با رمز عبور محافظت کنید را انتخاب می کنید.

سپس یک نام کاربری ایجاد می‌نمایید و برای آن رمزعبور در نظر می‌گیرید.

رمزعبور برای صفحات

 

حالا از این پس پوشه وصفحه شما دارای رمز می‌باشد و هر کاربری که بخواهد به آن دسترسی پیدا کند باید رمز عبور را وارد نماید.

فعال کردن TLS1.3 بر روی Apache، Nginx و CloudFlare

471views

 

 

در مقاله پیشین فعال سازی TLS1.3 کمی در مورد این پروتکل و نحوه فعال سازی آن در CentOS8 صحبت نمودیم. هم اکنون TLS1.3 توسط مرورگر‌های زیاد پشتیبانی نمی‌شود اما تمام نسخ‌های جدید مرورگرهایی مانند کروم، فایرفاکس و سافاری از آن پشتیبانی می‌کنند شما حتی می‌توانید از این صفحه مشاهد‌ کنید که چه زمانی TLS1.3 به صورت عمومی پشتیبانی خواهد شد.

البته شما می‌توانید TLS1.3 را در کنار TLS1.1 و TLS1.2 فعال نمایید که تداخلی در عملکرد سایت برای مرورگرهای قدیمی و جدید نداشته باشد.

فعال سازی TLS1.3 در Nginx

TLS1.3 در نسخه 1.13 Nginx پشتیبانی می‌شود و اگر از نسخه‌ی قدیمی‌تری استفاده می‌کنید برای استفاده از TLS1.3 باید آن را ارتقا دهید.

خب در این مقاله فرض ما این است که شما از نسخه 1.13 Nginx استفاده می‌نمایید.

در قدم اول وارد سرور خود شوید. در ادمه فایل nginx.conf را پیدا نمایید و از آن نسخه پشتیبان تهیه نمایید.

فایل nginx.conf را با ادیتور مورد نظر خود ویرایش نمایید.

در این فایل بخش SSL به صورت زیر دیده می‌شود:

فقط کافیست TLSv1.3 را به انتهای آن اضافه نمایید. مانند زیر:

حالا وب سرور شما از هر سه پروتکل یاد شده پشتیبانی خواهد نمود. اما اگر می‌خواهید ارتباط کاملا امن باشد ن را به صورت زیر درآورید.

و Nginx را دوباره راه اندازی نمایید.

 

فعال سازی TLS1.3 در Apache

TLS1.3 فقط در نسخه Apache HTTP 2.4.38 و جدیدتر از Apache پشتیبانی می‌شود پس اگر فکر استفاده از TLS 1.3 به ذهنتان خطور کرده بهتر است تا وب سرور Apache خود را بروزرسانی کنید. فعال سازی TLS 1.3 بسیار آسان و همانند TLS1.2 می‌باشد. برای این منظور از دستورالعمل زیر استفاده نمایید.

در قدم اول وارد وب سرور Apache خود شوید. و فایل ssl.conf را پیدا کرده و از آن پشتیبان تهیه نمایید.

در فایل مورد نظر SSLProtocol را پیدا نموده و در پایان خط عبارت +TLSv1.3 را اضافه نمایید.

مانند خط زیر:

SSLProtocol -all +TLSv1.2 +TLSv1.3

فایل را ذخیره نمایید و Apache را راه اندازی مجدد کنید.

 

فعال سازی TLS1.3 در CloudFLare

یکی از محبوب ترین ارائه کنندگان CDN شرکت CloudFlare می‌باشد که TLS 1.3 را به صورت پیش فرض برای تمام مشتریان خود فعال نموده است. اما اگر شما نیاز دارید تا TLS1.3 را غیر فعال نمایید باید مانند دستور العمل زیر عمل کنید:

وارد اکانت خود شوید

در تب Crypto کمی به پایین اسکرول کنید و گزینه TLS 1.3 را غیر فعال نمایید.

 

enable-http2

HTTP/2 در Nginx: راهنمای فعال سازی

624views

 

 

HTTP/2 نسخه جدید پروتکل منسوخ شده HTTP/1.1 می‌باشد که در سال 1999 به یک استاندارد کلی تبدیل شد. از آن زمان تا حالا تغییرات زیادی در سطح وب صورت گرفته است. وب اپلیکیشن‌های ما بسیار پیچیده تر شده‌اند و با وب اپلیکیشن‌های سال اواخر دهه نود و اوایل هزاره جدید قابل مقایسه نیستند. در این زمان تهدیدات هم افزایش یافت برای مقابله با این تهدیدات نیاز بود که HTTP/2 متولد شود.

مهمترین نکته درمورد HTTP/2 سریعتر بود آن نسبت به HTTP/1.1 برای کاربران مصرف کنند است، یعنی مصرف کننده‌های نهایی سایت سریعتری در اختیار خواهند داشت.

تعدادی از ویژگی‌های های HTTP/2:

  • HTTP/2 یک پروتکل باینری است.
  • HTTP/2 با HTTP/1.1 قابلیت هم‌خوانی و بازگشت به نسخه قبل را دارد.
  • HTTP/2 در سال 2015 عرضه شد.
  • دو مشخصه اصلی HTTP/ 2 را می‌توان: 1.پروتکل انتقال Hypertext نسخه 2 – RFC7540 و 2.فشرده سازی هدر RFC7541 در نظر گرفت
  • HTTP / 2 برنامه های ما را سریعتر ، ساده تر و قوی تر می کند.
  • هداف اصلی برای توسعه HTTP / 2 کاهش تأخیر بوده است.
  • HTTP / 2 براساس پروتکل SPDY گوگل است.
  • مرورگرها برای استفاده از HTTP / 2 به TLS مدرن نیاز دارند.
  • برای استفاده از HTTP/2 نیاز است که نسخه TLS ما حداقل 1.2 باشد. آموزش ارتقا TLS در این مقاله به تفصیل توضیح داده شده است.
  • اگر برای استفاده از HTTP /2 از یک سرور با TLS پایین تر از مقدار ذکر شده استفاده شود در اینصورت با خطای پروتکل روبرو می‌شویم.
  • برخی از ویژگی های اصلی HTTP / 2 عبارتند از: multiplexing ، فشرده سازی هدر ، اولویت بندی

 

ملزومات برای راه اندازی HTTP/2:

در قدم اول نیاز است Nginx را از ریپازیتوری اصلی نصب نمایید. برای الین کمنظور از کامند زیر استفاده نمایید:

 

 

بعد از اجرای این کامند می‌‍توانید مطمئن باشید که Nginx نصب شده است.

 

پیکربندی Nginx برای HTTP/2

پیکر بندی Nginx برای HTTP/ 2 بسیار راحت است و زمان کمی از شما خواهد گرفت برای این منظور نیاز است که تنها مقدار دستوردهنده listen را برای http2 درست تنظیم نمایید. و همانطور که قبلا هم اشاره کردیم لازم است TLS شما ورژن 1.2 یا بالاتر باشد.

 

HTTP/2
مشخصات مورد نیاز برای استفاده از HTTP/2

همانطور که متوجه شدید فعال سازی HTTP/ 2 بر روی ابنتو بسیار راحت است و برای دیگر سیستم عامل‌ها هم همین روش صادق است و تنها نیاز است که تعدادی از دستورات را طبق همان سیستم‌عامل وارد نمایید.