HTTP और HTTPS अनुप्रयोगों के लिए वेब अनुप्रयोग फ़ायरवॉल सुरक्षा सुरक्षा

द्वारा प्रकाशित किया गया था Zevenet | 10 सितंबर, 2019

अवलोकन

निम्न आलेख आईएसपी या होस्टिंग प्रदाता के लिए एक वास्तविक उपयोग के मामले का वर्णन करता है, जहां HTTP / S लोड बैलेंसर रिवर्स प्रॉक्सी सभी सार्वजनिक वेब सेवाओं तक पहुंच का मुख्य बिंदु है, यह कॉन्फ़िगरेशन दिखाता है कि उन्नत और शक्तिशाली WAF को कॉन्फ़िगर करना कितना आसान है जहां प्रत्येक को ब्लैकलिस्ट स्रोत आईपी पतों पर आधारित वेब अनुप्रयोगों को सुरक्षित करने के लिए नियम VirtualHost अपनी खुद की ब्लैकलिस्ट को इस तरह से प्रबंधित करता है कि एक सार्वजनिक आईपी जैसे वेब डोमेन से कनेक्ट करने के लिए मना किया जा सकता है www.company1.com लेकिन से कनेक्ट करने की अनुमति दी गई www.company2.com.

हम लेख को दो खंडों में केन्द्रित करेंगे, मुख्य भाग में HTTPS प्रोफाइल कॉन्फ़िगरेशन विभिन्न सेवाओं की सूची के साथ एक रिवर्स प्रॉक्सी के रूप में काम करेगा, और दूसरा खंड बताएगा कि कैसे कॉन्फ़िगर किया जाए वेब अनुप्रयोग फ़ायरवॉल नियम जो प्रति HTTP / S सेवा के लिए एक अलग ब्लैकलिस्ट का प्रबंधन करेगा।

वातावरण

निम्नलिखित चित्र Zevenet WAF के आंतरिक विवरणों का वर्णन करता है। जैसा कि दिखाया गया है, पहली परत WAF मॉड्यूल है जिसका लक्ष्य एक प्रारंभिक चरण में यह सुनिश्चित करना है कि लोड संतुलन मॉड्यूल के माध्यम से केवल सुरक्षित अनुरोधों को पास-थ्रू करने की अनुमति है और फिर बैकएंड के लिए अनुरोध को अग्रेषित करें।

सबसे पहले, HTTP मेजबान हेडर का मूल्यांकन किया जाता है और क्लाइंट आईपी को पहले से कॉन्फ़िगर की गई ब्लैकलिस्ट में चेक किया जाता है। अगर द मेजबान शीर्ष लेख और क्लाइंट IP पता मेल खाता है तो कनेक्शन हटा दिया गया है और a निषिद्ध 403 HTTP प्रतिक्रिया क्लाइंट को भेजी जाती है, लेकिन ग्राहक आईपी और अनुरोध के मामले में मेजबान हेडर मेल नहीं खाता है, तो ट्रैफ़िक को दुर्भावनापूर्ण नहीं के रूप में पहचाना जाता है और लोड बैलेंसर मॉड्यूल को पास किया जाता है, जहाँ HTTP अनुरोध के आधार पर गंतव्य चुना जाता है मेजबान हेडर और अंत में उपलब्ध बैकएंड सर्वर पर भेज दिया गया।

यहां आप दिए गए उदाहरण के लिए वेब एप्लिकेशन फ़ायरवॉल इंटर्नल का एक स्कीमा पा सकते हैं।

zevenet IPDS WAF

HTTP वर्चुअल सेवा कॉन्फ़िगरेशन

एक समर्पित को कॉन्फ़िगर करें वर्चुअल आईपी एड्रेसहमारे उदाहरण में 192.168.100.58, ब्राउज़ करके नेटवर्क> वर्चुअल इंटरफेस> वर्चुअल इंटरफ़ेस बनाएँ के रूप में नीचे दिखाया गया है:

Zevenet VIP बनाएं

