הגנת אבטחה של חומת אש של יישומי אינטרנט עבור יישומי HTTP ו- HTTPS

פורסם ב-10 בספטמבר, 2019

סקירה כללית

המאמר שלהלן מתאר מקרה של שימוש אמיתי עבור ספק שירותי אינטרנט או ספק אירוח, בו ה- Proxy ההפוך Load Balancer הפוך הוא נקודת הגישה העיקרית לכל שירותי האינטרנט הציבוריים, תצורה זו מראה עד כמה קל להגדיר WAF מתקדם וחזק. קביעת כללים על מנת לאבטח יישומי אינטרנט המבוססים בכתובות IP מקוריות ברשימה השחורה, שם וירטואליזציה מנהלת את הרשימה השחורה שלה באופן שניתן לאסור על IP ציבורי אחד להתחבר לדומיין אינטרנט כמו www.company1.com אבל מותר להתחבר www.company2.com.

אנו נתמקד במאמר בשני חלקים, בחלק הראשי תצורת פרופיל HTTPS תעבוד כפרוקסי הפוך עם רשימה של שירותים שונים, והקטע השני יסביר כיצד להגדיר תצורה של חומת אש של יישומי אינטרנט ערכת כללים שתנהל רשימה שחורה אחרת לכל שירות HTTP / S.

סביבה

התרשים הבא מתאר את פני השטח של Zevenet WAF. כפי שמוצג, השכבה הראשונה היא מודול WAF שמטרתו להבטיח בשלב מוקדם שרק בקשות בטוחות מורשות לעבור למודול איזון העומסים ואז להעביר את הבקשה לגבולות.

ראשית, ה- HTTP מארח הערכת כותרת ה- IP של הלקוח נבדקת ברשימה השחורה שהוגדרה כבר. אם מארח כותרת וכתובת ה- IP של הלקוח תואמת ואז החיבור נשמט ו האסור 403 תגובת HTTP נשלחת ללקוח, אך במקרה בו לקוח ה- IP וביקש מארח הכותרת אינה תואמת ואז התנועה מזוהה כלא זדונית ומועברת למודול איזון העומס, שם היעד נבחר על פי בקשת HTTP מארח כותרת ולבסוף מועבר לשרת ה- backend הזמין.

כאן תוכל למצוא סכמה של פנימי חומת האש של יישום האינטרנט עבור הדוגמה הנתונה.

zevenet IPDS WAF

תצורת שירות וירטואלי HTTP

הגדר אחד ייעודי כתובת IP וירטואליתבדוגמה שלנו 192.168.100.58, על ידי גלישה אל רשת> ממשקים וירטואליים> צור ממשק וירטואלי כפי שמוצג להלן:

Zevenet צור VIP

עכשיו בואו נלך להגדיר את שירות איזון העומסים ב- HTTP, עבור אל LSLB> חוות ואז לחץ על הכפתור ליצור חוות והזן את פרטי השירות הווירטואלי כפי שמוצג להלן:

Zevenet צור אירוח חוות HTTP

לאחר מכן לחץ על צור.

כעת לחץ על הכרטיסייה העליונה שירותים וליצור כמה שיותר שירותים כמו אתרים שונים שאתה מנהל, לחץ על הכפתור שירות חדשבמקרה שלנו, ניצור שני שירותים שונים, אחד לניהול השירות עבורו www.mycompany1.com ועוד אחד ל www.mycompany2.com.

Zevenet יצירת שירות HTTP

לאחר יצירת השירות, הוסף את ה- מארח וירטואלי לסנן את העגלים כפי שמוצג בתמונה למטה.

תצורת שירותי HTTP של Zevenet

במקרה שיש לכם כמה אתרים, עליכם להוסיף רק שירותים נוספים על מנת להגדיר שירות ייעודי אחד לניהול כל רשת מאותה כתובת IP.

כעת תצורת איזון העומסים נעשתה מאפשרת להגדיר את מודול חומת האש של יישום האינטרנט IPDS.

תצורת רשימות שחורות

אנו הולכים ליצור רשימה שחורה אחת לשירות אינטרנט על מנת להזין בכל רשימה שחורה את כתובות ה- IP הרצויות כדי לחסום את הגישה. בדוגמה שלנו, ניצור שני רשימות שחורות שונות עם השם הרשימה השחורהחברה 1 ו הרשימה השחורהחברה 2, אחד לשירות בהתאמה.

Zevenet IPDS רשימה שחורה 1

רשימה שחורה זו תישמר בנתיב /usr/local/zevenet/config/ipds/blacklists/lists/Blacklistmycompany1.txt.

