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


وب سرور بخش مهمی از برنامه های مبتنی بر وب است. وب سرور آپاچی اغلب در لبه شبکه قرار می گیرد از این رو به یکی از آسیب پذیرترین خدمات برای حمله تبدیل می شود.

پیکربندی پیش فرض اطلاعات بسیار حساس را در اختیار شما قرار می دهد که به هکر کمک می کند تا برای حمله به برنامه ها آماده شود. بیشتر حملات برنامه های وب از طریق حملات XSS ، Info Leakage ، Session Management و SQL Injection انجام می شود که به دلیل ضعف کد برنامه نویسی و عدم بهداشت در زیرساخت های برنامه وب است..

تحقیقات جالب توسط فن آوری های مثبت نشان می دهد ، 52٪ از برنامه اسکن شده دارای آسیب پذیری بالایی هستند.

در این مقاله ، در مورد برخی از بهترین روشها برای ایمن سازی سرور Apache HTTP در بستر لینوکس صحبت خواهیم کرد.

در زیر در نسخه Apache 2.4.x تست شده است.

  • فرض بر این است که شما Apache را روی پلتفرم UNIX نصب کرده اید. اگر اینطور نیست ، می توانید از طریق راهنمای نصب بروید.
  • من در سراسر این راهنما با راهنمای نصب Apache / opt / apache به عنوان $ Web_Server تماس خواهم گرفت.
  • به شما توصیه می شود قبل از هرگونه تغییر ، از نسخه پیکربندی موجود استفاده کنید.

حضار

این برای مدیر Middleware ، پشتیبانی نرم افزار ، تحلیلگر سیستم یا هر کسی که کار می کند یا مشتاق یادگیری سخت شدن طراحی شده است & دستورالعمل های امنیتی.

دانش منصفانه در وب سرور Apache & دستور UNIX اجباری است.

یادداشت

برای بررسی برخی از تأییدهای اجرای ، به برخی ابزارها نیاز دارید تا هدرهای HTTP را بررسی کنید. دو راه برای انجام این کار وجود دارد.

  1. برای بازرسی از هدرهای HTTP از ابزارهای توسعه دهنده داخلی استفاده کنید. معمولاً در زبانه شبکه قرار دارد
  2. از ابزار جستجوگر هدر پاسخ HTTP آنلاین استفاده کنید

حذف بنر نسخه سرور

من می گویم این اولین چیزهایی است که باید در نظر بگیرید ، زیرا نمی خواهید نسخه وب سرور مورد نظر خود را فاش کنید. قرار گرفتن در معرض نسخه به این معنی است که شما به هکرها برای سرعت بخشیدن به روند شناسایی کمک می کنید.

پیکربندی پیش فرض مطابق شکل زیر ، نسخه Apache و نوع سیستم عامل را در معرض نمایش قرار می دهد.

  • به پوشه $ Web_Server / conf بروید
  • با استفاده از ویرایشگر vi ، httpd.conf را اصلاح کنید
  • بخشنامه زیر را اضافه کنید و httpd.conf را ذخیره کنید

ServerTokens محصول
ServerSignature خاموش است

  • راه اندازی مجدد آپاچی

ServerSignature اطلاعات نسخه را از صفحه ایجاد شده توسط Apache حذف می کند.

ServerTokens هدر را فقط به تولید ، یعنی Apache ، تغییر می دهد

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

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

لیست دایرکتوری ها را در یک مرورگر غیرفعال کنید ، بنابراین بازدید کننده نمی بیند که تمام پرونده ها و پوشه های شما تحت ریشه یا زیرمجموعه چیست.

بیایید تست کنیم که چگونه در تنظیمات پیش فرض به نظر می رسد.

  • به دایرکتوری $ Web_Server / htdocs بروید
  • یک پوشه و چند پرونده در آن ایجاد کنید

# تست_مکدیر
# لمس سلام
# لمس سلام

اکنون ، بیایید سعی کنیم به Apache دسترسی پیدا کنیم http: // localhost / test

همانطور که می بینید ، تمام پرونده ها یا پوشه های شما را نشان می دهد و من مطمئن هستم که نمی خواهید آن را افشا کنید.

  • به دایرکتوری $ Web_Server / konf بروید
  •  با استفاده از vi ، httpd.conf را باز کنید
  •  جستجوی فهرست و راهنمای گزینه ها را به None یا –Indexes تغییر دهید

گزینه ها -Indexes

(یا)

هیچکدام از گزینه ها

  • راه اندازی مجدد آپاچی

توجه: اگر چندین راهنمای دایرکتوری در محیط خود دارید ، باید برای همه همین کار را انجام دهید.

اکنون ، بیایید سعی کنیم به Apache دسترسی پیدا کنیم http: // localhost / test