अब HTTP लोड बैलेंसिंग सर्विस को कॉन्फ़िगर करने के लिए चलते हैं एलएसएलबी> फार्म और फिर बटन पर क्लिक करें फार्म बनाएँ और नीचे दिखाए गए अनुसार वर्चुअल सेवा विवरण दर्ज करें:

Zevenet HTTP HTTP होस्टिंग बनाएँ

फिर दबायें बनाएं.

अब ऊपरी टैब पर क्लिक करें सेवा और बटन पर क्लिक करने के लिए आपके द्वारा प्रबंधित विभिन्न वेबसाइटों के रूप में कई सेवाएं बनाएं नई सेवा, हमारे मामले में, हम दो अलग-अलग सेवाओं का निर्माण करेंगे, जिनमें से एक को सेवा का प्रबंधन करना है www.mycompany1.com और एक अन्य के लिए www.mycompany2.com.

Zevenet सेवा HTTP बनाएँ

सेवा बन जाने के बाद, जोड़ें वर्चुअल होस्ट फ़िल्टर और बैकएंड्स जैसा कि नीचे दी गई छवि में दिखाया गया है।

Zevenet HTTP सेवाएँ कॉन्फ़िगरेशन

यदि आपके पास कई वेबसाइटें हैं, तो आपको केवल एक ही IP पते से प्रत्येक वेब को प्रबंधित करने के लिए एक समर्पित सेवा को परिभाषित करने के लिए अधिक सेवाओं को जोड़ना होगा।

अब लोड संतुलन कॉन्फ़िगरेशन किया गया है, आईपीडीएस वेब एप्लिकेशन फ़ायरवॉल मॉड्यूल को कॉन्फ़िगर करने देता है।

ब्लैकलिस्ट कॉन्फ़िगरेशन

हम प्रत्येक ब्लैक लिस्ट में प्रवेश को अवरुद्ध करने के लिए वांछित आईपी पतों को दर्ज करने के लिए प्रति वेब सेवा में एक ब्लैकलिस्ट बनाने जा रहे हैं। हमारे उदाहरण में, हम नाम के साथ दो अलग-अलग ब्लैकलिस्ट बनाएंगे blacklistmycompany1 और blacklistmycompany2, क्रमशः प्रति सेवा।

Zevenet IPDS Blacklist1

यह ब्लैक लिस्ट पथ में सहेजा जाएगा /usr/local/zevenet/config/ipds/blacklists/lists/Blacklistmycompany1.txt.

हमने परीक्षण प्रयोजनों के लिए 2 IP पते शामिल किए, कृपया अधिक से अधिक IP जोड़ने के लिए विचार करें। साथ ही, पहले से मौजूद है ब्लैकलिस्ट में IPDS मॉड्यूल का उपयोग किया जा सकता है।

Zevenet IPDS Blacklist2 बनाएँ

यह दूसरी ब्लैकलिस्ट पथ में सहेजी जाएगी /usr/local/zevenet/config/ipds/blacklists/lists/Blacklistmycompany2.txt.

ध्यान रखें कि इस ब्लैकलिस्ट में हमने IP एड्रेस को शामिल किया था 192.168.1.191, इस IP का उपयोग केवल परीक्षण उद्देश्यों के लिए किया जाएगा, जहां से हम HTTP अनुरोध चलाएंगे।

वेब अनुप्रयोग फ़ायरवॉल नियम विन्यास

इस कॉन्फ़िगरेशन का उद्देश्य प्रति वेबसाइट के लिए अलग-अलग आईपी ब्लैकलिस्ट बनाए रखना है, ताकि पूरे खेत पहुंच बिंदु के लिए एक ही ब्लैकलिस्ट रखने से बचा जा सके।

