ניהול ידני של הגדרות של מעביד

נתמך ב:

בדף הזה מוסבר איך ליצור ולשנות באופן ידני קובץ הגדרות של מעביר נתונים ב-Google Security Operations. כדי להגדיר את המעביר דרך ממשק המשתמש (מומלץ), אפשר לעיין במאמר ניהול הגדרות של מעבירים דרך ממשק המשתמש של Google SecOps.

לכל מעביר נתונים של Google SecOps שפורס נדרש קובץ הגדרות של מעביר נתונים. קובץ הגדרות של מעביר נתונים מציין את ההגדרות להעברת הנתונים למופע של Google SecOps.

מידע על התקנה והגדרה של המעביר של Google SecOps, דרישות המערכת ופרטים על הגדרות ההגדרה זמין במאמר התקנה והגדרה של המעביר.

לפני שמתחילים

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

יצירת קובץ התצורה

כדי ליצור את קובץ ההגדרות באופן ידני:

  1. מורידים את קובצי ההגדרות דרך ממשק המשתמש.

  2. שומרים את שני הקבצים באותה תיקייה לפי מוסכמת השמות הבאה:

    FORWARDER_NAME.conf – משתמשים בקובץ הזה כדי להגדיר את הגדרות התצורה שקשורות להוספת נתונים ליומן.

    FORWARDER_NAME_auth.conf – משתמשים בקובץ הזה כדי להגדיר את פרטי ההרשאה.

  3. משנים את הקבצים כך שיכללו את ההגדרות של מופע המעביר.

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

  4. חשוב לוודא שיש רשומה לכל קלט בקובץ FORWARDER_NAME_auth.conf, גם אם לקלט אין פרטי אימות תואמים. הפעולה הזו נדרשת כדי למפות את הנתונים בצורה נכונה.

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

הגדרות לדוגמה

אתם יכולים להשתמש בקובצי ההגדרות הבאים כתבניות ליצירת קובץ משלכם.

דוגמה להגדרה של שני קבצים

שתי מערכות הקבצים האלה מאחסנות את פרטי האימות בקובץ נפרד כדי לשפר את האבטחה. אפשר לאחסן את קובץ FORWARDER_NAME.conf במאגר של מערכת בקרת גרסאות או בכל מערכת פתוחה לניהול הגדרות. אפשר לאחסן את הקובץ FORWARDER_NAME_auth.conf ישירות במכונה הפיזית או הווירטואלית שבה מופעלת ההעברה.

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

הקובץ FORWARDER_NAME.conf

output:
  url: {region}-chronicle.googleapis.com (for example: us-chronicle.googleapis.com)
  use_dataplane : true
  project_id: PROJECT_ID
  region: {region} (for example: {us})
  identity:
    identity:
    collector_id: COLLECTOR_ID \
    customer_id: CUSTOMER_ID \

collectors:
  - syslog:
      common:
        enabled: true
        data_type: "WINDOWS_DHCP"
        data_hint:
        batch_n_seconds: 10
        batch_n_bytes: 1048576
      tcp_address: 0.0.0.0:10514
      udp_address: 0.0.0.0:10514
      connection_timeout_sec: 60
      tcp_buffer_size: 524288
  - syslog:
      common:
        enabled: true
        data_type: "WINDOWS_DNS"
        data_hint:
        batch_n_seconds: 10
        batch_n_bytes: 1048576
      tcp_address: 0.0.0.0:10515
      connection_timeout_sec: 60
      tcp_buffer_size: 524288

הקובץ FORWARDER_NAME_auth.conf

output:
  identity:
    secret_key: |
      {
        "type": "service_account",
        "project_id": "PROJECT_ID" \,
        "private_key_id": "PRIVATE_KEY_ID" \,
        "private_key": "-----BEGIN PRIVATE KEY-----\\"PRIVATE_KEY" \n-----END PRIVATE KEY-----\n",
        "client_email": "CLIENT_EMAIL" \,
        "client_id": "CLIENT_ID" \,
        "auth_uri": "https://accounts.google.com/o/oauth2/auth",
        "token_uri": "https://oauth2.googleapis.com/token",
        "auth_provider_x509_cert_url": "https://www.googleapis.com/oauth2/v1/certs",
        "client_x509_cert_url": "https://www.googleapis.com/robot/v1/metadata/x509/example-account-1%40example-account.iam.gserviceaccount.com"
      }

collectors:
  - syslog:
  - syslog:
      certificate: "../forwarder/inputs/testdata/localhost.pem"
      certificate_key: "../forwarder/inputs/testdata/localhost.key"

דוגמה להגדרות בקובץ יחיד