همانطور که مشاهده کردید ، به جای نشان دادن لیست پوشه های آزمایشی ، یک خطای ممنوع را نشان می دهد.

ایگاگ

به مهاجمین از راه دور این امکان را می دهد تا اطلاعات حساس مانند شماره inode ، مرز MIME چند قسمت و فرآیند کودک را از طریق هدر Etag دریافت کنند.

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

  • به دایرکتوری $ Web_Server / konf بروید
  • بخشنامه زیر را اضافه کنید و httpd.conf را ذخیره کنید

FileETag None

  • راه اندازی مجدد آپاچی

آپاچی را از یک حساب غیر ممتاز اجرا کنید

نصب به طور پیش فرض به صورت هیچ کس یا سیم کارت اجرا نمی شود استفاده از یک کاربر غیر ممتاز جداگانه برای Apache خوب است.

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

  • یک کاربر و گروهی بنام apache ایجاد کنید

# آپارات گروهی
# useradd –G apache apache

  • مالکیت دایرکتوری نصب apache را به یک کاربر غیر ممتاز تازه ایجاد شده تغییر دهید

# chown –R apache: apache / opt / apache

  •  به $ Web_Server / conf بروید
  •  httpd.conf را با استفاده از vi اصلاح کنید
  •  جستجوی کاربر & دستورالعمل گروه و به عنوان apache حساب غیر ممتاز تغییر کند

apache کاربر
آپاچی گروهی

  •  httpd.conf را ذخیره کنید
  •  راه اندازی مجدد آپاچی

برای اجرای فرایند http خوش آمدید و از اجرای آن با کاربر apache اطمینان حاصل کنید

# ps –ef | grep http

باید ببینید یک فرآیند با ریشه در حال اجرا است. به این دلیل است که آپاچی درگاه 80 را گوش می دهد و باید با ریشه شروع شود.

از مجوز دایرکتوری و پیکربندی محافظت کنید

به طور پیش فرض ، اجازه دودویی و پیکربندی 755 است به این معنی که هر کاربر روی سرور می تواند پیکربندی را مشاهده کند. می توانید کاربر دیگری را وارد کنید تا وارد پوشه conf و bin شود.

  • به فهرست وب Web_Server بروید
  • مجوز پوشه bin و conf را تغییر دهید

# chmod –R 750 bin conf

حفاظت از تنظیمات سیستم

در یک نصب پیش فرض ، کاربران می توانند پیکربندی آپاچی را با استفاده از .htaccess رد کنند. اگر می خواهید کاربران را از تغییر تنظیمات سرور apache خود متوقف کنید ، می توانید طبق تصویر زیر AllowOverride را به None اضافه کنید.

این کار باید در سطح ریشه انجام شود.

  • به دایرکتوری $ Web_Server / konf بروید
  •  با استفاده از vi ، httpd.conf را باز کنید
  •  جستجوی فهرست در یک سطح ریشه

گزینه ها -Indexes
AllowOverride None

  •  httpd.conf را ذخیره کنید
  •  راه اندازی مجدد آپاچی

روشهای درخواست HTTP

پروتکل HTTP 1.1 از بسیاری از روش های درخواست پشتیبانی می کند که ممکن است مورد نیاز نباشد و برخی از آنها دارای خطر بالقوه هستند.

به طور معمول ممکن است شما به GET، HEAD، POST درخواست درخواست در یک برنامه وب احتیاج دارید ، که می تواند در دستورالعمل مربوطه تنظیم شود..

گزینه های پیش فرض پیکربندی گزینه های OPTIONS ، GET ، HEAD ، POST ، PUT ، DELETE ، TRACE ، CONNECT در پروتکل HTTP 1.1.

  •  به دایرکتوری $ Web_Server / konf بروید
  •  با استفاده از vi ، httpd.conf را باز کنید
  • دایرکتوری را جستجو کنید و موارد زیر را اضافه کنید

انکار همه

  • راه اندازی مجدد آپاچی

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

به طور پیش فرض روش Trace در وب سرور Apache فعال می شود.

با فعال کردن این امر می توان حمله Cross Site Tracing را انجام داد و به طور بالقوه گزینه ای را برای هکر فراهم می کند تا اطلاعات کوکی را سرقت کند. بیایید ببینیم که چگونه در پیکربندی پیش فرض به نظر می رسد.

  •  یک IP سرور وب telnet را با درگاه گوش دادن انجام دهید
  •  مطابق شکل زیر درخواست TRACE را انجام دهید