हम कॉन्फ़िगर करने जा रहे हैं a नियम-सेट, जो नियमों का एक समूह है, नाम के साथ HostingBlacklisting। यह नियम दो सरल नियमों (नियम ID 1000 और नियम ID 1001 हमारे उदाहरण में) से बना होगा, प्रत्येक नियम को एक मैच और एक क्रिया के रूप में परिभाषित किया जाता है, जहां यदि स्थिति मेल खाती है तो कार्रवाई निष्पादित होती है। हमारे उदाहरण में, हम दोनों नियमों में एक ही कार्रवाई का उपयोग करेंगे, यदि स्थिति मैच में ए अस्वीकार करने की क्रिया ए के साथ निष्पादित किया जाता है 403 एक्सेस अस्वीकृत प्रतिक्रिया.

करने के लिए जाओ IPDS> WAF, फिर पर क्लिक करें WAF नियम बनाएं और हमारे उदाहरण में एक वर्णनात्मक नियमों का नाम सेट करें HostingBlacklisting.

फ़ील्ड को कॉन्फ़िगर करें डिफ़ॉल्ट चरण सेवा मेरे अनुरोध हेडर प्राप्त होते हैं। इस फ़ील्ड का अर्थ है कि WAF मॉड्यूल क्लाइंट से आने वाले अनुरोध हेडर का विश्लेषण करेगा।

Zevenet IPDS WAF नियम बनाएं

फिर टैब पर जाएं नियम और पहले बनाएँ नियम प्रकार का कार्य जैसा कि नीचे दिखाया गया है।

Zevenet IPDS WAF नियम बनाएं

अब नियमों का पहला नियम बनाया गया है, जिससे क्लाइंट को प्रत्येक के लिए ब्लैकलिस्ट में मेल करने के लिए शर्तों को बनाने की सुविधा मिलती है मेजबान हैडर। के लिए जाओ स्थितियां और एक शर्त के अनुसार बनाएँ REMOTE_ADDR चर जैसा कि नीचे दिखाया गया है।

Zevenet IPDS ब्लैकलिस्ट मैच

तब के लिए एक और शर्त बनाएँ वर्चुअल होस्ट के अनुसार मैच सर्वर का नाम चर इस प्रकार है:

Zevenet IPDS SERVER_NAME मैच

इस बिंदु पर, पहले होस्ट की गई वेबसाइट www.mycompany1.com पहले से ही कॉन्फ़िगर की गई ब्लैकलिस्ट से एक वेब एप्लिकेशन ब्लैकलिस्ट आईपी पते का प्रबंधन करता है Blacklistmycompany1.txt.

दूसरी वेबसाइट के लिए एक और नियम बनाते हैं www.mycompany2.com और पिछले नियम कॉन्फ़िगरेशन के समान कॉन्फ़िगरेशन दोहराएं लेकिन इस स्थिति में, आपको बदलना होगा सर्वर का नाम सेवा मेरे mycompany2.com और निम्नलिखित को देखें blacklist2.txt.

कंपाउंड किए गए WAF नियम का पूरा कॉन्फ़िगरेशन देखें:

Zevenet IPDS WAF संपूर्ण नियम कॉन्फ़िगरेशन

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

Zevenet IPDS WAF - फार्म असाइनमेंट

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

वेब अनुप्रयोग फ़ायरवॉल नियम का परीक्षण

ग्राहक आईपी 192.168.1.191 वेबसाइट का अनुरोध करेंगे http://www.mycompany1.com और http://www.mycompany2.com और, हमारे विन्यास के अनुसार, WAF प्रणाली एक ही नाम के साथ पहली सेवा से जुड़ने की अनुमति देगी लेकिन कनेक्शन से इनकार कर दिया जाएगा mycompany2.com क्योंकि इस IP को नाम के साथ ब्लैकलिस्ट में शामिल किया गया है Blacklistmycompany2.

IP पते से 192.168.1.191 से VIP अनुरोध करने वाली वेबसाइट www.mycompany1.com पर लोड बैलेंसर के माध्यम से:

root@192.168.1.191:# curl -H "Host: www.mycompany1.com" http://192.168.100.58 -v
* Rebuilt URL to: http://192.168.100.58/
*   Trying 192.168.100.58...
* TCP_NODELAY set
* Connected to 192.168.100.58 (192.168.100.58) port 80 (#0)
> GET / HTTP/1.1
> Host: www.mycompany1.com
> User-Agent: curl/7.52.1
> Accept: */*
> 
< HTTP/1.1 200 OK
< Server: nginx/1.10.3
< Date: Tue, 10 Sep 2019 15:36:22 GMT
< Content-Type: text/html
< Content-Length: 11383
< Last-Modified: Thu, 13 Dec 2018 11:01:49 GMT
< Connection: keep-alive
< ETag: "5c123c1d-2c77"
< Accept-Ranges: bytes
< 

IP पते से 192.168.1.191 से VIP अनुरोध करने वाली वेबसाइट www.mycompany2.com पर लोड बैलेंसर के माध्यम से:

root@192.168.1.191:# curl -H "Host: www.mycompany2.com" http://192.168.100.58 -v
* Rebuilt URL to: http://192.168.100.58/
*   Trying 192.168.100.58...
* TCP_NODELAY set
* Connected to 192.168.100.58 (192.168.100.58) port 80 (#0)
> GET / HTTP/1.1
> Host: www.mycompany2.com
> User-Agent: curl/7.52.1
> Accept: */*
> 
* HTTP 1.0, assume close after body
< HTTP/1.0 403 Request forbidden
< Content-Type: text/html
< Content-Length: 17
< Expires: now
< Pragma: no-cache
< Cache-control: no-cache,no-store
< 
* Curl_http_done: called premature == 0
* Closing connection 0
replied forbiddenp

एक बार निषिद्ध प्रतिक्रिया उत्पन्न होती है, WAF मॉड्यूल लोड बैलेंसर Syslog फ़ाइल में अस्वीकार को सूचित करता है।

root@zva6000:# tail -f /var/log/syslog
Sep 10 15:38:44 zva6000 pound: Hosting, ModSecurity: Warning. Matched "Operator `StrMatch' with parameter `mycompany2.com' against variable `SERVER_NAME' (Value: `www.mycompany2.com' ) [file "/usr/local/zevenet/config/ipds/waf/sets/HostingBlacklisting.conf"] [line "17"] [id "1001"] [rev ""] [msg "Custom Match 2"] [data ""] [severity "0"] [ver ""] [maturity "0"] [accuracy "0"] [hostname "192.168.100.58"] [uri "/"] [unique_id "156812992458.770641"] [ref "v0,13v21,18"]
Sep 10 15:38:44 zva6000 pound: Hosting, [WAF,service mycompany2, backend 192.168.100.22:80,] (7f6cfac3c700) [client 192.168.1.191] ModSecurity: Access denied with code 403 (phase 1). Matched "Operator `StrMatch' with parameter `mycompany2.com' against variable `SERVER_NAME' (Value: `www.mycompany2.com' ) [file "/usr/local/zevenet/config/ipds/waf/sets/HostingBlacklisting.conf"] [line "17"] [id "1001"] [rev ""] [msg "Custom Match 2"] [data ""] [severity "0"] [ver ""] [maturity "0"] [accuracy "0"] [hostname "192.168.100.58"] [uri "/"] [unique_id "156812992458.770641"] [ref "v0,13v21,18"]
Sep 10 15:38:44 zva6ktpl1 pound: Hosting, service mycompany2, backend 192.168.100.25:80, (7f6cfac3c700) WAF denied a request from 192.168.1.191

अब आप HTTP / S गहरे पैकेट निरीक्षण तकनीकों का उपयोग करके अपने वेब एप्लिकेशन को सुरक्षित रखने के लिए अपने कस्टम फ़ायरवॉल रूल्स बना सकते हैं।

संबंधित लेख

https://www.zevenet.com/knowledge-base/enterprise-edition/enterprise-edition-v6-0-administration-guide/v6-0-ipds-waf-update/

पर साझा करें:

GNU फ्री डॉक्यूमेंटेशन लाइसेंस की शर्तों के तहत प्रलेखन।

क्या यह लेख सहायक था?

संबंधित आलेख