إعداد البيئة الخاصة بك لاستخدام جدار حماية تطبيقات الويب

قم بإعداد البيئة بحيث يمكنك استخدام خدمة جدار حماية تطبيق الويب (WAF) من Oracle Cloud Infrastructure لتأمين التطبيق.

قبل البدء

قبل تكوين نظام WAF، لا بد من معرفة عنوان IP العام الخاص برصيد التحميل employee-helidon-lb قد تم توزيعه بالفعل. يرجى الاطلاع على توزيع تطبيق RESTful Java يستند إلى خدمات الصور المصغرة إلى Oracle Cloud.

احصل على عنوان EXTERNAL-IP الخاص برصيد التحميل لعينة تطبيق الموظف وملاحظة منه. وسيكون ذلك مطلوبًا لتكوين نظام WAF لاحقًا.

kubectl get service employee-helidon-lb

يجب أن يُرجع الأمر السابق مخرجات مماثلة لما يلي:

NAME                  TYPE           CLUSTER-IP     EXTERNAL-IP      PORT(S)        AGE
employee-helidon-lb   LoadBalancer   10.X.X.X       132.X.X.X        80:31437/TCP   5m

EXTERNAL-IP المعروضة بواسطة Kubernetes هي نفس عنوان IP العام، والذي يتم عرضه عند الانتقال إلى Core > Networking > Load Balancers في وحدة تحكم Oracle Cloud Infrastructure.

تكوين نظام WAF

لتأمين التطبيق باستخدام WAF، يجب أولاً تكوين نظام WAF.

  1. قم بتسجيل الدخول إلى وحدة تحكم Oracle Cloud Infrastructure الطرفية.
  2. افتح قائمة الاستكشاف. تحت الإشراف والإدارة، انتقل إلى التأمين وانقر على أنظمة WAF.
    إذا تمت مطالبتك، فقم بانتقاء مقارنة حيث يجب تكوين نظام WAF.
  3. انقر على تكوين نظام WAF.
  4. في مربع الحوار "تكوين نظام WAF"، أدخل الحقول كما يلي:
    الحقل القيمة
    اسم النظام نظام العرض التجريبي للموظف
    النطاق الأساسي employee. example.com
    النطاقات الإضافية تركها فارغة
    الاسم الأصلي موازن التحميل لـ OKE للموظف
    URI موازنة التحميل EXTERNAL-IP
  5. انقر على تكوين نظام WAF لإغلاق مربع الحوار.
  6. فور تكوينها، قم بتحميل بيانات نظام العرض التجريبي للموظف من قائمة الأنظمة.

توجيه زيارات التطبيق باستخدام WAF

لتوجيه حركة المرور من خلال WAF، يجب أن يحل النطاق الأساسي المحدد وأية نطاقات إضافية إلى CNAME Target المعروض في معلومات نظام WAF. يتم تقديم ذلك كإشعار عند تكوين السياسة لأول مرة.

إذا تم تكوين التطبيق بالفعل في منطقة DNS، فسيتم عادة تكوين سجل CNAME أوALIAS لـ employee.example.com باستخدام WAF_Target كقيمة له.

ومع ذلك، حيث يستخدم هذا الحل اسم مضيف example.com لعينة تطبيق الموظف، فأنت بحاجة إلى تكوين جهازك (والذي سيتم من خلاله الوصول إلى التطبيق) لحل المضيف.
  1. قم بتعيين متغير بيئة WAF_TARGET لاستخدامه في الأوامر الأخرى، مع التأكد من تحديد CNAME Target المسرودة في بيانات نظام WAF كقيمة المتغير.
    # Mac or Linux
    export WAF_TARGET=employee-example-com.b.waas.oci.oraclecloud.net
    # Windows
    set WAF_TARGET=employee-example-com.b.waas.oci.oraclecloud.net
  2. تحقق من تدفق حركة المرور من خلال WAF. افحص رؤوس استجابة HTTP ومن المتوقع رؤية ما يلي:
    • Server: ZENEDGE
    • X-Cdn: Served-By-Zenedge
    curl -I-X GET http://${WAF_TARGET}/public/ -H'host: employee.example.com'
    يجب أن يُرجع الرمز السابق مخرجات مماثلة لما يلي:
    HTTP/1.1 200 OK
    Content-Type: text/html
    Connection: keep-alive
    Server: ZENEDGE
    ETag: "1565120174000"
    X-Cache-Status: NOTCACHED
    Content-Length: 14258
    Date: Wed, 07 Aug 2019 20:22:35 GMT
    Last-Modified: Tue, 07 Aug 2019 19:36:14 GMT
    X-Zen-Fury: 1053bc526e3d722eadb457f2
  3. قم بتكوين الجهاز لحل نموذج عنوان URL لتطبيق الموظف عند تحميله في متصفح. ويتم إجراء ذلك بتكوين إدخال في ملف hosts والذي يتجاهل طلبات DNS وتوجيهها من جهازك إلى عنوان IP الخاص بـ employee.example.com.
    1. حدد عنوان IP شبكة (يمكن أن يكون هناك عديد) لـ $WAF_TARGET.
      nslookup $WAF_TARGET
      يجب أن يُرجع الرمز السابق مخرجات مماثلة لما يلي:
      Server:         192.168.X.X
      Address:        192.168.X.X#YY
      Non-authoritative answer:
      employee-example-com.b.waas.oci.oraclecloud.net canonical name = oci.tm.u.waas.oci.oraclecloud.net.
      oci.tm.u.waas.oci.oraclecloud.net  canonical name = us-seattle.u.waas.oci.oraclecloud.net.
      Name:   us-seattle.u.waas.oci.oraclecloud.net
      Address: 152.X.X.X
      Name:   us-seattle.u.waas.oci.oraclecloud.net
      Address: 152.X.X.Y
      Name:   us-seattle.u.waas.oci.oraclecloud.net
      Address: 152.X.X.Z
    2. حدد أي عنوان مفرد من قسم الإجابة غير الموثوقة وقم بتكوين إدخال hosts للنطاق الأساسي example في ملف /etc/hosts على النحوالتالي:
      # hosts file entry
      # <WAF IP Address>    <domain>  
         152.X.X.Z          employee.example.com

      العديد من القيود سوف تكون موجودة بالفعل تأكد من عدم تغيير سلوكيات غير متوقعة.

  4. افتح http://<employee.example.com>/public/ في متصفح.

يتم تشغيل التطبيق الآن عبر WAF.