FreeBSD 12

مراحل ایمن سازی Apache HTTP در FreeBSD 12

اگرچه نصب پیش فرض یک سرور مجازی Apache HTTP در حال حاضر ایمن است ، اما پیکربندی آن با چند اصلاح جزیی قابل بهبود می شود. برای مثال می توانید مکانیزم های امنیتی موجود را با تنظیم محافظت حول کوکی ها و هدرها تکمیل کنید ، بنابراین کانکشن ها در سطح مشتری تحت تاثیر قرار نمیگیرند. با انجام این کار می توانید چندین روش حمله احتمالی مانند حملات اسکریپت Cross-Site (که به عنوان XSS نیز شناخته می شود) را به طرز چشمگیری کاهش دهید. همچنین می توانید از حملات دیگر ، مانند جعل درخواست Cross-Site یا ربودن بخش ها و همچنین حملات رد سرویس جلوگیری کنید.
در این آموزش برخی از مراحل توصیه شده را برای کاهش میزان در معرض قرار گرفتن سرور مجازی خود اجرا خواهید کرد. لیست های دایرکتوری را تأیید می کنید و نمایه سازی را غیرفعال می کنید تا دسترسی به منابع را بررسی کنید. همچنین می توانید مقدار پیش فرض دیرکتیو timeout را تغییر دهید تا به کاهش حملات رد خدمات کمک کنید. علاوه بر این شما روش TRACE را غیرفعال می کنید تا بخش ها قابل برگشت و ربودن نباشند. سرانجام هدرها و کوکی ها را ایمن خواهید کرد.
بیشتر تنظیمات پیکربندی روی فایل اصلی پیکربندی Apache HTTP اعمال می شود که در /usr/local/etc/apache24/httpd.conf وجود دارد.
پیش نیازها
قبل از شروع این راهنما به موارد زیر نیاز خواهید داشت:
سرور مجازی FreeBSD 12 که با پیروی از راهنمای چگونگی شروع با FreeBSD تنظیم شده باشد.
یک فایروال که طبق بخش پیکربندی فایروال در مقاله مراحل پیشنهادی برای سرور مجازی های جدید FreeBSD 12.0 ، راه‌اندازی شده باشد.
یک استک کامل FAMP که با دنبال کردن آموزش نحوه نصب استک Apache ، MySQL و PHP (FAMP) در FreeBSD 12.0 نصب شده باشد.
گواهی Let’s Encrypt که با پیروی از آموزش نحوه ایمن سازی Apache با Let’s Encrypt در FreeBSD ، نصب شده باشد.
با داشتن پیش نیازهای موجود ، شما یک سیستم FreeBSD دارید که دارای استکی است که می تواند با استفاده از هر آنچه که در PHP نوشته شده است ، مانند نرم افزارهای اصلی CMS ، محتوای وب را ارائه دهد. علاوه بر این ، شما اتصالات ایمن را از طریق Let ‘Encrypt رمزگذاری کرده اید.
کاهش اطلاعات سرور مجازی
بنر سیستم عامل روشی است که توسط رایانه ها ، سرور مجازی ها و دستگاه های مختلف مورد استفاده قرار می گیرد تا خود را در شبکه ها نشان دهند. کاربران مخرب می توانند از این اطلاعات برای سوء استفاده از سیستم های مربوطه استفاده کنند. در این بخش می توانید میزان اطلاعات منتشر شده توسط این بنر را کاهش دهید.
مجموعه ای از بخشنامه ها نحوه نمایش این اطلاعات را کنترل می کنند. برای این منظور دستورالعمل ServerTokens مهم میباشد. بصورت پیش فرض تمام جزئیات مربوط به سیستم عامل و ماژول های کامپایل شده را به مشتری که به آن متصل است نمایش می دهد.
شما می توانید از ابزاری برای اسکن شبکه استفاده کنید تا بررسی کنید که قبل از اعمال هرگونه تغییر ، چه اطلاعاتی را نشان می دهد. برای نصب nmap دستور زیر را اجرا کنید:
$ sudo pkg install nmap
برای به دست آوردن آدرس IP سرور مجازی خود ، می توانید دستور زیر را اجرا کنید:
$ ifconfig vtnet0 | awk ‘/inet / {print $2}’
با استفاده از دستور زیر می توانید پاسخ سرور مجازی وب را بررسی کنید:
$ nmap -sV -p 80 your-server-ip
برای ایجاد اسکن (و در نتیجه فلگ s) nmap را به کار میگیرید ، تا نسخه (فلگ –V) را روی پورت 80 (فلگ –p) در IP یا دامنه داده شده نمایش دهید.
اطلاعاتی درباره سرور مجازی وب خود دریافت خواهید کرد ، که مشابه زیر است:
Output
Starting Nmap 7.80 ( https://nmap.org ) at 2020-01-22 00:30 CET
Nmap scan report for 206.189.123.232
Host is up (0.054s latency).

PORT STATE SERVICE VERSION
80/tcp open http Apache httpd 2.4.41 ((FreeBSD) OpenSSL/1.1.1d-freebsd

Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 7.59 seconds

این خروجی نشان می دهد که اطلاعاتی از قبیل سیستم عامل ، نسخه Apache HTTP و OpenSSL قابل مشاهده هستند. این می تواند برای حمله کنندگان مفید باشد تا اطلاعاتی در مورد سرور مجازی کسب کنند و ابزارهای مناسبی را برای سوء استفاده از آنها انتخاب کنند ، به عنوان مثال یافت آسیب پذیری در نرم افزاری که روی سرور مجازی کار می کند.
دستورالعمل ServerTokens را در فایل اصلی تنظیمات قرار خواهید داد زیرا به طور پیش فرض پیکربندی نشده است. نبود این پیکربندی باعث می شود که Apache HTTP تمام اطلاعات مربوط به سرور مجازی را همانطور که اسناد بیان می کند نمایش دهد. برای محدود کردن اطلاعاتی که درباره سرور مجازی و پیکربندی شما نشان داده شده است ، دستورالعمل ServerTokens را درون فایل اصلی تنظیمات قرار دهید.
شما این دستورالعمل را پس از ورود ServerNameی در فایل پیکربندی قرار می دهید. دستور زیر را برای یافتن دیرکتیو اجرا کنید
$ grep -n ‘ServerName’ /usr/local/etc/apache24/httpd.conf
شماره خطی را پیدا می کنید که می توانید بعد از آن از طریق vi جستجو کنید:
Output226 #ServerName www.example.com:80

دستور زیر را اجرا کنید:
$ sudo vi +226 /usr/local/etc/apache24/httpd.conf

خط هایلایت شده زیر را اضافه کنید:
/usr/local/etc/apache24/httpd.conf
. . .
#ServerName www.example.com:80
ServerTokens Prod

فایل را ذخیره کنید و از آن خارج شوید: wq و ENTER.
تنظیم دستورالعمل ServerTokens روی Prod باعث می شود که فقط نشان دهد این یک سرور مجازی وب Apache میباشد.
برای این کار ، سرور مجازی Apache HTTP را مجدداً راه اندازی کنید:
$ sudo apachectl restart
برای آزمایش تغییرات ، دستور زیر را اجرا کنید:
$ nmap -sV -p 80 your-server-ip
با حداقل اطلاعات در مورد وب سرور مجازی Apache خود ، خروجی مشابه با موارد زیر را مشاهده خواهید کرد:
Output
Starting Nmap 7.80 ( https://nmap.org ) at 2020-01-22 00:58 CET
Nmap scan report for WPressBSD (206.189.123.232)
Host is up (0.056s latency).

PORT STATE SERVICE VERSION
80/tcp open http Apache httpd

Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 7.59 seconds

مشاهده کردید که سرور مجازی قبل از تغییر چه اطلاعاتی را اعلام می کرد و اکنون این میزان را به حداقل رسانده اید. با این کار سرنخ های کمتری را برای یک کاربر بیرونی ارائه می دهید. در مرحله بعد لیست دیرکتوری ها را برای سرور مجازی وب خود مدیریت خواهید کرد.
مدیریت لیست های دایرکتوری
در این مرحله اطمینان حاصل می کنید که لیست دیرکتوری به درستی پیکربندی شده است ، بنابراین قسمت های مناسب سیستم طبق برنامه در دسترس عموم است ، در حالی که بقیه بخش ها محافظت می شوند.
توجه: وقتی یک آرگومان اعلام میشود فعال است ، اما + می تواند از لحاظ بصری آن را تقویت کند که در واقع فعال شده است وقتی یک علامت منفی – قرار داده می شود ، آرگومان رد می شود ، برای مثال Options –Indexes.
آرگومان های دارای + و / یا – نمی توانند با هم مخلوط شوند ، این مسئله در Apache HTTP یک ترکیب بد تلقی می شود و ممکن است در هنگام راه اندازی رد شود.
با افزودن عبارت Options -Indexes محتوای داخل مسیر داده /usr/local/www/apache24/data تنظیم می شود تا در صورت وجود یک فایل .html به طور خودکار ایندکس نشود (فهرست شده بخواند) و نشان نمی دهد که آیا URL این دیرکتوری را نقشه برداری می کند یا خیر. این امکان همچنین در هنگام استفاده از تنظیمات هاست مجازی مانند نمونه مورد استفاده برای آموزش پیش نیاز گواهی Let’s Encrypt اعمال می شود.
شما دستورالعمل Options را با آرگومان -Indexes و با دستورالعمل + FollowSymLinks تنظیم می کنید ، که به شما امکان پیگیری پیوندهای نمادین را می دهد. برای مطابقت با قراردادهای HTTP Apache ، از نماد + استفاده خواهید کرد.
دستور زیر را پیدا کنید تا خط را برای ویرایش در فایل پیکربندی پیدا کنید:
$ grep -n ‘Options Indexes FollowSymLinks’ /usr/local/etc/apache24/httpd.conf
خروجی مشابه موارد زیر را مشاهده خواهید کرد:
Output
263 : Options Indexes FollowSymLinks

این دستور را اجرا کنید تا برای ویرایش مستقیماً به خط دسترسی پیدا کنید:
$ sudo vi +263 /usr/local/etc/apache24/httpd.conf

اکنون خط را در هر پیکربندی ویرایش کنید:
/usr/local/etc/apache24/httpd.conf
. . .
#
Options -Indexes +FollowSymLinks

#
. . .

فایل را ذخیره کنید و از آن خارج شوید: wq و ENTER.
Apache HTTP را برای اجرای این تغییرات مجدد راه اندازی کنید:
$ sudo apachectl restart
در دامنه خود در مرورگر ، یک پیام دسترسی ممنوعه مشاهده خواهید کرد ،که به عنوان خطای 403 نیز شناخته می شود. این به دلیل تغییراتی است که شما اعمال کرده اید. قرار دادن -Indexes در بخشنامه options ، امکان ایندکس شدن خودکار Apache HTTP را غیرفعال کرده است ، بنابراین هیچ فایل index.html در مسیر داده وجود ندارد.
می توانید با قرار دادن فایل index.html در داخل VirtualHost که در آموزش مقدماتی گواهی Let’s Encrypt فعال کرده اید ، آن را برطرف کنید. می توانید از بلوک پیش فرض در Apache HTTP استفاده کنید و آن را در همان پوشه DocumentRootthat خود در هاست مجازی قرار دهید.
/usr/local/etc/apache24/extra/httpd-vhosts.conf
<VirtualHost *:80>
ServerAdmin your_email@your_domain.com
DocumentRoot “/usr/local/www/apache24/data/your_domain.com”
ServerName your_domain.com
ServerAlias www.your_domain.com
ErrorLog “/var/log/your_domain.com-error_log”
CustomLog “/var/log/your_domain.com-access_log” common
</VirtualHost>

برای انجام این کار از دستور زیر استفاده کنید:
$ sudo cp /usr/local/www/apache24/data/index.html /usr/local/www/apache24/data/your_domain.com/index.html
اکنون هنگام بازدید از دامنه خود پیام it works را مشاهده خواهید کرد.
در این بخش شما محدودیت هایی را در دستورالعمل ایندکس ها قرار داده اید تا به طور خودکار محتوای دیگری را به غیر از آنچه شما میخواهید لیست نکند و نمایش ندهد. اکنون اگر یک فایل index.html در مسیر داده وجود نداشته باشد ، Apache HTTP به طور خودکار فهرستی از مطالب ایجاد نمی کند. در مرحله بعد شما فراتر از اطلاعات مبهم پیش می روید و دستورالعمل های مختلف را سفارشی می کنید.
کاهش میزان دستور وقفه (Timeout)
دستورالعمل Timeout محدودیت زمانی را تعیین می کند که Apache HTTP قبل از عدم موفقیت در اتصال ، منتظر ورودی / خروجی جدید باشد. این شکست می تواند به دلیل شرایط مختلف مانند بسته هایی که به سرور مجازی نمی رسند یا داده های دریافتی که توسط مشتری تأیید نمیشوند، رخ دهد.
به طور پیش فرض ، زمان وقفه 60 ثانیه تنظیم میشود. در محیط هایی که سرویس اینترنت کند است ، ممکن است این مقدار پیش فرض معقول باشد ، اما یک دقیقه زمان نسبتا طولانی است ، خصوصاً اگر سرور مجازی با سرویس اینترنت سریعتری دسته ای از کابران را پوشش دهد. علاوه بر این ، زمانی که سرور مجازی اتصال را نمی بندد ، می تواند برای انجام حملات رد سرویس (DoS) مورد سوء استفاده قرار گیرد. در صورت وقوع هجمه ای از این اتصالات مخرب ، سرور مجازی دچار مشکل می شود و احتمالاً اشباع و دچار اخلال می شود.
برای تغییر مقدار ، ورودی های Timeout را در فایل httpd-default.conf پیدا خواهید کرد:
$ grep -n ‘Timeout’ /usr/local/etc/apache24/extra/httpd-default.conf
خروجی مشابه زیر را مشاهده خواهید کرد:
Output
8 # Timeout: The number of seconds before receives and sends time out.
10 Timeout 60
26 # KeepAliveTimeout: Number of seconds to wait for the next request from the
29 KeepAliveTimeout 5
89 RequestReadTimeout header=20-40,MinRate=500 body=20,MinRate=500

در خط خروجی 10 مقدار دستورالعمل Timeout را تعیین می شود. برای دسترسی مستقیم به این خط ، دستور زیر را اجرا کنید:
$ sudo vi +10 /usr/local/etc/apache24/extra/httpd-default.conf
برای مثال ، آن را به 30 ثانیه تغییر می دهید ، مانند زیر:
/usr/local/etc/apache24/extra/httpd-default.conf
#
# Timeout: The number of seconds before receives and sends time out.
#
Timeout 30

فایل را ذخیره کنید و از آن خارج شوید: wq و ENTER.
مقدار دستورالعمل Timeout باید یک محدوده زمانی را برای آن رویدادها به اندازه کافی بزرگ بگیرد تا ارتباط مستقیم و موفقی برقرار شود ، اما به اندازه کافی هم کوتاه باشد که از تلاشهای غیر مطلوب برای اتصال جلوگیری شود.
توجه: حملات رد سرویس می تواند منابع سرور مجازی را کاملاً تخلیه کند. یک اقدام مکمل و بسیار کارآمد استفاده از MPM رشته ای برای به دست آوردن بهترین عملکرد از نحوه مدیریت اتصالات و پردازش ها توسط Apache HTTP میباشد. در این آموزش یعنی راهنمای چگونگی پیکربندی Apache HTTP با MPM و PHP-FPM در FreeBSD 12.0 ، مراحل ایجاد این قابلیت وجود دارد.

برای این کار ، سرور مجازی Apache HTTP را مجدداً راه اندازی کنید:
$ sudo apachectl restart
شما به منظور کاهش جزئی حملات DoS ، مقدار پیش فرض دستور Timeout را تغییر داده اید.
غیرفعال کردن روش TRACE
پروتکل انتقال Hypertext به دنبال یک مدل کلاینت-سرور مجازی ایجاد شد و به همین ترتیب ، پروتکل متدهای درخواستی برای بازیابی یا قرار دادن اطلاعات از / به سرور مجازی را دارد. سرور مجازی باید این مجموعه روشها و تعامل بین آنها را درک کند. در این مرحله شما حداقل روش های لازم را پیکربندی خواهید کرد.
روش TRACE ، که بی ضرر قلمداد می شد ، برای انجام حملات Cross Site Tracing استفاده میشد. این نوع حملات به کاربران مخرب اجازه می دهد بخش های کاربری را از طریق آن روش سرقت کنند. این سرور مجازی با هدف بازگرداندن همان درخواستی که ابتدا توسط مشتری ارسال شده بود برای اهداف اشکال زدایی طراحی شده است. از آنجا که کوکی از بخش مرورگر به سرور مجازی ارسال می شود ، دوباره ارسال خواهد شد. با این حال ، به طور بالقوه می تواند توسط یک کاربر مخرب متوقف شود ، که می تواند اتصال یک مرورگر را به یک سایت کنترل خود هدایت کند و به سرور مجازی اصلی نرسد.
به خاطر احتمال سوء استفاده از روش TRACE ، استفاده از آن فقط برای اشکال زدایی و نه در تولید توصیه می شود. در این بخش این روش را غیرفعال می کنید.
فایل httpd.conf را با دستور زیر ویرایش کنید و سپس G را فشار دهید تا به انتهای فایل برسید:
$ sudo vi /usr/local/etc/apache24/httpd.conf
مسیر ورودی زیر را در انتهای فایل اضافه کنید:
/usr/local/etc/apache24/httpd.conf
. . .
TraceEnable off

یک عمل خوب این است که فقط روشهایی را مشخص کنید که در سرور مجازی وب Apache HTTP خود استفاده خواهید کرد. این به محدود کردن نقاط ورودی احتمالی کاربران مخرب کمک می کند.
LimitExcept می تواند برای این منظور مفید باشد زیرا هیچ روش دیگری غیر از روش های اعلام شده در خود را اجازه نمی دهد. به عنوان مثال پیکربندی می تواند مانند این ایجاد شود:
/usr/local/etc/apache24/httpd.conf
DocumentRoot “/usr/local/www/apache24/data”
<Directory “/usr/local/www/apache24/data”>
Options -Indexes +FollowSymLinks -Includes
AllowOverride none
<LimitExcept GET POST HEAD>
deny from all
</LimitExcept>
Require all granted
</Directory>

همانطور که در دستورالعمل LimitExcept اعلام شده است ، فقط روش های GET ، POST و HEAD در پیکربندی مجاز هستند.
روش GET بخشی از پروتکل HTTP است و از آن برای بازیابی داده استفاده می شود.
روش POST نیز بخشی از پروتکل HTTP است و برای ارسال داده به سرور مجازی استفاده می شود.
روش HEAD شبیه به GET است ، اما بدنه پاسخ ندارد.
شما از دستور زیر استفاده کرده و بلوک LimitExcept را درون فایل قرار می دهید:
sudo vi +272 /usr/local/etc/apache24/httpd.conf
برای تنظیم این پیکربندی ، بلوک زیر را در ورودی بخشنامه DocumentRoot قرار دهید که از آن مطالب ، به ویژه در قسمت ورودی دایرکتوری خوانده می شود:
/usr/local/etc/apache24/httpd.conf
. . .
<LimitExcept GET POST HEAD>
deny from all
</LimitExcept>
. . .

برای اعمال تغییرات ، Apache HTTP را مجدد راه اندازی کنید:
$ sudo apachectl restart
بخشنامه جدید AllowedMethods عملکردی مشابه را ارائه می کند ، اگرچه وضعیت آن هنوز هم تجربی است.
مشاهده کردید که روشهای HTTP چگونه اند، کاربرد آنها و محافظت آنها در برابر فعالیت های مخرب را با استفاده از روش TRACE و همچنین نحوه اعلام روش های قابل استفاده را آموختید. در مرحله بعد با محافظت های بعدی اختصاص داده شده به هدرها و کوکی های HTTP کار خواهید کرد.
ایمن کردن هدرها و کوکی ها
در این مرحله دستورالعمل های خاصی برای محافظت از بخش هایی که ماشین های کلاینت هنگام بازدید از سرور مجازی وب Apache HTTP شما باز می کنند ، تنظیم خواهید کرد. به این روش سرور شما محتوای ناخواسته را بارگذاری نمی کند ، رمزگذاری تنزل نمی یابد ، و از جاسوسی محتوا جلوگیری خواهید کرد.
هدرها مؤلفه های روش های درخواست هستند. برای تنظیم تایید هویت ، ارتباط بین سرور مجازی و کلاینت ، ذخیره سازی ، مذاکره محتوا و غیره، هدرهایی وجود دارد.
کوکی ها اطلاعاتی هستند که توسط سرور مجازی به مرورگر ارسال می شود. این بیت ها به سرور مجازی اجازه می دهد مرورگر کلاینت را از یک رایانه به رایانه دیگر تشخیص دهد. آنها همچنین به سرورها امکان می دهند بخش های کاربر را تشخیص دهند. به عنوان مثال ، می توانند سبد خرید یک کاربر وارد شده ، اطلاعات پرداخت ، تاریخچه و موارد دیگر را پیگیری کنند. کوکی ها در مرورگر وب کلاینت استفاده و حفظ می شوند زیرا HTTP یک پروتکل بدون وضعیت و هویت است ، به این معنی که با بسته شدن اتصال، سرور درخواست ارسال شده توسط یک کلاینت یا یک کاربر دیگر را به خاطر نمی آورد.
محافظت از هدرها و همچنین کوکی ها بسیار مهم است زیرا آنها بین کلاینت مرورگر وب و سرور مجازی وب ارتباط برقرار می کنند.
ماژول headers  به طور پیش فرض فعال می شود. برای بررسی اینکه بارگذاری شده است ، از دستور زیر استفاده خواهید کرد:
$ sudo apachectl -M | grep ‘headers’
خروجی زیر را مشاهده خواهید کرد:
Output
headers_module (shared)

اگر هیچ خروجی مشاهده نمی کنید ، بررسی کنید که آیا ماژول در فایل httpd.conf در Apache فعال شده است:
$ grep -n ‘mod_headers’ /usr/local/etc/apache24/httpd.conf
به عنوان خروجی ، یک خط بدون شرح را مشاهده می کنید که به ماژول مخصوص برای هدر ها اشاره می کند:
/usr/local/etc/apache24/httpd.conf
. . .
122 LoadModule headers_module libexec/apache24/mod_headers.so
. . .

در صورت وجود ، هشتگ را در ابتدای خط mod_headers.so حذف کنید تا دستورالعمل فعال شود.
با استفاده از دستورالعمل های زیر Apache HTTP ، از هدر ها و کوکی ها در برابر فعالیت مخرب محافظت می کنید تا خطرات مربوط به کلاینت و سرور مجازی ها کاهش یابد.
اکنون شما می توانید محافظت از هدر را تنظیم کنید. تمام این مقادیر هدر را در یک بلوک قرار می دهید. می توانید این مقادیر را طبق دلخواه خود انتخاب کنید ، اما همگی توصیه می شوند.
فایل httpd.conf را با دستور زیر ویرایش کنید و سپس G را فشار دهید تا به انتهای فایل برسید:
$ sudo vi /usr/local/etc/apache24/httpd.conf
بلوک زیر را در انتهای فایل قرار دهید:
/usr/local/etc/apache24/httpd.conf
. . .
<IfModule mod_headers.c>
# Add security and privacy related headers
Header set Content-Security-Policy “default-src ‘self’; upgrade-insecure-requests;”
Header set Strict-Transport-Security “max-age=31536000; includeSubDomains”
Header always edit Set-Cookie (.*) “$1; HttpOnly; Secure”
Header set X-Content-Type-Options “nosniff”
Header set X-XSS-Protection “1; mode=block”
Header set Referrer-Policy “strict-origin”
Header set X-Frame-Options: “deny”
SetEnv modHeadersAvailable true
</IfModule>

Header set Strict-Transport-Security “max-age=31536000; includeSubDomains”: امنیت محکم انتقال HTTP (HTSTS) مکانیزی است برای سرور مجازی های وب و کلاینت ها (به طور عمده مرورگرها) برای برقراری ارتباطات فقط با استفاده از HTTPS . با اجرای این کار شما از حملات واسطه ای جلوگیری می کنید ، که در آن شخص سومی در بین ارتباطات، به طور بالقوه می تواند به بیت دسترسی پیدا کند ، و همچنین آنها را دستکاری کند.
Header always edit Set-Cookie (.*) “$1; HttpOnly; Secure”: فلگ های HttpOnly و Secure در هدرها به جلوگیری از حملات اسکریپتی درون سایت ، که به XSS شناخته میشوند، کمک می کنند. ممکن است کوکی ها توسط حمله کنندگان مورد سوءاستفاده قرار گیرند تا به عنوان بازدید کننده های قانونی که خود را به عنوان شخص دیگری معرفی می کنند ظاهر شوند (سرقت هویت) یا دستکاری انجام دهند.
Header set Referrer-Policy “strict-origin” : عنوان Referrer-Policy تعیین می کند که چه اطلاعاتی به عنوان اطلاعات ارجاع دهنده در قسمت هدر درج شده است.
Header set Content-Security-Policy “default-src ‘self’; upgrade-insecure-requests;” : هدر Content-Security-Policy (CSP) به طور کامل از بارگذاری مطالب مشخص نشده در پارامترها جلوگیری می کند ، که برای جلوگیری ازحملات برنامه نویسی cross-site (XSS) مفید است . پارامترهای ممکن زیادی برای پیکربندی رویکرد این هدر وجود دارد. خط انتهایی پیکربندی آن برای بارگذاری محتوا از همان سایت و به روزرسانی هر محتوا با منبع HTTP است.
Header set X-XSS-Protection “1; mode=block”: این دستور از مرورگرهای قدیمی پشتیبانی می کند که با هدرهای Content-Security-Policy تعامل ندارند. عنوان” X-XSS-Protection ” در برابر حملات اسکریپتینگ Cross-Site محافظت می کند. شما نیازی به تنظیم این هدر ندارید مگر اینکه بخواهدی از نسخه های مرورگر قدیمی ، که نادر است، پشتیبانی کنید.
Header set X-Frame-Options: “deny” : این خط مانع از حملات کلیکی می شود. عنوان “X-Frame-Options” به مرورگر می گوید چه صفحه ای را می توان در <frame> ، <iframe> ، <embed> یا <object> رندر گرفت. به این ترتیب محتوا از سایتهای دیگر نمی تواند در سایتی قرار داده شود و از حملات کلیکی جلوگیری می کند. در اینجا شما همه رندر فریم ها را رد می کنید ، بنابراین صفحه وب نمی تواند در هیچ جای دیگر ، حتی در داخل همان وب سایت ، قرار داده شود. اگر به عنوان مثال ، مجبور به ارائه اجازه رندرگیری برخی صفحات شدید، می توانید این مورد را با نیازهای خود تطبیق دهید ، زیرا تبلیغات یا همکاری با وب سایتهای خاص وجود دارند.
X-Content-Type” Header set X-Content-Type-Options “nosniff”:هدر ‘X-Content-Type-Options’ انواع MIME را کنترل می کند ، بنابراین تغییر نمیکنند و دنبال نمی شوند. انواع MIME استانداردهای فرمت فایل هستند که برای متن ، صدا ، فیلم ، تصویر و غیره کار می کنند. این هدر کاربران مخرب را از سرقت محتوای آن فایل ها و تلاش برای تغییر انواع فایل ها باز می دارد.
اکنون Apache را دوباره راه اندازی کنید تا تغییرات به مرحله اجرا درآیند:
$ sudo apachectl restart
برای بررسی سطح امنیتی تنظیمات پیکربندی خود ، به وب سایت هدرهای امنیتی مراجعه کنید. پس از طی کردن مراحل این آموزش ، دامنه شما نمره A خواهد گرفت.
توجه: اگر با مراجعه به https://securityheaders.com/ ، هدرهای خود را بررسی کردید و درجه F دریافت کردید ، می تواند به این دلیل باشد كه هیچ index.html در DocumentRoot سایت شما وجود ندارد ، همانطور كه ​​در انتهای مرحله 2 توضیح داده شده است. اگر بررسی هدرهای شما یک درجه متفاوت از A یا F دریافت کرد ، هر خط مجموعه هدر را بررسی کنید و به دنبال هر اشتباهی باشید که ممکن است باعث کاهش رتبه شده باشد.

در این مرحله شما با حداکثر هفت تنظیم کار کرده اید تا امنیت هدرها و کوکی های خود را بهبود بخشید. اینها به جلوگیری از cross-site scripting، clickjacking و انواع دیگر حملات کمک می کند.
نتیجه
در این آموزش با چندین جنبه امنیتی ، از افشای اطلاعات ، تا محافظت از بخش ها ، از طریق تنظیمات پیکربندی جایگزین برای عملکردهای مهم ، آشنا شدید.
برای منابع بیشتر در مورد ایمنی Apache ، در اینجا منابع دیگری ذکر شده است:
نکات امنیتی HTTP Apache
دستورالعمل های امنیتی موزیلا
مرکز توصیه های ممیزی امنیت اینترنتی برای Apache HTTP
ابزارهای بیشتر جهت محافظت از Apache HTTP:
mod_evasive ابزاری مفید برای کمک به کاهش حملات DoS است. می توانید جزئیات بیشتری را در نحوه محافظت در برابر DoS و DDoS با mod_evasive برای آموزش Apache بیابید.
fail2ban یک نرم افزار پیشگیری از نفوذ که برای جلوگیری از تلاش های مکرر ورود به سیستم توسط کاربران غیر مجاز مفید است. می توانید اطلاعات بیشتر را در آموزش نحوه محافظت از سرور مجازی Apache با Fail2Ban دریافت کنید.
ModSecurance یک فایروال برنامه وب (یا WAF) است و به همین ترتیب طیف گسترده ای از امکانات را بر اساس قوانین از پیش تعریف شده که توسط SpyderLabs و اعضای انجمن نوشته شده اند، فراهم می کند. می توانید اطلاعات بیشتر در این مورد را در آموزش نحوه تنظیم ModSecurity با آموزش Apache بخوانید.

 

از این لینک ها زیر می توانید آمورش های بیشتری برای لینوکس پیدا کنید :

نحوه نصب Nginx در CentOS 8  –  استفاده از Cron برای خودکارسازی کارها در اوبونتو 18

پکیج کردن و انتشار برنامه Snap در اوبونتو 18نصب و استفاده ازRadamsa برای فوز کردن برنامه ها روی Ubuntu 18

استقرارهای تولید Node.js خود را با Shipit در CentOS 7 –  نحوه راه اندازی Eclipse Theia Cloud IDE Platform در Debian 10

چگونگی استفاده از migrations و seeders دیتابیس  –  نحوه نصب Docker Compose در Debian 10

نحوه نصب R روی اوبونتو 18.04 – چگونه می توان با کتابخانه (library) درخواست ها در پایتون شروع به کار کرد

چگونه می توان هاست های مجازی Apache را در اوبونتو 18.04  –  نحوه اجرای صفحه گذاری در MySQL با PHP روی اوبونتو 18.04

نصب پشته Nginx، MySQL، PHP LEMP در CentOS 8 – نحوه تنظیم پلتفرم Eclipse Theia Cloud IDE در CentOS 7

نحوه نصب پشته یا استک Nginx ، MySQL ، PHP LEMP  –  بسته بندی برنامه Laravel 6 برای توسعه با Docker Compose

مراحل ایمن سازی Apache HTTP در FreeBSD 12  – بهینه سازی درخواست های MySQL با ذخیره سازی ProxySQL در اوبونتو 16

درک Objectهای Map و Set در JavaScript  –  استفاده از Ansible برای نصب و راه اندازی وردپرس با LAMP در اوبونتو 18

نحوه راه اندازی Eclipse Theia Cloud IDE در اوبونتو  –  چگونه می توان پلتفرم كد سرور Cloud IDE را در اوبونتو 18.04

نحوه استفاده از Cron برای خودکارسازی کارها در CentOS 8   –  چگونه می توان از رول های ansible برای انتزاع محیط زیرساختی

نحوه نوشتن کد ناهمگام (غیر همزمان) در Node.js –  نحوه پیکربندی یک خوشه Galera با MySQL در سرورهای اوبونتو 18

راه اندازی اولیه سرور با CentOS 8 –   تهیه نسخه پشتیبان و بازیابی یک خوشه Kubernetes

نحوه تنظیم کلیدهای SSH در CentOS 8 –  نحوه نصب و استفاده از PostgreSQL در CentOS 7

نحوه ساختن یک برنامه Node.js با Docker  Quickstart  –  چگونه می توان پلتفرم Eclipse Theia Cloud IDE را روی اوبونتو

چگونه می توان هاست های مجازی Apache را در اوبونتو  –  مدیریت DNS با استفاده از DNSControl در Debian 10

نحوه تایید صحت رمز عبور با Apache در اوبونتو 18.04 –  چگونه می توان پلتفرم Cloud IDE کد سرور را روی CentOS 7

نحوه نصب و استفاده از TimescaleDB در CentOS 7نحوه نصب Apache Kafka در Debian 10

نحوه تایید صحت رمز عبور با Apache در اوبونتو 18.04  –  نحوه نصب وردپرس با OpenLiteSpeed ​​در اوبونتو 18.04

 

 

کلمات کلیدی خرید سرور

خرید vps – خرید سرور مجازی – خرید سرور – سرور هلند – فروش vps – سرور مجازی آمریکا – خریدvps – سرور مجازی هلند – فروش سرور مجازی – سرور آمریکا – vps – سرور مجازی انگلیس – سرور مجازی آلمان – سرور مجازی کانادا – خرید vps آمریکا – خرید وی پی اس – سرور – خرید سرور مجازی هلند – vps خرید – سرور مجازی فرانسه – سرور مجازی هلند – خرید vps آمریکاخرید سرور مجازی ارزان هلندvpsخرید vps هلندخرید سرور مجازی آمریکاخرید vps فرانسهتست vpsسرور مجازی تستسرور مجازی ویندوزارزانترین vpsخرید وی پی اسvps ارزان – 


https://vpsgol.net/product/vps-germany/

https://vpsgol.net/product/vps-usa/

https://vpsgol.net/product/vps-france/

https://vpsgol.net/product/vps-canada/

https://vpsgol.net/product/vps-poland/

https://vpsgol.net/product/vps-netherlands/

https://vpsgol.net/product/vps-england/