अपाचे वेब सर्वर हार्डनिंग एंड सिक्योरिटी गाइड

अपाचे HTTP सर्वर को सुरक्षित और कठोर करने के लिए एक व्यावहारिक गाइड.


वेब सर्वर वेब-आधारित अनुप्रयोगों का एक महत्वपूर्ण हिस्सा है। Apache Web Server को अक्सर नेटवर्क के किनारे पर रखा जाता है इसलिए यह हमला करने के लिए सबसे कमजोर सेवाओं में से एक बन जाता है.

डिफ़ॉल्ट कॉन्फ़िगरेशन होने से बहुत संवेदनशील जानकारी मिलती है जो हैकर को एक हमले के लिए तैयार करने में मदद कर सकती है। अधिकांश वेब अनुप्रयोग हमले XSS, Info Leakage, Session Management और SQL Injection हमलों के माध्यम से होते हैं, जो कमजोर प्रोग्रामिंग कोड और वेब एप्लिकेशन इन्फ्रास्ट्रक्चर को साफ करने में विफलता के कारण होते हैं।.

द्वारा दिलचस्प शोध सकारात्मक प्रौद्योगिकी पता चलता है, स्कैन किए गए आवेदन के 52% में उच्च भेद्यता थी.

इस लेख में, मैं लिनक्स प्लेटफ़ॉर्म पर Apache HTTP सर्वर को सुरक्षित करने के लिए कुछ सर्वोत्तम प्रथाओं के बारे में बात करूंगा.

निम्नलिखित Apache 2.4.x संस्करण पर परीक्षण किए गए हैं.

  • यह मानता है कि आपने Apache को UNIX प्लेटफ़ॉर्म पर स्थापित किया है। यदि नहीं, तो आप अधिष्ठापन गाइड के माध्यम से जा सकते हैं.
  • मैं इस पूरे गाइड में अपाचे इंस्टॉलेशन डायरेक्टरी / ऑप्ट / अपाचे को $ Web_Server कहूंगा.
  • आपको किसी भी संशोधन से पहले मौजूदा कॉन्फ़िगरेशन फ़ाइल का बैकअप लेने की सलाह दी जाती है.

Contents

दर्शक

यह मिडिलवेयर एडमिनिस्ट्रेटर, एप्लिकेशन सपोर्ट, सिस्टम एनालिस्ट या हार्डनिंग सीखने के लिए काम करने वाले या उत्सुक किसी के लिए बनाया गया है & सुरक्षा दिशानिर्देश.

अपाचे वेब सर्वर का उचित ज्ञान & UNIX कमांड अनिवार्य है.

टिप्पणियाँ

कार्यान्वयन के सत्यापन के लिए HTTP हेडर की जांच के लिए आपको कुछ टूल की आवश्यकता होती है। इसे करने के दो तरीके हैं.

  1. HTTP हेडर का निरीक्षण करने के लिए ब्राउज़र इनबिल्ट डेवलपर टूल का उपयोग करें। आमतौर पर, यह नेटवर्क टैब के अंतर्गत है
  2. ऑनलाइन HTTP प्रतिक्रिया हेडर चेकर टूल का उपयोग करें

सर्वर संस्करण बैनर निकालें

मैं कहूंगा कि यह पहली चीजों में से एक है, जिस पर आप विचार करना चाहते हैं कि आप किस वेब सर्वर संस्करण का उपयोग कर रहे हैं। एक्सपोज़िंग संस्करण का मतलब है कि आप टोही प्रक्रिया को तेज करने के लिए हैकर की मदद कर रहे हैं.

डिफ़ॉल्ट कॉन्फ़िगरेशन अपाचे संस्करण और ओएस प्रकार को उजागर करेगा जैसा कि नीचे दिखाया गया है.

  • $ Web_Server / conf फ़ोल्डर में जाएं
  • Vi संपादक का उपयोग करके httpd.conf को संशोधित करें
  • निम्नलिखित निर्देश जोड़ें और httpd.conf को सहेजें

ServerTokens उत्पाद
ServerSignature बंद

  • फिर से शुरू करें

ServerSignature अपाचे द्वारा उत्पन्न पृष्ठ से संस्करण की जानकारी को हटा देगा.

ServerTokens हीडर को प्रोडक्शन में बदल देगा, यानी, Apache

जैसा कि आप नीचे देख सकते हैं, संस्करण & ओएस की जानकारी चली गई है.

निर्देशिका ब्राउज़र सूची को अक्षम करें

किसी ब्राउज़र में निर्देशिका लिस्टिंग को अक्षम करें, इसलिए आगंतुक यह नहीं देखता कि आपके पास रूट या उपनिर्देशिका के अंतर्गत सभी फ़ाइल और फ़ोल्डर्स क्या हैं.

आइए परीक्षण करें कि यह डिफ़ॉल्ट सेटिंग्स में कैसा दिखता है.

  • $ Web_Server / htdocs निर्देशिका पर जाएं
  • उसके अंदर एक फोल्डर और कुछ फाइल बनाएं

# mkdir परीक्षण
# स्पर्श हाय
# हेलो को टच करें

अब, अपाचे को एक्सेस करने का प्रयास करें http: // localhost / परीक्षण

जैसा कि आप देख सकते हैं कि यह पता चलता है कि आपके पास सभी फ़ाइल / फ़ोल्डर हैं और मुझे यकीन है कि आप इसे उजागर नहीं करना चाहते हैं.

  • $ Web_Server / conf निर्देशिका पर जाएं
  •  Vi का उपयोग करके httpd.conf खोलें
  •  निर्देशिका और परिवर्तन विकल्प के लिए खोजें कोई नहीं या -Indexes के लिए निर्देश

विकल्प -इंडेक्स

(या)

विकल्प कोई नहीं

  • अपाचे को फिर से शुरू करें

नोट: यदि आपके वातावरण में कई निर्देशिका निर्देश हैं, तो आपको सभी के लिए एक जैसा करने पर विचार करना चाहिए.

अब, अपाचे को एक्सेस करने का प्रयास करें http: // localhost / परीक्षण