#telnet localhost 80
سعی در 127.0.0.1…
به localhost وصل شد.
شخصیت فرار “^]” است.
میزبان TRACE / HTTP / 1.1: آزمون
HTTP / 1.1 200 خوب
تاریخ: شنبه ، 31 آگوست 2013 02:13:24 GMT
سرور: آپاچی
رمزگذاری رمزگذاری: تکه ای است
نوع محتوا: پیام / http 20
TRACE / HTTP / 1.1
میزبان: تست
0
اتصال توسط میزبان خارجی بسته شده.
#

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

  •  به دایرکتوری $ Web_Server / konf بروید
  • بخشنامه زیر را اضافه کنید و httpd.conf را ذخیره کنید

TraceEnable خاموش است

  •  راه اندازی مجدد آپاچی

یک IP سرور وب telnet را با درگاه گوش دادن انجام دهید و مطابق شکل زیر یک درخواست TRACE تهیه کنید

#telnet localhost 80
سعی در 127.0.0.1…
به localhost وصل شد.
شخصیت فرار “^]” است.
میزبان TRACE / HTTP / 1.1: آزمون
HTTP / 1.1 405 روش مجاز نیست
تاریخ: شنبه ، 31 آگوست 2013 02:18:27 GMT
سرور: Apache مجاز: طول مطلب: 223 نوع محتوا: text / html؛ charset = iso-8859-1
405 روش مجاز نیست

روش مجاز نمی باشد

روش درخواستی TRACE برای URL مجاز نیست /.

اتصال توسط میزبان خارجی بسته شده.
#

همانطور که در درخواست بالا TRACE مشاهده کردید ، درخواست من را با روش مجاز HTTP 405 مسدود کرده است.

اکنون ، این سرور وب اجازه نمی دهد درخواست و کمک به مسدود کردن حمله Cross Site Tracing را انجام دهد.

کوکی ها را با پرچم HttpOnly و Secure تنظیم کنید

می توانید با استفاده از پرچم HttpOnly و Secure در یک کوکی ، بیشترین حمله متداول متداول Cross Site Scriptting را کاهش دهید. بدون داشتن HttpOnly و Secure ، امکان سرقت یا دستکاری در جلسه برنامه وب و کوکی ها وجود دارد و خطرناک است.

  •  اطمینان حاصل کنید که mod_headers.so در httpd.conf شما فعال شده است
  •  به دایرکتوری $ Web_Server / konf بروید
  •  بخشنامه زیر را اضافه کنید و httpd.conf را ذخیره کنید

ویرایش هدر تنظیمات کوکی ^ (. *) $ 1 $ ؛ HttpOnly ؛ امن

  •  راه اندازی مجدد آپاچی

Clickjacking Attack

Clickjacking یک آسیب پذیری شناخته شده در برنامه وب است.

  •  اطمینان حاصل کنید که mod_headers.so در httpd.conf شما فعال شده است
  •  به دایرکتوری $ Web_Server / konf بروید
  •  بخشنامه زیر را اضافه کنید و httpd.conf را ذخیره کنید

هدر همیشه گزینه های X-Frame-SAMEORIGIN را ضمیمه می کند

  •  راه اندازی مجدد آپاچی

X-Frame-Options همچنین از دو گزینه دیگر پشتیبانی می کند که در اینجا توضیح دادم.

سمت سرور شامل

اضافه کردن سرور (SSI) خطر افزایش بار روی سرور را دارد. اگر برنامه های وب و محیط زیست و ترافیک سنگین را به اشتراک گذاشته اید ، باید با افزودن بخشنامه شامل گزینه های گزینه ، SSI را غیرفعال کنید.

حمله SSI با تزریق اسکریپت در صفحات HTML یا اجرای کدهای از راه دور امکان سوء استفاده از یک برنامه وب را فراهم می کند.

  • به دایرکتوری $ Web_Server / konf بروید
  •  با استفاده از vi ، httpd.conf را باز کنید
  •  جستجوی فهرست و اضافه کردن شامل در راهنمای گزینه ها

گزینه ها – فهرست ها – شامل
سفارش اجازه می دهد ، همه را انکار کنید

  • راه اندازی مجدد آپاچی

توجه: اگر چندین راهنمای دایرکتوری در محیط خود دارید ، باید برای همه همین کار را انجام دهید.

محافظت X-XSS

محافظت از Cross Site Scriptting (XSS) در بسیاری از مرورگرها قابل عبور است. در صورت غیرفعال شدن توسط کاربر ، می توانید از این محافظت برای یک برنامه وب استفاده کنید. این مورد توسط اکثر شرکتهای بزرگ وب مانند فیس بوک ، توییتر ، گوگل و غیره استفاده می شود.

  • به دایرکتوری $ Web_Server / konf بروید
  • httpd.conf را با استفاده از vi باز کنید و دستورالعمل هدر زیر را اضافه کنید