output:
  url: us-chronicle.googleapis.com
  use_dataplane: true
  project_id: PROJECT_ID
  region: us
    identity:
    collector_id: COLLECTOR_ID \
    customer_id: CUSTOMER_ID \
    secret_key: |
      {
        "type": "service_account",
        "project_id": "PROJECT_ID" \,
        "private_key_id": "PRIVATE_KEY_ID" \,
        "private_key": "-----BEGIN PRIVATE KEY-----\ "PRIVATE_KEY" \n-----END PRIVATE KEY-----\n",
        "client_email": "CLIENT_EMAIL" \,
        "client_id": "CLIENT_ID" \,
        "auth_uri": "https://accounts.google.com/o/oauth2/auth",
        "token_uri": "https://oauth2.googleapis.com/token",
        "auth_provider_x509_cert_url": "https://www.googleapis.com/oauth2/v1/certs",
        "client_x509_cert_url": "https://www.googleapis.com/robot/v1/metadata/x509/malachite-test-1%40malachite-test.iam.gserviceaccount.com"
      }

collectors:
  - syslog:
      common:
        enabled: true
        data_type: "WINDOWS_DHCP"
        data_hint:
        batch_n_seconds: 10
        batch_n_bytes: 1048576
      tcp_address: 0.0.0.0:10514
      udp_address: 0.0.0.0:10514
      connection_timeout_sec: 60
      tcp_buffer_size: 524288
  - syslog:
      common:
        enabled: true
        data_type: "WINDOWS_DNS"
        data_hint:
        batch_n_seconds: 10
        batch_n_bytes: 1048576
      tcp_address: 0.0.0.0:10515
      connection_timeout_sec: 60
      certificate: "../forwarder/inputs/testdata/localhost.pem"
      certificate_key: "../forwarder/inputs/testdata/localhost.key"
      tcp_buffer_size: 524288

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

אם אתם משתמשים בקובץ תצורה יחיד ואתם רוצים לעבור למערכת של שני קבצים, אתם צריכים לעשות את הפעולות הבאות:

  1. יוצרים עותק של קובץ התצורה הקיים.

  2. שומרים קובץ אחד כקובץ FORWARDER_NAME.conf ומוחקים את פרטי ההרשאה מהקובץ.

  3. שומרים את הקובץ השני כקובץ FORWARDER_NAME_auth.conf ומוחקים ממנו את כל הנתונים שלא קשורים להרשאות. אפשר להשתמש בהגדרות לדוגמה כהפניה. חשוב לפעול לפי מוסכמת מתן השמות וההנחיות האחרות שמפורטות בקטע התאמה אישית של ההגדרות.

הגדרת סוגי נתונים בקובץ התצורה

בקטעים הבאים מוסבר איך להגדיר את מעביר הנתונים של Google SecOps כדי להטמיע סוגים שונים של נתונים, שמועברים למופע של Google SecOps.

נתוני Splunk