जैसा कि आप देख सकते हैं, यह परीक्षण फ़ोल्डर सूची दिखाने के बजाय एक निषिद्ध त्रुटि प्रदर्शित करता है.

ETag

यह रिमोट हमलावरों को संवेदनशील जानकारी प्राप्त करने की अनुमति देता है जैसे कि आईनोड हैडर, मल्टीमार्ट सीमा और एटा हेडर के माध्यम से बच्चे की प्रक्रिया.

इस भेद्यता को रोकने के लिए, इसे नीचे दिए अनुसार लागू करें। पीसीआई अनुपालन के लिए इसे ठीक करना आवश्यक है.

  • $ Web_Server / conf निर्देशिका पर जाएं
  • निम्नलिखित निर्देश जोड़ें और httpd.conf को सहेजें

FileETag कोई नहीं

  • फिर से शुरू करें

अपाचे को एक विशेषाधिकार प्राप्त खाते से चलाएं

एक डिफ़ॉल्ट स्थापना कोई भी या डेमन के रूप में नहीं चलती है। अपाचे के लिए एक अलग गैर-विशेषाधिकार प्राप्त उपयोगकर्ता का उपयोग करना अच्छा है.

यहां विचार किसी भी सुरक्षा छेद के मामले में चल रही अन्य सेवाओं की रक्षा करना है.

  • Apache नामक एक उपयोगकर्ता और समूह बनाएँ

# ग्रुपडैड अपाचे
# useradd- जी अपाचे अपाचे

  • अपाचे संस्थापन निर्देशिका स्वामित्व को एक नए बनाए गए गैर-विशेषाधिकार प्राप्त उपयोगकर्ता में बदलें

# chown –R अपाचे: अपाचे / ऑप्ट / अपाचे

  •  $ Web_Server / conf पर जाएं
  •  Vi का उपयोग करके httpd.conf को संशोधित करें
  •  उपयोगकर्ता के लिए खोजें & समूह के निर्देश और गैर-विशेषाधिकार प्राप्त खाता अपाचे के रूप में परिवर्तन

उपयोगकर्ता अपाचे
समूह अपाचे

  •  Httpd.conf को सेव करें
  •  अपाचे को फिर से शुरू करें

http प्रक्रिया को चलाने के लिए grep और यह सुनिश्चित करें कि अपाचे उपयोगकर्ता के साथ चल रहा है

# ps -ef | grep http

आपको देखना चाहिए कि एक प्रक्रिया रूट के साथ चल रही है। ऐसा इसलिए है क्योंकि Apache पोर्ट 80 पर सुनाई दे रहा है और इसे रूट से शुरू किया जाना है.

बाइनरी और कॉन्फ़िगरेशन डायरेक्टरी अनुमति को सुरक्षित रखें

डिफ़ॉल्ट रूप से, बाइनरी और कॉन्फ़िगरेशन की अनुमति 755 है जिसका अर्थ है कि सर्वर पर कोई भी उपयोगकर्ता कॉन्फ़िगरेशन देख सकता है। आप किसी अन्य उपयोगकर्ता को गोपनीय और बिन फ़ोल्डर में लाने के लिए अस्वीकृत कर सकते हैं.

  • $ Web_Server निर्देशिका पर जाएं
  • बिन और गोपनीय फ़ोल्डर की अनुमति बदलें

# chmod –R 750 बिन आत्मविश्वास

सिस्टम सेटिंग्स सुरक्षा

एक डिफ़ॉल्ट स्थापना में, उपयोगकर्ता .htaccess का उपयोग करके अपाचे कॉन्फ़िगरेशन को ओवरराइड कर सकते हैं। यदि आप उपयोगकर्ताओं को अपनी Apache सर्वर सेटिंग्स को बदलने से रोकना चाहते हैं, तो आप AllowOverride को नीचे दिखाए गए किसी के रूप में नहीं जोड़ सकते.

इसे मूल स्तर पर किया जाना चाहिए.

  • $ Web_Server / conf निर्देशिका पर जाएं
  •  Vi का उपयोग करके httpd.conf खोलें
  •  रूट स्तर पर निर्देशिका की खोज करें

विकल्प -इंडेक्स
AllowOverride कोई नहीं

  •  Httpd.conf को सेव करें
  •  अपाचे को फिर से शुरू करें

HTTP रिक्वेस्ट मेथड्स

HTTP 1.1 प्रोटोकॉल कई अनुरोध विधियों का समर्थन करता है जिनकी आवश्यकता नहीं हो सकती है और उनमें से कुछ संभावित जोखिम वाले हैं.

आमतौर पर आपको वेब एप्लिकेशन में GET, HEAD, POST अनुरोध विधियों की आवश्यकता हो सकती है, जिन्हें संबंधित निर्देशिका निर्देश में कॉन्फ़िगर किया जा सकता है.

डिफ़ॉल्ट कॉन्फ़िगरेशन समर्थन विकल्प, GET, HEAD, POST, PUT, DELETE, TRACE, HTTP 1.1 प्रोटोकॉल में कनेक्ट विधि.

  •  $ Web_Server / conf निर्देशिका पर जाएं
  •  Vi का उपयोग करके httpd.conf खोलें
  • निर्देशिका खोजें और निम्नलिखित जोड़ें

सब से इनकार

  • अपाचे को फिर से शुरू करें

HTTP अनुरोध को अक्षम करें

डिफ़ॉल्ट रूप से ट्रेस विधि अपाचे वेब सर्वर में सक्षम है.

इसके सक्षम होने से क्रॉस साइट ट्रेसिंग हमले और संभावित रूप से हैकर को कुकी जानकारी चुराने का विकल्प मिल सकता है। आइए देखें कि यह डिफ़ॉल्ट कॉन्फ़िगरेशन में कैसा दिखता है.

  •  पोर्ट को सुनने के साथ एक टेलनेट वेब सर्वर आईपी करें
  •  नीचे दिखाए अनुसार TRACE अनुरोध करें