כללנו כתובות IP של 2 למטרות בדיקה, אנא שקול להוסיף כתובות IP רבות ככל הצורך. כמו כן, הקיים כבר רשימות שחורות ב IPDS ניתן להשתמש במודול.

Zevenet צור רשימת IPDS שחורה 2

הרשימה השחורה השנייה הזו תישמר בנתיב /usr/local/zevenet/config/ipds/blacklists/lists/Blacklistmycompany2.txt.

קח בחשבון שברשימה השחורה הזו כללנו את כתובת ה- IP 192.168.1.191, IP זה ישמש למטרות בדיקה בלבד, משם נפעיל בקשות HTTP.

קביעת התצורה של חומת האש של יישום האינטרנט מוגדרת

מטרת תצורה זו היא לשמור על רשימות שחורות IP שונות בכל אתר, על מנת להימנע מאותה רשימה שחורה עבור כל נקודת הגישה לחווה.

אנו הולכים להגדיר א מערכת כללים, שהיא קבוצת כללים, עם שם רשימת אחסון אתרים. מערך כללים זה יורכב משני כללים פשוטים (מזהה כלל 1000 ומזהה כלל 1001 בדוגמא שלנו), כל כלל מוגדר כשידוך ופעולה, כאשר אם התנאי תואם אז הפעולה מבוצעת. בדוגמה שלנו, אנו נשתמש באותה פעולה בשני הכללים, אם התנאי תואם א דחה את הפעולה מבוצע עם א גישה 403 נדחתה תגובה.

תיכנס לאתר IPDS> WAF, ולאחר מכן לחץ על צור ערכת כללים של WAF והגדר שם תיאור כללי לכללים, בדוגמה שלנו רשימת אחסון אתרים.

קבע את התצורה של השדה שלב ברירת מחדל ל כותרות הבקשה מתקבלות. פירושו של שדה זה הוא שמודול WAF ינתח את כותרות הבקשות הנכנסות מהלקוח.

Zevenet IPDS צור ערכת חוקי WAF

לאחר מכן עבור לכרטיסייה חוקי וליצור את הראשון כלל של סוג פעולה כפי שמוצג להלן.

Zevenet IPDS צור ערכת חוקי WAF

כעת נוצר הכלל הראשון של מערך הכללים, מאפשר ליצור את התנאים על מנת להתאים ל- IP הלקוח ברשימה השחורה עבור כל אחד מארח כותרת. לך ל תנאים וליצור תנאי בהתאם ל REMOTE_ADDR משתנה כפי שמוצג להלן.

התאמה בין רשימת השחורים ל- IPV של Zevenet

ואז צור תנאי נוסף עבור מארח וירטואלי התאמה לפי SERVER_NAME משתנה כדלקמן:

התאמה של Zevenet IPDS SERVER_NAME

בשלב זה האתר הראשון שהתארח www.mycompany1.com מנהל כתובת IP של רשימת השחורים של יישום האינטרנט מהרשימה השחורה שהוגדרה כבר הרשימה השחורהחברה 1.txt.

בואו ניצור כלל נוסף לאתר השני www.mycompany2.com ולחזור על אותה תצורה כמו בתצורת הכלל הקודמת, אך במקרה זה, עליכם לשנות את SERVER_NAME ל mycompany2.com והפנו אל הדברים הבאים רשימה שחורה2.txt.

ראה את כל התצורה של ערכת הכללים המורכבת של WAF:

Zevenet IPDS WAF הגדרת כללים שלמה

לבסוף, הוסף מערך כללים זה לחווה שכבר נוצרה, עבור לכרטיסייה חוות ולהעביר את החווה אירוח, בדוגמה שלנו, ל חוות מופעלות החלק כפי שהוא מוצג להלן.

Zevenet IPDS WAF - הקצאת משק

כעת התחל את מערך הכללים של WAF עבור החווה, לחץ על הפעולה לְשַׂחֵק בחלק השמאלי העליון של חלון זה, והמערכת תתחיל לסנן תנועת HTTP עבור החווה אירוח.

בדיקת ערכת הכללים של חומת האש של יישום האינטרנט

IP הלקוח 192.168.1.191 יבקש את האתר http://www.mycompany1.com ו http://www.mycompany2.com ובהתאם לתצורה שלנו, מערכת WAF תאפשר חיבור לשירות הראשון עם אותו שם אך החיבור יימנע מ mycompany2.com מכיוון ש- IP זה נכלל ברשימה השחורה עם השם הרשימה השחורהחברה 2.

מכתובת 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/

תשתף:

תיעוד על פי תנאי הרישיון לשימוש חופשי במסמכים של גנו.

האם המאמר הזה היה מועיל?

מאמרים נוספים