אפשר להגדיר את מעביר הנתונים של Google SecOps להעברת נתונים מ-Splunk ל-Google SecOps. Google Cloud מגדיר את מעביר הנתונים של Google SecOps עם המידע הבא כדי להעביר את הנתונים מ-Splunk:

  • כתובת ה-URL של Splunk API בארכיטקטורת REST (לדוגמה, https://10.0.113.15:8089).

  • שאילתות Splunk ליצירת נתונים לכל אחד מסוגי הנתונים הנדרשים (לדוגמה, index=dns).

FORWARDER_NAME.conf
output:
collectors:
  - splunk:
      common:
        enabled: true
        data_type: WINDOWS_DNS
        data_hint: "#fields ts      uid     id.orig_h       id.orig_p       id.resp_h         id.resp_p       proto   trans_id        query   qclass  qclass_name"
        batch_n_seconds: 10
        batch_n_bytes: 819200
      url: https://127.0.0.1:8089
      is_ignore_cert: true
      minimum_window_size: 10s
      maximum_window_size: 30s
      query_string: search index=* sourcetype=dns
      query_mode: realtime
  • הופכים את פרטי הכניסה לחשבון Splunk לזמינים למעביר של Google SecOps. כדי לעשות את זה, צריך ליצור קובץ creds.txt.

כדי להשתמש בקובץ creds.txt:

  1. יוצרים קובץ מקומי לפרטי הכניסה של Splunk ונותנים לו את השם creds.txt.

  2. מזינים את שם המשתמש בשורה הראשונה ואת הסיסמה בשורה השנייה:

    cat creds.txt
    
    myusername
    mypassword
    
  3. כדי להשתמש במעביר של Google SecOps כדי לגשת למופע של Splunk, מעתיקים את הקובץ creds.txt לספריית התצורה (אותה ספרייה שבה נמצאים קובצי התצורה).

    Linux

    cp creds.txt /opt/chronicle/config/creds.txt
    

    Windows

    cp creds.txt c:/opt/chronicle/config/creds.txt
    
  4. מוודאים שהקובץ creds.txt נמצא בספרייה הרצויה:

    Linux

      ls /opt/chronicle/config
    

    Windows

    ls c:/opt/chronicle/config
    

נתוני Syslog

מנגנון ההעברה יכול לפעול כשרת Syslog. אתם יכולים להגדיר כל שרת שתומך בשליחת נתוני Syslog דרך חיבור TCP או UDP כדי להעביר את הנתונים שלו למעביר של Google SecOps. אתם יכולים לשלוט בנתונים שהשרת שולח למעביר, והמעביר יכול להעביר את הנתונים ל-Google SecOps.

קובץ ההגדרות FORWARDER_NAME.conf (שמסופק על ידיGoogle Cloud) מציין אילו יציאות צריך לנטר עבור כל סוג של נתונים שמועברים (לדוגמה, יציאה 10514). כברירת מחדל, מעביר הנתונים של Google SecOps מקבל חיבורי TCP ו-UDP.

אפשר לערוך את גודל שטח האחסון הזמני של TCP. גודל ברירת המחדל של שטח האחסון הזמני של TCP הוא 64KB. ערך ברירת המחדל והערך המומלץ של הפרמטר connection_timeout הוא 60 שניות. חיבור ה-TCP מופסק אם החיבור לא פעיל במשך יותר מ-60 שניות.

הגדרת rsyslog

כדי להגדיר את rsyslog, צריך לציין יעד לכל יציאה (לדוגמה, לכל סוג נתונים). בדוגמאות הבאות מוצגת הגדרת היעד rsyslog:

  • תנועה ביומן TCP: dns.* @@192.168.0.12:10514

  • תנועת יומן UDP: dns.* @192.168.0.12:10514

פרטים נוספים מופיעים במסמכי התיעוד של המערכת.

הפעלת TLS להגדרות Syslog

אפשר להפעיל TLS לחיבור Syslog למעביר של Google SecOps. בקובץ ההגדרות של המעביר (FORWARDER_NAME.conf), מציינים את המיקום של האישור ושל מפתח האישור שנוצרו, כמו בדוגמה הבאה. אפשר ליצור ספרייה בשם certs בספרייה configuration ולאחסן בה את קובצי האישורים.

Linux:

אישור /opt/chronicle/external/certs/client_generated_cert.pem
certificate_key /opt/chronicle/external/certs/client_generated_cert.key

‫Windows:

אישור c:/opt/chronicle/external/certs/client_generated_cert.pem
certificate_key c:/opt/chronicle/external/certs/client_generated_cert.key

על סמך הדוגמה שמוצגת, משנים את קובץ התצורה של המעביר (FORWARDER_NAME.conf) באופן הבא:

Linux:

 collectors:
- syslog:
   common:
     enabled: true
     data_type: WINDOWS_DNS
     data_hint:
     batch_n_seconds: 10
     batch_n_bytes: 1048576
   tcp_address: 0.0.0.0:10515
   tcp_buffer_size: 65536
   connection_timeout_sec: 60
   certificate: "/opt/chronicle/external/certs/client_generated_cert.pem"
   certificate_key: "/opt/chronicle/external/certs/client_generated_cert.key"
   minimum_tls_version: "TLSv1_3"

‫Windows:

  collectors:
- syslog:
    common:
      enabled: true
      data_type: WINDOWS_DNS
      data_hint:
      batch_n_seconds: 10
      batch_n_bytes: 1048576
    tcp_address: 0.0.0.0:10515
    tcp_buffer_size: 65536
    connection_timeout_sec: 60
    certificate: "c:/opt/chronicle/external/certs/client_generated_cert.pem"
    certificate_key: "c:/opt/chronicle/external/certs/client_generated_cert.key"
    minimum_tls_version: "TLSv1_3"

גרסת ה-TLS של בקשת הקלט צריכה להיות גדולה מגרסת ה-TLS המינימלית. גרסת ה-TLS המינימלית צריכה להיות אחת מהערכים הבאים: TLSv1_0, ‏ TLSv1_1, ‏ TLSv1_2, ‏ TLSv1_3.

הנתונים של הקבצים

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

מפעילים את מעביר הנתונים של Google SecOps מקונטיינר Docker כדי למפות את נפח העומס לקונטיינר:

Linux

     docker run 
--detach
--name cfps
--log-opt max-size=100m
--log-opt max-file=10
--net=host
-v /opt/chronicle/config:/opt/chronicle/external
-v /var/log/crowdstrike/falconhostclient:/opt/chronicle/edr
gcr.io/chronicle-container/cf_production_stable

Windows

  docker run `
    --name cfps `
    --log-opt max-size=100m `
    --log-opt max-file=10 `
    -p 10514:10514 `
    -v c:/opt/chronicle/config:c:/opt/chronicle/external `
    -v c:/var/log/crowdstrike/falconhostclient:c:/opt/chronicle/edr `
     gcr.io/chronicle-container/cf_production_stable_windows

אפשר להוסיף כמה יציאות באמצעות כמה אפשרויות או כמה טווחים. לדוגמה: -p 3001:3000 -p 2023:2022 או -p 7000-8000:7000-8000. מספרי היציאות שמופיעים בקוד לדוגמה הם רק דוגמאות. מחליפים את מספרי היציאות לפי הצורך.

בהתבסס על הדוגמה, אפשר לשנות את ההגדרה של מעביר הנתונים של Google SecOps (קובץ FORWARDER_NAME.conf) באופן הבא:

Linux

collectors:
 - file:
      common:
        enabled: true
        data_type: CS_EDR
        data_hint:
        batch_n_seconds: 10
        batch_n_bytes: 1048576
      file_path: /opt/chronicle/edr/sample.txt
      filter:

Windows

 collectors:
  - file:
       common:
         enabled: true
         data_type: CS_EDR
         data_hint:
         batch_n_seconds: 10
         batch_n_bytes: 1048576
       file_path: c:/opt/chronicle/edr/sample.txt
       filter:

הקובץ sample.txt צריך להיות בתיקייה /var/log/crowdstrike/falconhostclient.

הגדרות סימון

skip_seek_to_end (bool): דגל זה מוגדר כ-false כברירת מחדל, וקובץ הקלט שולח רק שורות יומן חדשות כקלט. הגדרה של הערך true גורמת לשליחה מחדש של כל השורות הקודמות ביומן במהלך הפעלה מחדש של המעביר. הפעולה הזו גורמת לשכפול של היומן. הגדרת הדגל הזה לערך true מועילה במצבים מסוימים (לדוגמה, במהלך הפסקות שירות), כי הפעלה מחדש של המעביר שולחת שוב את שורות היומן החסרות.

poll (bool): כלי לאיסוף קבצים משתמש בספריית Tail כדי לבדוק אם יש שינויים במערכת הקבצים. אם מגדירים את הדגל הזה ל-true, ספריית Tail משתמשת בשיטת הסקר במקום בשיטת ההתראה שמוגדרת כברירת מחדל.

נתוני חבילות

הכלי להעברת נתונים של Google SecOps יכול לתעד חבילות במקום רשומות ביומן, ישירות מממשק רשת.

מערכות Linux

הכלי להעברת נתונים של Google SecOps יכול ללכוד חבילות באמצעות libcap ב-Linux. מידע נוסף על libcap זמין במאמר libcap - Linux manual page.

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

‫Google SecOps מגדיר את המעביר של Google SecOps באמצעות הביטוי Berkeley Packet Filter (BPF)‎ שמשמש ללכידת מנות (לדוגמה, יציאה 53 ולא localhost). מידע נוסף זמין במאמר בנושא Berkeley packet filters.

מערכות Windows

הכלי להעברת נתונים של Google SecOps יכול ללכוד מנות באמצעות Npcap במערכות Windows.

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

הדרישות להעברת נתוני PCAP:

  • מתקינים את Npcap במארח Microsoft Windows.

  • צריך להעניק למעביר של Google SecOps הרשאות אדמין או הרשאות root כדי לנטר את ממשק הרשת.

  • במהלך ההתקנה של Npcap, מפעילים את מצב התאימות של WinPcap.

כדי להגדיר מעביר PCAP, Google Cloud צריך את ה-GUID של הממשק שמשמש ללכידת מנות. מריצים את הפקודה getmac.exe במכונה שבה מתכננים להתקין את המעביר של Google SecOps (השרת או המכונה שמקשיבים ביציאת ה-SPAN) ושולחים את הפלט ל-Google SecOps.

אפשרות אחרת היא לשנות את קובץ התצורה. מאתרים את הקטע PCAP ומחליפים את ערך ה-GUID הקיים ב-GUID שהתקבל מהפעלת getmac.exe.

לדוגמה, הנה קטע PCAP מקורי:

- pcap:
      common:
        enabled: true
        data_type: PCAP_DNS
        batch_n_seconds: 10
        batch_n_bytes: 1048576
      interface: \Device\NPF_{1A7E7C8B-DD7B-4E13-9637-0437AB1A12FE}
      bpf: udp port 53

פלט מהרצת getmac.exe:

C:\>getmac.exe
  Physical Address    Transport Name
  ===========================================================================
  A4-73-9F-ED-E1-82   \Device\Tcpip_{2E0E9440-ABFF-4E5B-B43C-E188FCAD1234}

קטע PCAP מתוקן עם ה-GUID החדש:

- pcap:
      common:
        enabled: true
        data_type: PCAP_DNS
        batch_n_seconds: 10
        batch_n_bytes: 1048576
      interface: \Device\NPF_{2E0E9440-ABFF-4E5B-B43C-E188FCAD9734}
      bpf: udp port 53

הפלט getmac.exe של Transport Name מתחיל ב-\Device\Tcpip, ואילו החלק המקביל ב-pcap מתחיל ב-\Device\NPF.

נתונים מנושא Kafka

הכלי להעברת נתונים ב-Google SecOps תומך בהטמעת נתונים ישירות מנושאי Kafka. אפשר לפרוס עד שלושה מעבירי נתונים ולשלוף נתונים מאותו נושא ב-Kafka באמצעות קבוצות צרכנים לעיבוד יעיל ומקביל. מידע נוסף זמין במאמר בנושא Kafka. מידע נוסף על קבוצות של צרכני Kafka זמין במאמר בנושא צרכן Kafka.

ההגדרה הבאה של מעביר נתונים מראה איך להגדיר את מעביר הנתונים לקליטת נתונים מנושאי Kafka.

Linux

הקובץ FORWARDER_NAME.conf

   collectors:
   - kafka:
         common:
           batch_n_bytes: 1048576
           batch_n_seconds: 10
           data_hint: null
           data_type: NIX_SYSTEM
           enabled: true
         topic: example-topic
         group_id: chronicle-forwarder
         timeout: 60s
         brokers: ["broker-1:9092", "broker-2:9093"]
         tls:
           insecureSkipVerify: true
           certificate: "/path/to/cert.pem"
           certificate_key: "/path/to/cert.key"
   - syslog:
         common:
           batch_n_bytes: 1048576
           batch_n_seconds: 10
           data_hint: null
           data_type: WINEVTLOG
           enabled: true
         tcp_address: 0.0.0.0:30001
         connection_timeout_sec: 60
   

הקובץ FORWARDER_NAME_auth.conf

   collectors:
   - kafka:
         username: user
         password: password
   - syslog:
   

Windows

קובץ FORWARDER_NAME.conf

collectors:
- kafka:
      common:
        batch_n_bytes: 1048576
        batch_n_seconds: 10
        data_hint: null
        data_type: NIX_SYSTEM
        enabled: true
      topic: example-topic
      group_id: chronicle-forwarder
      timeout: 60s
      brokers: ["broker-1:9092", "broker-2:9093"]
      tls:
        insecureSkipVerify: true
        certificate: "c:/path/to/cert.pem"
        certificate_key: "c:/path/to/cert.key"
- syslog:
      common:
        batch_n_bytes: 1048576
        batch_n_seconds: 10
        data_hint: null
        data_type: WINEVTLOG
        enabled: true
      tcp_address: 0.0.0.0:30001
      connection_timeout_sec: 60

קובץ FORWARDER_NAME_auth.conf

collectors:
- kafka:
      username: user
      password: password
- syslog:

נתוני WebProxy

המעביר של Google SecOps יכול ללכוד נתונים של WebProxy ישירות מממשק רשת.

Linux

הכלי להעברת נתונים של Google SecOps יכול ללכוד נתונים של WebProxy באמצעות libcap ב-Linux. מידע נוסף על libcap זמין במאמר libcap - Linux manual page. כדי להפעיל את האפשרות ללכידת נתונים של WebProxy במערכת, צריך לפנות אל התמיכה של Google SecOps.

משנים את ההגדרה של המעביר ב-Google SecOps (קובץ FORWARDER_NAME.conf) באופן הבא:

   - webproxy:
         common:
           enabled : true
           data_type: <Your LogType>
           batch_n_seconds: 10
           batch_n_bytes: 1048576
         interface: any
         bpf: tcp and dst port 80

Windows

המעביר יכול ללכוד נתונים של WebProxy באמצעות Npcap ולשלוח אותם אל Google Cloud.

כדי להפעיל את האפשרות ללכידת נתונים של WebProxy במערכת, צריך לפנות אל התמיכה של Google SecOps.

לפני שמריצים מפנה WebProxy, צריך לבצע את הפעולות הבאות:

  1. מתקינים את Npcap במארח Microsoft Windows. מפעילים את מצב התאימות של WinPcap במהלך ההתקנה.

  2. צריך להעניק ל-forwarder הרשאות root או הרשאות אדמין כדי לנטר את ממשק הרשת.

  3. מקבלים את ה-GUID של הממשק שמשמש ללכידת חבילות WebProxy.

    מריצים את הפקודה getmac.exe במכונה שבה רוצים להתקין את כלי ההעברה של Google SecOps ושולחים את הפלט אל Google SecOps. אפשרות נוספת היא לשנות את קובץ התצורה. מאתרים את הקטע WebProxy ומחליפים את ה-GUID שמוצג לצד הממשק ב-GUID שמוצג אחרי שמריצים את הפקודה getmac.exe.

    משנים את קובץ ההגדרות של המעביר של Google SecOps‏ (FORWARDER_NAME.conf) באופן הבא:

      - webproxy:
        common:
            enabled : true
            data_type: <Your LogType>
            batch_n_seconds: 10
            batch_n_bytes: 1048576
          interface: \Device\NPF_{2E0E9440-ABFF-4E5B-B43C-E188FCAD9734}
          bpf: tcp and dst port 80
    

הגדרת מאפייני מפתח בקובץ התצורה

בטבלה הבאה מפורטים פרמטרים חשובים שמשמשים בקובץ ההגדרות של המעביר.

פרמטר תיאור
data_type סוג נתוני היומן שהכלי לאיסוף נתונים יכול לאסוף ולעבד.
מטא-נתונים מטא-נתונים, שמבטלים את המטא-נתונים הגלובליים.
max_file_buffer_bytes המספר המקסימלי של בייטים שאפשר לצבור במאגר הדיסק או הקבצים. ערך ברירת המחדל הוא 1073741824, כלומר 1GB.
max_memory_buffer_bytes המספר המקסימלי של בייטים שיכולים להצטבר במאגר הזיכרון. ערך ברירת המחדל הוא 1073741824, כלומר 1GB.
write_to_disk_dir_path הנתיב שבו יש להשתמש עבור מאגר קבצים או דיסקים.
write_to_disk_buffer_enabled אם true, נעשה שימוש במאגר נתונים זמני בדיסק במקום במאגר נתונים זמני בזיכרון. ערך ברירת המחדל הוא false.
batch_n_bytes מספר הבייטים המקסימלי שיכולים להצטבר באיסוף הנתונים, שאחריו הנתונים נשלחים בקבוצות. ערך ברירת המחדל הוא 1048576, כלומר 1MB.
batch_n_seconds מספר השניות שאחריהן הנתונים שנאספים על ידי הכלי לאיסוף נתונים נארזים. ערך ברירת המחדל הוא 11 שניות.
data_hint פורמט הנתונים שהכלי לאיסוף יכול לקבל (בדרך כלל הכותרת של קובץ היומן שמתארת את הפורמט).

רשימה מפורטת של הפרמטרים שמשמשים בקובץ ההגדרות זמינה במאמרים שדות הגדרות של מעביר ושדות הגדרות של כלי איסוף.

דחיסת נתונים

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

כדי להפעיל דחיסה של היומן, מגדירים את השדה compression לערך true בקובץ ההגדרות של המעביר ב-Google SecOps, כמו בדוגמה הבאה:

הקובץ FORWARDER_NAME.conf

output:
  compression: true
    url: malachiteingestion-pa.googleapis.com:443
    identity:
      identity:
      collector_id: 10479925-878c-11e7-9421-10604b7cb5c1
      customer_id: ebdc4bb9-878b-11e7-8455-10604b7cb5c1
...

הקובץ FORWARDER_NAME_auth.conf

output:
  identity:
    secret_key: |
    {
     "type": "service_account",
...
    }

אגירת נתונים בדיסק

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

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

auto_buffer:
  enabled: true
  target_memory_utilization: 80

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

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

הגדרה לדוגמה

ההגדרה הבאה כוללת תחביר להפעלת אחסון זמני בדיסק:

collectors:
- syslog:
    common:
      write_to_disk_buffer_enabled: true
      # /buffers/NIX_SYSTEM is part of the external mounted volume for the
forwarder
      write_to_disk_dir_path: /buffers/NIX_SYSTEM
      max_file_buffer_bytes: 1073741824
      batch_n_bytes: 1048576
      batch_n_seconds: 10
      data_hint: null
      data_type: NIX_SYSTEM
      enabled: true
    tcp_address: 0.0.0.0:30000
    connection_timeout_sec: 60
- syslog:
    common:
      batch_n_bytes: 1048576
      batch_n_seconds: 10
      data_hint: null
      data_type: WINEVTLOG
      enabled: true
    tcp_address: 0.0.0.0:30001
    connection_timeout_sec: 60

מסננים של ביטויים רגולריים

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

התנהגות ברירת המחדל במקרה של התאמה היא block. אפשר לציין מסננים עם allow התנהגות. אם מציינים מסנן allow, המעביר חוסם יומנים שלא תואמים לפחות למסנן allow אחד.

אפשר להגדיר מספר שרירותי של מסננים. מסנני Block קודמים למסנני allow.

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

הגדרה לדוגמה

בהגדרות של המעביר הבאות, היומנים WINEVTLOG שלא תואמים למסנן השורש (allow_filter) נחסמים. בהינתן הביטוי הרגולרי, המסנן מאפשר רק יומנים עם עדיפויות בין 0 ל-99. עם זאת, יומני NIX_SYSTEM שמכילים את המחרוזות foo או bar נחסמים, למרות allow_filter. הסיבה לכך היא שהמסננים משתמשים בלוגיקת OR. כל היומנים מעובדים עד שמסנן מופעל.

regex_filters:
  allow_filter:
    regexp: ^<[1-9][0-9]?$>.*$
    behavior_on_match: allow
collectors:
- syslog:
    common:
      regex_filters:
        block_filter_1:
          regexp: ^.*foo.*$
          behavior_on_match: block
        block_filter_2:
          regexp: ^.*bar.*$
      batch_n_bytes: 1048576
      batch_n_seconds: 10
      data_hint: null
      data_type: NIX_SYSTEM
      enabled: true
    tcp_address: 0.0.0.0:30000
    connection_timeout_sec: 60
- syslog:
    common:
      batch_n_bytes: 1048576
      batch_n_seconds: 10
      data_hint: null
      data_type: WINEVTLOG
      enabled: true
    tcp_address: 0.0.0.0:30001
    connection_timeout_sec: 60

תוויות שרירותיות

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

הגדרה לדוגמה

בהגדרת המעביר הבאה, צמדי המפתח/ערך foo=bar ו-meow=mix מצורפים ליומני WINEVTLOG, וצמדי המפתח/ערך foo=baz ו-meow=mix מצורפים ליומני NIX_SYSTEM.

metadata:
  labels:
    foo: bar
    meow: mix
collectors:
syslog:
    common:
      metadata:
        labels:
          foo: baz
          meow: mix
      batch_n_bytes: 1048576
      batch_n_seconds: 10
      data_hint: null
      data_type: NIX_SYSTEM
      enabled: true
    tcp_address: 0.0.0.0:30000
    connection_timeout_sec: 60
syslog:
    common:
      batch_n_bytes: 1048576
      batch_n_seconds: 10
      data_hint: null
      data_type: WINEVTLOG
      enabled: true
    tcp_address: 0.0.0.0:30001
    connection_timeout_sec: 60

מרחבי שמות

אפשר להשתמש בתוויות של מרחב שמות כדי לזהות יומנים מפלחים שונים ברשת ולפתור בעיות שנובעות מכתובות IP חופפות. כל מרחב שמות שהוגדר עבור המעביר מופיע עם הנכסים המשויכים בממשק המשתמש של Google SecOps. אפשר גם לחפש מרחבי שמות באמצעות תכונת החיפוש של Google SecOps.

מידע על הצגת מרחבי שמות בממשק המשתמש של Google SecOps זמין במאמר מרחבי שמות של נכסים.

הגדרה לדוגמה

בהגדרת המעביר הבאה, היומנים WINEVTLOG מצורפים למרחב השמות FORWARDER והיומנים NIX_SYSTEM מצורפים למרחב השמות CORPORATE.

metadata:
  namespace: FORWARDER
collectors:
- syslog:
      common:
        metadata:
          namespace: CORPORATE
        batch_n_bytes: 1048576
        batch_n_seconds: 10
        data_hint: null
        data_type: NIX_SYSTEM
        enabled: true
      tcp_address: 0.0.0.0:30000
      connection_timeout_sec: 60
- syslog:
      common:
        batch_n_bytes: 1048576
        batch_n_seconds: 10
        data_hint: null
        data_type: WINEVTLOG
        enabled: true
      tcp_address: 0.0.0.0:30001
      connection_timeout_sec: 60

אפשרויות לאיזון עומסים ולזמינות גבוהה

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

משתמשים בנתיבי כתובות ה-URL הבאים לבדיקות תקינות, מוכנות ופעילות. הערכים של <host:port> מוגדרים בתצורת המעביר.

  • http://<host:port>/meta/available: בדיקות פעילות של מתזמני קונטיינרים או כלי תזמור
  • http://<host:port>/meta/ready: בדיקות מוכנות ובדיקות תקינות של מאזן העומסים

ההגדרה הבאה של מעביר היא דוגמה לאיזון עומסים ולזמינות גבוהה:

collectors:
- syslog:
    common:
      batch_n_bytes: 1048576
      batch_n_seconds: 10
      data_hint: null
      data_type: NIX_SYSTEM
      enabled: true
    tcp_address: 0.0.0.0:30000
    connection_timeout_sec: 60
- syslog:
    common:
      batch_n_bytes: 1048576
      batch_n_seconds: 10
      data_hint: null
      data_type: WINEVTLOG
      enabled: true
    tcp_address: 0.0.0.0:30001
    connection_timeout_sec: 60
server:
  graceful_timeout: 15s
  drain_timeout: 10s
  http:
    port: 8080
    host: 0.0.0.0
    read_timeout: 3s
    read_header_timeout: 3s
    write_timeout: 3s
    idle_timeout: 3s
    routes:
    - meta:
        available_status: 204
        ready_status: 204
        unready_status: 503
נתיב ההגדרה תיאור
server : graceful_timeout משך הזמן שבו המעביר מחזיר בדיקת מוכנות או תקינות לא תקינה, ועדיין מקבל חיבורים חדשים. זה גם הזמן להמתנה בין קבלת אות להפסקת השרת לבין תחילת ההשבתה שלו בפועל. כך מאזן העומסים מקבל זמן להסיר את המעביר מהמאגר.
server : drain_timeout משך הזמן שבו המעביר ממתין לחיבורים פעילים שייסגרו בעצמם בהצלחה לפני שהשרת סוגר אותם.
server : http : port מספר היציאה שהשרת HTTP מאזין לה לבדיקות תקינות ממאזן העומסים. הערך חייב להיות בין 1024 ל-65535.
server : http : host כתובת ה-IP או שם המארח שאפשר לתרגם לכתובות IP, שהשרת צריך להאזין להן. אם השדה ריק, ערך ברירת המחדל הוא המערכת המקומית (0.0.0.0).
server : http : read_timeout משמשת לכוונון של שרת ה-HTTP. בדרך כלל אין צורך לשנות את הגדרת ברירת המחדל. הזמן המקסימלי שמוקצב לקריאת הבקשה כולה, גם הכותרת וגם הגוף. אפשר להגדיר גם את read_timeout וגם את read_header_timeout.
server : http : read_header_timeout משמשת לכוונון של שרת ה-HTTP. בדרך כלל אין צורך לשנות את הגדרת ברירת המחדל. משך הזמן המקסימלי שמוקצה לקריאת כותרות של בקשות. המועד האחרון לקריאה של החיבור מאופס אחרי קריאת הכותרת.
server : http : write_timeout משמשת לכוונון של שרת ה-HTTP. בדרך כלל אין צורך לשנות את הגדרת ברירת המחדל. משך הזמן המקסימלי שמוקצב לשליחת תגובה. הערך מאופס כשכותרת בקשה חדשה נקראת.
server : http : idle_timeout משמשת לכוונון של שרת ה-HTTP. בדרך כלל אין צורך לשנות את הגדרת ברירת המחדל. משך הזמן המקסימלי להמתנה לבקשה הבאה כשחיבורים בלי פעילות מופעלים. אם idle_timeout הוא אפס, המערכת משתמשת בערך של read_timeout. אם שניהם אפס, נעשה שימוש ב-read_header_timeout.
routes : meta : ready_status קוד הסטטוס שמוחזר על ידי המעביר כשהוא מוכן לקבל את התנועה באחד מהמצבים הבאים:
  • בדיקת המוכנות מתקבלת ממתזמן או מתזמור של קונטיינרים.
  • בדיקת תקינות מתקבלת ממאזן עומסים מסורתי.
routes : meta : unready_status קוד הסטטוס שמוחזר על ידי המעביר כשהוא לא מוכן לקבל תנועה.
routes : meta : available_status קוד הסטטוס שמוחזר על ידי המעביר כשמתקבלת בדיקת פעילות והמעביר זמין. מתזמני קונטיינרים או כלי תזמור שולחים לעיתים קרובות בדיקות פעילות.

הבעיה עדיין לא נפתרה? קבלת תשובות מחברי הקהילה וממומחי Google SecOps.