#telnet लोकलहोस्ट 80
127.0.0.1 की कोशिश कर रहा है…
लोकलहोस्ट से जुड़ा.
पलायन चरित्र ‘^] है.
TRACE / HTTP / 1.1 होस्ट: परीक्षण
HTTP / 1.1 200 ठीक है
दिनांक: शनि, ३१ अगस्त २०१३ 02:13:24 GMT
सर्वर: अपाचे
स्थानांतरण-एन्कोडिंग: chunked
सामग्री-प्रकार: संदेश / http 20
TRACE / HTTP / 1.1
मेजबान: परीक्षण
0
कनेक्शन विदेशी मेजबान द्वारा बंद कर दिया गया है.
#

जैसा कि आप TRACE अनुरोध के ऊपर देख सकते हैं, इसने मेरी क्वेरी का जवाब दिया है। इसे अक्षम करें और इसका परीक्षण करें.

  •  $ Web_Server / conf निर्देशिका पर जाएं
  • निम्नलिखित निर्देश जोड़ें और httpd.conf को सहेजें

ट्रेसने योग्य

  •  फिर से शुरू करें

टेलनेट वेब सर्वर आईपी को सुने पोर्ट के साथ करें और नीचे दिखाए अनुसार TRACE अनुरोध करें

#telnet लोकलहोस्ट 80
127.0.0.1 की कोशिश कर रहा है…
लोकलहोस्ट से जुड़ा.
पलायन चरित्र ‘^] है.
TRACE / HTTP / 1.1 होस्ट: परीक्षण
HTTP / 1.1 405 विधि अनुमति नहीं है
दिनांक: शनि, ३१ अगस्त २०१३ 02:18:27 GMT
सर्वर: अपाचे अनुमति: सामग्री-लंबाई: 223Content- प्रकार: पाठ / html; charset = iso-8859-1
405 विधि अनुमति नहीं है

विधि की अनुमति नहीं है

URL / के लिए अनुरोधित विधि TRACE की अनुमति नहीं है.

कनेक्शन विदेशी मेजबान द्वारा बंद कर दिया गया है.
#

जैसा कि आप TRACE अनुरोध के ऊपर देख सकते हैं, इसने HTTP 405 मेथड नॉट अलाउड के साथ मेरे अनुरोध को रोक दिया है.

अब, यह वेब सर्वर TRACE के अनुरोध की अनुमति नहीं देता है और क्रॉस साइट ट्रेसिंग हमले को रोकने में मदद करता है.

कुकी को HttpOnly और Secure ध्वज के साथ सेट करें

आप कुकी में HttpOnly और Secure ध्वज का उपयोग करके अधिकांश सामान्य क्रॉस साइट स्क्रिप्टिंग हमले को कम कर सकते हैं। HttpOnly और Secure के बिना, वेब एप्लिकेशन सत्र और कुकीज़ को चोरी या हेरफेर करना संभव है, और यह खतरनाक है.

  •  सुनिश्चित करें कि mod_headers.so आपके httpd.conf में सक्षम है
  •  $ Web_Server / conf निर्देशिका पर जाएं
  •  निम्नलिखित निर्देश जोड़ें और httpd.conf को सहेजें

हैडर ने सेट-कुकी ^ (। *) $ 1 का संपादन किया; HttpOnly; सिक्योर

  •  फिर से शुरू करें

क्लिकजैकिंग अटैक

Clickjacking एक प्रसिद्ध वेब अनुप्रयोग भेद्यता है.

  •  सुनिश्चित करें कि mod_headers.so आपके httpd.conf में सक्षम है
  •  $ Web_Server / conf निर्देशिका पर जाएं
  •  निम्नलिखित निर्देश जोड़ें और httpd.conf को सहेजें

हैडर हमेशा X- फ्रेम-विकल्प SAMEORIGIN को जोड़ते हैं

  •  फिर से शुरू करें

एक्स-फ़्रेम-ऑप्शंस दो और विकल्पों का भी समर्थन करते हैं, जो मैंने यहां बताया.

सर्वर साइड शामिल करें

सर्वर साइड इन्क्लूड (SSI) सर्वर पर लोड बढ़ने का जोखिम रखता है। यदि आपने पर्यावरण और भारी ट्रैफ़िक वेब एप्लिकेशन साझा किए हैं, तो आपको विकल्प निर्देश में शामिल करके SSI को अक्षम करने पर विचार करना चाहिए.

SSI हमला HTML पृष्ठों में स्क्रिप्ट को इंजेक्ट करके या कोड को दूरस्थ रूप से निष्पादित करके वेब एप्लिकेशन के शोषण की अनुमति देता है.

  • $ Web_Server / conf निर्देशिका पर जाएं
  •  Vi का उपयोग करके httpd.conf खोलें
  •  निर्देशिका के लिए खोजें और विकल्प निर्देश में शामिल करें

विकल्प-इंडेक्स -इन्क्लूड्स
आदेश की अनुमति, सभी से इनकार

  • अपाचे को फिर से शुरू करें

नोट: यदि आपके वातावरण में कई निर्देशिका निर्देश हैं, तो आपको सभी के लिए एक जैसा करने पर विचार करना चाहिए.

एक्स-एक्सएसएस संरक्षण

कई ब्राउज़रों में क्रॉस साइट स्क्रिप्टिंग (XSS) सुरक्षा को दरकिनार किया जा सकता है। यदि आप उपयोगकर्ता द्वारा अक्षम किए गए थे, तो आप इस सुरक्षा को वेब एप्लिकेशन के लिए लागू कर सकते हैं। इसका उपयोग फेसबुक, ट्विटर, गूगल आदि जैसी कई विशालकाय वेब कंपनियों द्वारा किया जाता है.

  • $ Web_Server / conf निर्देशिका पर जाएं
  • Http का उपयोग करके httpd.conf खोलें और हैडर निर्देश का पालन करें

हैडर ने X-XSS- प्रोटेक्शन सेट किया "1; मोड = ब्लॉक"

  •  अपाचे को फिर से शुरू करें