تنظیم هدر X-XSS-Protection "1؛ حالت = بلوک"

  •  راه اندازی مجدد آپاچی

همانطور که مشاهده می کنید ، XSS-Protection تزریق شده در عنوان پاسخ است.

پروتکل HTTP 1.0 را غیرفعال کنید

وقتی در مورد امنیت صحبت می کنیم ، باید تا آنجا که می توانیم محافظت کنیم. بنابراین چرا از نسخه قدیمی HTTP پروتکل استفاده می کنیم ، بیایید آنها را غیرفعال کنیم?

HTTP 1.0 دارای ضعف امنیتی در رابطه با ربودن جلسه است. ما می توانیم با استفاده از ماژول mod_rewrite این کار را غیرفعال کنیم.

  • اطمینان از بارگیری ماژول mod_rewrite در پرونده httpd.conf
  •  دستورالعمل RewriteEngine را به شرح زیر فعال کنید و شرط بازنویسی را اضافه کنید تا فقط HTTP 1.1 مجاز باشد

بازنویسی Engine On
بازنویسی٪٪ {THE_REQUEST! HTTP / 1.1 $
بازنویسی قانون. * – [F]

پیکربندی ارزش پایان

به طور پیش فرض ، ارزش زمان آپاچی 300 ثانیه است که می تواند قربانی حمله Slow Loris و DoS شود. برای کاهش این مسئله می توانید مقدار زمان توقف را به 60 ثانیه کاهش دهید.

  • به دایرکتوری $ Web_Server / konf بروید
  • با استفاده از vi ، httpd.conf را باز کنید
  •  موارد زیر را در httpd.conf اضافه کنید

زمان 60

SSL

داشتن SSL یک لایه امنیتی دیگر است که به برنامه وب اضافه می کنید. با این حال ، پیکربندی پیش فرض SSL منجر به آسیب پذیری های خاصی می شود ، و باید این تنظیمات را در نظر بگیرید.

کلید SSL

شکستن کلید SSL سخت است ، اما غیرممکن نیست. این فقط یک قدرت و زمان محاسباتی است.

همانطور که می دانید با استفاده از یک رایانه شخصی در سال 2009 می توانید حدود 73 روز از بین برود مهندس معکوس یک کلید 512 بیتی.

بنابراین هر چه طول کلید بالاتر شما باشد ، شکستن کلید SSL پیچیده تر می شود. اکثر شرکت های وب غول پیکر از کلید 2048 بیتی استفاده می کنند ، به شرح زیر چرا ما اینگونه نیستیم?

  •  Outlook.com
  •  Microsoft.com
  •   Live.com
  •  Skype.com
  •  Apple.com
  •  Yahoo.com
  •  Bing.com
  •  Hotmail.com
  •  توییتر

می توانید از OpenSSL برای تولید CSR با 2048 بیت به شرح زیر استفاده کنید.

opensl req -out geekflare.csr -nkeykey rsa: 2048-nodes -keyout geekflare.key

این یک CSR تولید می کند که شما نیاز به ارسال به آن دارید صدور گواهی برای امضای آن پس از دریافت پرونده گواهی امضا شده ، می توانید آنها را در پرونده httpd-ssl.conf اضافه کنید

SSLCertificateFile #Certificate که توسط مقام امضا شده است
امضا کننده SSLCertificateChainFile #Certificate که توسط مقام داده شده است
پرونده SSLCertificateKeyFile #Key که در بالا تولید کردید

  • سرور وب Apache را مجدداً راه اندازی کنید و سعی کنید به URL با https دسترسی پیدا کنید

رمزگذار SSL

SSL Cipher یک الگوریتم رمزگذاری است که به عنوان کلید بین دو کامپیوتر از طریق اینترنت استفاده می شود. رمزگذاری داده ها فرایند تبدیل متن ساده به کدهای رمزگذاری شده مخفی است.

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

  • به پوشه $ Web_Server / conf / پوشه اضافی بروید
  •  دستورالعمل SSLCipherSuite را در httpd-ssl.conf به شرح زیر اصلاح کنید تا فقط الگوریتم های رمزنگاری بالاتر را بپذیرید

SSLCipherSuite HIGH:! متوسط:! ANNLL: MD5:! RC4

  •  فایل پیکربندی را ذخیره کرده و سرور apache را مجدداً راه اندازی کنید

توجه: اگر در گزارش حسابرسی SSL خود رمزهای ضعیف زیادی دارید ، می توانید سریع اضافه کردن آنها را رد کنید! در آغاز.

SSL v2 را غیرفعال کنید & v3

SSL v2 & v3 دارای نقایص امنیتی زیادی است ، و اگر شما به دنبال تست نفوذ یا انطباق PCI هستید ، از شما انتظار می رود که یافتن امنیت را غیرفعال کنید تا SSL v2 / v3 را غیرفعال کنید..

هرگونه ارتباط SSL v2 / v3 ممکن است در برابر حمله Man-in-Middle که می تواند باعث دستکاری یا افشای داده شود ، آسیب پذیر باشد..

به سرور وب apache پیاده سازی می کنیم که فقط آخرین TLS را بپذیرد و درخواست اتصال SSL v2 / v3 را رد کند.

  • به پوشه $ Web_Server / conf / پوشه اضافی بروید
  • دستورالعمل SSLProtocol را در httpd-ssl.conf به شرح زیر اصلاح کنید تا فقط TLS 1.2 را بپذیرید+

SSLProtocol –ALL + TLSv1.2

پس از انجام پیکربندی SSL ، این ایده خوبی است که برنامه وب خود را با استفاده از ابزار آنلاین SSL / TLS Certificate برای آزمایش هرگونه خطای پیکربندی آزمایش کنید.

وزارت امنیت

Mod Security یک فایروال با برنامه وب منبع باز است که می توانید از آن با Apache استفاده کنید.

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

برای ارائه حفاظت از برنامه های کاربردی وب عمومی ، قوانین اصلی از تکنیک های زیر استفاده می کنند:

  • حفاظت HTTP – تشخیص نقض پروتکل HTTP و یک خط مشی استفاده محلی تعریف شده
  • زمان واقعی جستجو سیاه لیست – با استفاده از اعتبار IP شخص ثالث
  • تشخیص بدافزار مبتنی بر وب – با چک کردن در برابر API مرور ایمن Google ، محتوای وب مخرب را شناسایی می کند.
  • انکار HTTP از خدمات حفاظت – دفاع در برابر سیل HTTP و حملات آهسته HTTP DoS.
  • حفاظت از حملات متداول وب – شناسایی حمله امنیتی امنیتی مشترک برنامه های وب
  • تشخیص اتوماسیون – شناسایی رباتها ، خزنده ها ، اسکنرها و فعالیتهای مخرب سطح دیگر
  • ادغام با اسکن AV برای بارگذاری پرونده – پرونده های مخرب آپلود شده از طریق برنامه وب را شناسایی می کند.
  • ردیابی داده های حساس – استفاده از کارت اعتباری را ردیابی می کند و نشت را مسدود می کند.
  • Trojan Protection – تشخیص دسترسی به اسب Trojans.
  • شناسایی نقص برنامه – هشدارهای مربوط به تنظیمات نادرست برنامه.
  • خطای تشخیص و پنهان کردن – مبدل پیام های خطا ارسال شده توسط سرور.

دانلود & نصب و راه اندازی

پیش شرط های زیر باید در سرور نصب شود که مایل به استفاده از Mod Security با Apache هستید. اگر هیچ یک از این موارد وجود نداشته باشد ، تدوین وزارت دفاع با شکست مواجه خواهد شد. برای نصب این بسته ها ممکن است از نصب yum در Linux یا Centos استفاده کنید.

  • apache 2.x یا بالاتر
  • بسته libpcre
  •  بسته libxml2
  • بسته liblua
  • بسته libcurl
  •  بسته libapr و libapr-use
  •  ماژول mod_unique_id همراه با وب سرور Apache

اکنون ، آخرین نسخه پایدار Mod Security 2.7.5 را از اینجا بارگیری می کنیم اینجا

  • پرونده بارگیری شده را به / opt / apache انتقال دهید
  • عصاره modsecurance-apache_2.7.5.tar.gz

# gunzip –c modsecurance-apache_2.7.5.tar.gz | tar xvf –

  • به پوشه استخراج شده modsecurance-apache_2.7.5 بروید

# cd modsecurance-apache_2.7.5

  • اسکریپت پیکربندی شامل مسیر apxs به Apache موجود را اجرا کنید

# ./configure – با-apxs = / opt / apache / سطل / apx

  • گردآوری & نصب با ساخت اسکریپت

# ساختن
# نصب کنید

  • پس از اتمام نصب ، می توانید mod_security2.so را در پوشه ماژول ها در زیر / opt / apache مشاهده کنید

اکنون نتیجه می گیرد ، ماژول Mod Security را در سرور وب Apache موجود نصب کرده اید.

پیکربندی

برای استفاده از ویژگی امنیتی Mod با آپاچی ، باید ماژول امنیتی mod را در httpd.conf بارگذاری کنیم. ماژول mod_unique_id از پیش ضروری برای Mod Security است.

این ماژول برای هر درخواست یک متغیر محیطی با یک شناسه منحصر به فرد فراهم می کند ، که توسط Mod Security ردیابی و استفاده می شود.

  • برای بارگذاری ماژول برای Mod Security در httpd.conf ، زیر یک خط اضافه کنید و پرونده پیکربندی را ذخیره کنید

ماژول های loadModule unique_id_module / mod_unique_id.so
ماژول های امنیتی LoadModule protection2_module / mod_security2.so

  •  راه اندازی مجدد وب سرور apache

Mod Security اکنون نصب شده است!

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

آخرین هسته اصلی را می توانید از طریق دنبال کردن یک لینک ، که رایگان است ، بارگیری کنید. https://github.com/SpiderLabs/owasp-modsecurance-crs/zipball/master

  • فشرده شده بارگیری شده از قانون اصلی را در پوشه / opt / apache / conf کپی کنید
  • پرونده قانون اصلی را از حالت فشرده خارج کنید
  • ممکن است بخواهید پوشه را به چیزی کوتاه و آسان برای یادآوری تغییر دهید. در این مثال ، من به crs تغییر نام می دهم.
  • به پوشه crs بروید و تغییر نام دهید modsecurance_crs10_setup.conf.example به modsecurance_crs10_setup.conf

اکنون ، اجازه دهید این قوانین را فعال کنیم تا آن را با سرور وب آپاچی کار کند.

  •  موارد زیر را در httpd.conf اضافه کنید

شامل Conf / crs / modsecurance_crs_10_setup.conf شامل کنفرانس / Crs / base_rules / *.

در پیکربندی فوق ، ما در حال بارگیری فایل پیکربندی اصلی Mod Security modsecurance_crs_10_setup.conf و قوانین پایه base_rules / * هستیم که توسط Mod Security Core Rules برای محافظت از برنامه های وب ارائه شده است..

  •  راه اندازی مجدد وب سرور apache

شما با موفقیت Mod Security را با Apache پیکربندی کرده اید!

آفرین. اکنون ، سرور Apache Apache توسط فایروال برنامه وب Mod Security محافظت می شود.

شروع شدن

بیایید آن را با برخی از تنظیمات مهم در Mod Security شروع کنیم تا سخت شود & برنامه های وب ایمن.

در این بخش ، تمام اصلاحات پیکربندی را در /opt/apache/conf/crs/modsecurance_crs_10_setup.conf انجام خواهیم داد.

ما به عنوان مثال در این بخش /opt/apache/conf/crs/modsecurance_crs_10_setup.conf را به عنوان setup.conf ارجاع می دهیم.

مهم است که بفهمید که قوانین OWASP به صورت رایگان ارائه شده است. دو نوع قانون ارائه شده توسط OWASP وجود دارد.

قوانین پایه – این قوانین به شدت آزمایش شده اند و احتمالاً نسبت هشدار کاذب کمتر است.

قوانین تجربی – این قوانین برای یک هدف آزمایشی هستند و ممکن است شما یک زنگ خطر زیاد داشته باشید. پیکربندی ، آزمایش و پیاده سازی در UAT قبل از استفاده در محیط تولید مهم است.

قوانین اختیاری – این قوانین اختیاری ممکن است برای کل محیط مناسب نباشد. براساس نیاز شما ممکن است از آنها استفاده کنید.

اگر به دنبال CSRF ، ردیابی کاربر ، ربودن جلسه و غیره هستید ، می توانید از قوانین اختیاری استفاده کنید. ما قوانین پایه ، اختیاری و آزمایشی را بعد از استخراج فایل zip crs بارگیری شده از صفحه بارگیری OWASP داریم.

این پرونده پیکربندی قوانین در پوشه crs / base_rules ، crs / optional_rules و crs / Experental_rules در دسترس است. بیایید با برخی از قوانین پایه آشنا شویم.

  • modsecurance_crs_20_protocol_violations.conf: این قانون از آسیب پذیری های پروتکل مانند تقسیم پاسخ ، درخواست قاچاق ، استفاده از پروتکل غیر مجاز محافظت می کند (HTTP 1.0).
  • modsecurance_crs_21_protocol_anomalies.conf: این برای محافظت از یک درخواست است ، که در هاست ، پذیرش ، عامل کاربر در عنوان وجود ندارد.
  • modsecurance_crs_23_quest_limits.conf: این قانون به کاربرد خاص مانند اندازه درخواست ، اندازه بارگذاری ، طول یک پارامتر و غیره وابسته است..
  • modsecurance_crs_30_http_policy.conf: این برای پیکربندی و محافظت از روش مجاز یا مجاز مانند CONNECT ، TRACE ، PUT ، DELETE و غیره است..
  • modsecurance_crs_35_bad_robots.conf: ربات های مخرب را تشخیص دهید
  • modsecurance_crs_40_generic_attacks.conf: این محافظت از تزریق فرمان سیستم عامل ، گنجاندن پرونده از راه دور و غیره است.
  • modsecurance_crs_41_sql_injection_attacks.conf: این قانون برای محافظت از درخواست SQL و نابینایان تزریق SQL.
  • modsecurance_crs_41_xss_attacks.conf: درخواست از برنامه نویسی متقابل سایت.
  • modsecurance_crs_42_tight_securance.conf: تشخیص و حفاظت از تراشه های فهرست.
  • modsecurance_crs_45_trojans.conf: این قانون برای شناسایی خروجی مدیریت فایل کلی ، بارگذاری صفحه پشتی HTTP ، امضای شناخته شده.
  • modsecurance_crs_47_common_exceptions.conf: این به عنوان مکانیسم استثنائی برای از بین بردن مثبت های کاذب رایج که ممکن است با آن به عنوان اتصال داخلی آپاچی ، پینگر SSL و غیره از بین برود ، استفاده می شود..

ورود به سیستم

ورود به سیستم یکی از اولین کارهایی است که می توانید پیکربندی کنید ، بنابراین می توانید سیاهههای مربوط به آنچه Mod Security در حال انجام است ایجاد کنید. دو نوع ورود به سیستم در دسترس است. اشکال زدایی & گزارش حسابرسی.

اشکال زدایی اشکال زدایی: این کار برای کپی کردن خطای آپاچی ، پیام های هشدار دهنده و اخطار از گزارش خطا است.

Log Audit Log: این کار برای نوشتن گزارش های معامله ای است که با قانون امنیت امنیتی مشخص شده اند Mod Security به شما انعطاف پذیری در پیکربندی حسابرسی ، اشکال زدایی یا هر دو ورود به سیستم می دهد..

با تنظیمات پیش فرض ، هر دو گزارش را می نویسند. با این حال ، شما می توانید بر اساس نیاز خود تغییر دهید. ورود به سیستم در دستورالعمل SecDefaultAction کنترل می شود. بیایید پیکربندی پیش فرض ورود به سیستم را در setup.conf بررسی کنیم

SecDefaultAction “مرحله: 1 ، انکار ، ورود به سیستم”

برای ورود به سیستم اشکال زدایی ، ورود به سیستم حسابرسی – استفاده از “ورود” برای ورود به سیستم فقط حسابرسی – استفاده از “nolog ، auditlog” فقط برای ورود به سیستم اشکال زدایی – استفاده از “log، noauditlog” را می توانید مکان ورود به سیستم حسابرسی را ذخیره کنید که توسط SecAuditLog کنترل می شود. بخشنامه.

بگذارید وارد حسابرسی شویم با اضافه کردن مطابق شکل زیر وارد /opt/apache/logs/modsec_audit.log شوید..

  • دستورالعمل SecAuditLog را در setup.conf اضافه کنید و وب سرور Apache را مجدداً راه اندازی کنید

SecAuditLog /opt/apache/logs/modsec_audit.log

  • پس از راه اندازی مجدد ، باید modsec_audit.log در حال تولید باشد

Rule Engine را فعال کنید

به طور پیش فرض موتور Rule خاموش است به این معنی که اگر Rule Engine را فعال نکنید ، از تمام مزایای Mod Security استفاده نمی کنید.

فعال یا غیرفعال کردن موتور Rule توسط بخشنامه SecRuleEngine کنترل می شود.

  • دستورالعمل SecRuleEngine را در setup.conf اضافه کنید و وب سرور Apache را مجدداً راه اندازی کنید

SecRuleEngine On

برای SecRuleEngine سه مقدار وجود دارد:

  • روشن – برای فعال کردن Rule Engine
  • خاموش – برای غیرفعال کردن Rule Engine
  • DetectionOnly – Rule Engine را فعال کنید اما هیچ گاه عملی مانند بلوک ، انکار ، رها کردن ، اجازه دادن ، پروکسی یا تغییر مسیر را انجام نمی دهید.

پس از روشن شدن Rule Engine – Mod Security آماده است تا با برخی از انواع حمله معمول محافظت کند.

حفاظت از نوع Attack Type

اکنون سرور وب آماده است تا با انواع حمله معمول مانند XSS ، SQL Injection ، نقض پروتکل و غیره محافظت کند ، همانطور که ما Core Rule را نصب کرده ایم و Rule Engine را روشن کرده ایم. بگذارید تعدادی از آنها را آزمایش کنیم.

XSS Attack

  •  Firefox را باز کنید و به برنامه خود دسترسی پیدا کرده و برچسب را در انتهای یا آدرس اینترنتی قرار دهید
  •  modsec_audit.log را در پوشه apache / logs نظارت کنید

شما متوجه درخواست درخواست Bl Security (Mod Security) می شوید زیرا حاوی برچسب است که ریشه حمله XSS است.

دایرکتوری Traversal Attack: – حملات پیمایش دایرکتوری با بهره گیری از این آسیب پذیری ها و فایل مربوط به سیستم دسترسی ، می توانند خسارات زیادی ایجاد کنند. سابق – / etc / passwd ، .htaccess و غیره.

  •  Firefox را باز کنید و با استفاده از فهرست برنامه ها به برنامه خود دسترسی پیدا کنید
  •  modsec_audit.log را در پوشه apache / logs نظارت کنید

http: // localhost /؟ ../…/boot

  • شما متوجه درخواست درخواست Bl Security (Mod Security) می شوید زیرا حاوی مسیر عبور فهرست است.

تغییر بنر سرور

در ابتدای این راهنمای ، شما یاد گرفتید که چگونه Apache و OS را از نوع نسخه راهنما ServerTokens حذف کنید.

بیایید یک قدم جلوتر برویم ، در مورد نگه داشتن نام سرور هر آنچه که می خواهید ، چگونه است؟ با دستور SecServerSignature در Mod Security امکان پذیر است. می بینید جالب است.

توجه: برای استفاده از Mod Security برای دستكاری بنر سرور از یك عنوان ، باید ServerTokesn را به صورت كامل در httpd.conf از وب سرور Apache تنظیم كنید..

  • دستورالعمل SecServerSignature را با نام سرور مورد نظر خود در setup.conf اضافه کنید و وب سرور Apache را مجدداً راه اندازی کنید

SecServerSignature YourServerName

سابق:

[/ opt / apache / conf / crs] #grep SecServer modsecurance_crs_10_setup.conf
SecServerSignature geekflare.com
[/ opt / apache / conf / crs] #

پیکربندی عمومی

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

گوش دادن را پیکربندی کنید

وقتی چندین رابط و IP در یک سرور واحد دارید ، توصیه می شود که دستورالعمل Listen با IP مطلق و شماره پورت تنظیم شود..

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

  • دستورالعمل گوش دادن را در httpd.conf با IP و پورت مطلق به عنوان مثال زیر تنظیم کنید

10.10.10.1:80 گوش دهید

ورود به سیستم

پیکربندی درست ورود به سیستم در وب سرور ضروری است. برخی از پارامتر مهم برای ثبت در سیاهه زمان لازم برای ارائه درخواست ، SESSION ID است.

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

  • برای گرفتن زمان لازم برای ارائه درخواست و شناسه SESSION در یک ورود به سیستم
  •  ٪ T اضافه کنید & ٪ جلسهID در httpd.conf تحت بخشنامه LogFormat

LogFormat "٪ h٪ l٪ u٪ t "٪ {sessionID. C" "٪ r" ٪>s٪ b٪ T" مشترک

می توانید مراجعه کنید http://httpd.apache.org/docs/2.2/mod/mod_log_config.html برای لیست کاملی از پارامترهای پشتیبانی شده در بخشنامه LogFormat در Apache Web Server.

غیرفعال کردن بارگذاری ماژول های ناخواسته

اگر با تمام ماژول ها کامپایل شده و نصب کرده باشید ، احتمالاً تعداد زیادی ماژول بارگذاری شده در آپاچی وجود دارد که ممکن است مورد نیاز نباشد..

بهترین روش پیکربندی Apache با ماژول های مورد نیاز در برنامه های وب است. ماژول های زیر دارای نگرانی های امنیتی هستند و ممکن است شما علاقه مند به غیرفعال کردن در httpd.conf از Apache Web Server هستید.

WebDAV (نویسندگان و نسخه های توزیع توزیع شده مبتنی بر وب) این ماژول به مشتریان از راه دور اجازه می دهد تا پرونده ها را روی سرور دستکاری کرده و در معرض حملات مختلفی برای انکار سرویس قرار دهند. برای غیرفعال کردن نظر زیر در httpd.conf

ماژول های #LoadModule dav_module / mod_dav.so
#LoadModule dav_fs_module modul / mod_dav_fs.so
# شامل conf / extra / httpd-dav.conf

ماژول اطلاعات ماژول mod_info پس از بارگیری این ماژول می توانید اطلاعات حساس را با استفاده از .htaccess به بیرون درز کنید. برای غیرفعال کردن نظر زیر در httpd.conf

#LoadModule info_Modules module / mod_info.so

مرجع: این امر بدون راهنمایی از لینک زیر امکان پذیر نخواهد بود:

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

اگر تازه وارد Apache HTTP هستید ، توصیه می کنم از آن استفاده کنید دوره مدیریت Apache HTTP.

Jeffrey Wilson Administrator
Sorry! The Author has not filled his profile.
follow me