Back

การทดสอบสร้าง Multiple Web App on Single Virtual Server โดยวิธี Content Routing บน Web App Firewall เพื่อลดการใช้ Public IPv4

            เนื่องด้วยช่วงเดือน พฤษภาคม – มิถุนายน พ.ศ.2566 สำนักคอมพิวเตอร์ได้ทำการทดสอบอุปกรณ์ Web App Firewall (WAF) นอกจากคุณสมบัติหลักของ WAF ที่มีความสามารถในการตรวจจับทุกกิจกรรมการใช้งาน Web Application ของ User ต่าง ๆ และป้องกันภัยคุกคามบน Web Application ส่วนใหญ่ WAF สามารถป้องกันภัยคุกคามได้ตาม OWASP TOP 10 ซึ่งระหว่างที่ทำการทดสอบ (PoC) WAF (ในที่นี้คือ FortiWeb) ได้อ่านเอกสารของ WAF ที่ทำ PoC พบว่า WAF ดังกล่าวมี Feature Multiple Web App on Single Virtual Server หรือ การทำให้ Web App หลายเว็บ สามารถใช้ Virtual IP Server ซึ่งต่อไปจะ Map กับ Public IP ของเครือข่ายมหาวิทยาลัยบูรพาต่อไปได้ ตัวอย่าง คณะ A มี Web App หรือ Web Server จำนวน 10 เครื่อง 10.123.1.a01 – 10.123.1.a10 คณะ A เป็นคณะที่ไม่มีการทำ Reverse Web Proxy กลางของคณะ A ไว้ (ปกติจะใช้งาน nginx ซึ่งเป็น Reverse Web Proxy ที่ใช้งานกันอย่างแพร่หลาย) ทุกครั้งที่คณะ A เพิ่ม Web Server จะดำเนินการขอจดโดเมนเพื่อให้บริการ Web เพื่อให้ใช้งานเข้าจาก Internet ได้ ทำให้สำนักคอมพิวเตอร์ต้องทำ DNAT หรือ Map IP 10.123.1.a01 กับ Public IP 202.28.xy.a01202.28.xy.a10 ทำให้ต้องใช้ Public IP ไปถึง 10 IP แต่ถ้าใช้คุณสมบัติ Content Routing ทำให้เราใช้ Public IP แค่ 1 IP 

          มาดูตัวอย่างหน้าต่างคอนฟิกกัน ที่แรกที่ต้องคอนฟิกคือที่ Firewall ให้ทำ DNAT หรือ Virtual IP โดยให้ Map Public IP ที่เราจะใช้เพียง IP เดียวให้ Map มาที่ Virtual IP ในอุปกรณ์ FortiWeb

ตัวอย่างเว็บที่ทดสอบคือ https://orion.buu.ac.th/ และ https://ipv6test.buu.ac.th/ โดยใช้ Public IP เดียวคือ 202.28.xy.a01

       ดังนั้นการใช้วิธี Content Routing บน Web App Firewall สามารถลดการใช้ Public IPv4 ได้โดย 1 Public IP สามารถใช้งานกับ Private IP ได้ 254 IP สำหรับวิธี Content Routing บน Web App Firewall เป็นฟังชั่นการทำงานที่มีอยู่แล้วบน FortiWeb ที่ทำการทดสอบ

เจตนันต์ เจือจันทร์

อ้างอิง

“docs.fortinet.com/document/fortiweb/7.2.2/cli-reference/298796/server-policy-https-content-routing-policy”

“yurisk.info/2020/03/05/fortiweb-cookbook-content-routing-based-on-url-in-request-configuration”

“www.youtube.com/watch?v=19g0iTlNCF8”