जैसा कि आप देख सकते हैं, प्रतिक्रिया शीर्षलेख में XSS- संरक्षण इंजेक्ट किया गया है.

HTTP 1.0 प्रोटोकॉल को अक्षम करें

जब हम सुरक्षा के बारे में बात करते हैं, तो हमें अपनी सुरक्षा करनी चाहिए। तो हम प्रोटोकॉल के पुराने HTTP संस्करण का उपयोग क्यों करते हैं, उन्हें भी निष्क्रिय कर दें?

HTTP 1.0 में सत्र अपहरण से संबंधित सुरक्षा कमजोरी है। हम mod_rewrite मॉड्यूल का उपयोग करके इसे अक्षम कर सकते हैं.

  • Http_rewrite मॉड्यूल को httpd.conf फ़ाइल में लोड करना सुनिश्चित करें
  •  निम्नलिखित के रूप में RewriteEngine निर्देश सक्षम करें और केवल HTTP 1.1 की अनुमति देने के लिए Rewrite शर्त जोड़ें

रिवरटाइंगइन ऑन
% ReriteCond% {THE_REQUEST}! HTTP / 1.1 $
पुनर्लेखन। * – [एफ]

टाइमआउट मान कॉन्फ़िगरेशन

डिफ़ॉल्ट रूप से, अपाचे टाइम-आउट मान 300 सेकंड है, जो स्लो लोरिस हमले और DoS का शिकार हो सकता है। इसे कम करने के लिए, आप टाइमआउट मान को 60 सेकंड तक कम कर सकते हैं.

  • $ Web_Server / conf निर्देशिका पर जाएं
  • Vi का उपयोग करके httpd.conf खोलें
  •  Httpd.conf में निम्नलिखित जोड़ें

टाइमआउट 60

एसएसएल

SSL होने के कारण आप वेब एप्लिकेशन में सुरक्षा की एक अतिरिक्त परत जोड़ रहे हैं। हालाँकि, डिफ़ॉल्ट SSL कॉन्फ़िगरेशन कुछ कमजोरियों की ओर जाता है, और आपको उन कॉन्फ़िगरेशनों को छोटा करने पर विचार करना चाहिए.

एसएसएल कुंजी

SSL कुंजी को तोड़ना कठिन है, लेकिन असंभव नहीं है। यह सिर्फ कम्प्यूटेशनल पावर और समय की बात है.

जैसा कि आप जानते हैं, 2009 के युग के पीसी को लगभग 73 दिनों के लिए दूर कर सकते हैं रिवर्स इंजीनियर एक 512-बिट कुंजी.

तो आपके पास जितनी ऊँचाई होगी, SSL कुंजी को तोड़ना उतना ही जटिल होगा। अधिकांश विशाल वेब कंपनियां 2048 बिट कुंजी का उपयोग करती हैं, इसलिए नीचे हम क्यों नहीं हैं?

  •  Outlook.com
  •  Microsoft.com
  •   Live.com
  •  Skype.com
  •  Apple.com
  •  Yahoo.com
  •  Bing.com
  •  Hotmail.com
  •  Twitter.com

आप नीचे दिए गए 2048 बिट के साथ CSR उत्पन्न करने के लिए ओपनएसएसएल का उपयोग कर सकते हैं.

Opensl req -out geekflare.csr -newkey rsa: 2048 -nodes -keyout geekflare.key

यह एक सीएसआर उत्पन्न करेगा जिसे आपको एक को भेजना होगा प्रमाणपत्र अधिकार इस पर हस्ताक्षर करने के लिए। एक बार जब आप हस्ताक्षरित प्रमाणपत्र फ़ाइल प्राप्त करते हैं, तो आप उन्हें httpd-ssl.conf फ़ाइल में जोड़ सकते हैं

SSLCertificateFile # प्राधिकरण द्वारा हस्ताक्षरित प्रमाणपत्र
SSLCertificateChainFile #Certificate signer प्राधिकारी द्वारा दिया गया
SSLCertificateKeyFile #Key फ़ाइल जो आपने ऊपर बनाई है

  • Apache वेब सर्वर को पुनरारंभ करें और https के साथ URL तक पहुंचने का प्रयास करें

SSL सिफर

SSL सिफर एक एन्क्रिप्शन एल्गोरिथ्म है, जिसका उपयोग इंटरनेट पर दो कंप्यूटरों के बीच एक कुंजी के रूप में किया जाता है। डेटा एन्क्रिप्शन सादा पाठ को गुप्त सिफर कोड में बदलने की प्रक्रिया है.

यह आपके वेब सर्वर SSL सिफर कॉन्फ़िगरेशन पर आधारित है, जो डेटा एन्क्रिप्शन करेगा। इसलिए SSL सिफर को कॉन्फ़िगर करना महत्वपूर्ण है, जो मजबूत है और कमजोर नहीं है.

  • $ Web_Server / conf / extra फ़ोल्डर में जाएं
  •  केवल उच्च एन्क्रिप्शन एल्गोरिदम को स्वीकार करने के लिए httpd-ssl.conf में SSLCipherSuite निर्देश को संशोधित करें

SSLCipherSuite High:! MEDIUM:! ANULL:! MD5:! RC4

  •  कॉन्फ़िगरेशन फ़ाइल सहेजें और अपाचे सर्वर को पुनरारंभ करें

नोट: यदि आपके एसएसएल ऑडिटिंग रिपोर्ट में कई कमजोर सिफर हैं, तो आप उन्हें जोड़कर जल्दी से अस्वीकार कर सकते हैं! शुरू में.

SSL v2 को अक्षम करें & v3

एसएसएल वी 2 & v3 में कई सुरक्षा खामियां हैं, और यदि आप प्रवेश परीक्षा या पीसीआई अनुपालन की दिशा में काम कर रहे हैं, तो आपसे SSL v2 / v3 को अक्षम करने के लिए सुरक्षा खोज बंद करने की उम्मीद है.

कोई भी SSL v2 / v3 संचार एक मैन-इन-द-मध्य हमले के लिए असुरक्षित हो सकता है जो डेटा से छेड़छाड़ या खुलासे की अनुमति दे सकता है.

केवल नवीनतम TLS स्वीकार करने और SSL v2 / v3 कनेक्शन अनुरोध को अस्वीकार करने के लिए अपाचे वेब सर्वर को लागू करें.

  • $ Web_Server / conf / extra फ़ोल्डर में जाएं
  • SSLProtocol निर्देश को केवल TLS 1.2 को स्वीकार करने के लिए httpd-ssl.conf में नीचे संशोधित करें+

SSLProtocol –ALL + TLSv1.2

एक बार जब आप एसएसएल कॉन्फ़िगरेशन के साथ हो जाते हैं, तो किसी भी कॉन्फ़िगरेशन त्रुटि को खोजने के लिए ऑनलाइन एसएसएल / टीएलएस सर्टिफिकेट टूल के साथ अपने वेब एप्लिकेशन का परीक्षण करना एक अच्छा विचार है।.

मॉड सुरक्षा

मॉड सिक्योरिटी एक ओपन-सोर्स वेब एप्लिकेशन फ़ायरवॉल है, जिसे आप अपाचे के साथ उपयोग कर सकते हैं.

यह एक मॉड्यूल के रूप में आता है जिसे आपको संकलित और स्थापित करना है। यदि आप एक वाणिज्यिक वेब एप्लिकेशन फ़ायरवॉल नहीं खरीद सकते हैं, तो इसके लिए जाना एक उत्कृष्ट विकल्प होगा.

सामान्य वेब अनुप्रयोग सुरक्षा प्रदान करने के लिए, कोर नियम निम्नलिखित तकनीकों का उपयोग करते हैं:

  • HTTP सुरक्षा – HTTP प्रोटोकॉल के उल्लंघन और स्थानीय रूप से परिभाषित उपयोग नीति का पता लगाना
  • रियल-टाइम ब्लैकलिस्ट लुकअप – 3rd पार्टी आईपी प्रतिष्ठा का उपयोग करता है
  • वेब-आधारित मैलवेयर डिटेक्शन – Google सुरक्षित ब्राउजिंग एपीआई के खिलाफ चेक द्वारा दुर्भावनापूर्ण वेब सामग्री की पहचान करता है.
  • HTTP विरोध सेवा की सुरक्षा – HTTP बाढ़ और धीमी HTTP DoS हमलों के खिलाफ रक्षा.
  • कॉमन वेब अटैक प्रोटेक्शन – कॉमन वेब एप्लिकेशन सिक्योरिटी अटैक का पता लगाना
  • स्वचालन का पता लगाने – बॉट, क्रॉलर, स्कैनर और एक अन्य दुर्भावनापूर्ण सतह गतिविधि का पता लगाना
  • फ़ाइल अपलोड के लिए AV स्कैनिंग के साथ एकीकरण – वेब एप्लिकेशन के माध्यम से अपलोड की गई दुर्भावनापूर्ण फ़ाइलों की पहचान करता है.
  • ट्रैकिंग संवेदनशील डेटा – क्रेडिट कार्ड के उपयोग को ट्रैक करता है और रिसाव को रोकता है.
  • ट्रोजन संरक्षण – ट्रोजन घोड़ों तक पहुंच का पता लगाना.
  • एप्लिकेशन की पहचान की पहचान – एप्लिकेशन की गलतफहमी पर अलर्ट.
  • त्रुटि का पता लगाना और छिपाना – सर्वर द्वारा भेजे गए त्रुटि संदेशों को खारिज करना.

डाउनलोड & स्थापना

निम्नलिखित आवश्यकताएँ सर्वर पर स्थापित की जानी चाहिए जहाँ आप Apache के साथ Mod Security का उपयोग करना चाहते हैं। यदि इनमें से कोई भी मौजूद नहीं है, तो मॉड सुरक्षा संकलन विफल हो जाएगा। आप इन पैकेजों को स्थापित करने के लिए लिनक्स या सेंटोस पर yum इंस्टॉल का उपयोग कर सकते हैं.

  • अपाचे 2.x या उच्चतर
  • libpcre पैकेज
  •  libxml2 पैकेज
  • लिबुआ पैकेज
  • libcurl पैकेज
  •  libapr और libapr- उपयोग पैकेज
  •  mod_unique_id मॉड्यूल Apache वेब सर्वर के साथ बंडल किया गया

अब, आधुनिक सुरक्षा संस्करण का नवीनतम स्थिर संस्करण 2.7.5 डाउनलोड करें यहाँ

  • डाउनलोड की गई फ़ाइल को / ऑप्ट / अपाचे में स्थानांतरित करें
  • Modsecurity-apache_2.7.5.tar.gz निकालें

# gunzip –c modsecurity-apache_2.7.5.tar.gz | टार xvf –

  • निकाले गए फ़ोल्डर modsecurity-apache_2.7.5 पर जाएं

# cd modsecurity-apache_2.7.5

  • अपाक्स पथ सहित कॉन्फ़िगर स्क्रिप्ट को मौजूदा अपाचे के लिए चलाएँ

# ./configure -with-apxs = / opt / apache / bin / apxs

  • संकलन & स्क्रिप्ट बनाने के साथ स्थापित करें

# बनाना
# स्थापित करें

  • एक बार इंस्टॉलेशन हो जाने के बाद, आपको mod_security2.so इन मॉडल्स फ़ोल्डर में अंडर / ऑप्ट / अपाचे दिखाई देगा

अब यह निष्कर्ष निकलता है, आपने मौजूदा अपाचे वेब सर्वर में मॉड सुरक्षा मॉड्यूल स्थापित किया है.

विन्यास

Apache के साथ Mod सुरक्षा फीचर का उपयोग करने के लिए, हमें httpd.conf में mod सुरक्षा मॉड्यूल लोड करना होगा। Mod_unique_id मॉड्यूल मॉड सुरक्षा के लिए पूर्व-अपेक्षित है.

यह मॉड्यूल प्रत्येक अनुरोध के लिए एक अद्वितीय पहचानकर्ता के साथ एक पर्यावरण चर प्रदान करता है, जिसे मॉड सुरक्षा द्वारा ट्रैक और उपयोग किया जाता है.

  • Httpd.conf में मॉड सिक्योरिटी के लिए मॉड्यूल लोड करने के लिए एक लाइन का पालन करें और कॉन्फ़िगरेशन फ़ाइल को सहेजें

LoadModule unique_id_module मॉड्यूल / mod_unique_id.so
LoadModule Security2_module मॉड्यूल / mod_security2.so

  •  Apache वेब सर्वर को पुनरारंभ करें

अब मॉड सुरक्षा स्थापित है!

अगली बात आपको इसकी सुविधा का पूरा लाभ लेने के लिए मॉड सिक्योरिटी कोर नियम स्थापित करना है.

नवीनतम कोर नियम को एक लिंक का अनुसरण करके डाउनलोड किया जा सकता है, जो मुफ़्त है. https://github.com/SpiderLabs/owasp-modsecurity-crs/zipball/master

  • डाउनलोड किए गए मूल नियम ज़िप को / ऑप्ट / अपाचे / गोपनीय फ़ोल्डर में कॉपी करें
  • अनज़िप कोर नियम फ़ाइल
  • आप कुछ संक्षिप्त और आसानी से याद करने के लिए फ़ोल्डर का नाम बदलना चाह सकते हैं। इस उदाहरण में, मैं crs का नाम बदलूंगा.
  • Crs फ़ोल्डर पर जाएं और modsecurity_crs10_setup.conf.conf.example को modsecurity_crs10_setup.conf नाम दें

अब, अपाचे वेब सर्वर के साथ काम करने के लिए इन नियमों को सक्षम करें.

  •  Httpd.conf में निम्नलिखित जोड़ें

Conf / crs / modsecurity_crs_10_setup.confInclude conf / crs / base_rules / * शामिल करें।

उपरोक्त कॉन्फ़िगरेशन में, हम मॉड सुरक्षा मुख्य कॉन्फ़िगरेशन फ़ाइल modsecurity_crs_10_setup.conf और आधार नियम base_rules / * लोड कर रहे हैं। वेब अनुप्रयोगों की सुरक्षा के लिए Mod Security Core Rules द्वारा प्रदान किया गया गोपनीय।.

  •  Apache वेब सर्वर को पुनरारंभ करें

आपने Apache के साथ Mod Security को सफलतापूर्वक कॉन्फ़िगर किया है!

बहुत बढ़िया। अब, अपाचे वेब सर्वर मॉड सिक्योरिटी वेब एप्लिकेशन फ़ायरवॉल द्वारा सुरक्षित है.

शुरू करना

चलिए इसे मॉड्युर सिक्योरिटी में कुछ महत्वपूर्ण विन्यासों को कठोर बनाने के लिए शुरू किया गया है & सुरक्षित वेब अनुप्रयोग.

इस अनुभाग में, हम सभी विन्यास संशोधन / गोद / परिशिष्ट /conf/crs/modsecurity_crs_10_setup.conf में करेंगे.

हम सेटअप के रूप में /opt/apache/conf/crs/modsecurity_crs_10_setup.conf को संदर्भित करेंगे। उदाहरण के लिए इस खंड मेंconf.

यह समझना महत्वपूर्ण है कि ओडब्ल्यूएएसपी नियम क्या मुफ्त में दिए गए हैं। OWASP द्वारा प्रदान किए गए दो प्रकार के नियम हैं.

आधार नियम – इन नियमों का भारी परीक्षण किया जाता है, और शायद गलत अलार्म अनुपात कम होता है.

प्रायोगिक नियम – ये नियम एक प्रयोगात्मक उद्देश्य के लिए हैं, और आपके पास एक उच्च गलत अलार्म हो सकता है। उत्पादन परिवेश में इनका उपयोग करने से पहले UAT में कॉन्फ़िगर करना, परीक्षण करना और इसे लागू करना महत्वपूर्ण है.

वैकल्पिक नियम – ये वैकल्पिक नियम पूरे पर्यावरण के लिए उपयुक्त नहीं हो सकते हैं। आपकी आवश्यकता के आधार पर आप उनका उपयोग कर सकते हैं.

यदि आप CSRF, उपयोगकर्ता ट्रैकिंग, सत्र अपहरण, आदि सुरक्षा की तलाश कर रहे हैं, तो आप वैकल्पिक नियमों का उपयोग करने पर विचार कर सकते हैं। ओडब्ल्यूएएसपी डाउनलोड पेज से डाउनलोड की गई सीआरएस ज़िप फ़ाइल को निकालने के बाद हमारे पास आधार, वैकल्पिक और प्रायोगिक नियम हैं.

ये नियम कॉन्फ़िगरेशन फ़ाइल crs / base_rules, crs / वैकल्पिक_rules और crs / प्रयोगात्मक_rules फ़ोल्डर में उपलब्ध है। आइए कुछ आधार नियमों से परिचित हों.

  • modsecurity_crs_20_protocol_violations.conf: यह नियम गैर-अनुमत प्रोटोकॉल (HTTP 1.0) का उपयोग करके प्रतिक्रिया विभाजन, अनुरोध तस्करी जैसी प्रोटोकॉल कमजोरियों से रक्षा कर रहा है.
  • modsecurity_crs_21_protocol_anomalies.conf: यह एक अनुरोध से बचाने के लिए है, जो शीर्ष लेख में होस्ट, स्वीकार, उपयोगकर्ता-एजेंट के साथ गायब है.
  • modsecurity_crs_23_request_limits.conf: इस नियम में आवेदन विशिष्ट पर निर्भरता है जैसे अनुरोध आकार, अपलोड आकार, एक पैरामीटर की लंबाई, आदि।.
  • modsecurity_crs_30_http_policy.conf: यह कॉन्फ़िगर किया गया है और संरक्षित या अस्वीकृत विधि जैसे CONNECT, TRACE, PUT, DELETE, आदि को कॉन्फ़िगर और संरक्षित करना है।.
  • modsecurity_crs_35_bad_robots.conf: दुर्भावनापूर्ण रोबोट का पता लगाएं
  • modsecurity_crs_40_generic_attacks.conf: यह OS कमांड इंजेक्शन, दूरस्थ फ़ाइल समावेशन, आदि से बचाने के लिए है.
  • modsecurity_crs_41_sql_injection_attacks.conf: SQL और ब्लाइंड SQL सुरक्षा का अनुरोध करने के लिए यह नियम.
  • modsecurity_crs_41_xss_attacks.conf: क्रॉस-साइट स्क्रिप्टिंग अनुरोध से सुरक्षा.
  • modsecurity_crs_42_tight_security.conf: डायरेक्टरी ट्रैवर्सल डिटेक्शन एंड प्रोटेक्शन.
  • modsecurity_crs_45_trojans.conf: जेनेरिक फ़ाइल प्रबंधन आउटपुट का पता लगाने के लिए यह नियम, HTTP पिछले दरवाजे का अपलोड, ज्ञात हस्ताक्षर.
  • modsecurity_crs_47_common_exception.conf: इसका उपयोग अपवाद तंत्र के रूप में किया जाता है ताकि आम झूठी सकारात्मकता को दूर किया जा सके जिसे अपाचे आंतरिक डमी कनेक्शन, एसएसएल अदरक, आदि के रूप में चूसना जा सकता है।.

लॉगिंग

लॉग करना कॉन्फ़िगर करने वाली पहली चीज़ों में से एक है जिससे आप मॉड सुरक्षा क्या कर रहे हैं के लिए लॉग बनाए जा सकते हैं। दो प्रकार के लॉगिंग उपलब्ध हैं; डिबग & हिसाब सूचि.

डीबग लॉग: यह अपाचे त्रुटि की नकल करने के लिए है, चेतावनी और त्रुटि लॉग से नोटिस संदेश.

ऑडिट लॉग: यह लेन-देन लॉग लिखने के लिए है जो मॉड सुरक्षा नियम द्वारा चिह्नित हैं मॉड सुरक्षा आपको ऑडिट, डीबग या दोनों लॉगिंग को कॉन्फ़िगर करने की सुविधा देता है.

डिफ़ॉल्ट कॉन्फ़िगरेशन से दोनों लॉग लिखेंगे। हालाँकि, आप अपनी आवश्यकता के आधार पर बदल सकते हैं। लॉग को SecDefaultAction निर्देश में नियंत्रित किया जाता है। आइए setup.conf में डिफ़ॉल्ट लॉगिंग कॉन्फ़िगरेशन को देखें

SecDefaultAction “चरण: 1, इनकार, लॉग”

डीबग लॉग करने के लिए, ऑडिट लॉग – “लॉग” का उपयोग करें केवल ऑडिट लॉग लॉग करने के लिए – “एनॉलॉग, ऑडलॉग” का उपयोग करें केवल डीबग लॉग लॉग करने के लिए – “लॉग, नोआडिटलॉग” का उपयोग करें आप ऑडिट लॉग स्थान को संग्रहीत करने के लिए निर्दिष्ट कर सकते हैं जिसे SecAuditLog द्वारा नियंत्रित किया जाता है आदेश.

नीचे दिए अनुसार जोड़कर ऑडिट लिखने को /opt/apache/logs/modsec_audit.log में लॉग इन करें.

  • SecAuditLog निर्देश को setup.conf में जोड़ें और Apache वेब सर्वर को पुनरारंभ करें

SecAuditLog /opt/apache/logs/modsec_audit.log

  • पुनः आरंभ करने के बाद, आपको modsec_audit.log उत्पन्न होते हुए देखना चाहिए

नियम इंजन सक्षम करें

डिफ़ॉल्ट रूप से इंजन नियम बंद है इसका मतलब है कि यदि आप नियम इंजन को सक्षम नहीं करते हैं तो आप मॉड सुरक्षा के सभी लाभों का उपयोग नहीं कर रहे हैं.

रूल इंजन को सक्षम या अक्षम करना SecRuleEngine निर्देश द्वारा नियंत्रित किया जाता है.

  • Setup.conf में SecRuleEngine निर्देश जोड़ें और Apache वेब सर्वर को पुनरारंभ करें

SecRuleEngine On

SecRuleEngine के लिए तीन मान हैं:

  • पर – नियम इंजन को सक्षम करने के लिए
  • नियम इंजन को निष्क्रिय करने के लिए
  • डिटेक्शनऑनली – नियम इंजन को सक्षम करें लेकिन ब्लॉक, इनकार, ड्रॉप, अनुमति, प्रॉक्सी या पुनर्निर्देशन जैसी किसी भी कार्रवाई को कभी भी निष्पादित नहीं करता है

एक बार नियम इंजन चालू होने के बाद – मॉड सुरक्षा कुछ सामान्य हमले के प्रकारों से सुरक्षा के लिए तैयार है.

कॉमन अटैक टाइप प्रोटेक्शन

अब वेब सर्वर XSS, SQL इंजेक्शन, प्रोटोकॉल उल्लंघन इत्यादि जैसे सामान्य आक्रमण प्रकारों से सुरक्षा के लिए तैयार है क्योंकि हमने कोर नियम स्थापित किया है और नियम इंजन को चालू किया है। आइए उनमें से कुछ का परीक्षण करें.

XSS हमला

  •  फ़ायरफ़ॉक्स खोलें और अपने एप्लिकेशन को एक्सेस करें और अंत या URL पर टैग लगाएं
  •  Apache / log फ़ोल्डर में modsec_audit.log की निगरानी करें

आप मॉड सुरक्षा ब्लॉक अनुरोध को नोटिस करेंगे क्योंकि इसमें टैग शामिल है जो XSS हमले की जड़ है.

डायरेक्टरी ट्रैवर्सल अटैक: – डायरेक्ट ट्रैवर्सल अटैक इस कमजोरियों और एक्सेस सिस्टम से संबंधित फाइल का लाभ उठाकर बहुत नुकसान पहुंचा सकते हैं। Ex – / etc / passwd, .htaccess, आदि.

  •  फ़ायरफ़ॉक्स खोलें और डायरेक्टरी ट्रैवर्सल के साथ अपने एप्लिकेशन को एक्सेस करें
  •  Apache / log फ़ोल्डर में modsec_audit.log की निगरानी करें

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

  • आप मॉड सुरक्षा ब्लॉक अनुरोध को नोटिस करेंगे क्योंकि इसमें निर्देशिका ट्रैवर्सल है.

सर्वर बैनर बदलें

इस गाइड में पहले, आपने सीखा कि अपाचे और ओएस प्रकार को कैसे हटाया जाए, सर्वरटोकेंस निर्देश के संस्करण की मदद.

चलिए एक कदम आगे बढ़ते हैं, जो भी आप चाहते हैं, सर्वर नाम रखने के बारे में कैसे? यह मॉड सिक्योरिटी में SecServerSignature के निर्देश के साथ संभव है। आप इसे दिलचस्प देखें.

नोट: किसी हेडर से सर्वर बैनर में हेरफेर करने के लिए मॉड सिक्योरिटी का उपयोग करने के लिए, आपको अपाचे वेब सर्वर के httpd.conf में ServerTokesn को पूरा सेट करना होगा।.

  • Setup.conf में अपने इच्छित सर्वर नाम के साथ SecServerSignature निर्देश जोड़ें और Apache Web Server को पुनरारंभ करें

SecServerSignature YourServerName

उदाहरण के लिए:

[/ opt / apache / conf / crs] #grep प्रति सेकंड modsecurity_crs_10_setup.conf
SecServerSignature geekflare.com
[/ opt / apache / conf / crs] #

सामान्य विन्यास

आइए कुछ सामान्य विन्यासों को सर्वोत्तम अभ्यास के रूप में देखें.

सुनो को कॉन्फ़िगर करें

जब आपके पास एक ही सर्वर पर कई इंटरफेस और आईपी होते हैं, तो यह पूर्ण आईपी और पोर्ट नंबर के साथ निर्देश को सुनने के लिए अनुशंसित है.

जब आप सभी IP को कुछ पोर्ट नंबर के साथ सुनने के लिए अपाचे कॉन्फ़िगरेशन को छोड़ देते हैं, तो यह HTTP अनुरोध को किसी अन्य वेब सर्वर को अग्रेषित करने में समस्या पैदा कर सकता है। यह साझा वातावरण में काफी आम है.

  • नीचे दिए गए उदाहरण के रूप में पूर्ण आईपी और बंदरगाह के साथ httpd.conf में सुनो निर्देश को कॉन्फ़िगर करें

सुनें 10.10.10.1:80

प्रवेश लॉगिंग

आपके वेब सर्वर में एक्सेस लॉग को ठीक से कॉन्फ़िगर करना आवश्यक है। लॉग में कैप्चर करने के लिए महत्वपूर्ण पैरामीटर में से कुछ को अनुरोध भेजने के लिए समय लिया जाएगा, SESSION ID.

डिफ़ॉल्ट रूप से, अपाचे इन डेटा को कैप्चर करने के लिए कॉन्फ़िगर नहीं किया गया है। आप उन्हें निम्नानुसार मैन्युअल रूप से कॉन्फ़िगर करने के लिए मिला है.

  • एक्सेस लॉग में अनुरोध और सत्र आईडी की सेवा के लिए लिया गया समय पकड़ने के लिए
  •  % T जोड़ें & LogFormat निर्देश के तहत httpd.conf में% sessionID

LogFormat "% ह% ल% उ% त "% {SessionID} सी" "% r" %>स% ब% ट" सामान्य

आप उल्लेख कर सकते हैं http://httpd.apache.org/docs/2.2/mod/mod_log_config.html अपाचे वेब सर्वर में LogFormat निर्देशन में समर्थित पैरामीटर की पूरी सूची के लिए.

अवांछित मॉड्यूल लोड करना अक्षम करें

यदि आपने सभी मॉड्यूल के साथ संकलित और स्थापित किया है, तो उच्च संभावना है कि आपके पास अपाचे में कई मॉड्यूल लोड होंगे, जिनकी आवश्यकता नहीं हो सकती है.

सबसे अच्छा अभ्यास अपाचे को आपके वेब एप्लिकेशन में आवश्यक मॉड्यूल से कॉन्फ़िगर करना है। निम्नलिखित मॉड्यूल में सुरक्षा संबंधी चिंताएँ हैं, और आप अपाचे वेब सर्वर के httpd.conf को निष्क्रिय करने में रुचि रख सकते हैं.

WebDAV (वेब-आधारित वितरित संलेखन और संस्करण) यह मॉड्यूल दूरस्थ क्लाइंट को सर्वर पर फ़ाइलों को हेरफेर करने और विभिन्न इनकार-सेवा के हमलों के अधीन करने की अनुमति देता है। Httpd.conf में निम्नलिखित टिप्पणी को अक्षम करने के लिए

#LadModule dav_module मॉड्यूल / mod_dav.so
#LadModule dav_fs_module मॉड्यूल / mod_dav_fs.so
# गलत मानें / अतिरिक्त / httpd-dav.conf

जानकारी मॉड्यूल mod_info मॉड्यूल संवेदनशील मॉड्यूल को लोड करने के बाद .htaccess का उपयोग करके संवेदनशील जानकारी को लीक कर सकता है। Httpd.conf में निम्नलिखित टिप्पणी को अक्षम करने के लिए

#LoadModule info_module मॉड्यूल / mod_info.so

संदर्भ: यह निम्नलिखित लिंक से मार्गदर्शन के बिना संभव नहीं होगा:

तो यह है कि आप अपने Apache वेब सर्वर को सुरक्षित करने के लिए उपयोग कर सकते हैं कुछ सर्वोत्तम प्रथाओं.

यदि आप अपाचे HTTP पर नए हैं, तो मैं लेने की सलाह दूंगा अपाचे HTTP प्रशासन पाठ्यक्रम.

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