איסוף יומני LDAP של Red Hat Directory Server

נתמך ב:

במאמר הזה מוסבר איך להטמיע יומני LDAP של Red Hat Directory Server ב-Google Security Operations באמצעות סוכן Bindplane.

‫Red Hat Directory Server הוא שירות ספריות LDAP ברמה ארגונית שמבוסס על תקנים פתוחים. הוא מספק ניהול זהויות משתמשים, אימות ובקרת גישה מרכזיים לסביבות Linux ו-UNIX. שרת הספריות מאחסן יומני גישה, שגיאות, ביקורת, כשל בביקורת ואבטחה בספרייה /var/log/dirsrv/slapd-instance_name/. היומנים האלה כוללים תיעוד של חיבורי לקוחות, פעולות LDAP, שינויים בהגדרות, פעולות שנכשלו ואירועי אבטחה כמו ניסיונות אימות ובעיות בהרשאה.

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

חשוב לוודא שמתקיימות הדרישות המוקדמות הבאות:

  • מופע של Google SecOps
  • מארח Linux עם systemd
  • קישוריות לרשת בין סוכן Bindplane לבין המארח של Red Hat Directory Server
  • אם מריצים מאחורי שרת proxy, מוודאים שיציאות חומת האש פתוחות בהתאם לדרישות של סוכן Bindplane
  • גישת רוט (Root) או גישת sudo למארח של Red Hat Directory Server
  • ‫Red Hat Directory Server מגרסה 11 ואילך מותקן ופועל
  • שירות rsyslog מותקן ופועל במארח של שרת הספריות

קבלת קובץ אימות להטמעת נתונים ב-Google SecOps

  1. נכנסים למסוף Google SecOps.
  2. עוברים אל SIEM Settings > Collection Agents.
  3. מורידים את קובץ האימות להטמעת נתונים.
  4. שומרים את הקובץ באופן מאובטח במערכת שבה יותקן Bindplane.

איך מקבלים מספר לקוח ב-Google SecOps

  1. נכנסים למסוף Google SecOps.
  2. עוברים אל SIEM Settings > Profile (הגדרות SIEM > פרופיל).
  3. מעתיקים את מזהה הלקוח מהקטע פרטי הארגון ושומרים אותו.

התקנת סוכן Bindplane

מתקינים את סוכן Bindplane במערכת ההפעלה Linux לפי ההוראות הבאות.

התקנה ב-Linux

  1. פותחים טרמינל עם הרשאות root או sudo.
  2. מריצים את הפקודה הבאה:

    sudo sh -c "$(curl -fsSlL https://github.com/observiq/bindplane-agent/releases/latest/download/install_unix.sh)" install_unix.sh
    
  3. מחכים שההתקנה תסתיים.

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

    sudo systemctl status observiq-otel-collector
    

    השירות אמור להופיע כ-active (running).

מקורות מידע נוספים להתקנה

אפשרויות התקנה נוספות ופתרון בעיות מפורטים במדריך להתקנת סוכן Bindplane.

הגדרה של סוכן Bindplane לקליטת syslog ושליחה ל-Google SecOps

איתור קובץ ההגדרות

  • ‫Linux:

    sudo nano /opt/observiq-otel-collector/config.yaml
    

עריכת קובץ ההגדרות

  • מחליפים את כל התוכן של config.yaml בהגדרה הבאה:

    receivers:
        udplog:
            listen_address: "0.0.0.0:514"
    
    exporters:
        chronicle/redhat_ds:
            compression: gzip
            creds_file_path: '/etc/bindplane-agent/ingestion-auth.json'
            customer_id: '<customer_id>'
            endpoint: malachiteingestion-pa.googleapis.com
            log_type: REDHAT_DIRECTORY_SERVER
            raw_log_field: body
    
    service:
        pipelines:
            logs/redhat_ds:
                receivers:
                    - udplog
                exporters:
                    - chronicle/redhat_ds
    

פרמטרים להגדרה

מחליפים את ה-placeholders הבאים:

  • הגדרת מקלט:

    • ‫udplog: סוג הנמען על סמך הפרוטוקול:
      • udplog עבור UDP syslog
      • ‫tcplog ל-syslog של TCP
      • ‫syslog ל-syslog של RFC 3164/5424
    • ‫0.0.0.0: כתובת ה-IP להאזנה:
      • ‫0.0.0.0 כדי להאזין בכל הממשקים (מומלץ)
      • כתובת IP ספציפית להאזנה בממשק אחד
    • ‫514: מספר היציאה להאזנה (לדוגמה, 514, ‏ 1514, ‏ 6514)
  • הגדרת כלי הייצוא:

    • ‫<customer_id>: מספר הלקוח מהשלב הקודם
    • ‫malachiteingestion-pa.googleapis.com: כתובת ה-URL של נקודת הקצה האזורית:
      • ארה"ב: malachiteingestion-pa.googleapis.com
      • אירופה: europe-malachiteingestion-pa.googleapis.com
      • אסיה: asia-southeast1-malachiteingestion-pa.googleapis.com
      • רשימה מלאה מופיעה במאמר בנושא נקודות קצה אזוריות.
    • משנים את creds_file_path בהתאם לפלטפורמה:
      • Linux: /etc/bindplane-agent/ingestion-auth.json

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

  • אחרי שמסיימים לערוך, שומרים את הקובץ:
    • ‫Linux: מקישים על Ctrl+O, אחר כך על Enter ואז על Ctrl+X.

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

  • כדי להפעיל מחדש את הסוכן של Bindplane ב-Linux, מריצים את הפקודה הבאה:

    sudo systemctl restart observiq-otel-collector
    
    1. מוודאים שהשירות פועל:

      sudo systemctl status observiq-otel-collector
      
    2. בודקים אם יש שגיאות ביומנים:

      sudo journalctl -u observiq-otel-collector -f
      

הפעלת רישום ביומן של ביקורת ושל כשלים בביקורת ב-Red Hat Directory Server

כברירת מחדל, ב-Red Hat Directory Server מופעלת כניסה לחשבון, שגיאה ורישום אבטחה, אבל מושבתים רישום ביקורת ורישום של כשלים בביקורת. כדאי להפעיל את היומנים האלה כדי לתעד את כל השינויים בספרייה ואת הפעולות שנכשלו.

  1. פותחים מסוף עם הרשאות בסיס או sudo במארח של שרת הגילוי.
  2. מפעילים את יומן הביקורת באמצעות הפקודה הבאה:

    ‫
    dsconf -D "cn=Directory Manager" instance_name config replace nsslapd-auditlog-logging-enabled=on
    
  3. מפעילים את יומן הביקורת של הכשלים באמצעות הפקודה הבאה:

    dsconf -D "cn=Directory Manager" instance_name config replace nsslapd-auditfaillog-logging-enabled=on
    
  4. מוודאים שכל סוגי היומנים מופעלים:

    dsconf -D "cn=Directory Manager" instance_name config get nsslapd-accesslog-logging-enabled nsslapd-errorlog-logging-enabled nsslapd-auditlog-logging-enabled nsslapd-auditfaillog-logging-enabled nsslapd-securitylog-logging-enabled
    
  5. מוודאים שקובצי היומן קיימים בספריית היומן:

    ls -la /var/log/dirsrv/slapd-instance_name/
    

אופציונלי: הפעלת הרישום ביומן באמצעות מסוף האינטרנט

  1. נכנסים למסוף האינטרנט של Red Hat Directory Server.
  2. בוחרים את המופע.
  3. עוברים אל Server > Logging.
  4. בוחרים את סוג היומן שרוצים להפעיל (למשל, יומן ביקורת).
  5. מפעילים את המתג של רישום ביומן עבור סוג היומן שנבחר.
  6. לוחצים על שמירת הגדרות היומן.

הגדרת rsyslog להעברת יומני שרת של שרת הספריות לסוכן Bindplane

שרת הספריות של Red Hat כותב יומנים לקבצים ב-/var/log/dirsrv/slapd-instance_name/ ולא ישירות ל-syslog. אפשר להשתמש במודול rsyslog imfile כדי לעקוב אחרי קובצי היומן האלה ולהעביר את הרשומות לסוכן Bindplane.

  1. יוצרים קובץ תצורה חדש של rsyslog להעברת יומני שרת של Directory Server:

    sudo nano /etc/rsyslog.d/rhds-forward.conf
    
  2. מוסיפים את התוכן הבא לקובץ התצורה:

    # Load the imfile module to read log files
    module(load="imfile" PollingInterval="10")
    
    # Monitor the access log
    input(type="imfile"
        File="/var/log/dirsrv/slapd-instance_name/access"
        Tag="dirsrv-access"
        Severity="info"
        Facility="local6")
    
    # Monitor the error log
    input(type="imfile"
        File="/var/log/dirsrv/slapd-instance_name/errors"
        Tag="dirsrv-errors"
        Severity="err"
        Facility="local6")
    
    # Monitor the audit log
    input(type="imfile"
        File="/var/log/dirsrv/slapd-instance_name/audit"
        Tag="dirsrv-audit"
        Severity="info"
        Facility="local6")
    
    # Monitor the security log
    input(type="imfile"
        File="/var/log/dirsrv/slapd-instance_name/security"
        Tag="dirsrv-security"
        Severity="info"
        Facility="local6")
    
    # Forward all Directory Server logs to the Bindplane agent
    local6.* @BINDPLANE_IP:514
    
  3. מאמתים את תחביר ההגדרות של rsyslog:

    sudo rsyslogd -N1
    
  4. מפעילים מחדש את שירות rsyslog כדי שהשינויים ייכנסו לתוקף:

    sudo systemctl restart rsyslog
    
  5. כדי לוודא שהיומנים של שרת הגילוי מועברים, בודקים את היומנים של סוכן Bindplane:

    sudo journalctl -u observiq-otel-collector -f
    

טבלת מיפוי UDM

שדה ביומן מיפוי UDM היגיון
attrs_label about.labels ממוזג
cn_label about.labels ממוזג
conn_label about.labels ממוזג
csn_label about.labels ממוזג
err_label about.labels ממוזג
etime_label about.labels ממוזג
fd_label about.labels ממוזג
filter_label about.labels ממוזג
label about.labels ממוזג
method_label about.labels ממוזג
msgid_label about.labels ממוזג
name_label about.labels ממוזג
nentries_label about.labels ממוזג
offset_label about.labels ממוזג
op_label about.labels ממוזג
optime_label about.labels ממוזג
org_label about.labels ממוזג
ou_label about.labels ממוזג
scope_label about.labels ממוזג
slot_label about.labels ממוזג
tag_label about.labels ממוזג
targetop_label about.labels ממוזג
version_label about.labels ממוזג
wtime_label about.labels ממוזג
desc metadata.description מיפוי ישיר
creationDate metadata.event_timestamp נותח בתור UNIX_MS
recordDate metadata.event_timestamp נותח בתור UNIX_MS
time metadata.event_timestamp נותח בתור dd/MMM/yyyy:HH:mm:ss Z
ts metadata.event_timestamp ניתוח הכתובות שברשימה: MMM d HH:mm:ss
operation metadata.product_event_type מיפוי ישיר
mrId metadata.product_log_id מיפוי ישיר
properties._ecs_agent_version metadata.product_version מיפוי ישיר
host principal.asset.hostname מיפוי ישיר
oid principal.asset.product_object_id מיפוי ישיר
host principal.hostname מיפוי ישיר
client_ip principal.ip ממוזג
namespace principal.namespace מיפוי ישיר
user principal.user.userid מיפוי ישיר
sec_result security_result ממוזג
properties._hostname target.asset.hostname מיפוי ישיר
properties.host target.asset.hostname מיפוי ישיר
properties._hostname target.hostname מיפוי ישיר
properties.host target.hostname מיפוי ישיר
target_ip target.ip ממוזג
properties.country target.location.country_or_region מיפוי ישיר
properties._file_path target.process.file.full_path מיפוי ישיר
properties._file_size target.process.file.size שם שונה/מיפוי
discipline_label target.resource.attribute.labels ממוזג
document_type_label target.resource.attribute.labels ממוזג
environment_label target.resource.attribute.labels ממוזג
hostgroup_label target.resource.attribute.labels ממוזג
platform_label target.resource.attribute.labels ממוזג
product_label target.resource.attribute.labels ממוזג
project_label target.resource.attribute.labels ממוזג
base target.user.group_identifiers ממוזג
dn target.user.group_identifiers ממוזג
לא רלוונטי metadata.event_type קבוע: NETWORK_CONNECTION
לא רלוונטי metadata.product_name קבוע: REDHAT_DIRECTORY_SERVER
לא רלוונטי metadata.vendor_name קבוע: REDHAT
לא רלוונטי target.platform קבוע: LINUX
properties._file_inode event.idm.read_only_udm.additional.fields מופה מיומן השינויים
properties._file_offset event.idm.read_only_udm.additional.fields מופה מיומן השינויים
conn event.idm.read_only_udm.additional.fields מופה מיומן השינויים
op event.idm.read_only_udm.additional.fields מופה מיומן השינויים
err event.idm.read_only_udm.additional.fields מופה מיומן השינויים
tag event.idm.read_only_udm.additional.fields מופה מיומן השינויים
nentries event.idm.read_only_udm.additional.fields מופה מיומן השינויים
wtime event.idm.read_only_udm.additional.fields מופה מיומן השינויים
optime event.idm.read_only_udm.additional.fields מופה מיומן השינויים
etime event.idm.read_only_udm.additional.fields מופה מיומן השינויים
csn event.idm.read_only_udm.additional.fields מופה מיומן השינויים
cn event.idm.read_only_udm.additional.fields מופה מיומן השינויים
ou event.idm.read_only_udm.additional.fields מופה מיומן השינויים
filter event.idm.read_only_udm.additional.fields מופה מיומן השינויים
attrs event.idm.read_only_udm.additional.fields מופה מיומן השינויים
scope event.idm.read_only_udm.additional.fields מופה מיומן השינויים
o event.idm.read_only_udm.additional.fields מופה מיומן השינויים
targetop event.idm.read_only_udm.additional.fields מופה מיומן השינויים
msgid event.idm.read_only_udm.additional.fields מופה מיומן השינויים
method event.idm.read_only_udm.additional.fields מופה מיומן השינויים
version event.idm.read_only_udm.additional.fields מופה מיומן השינויים
fd event.idm.read_only_udm.additional.fields מופה מיומן השינויים
slot event.idm.read_only_udm.additional.fields מופה מיומן השינויים
name event.idm.read_only_udm.additional.fields מופה מיומן השינויים
properties.discipline" ,"properties.document_type" ,"properties.environment" ,"properties.hostgroup" ,"properties.platform" ,"properties.product target.resource.attribute.labels מופה מיומן השינויים

יומן שינויים

צפייה ביומן השינויים של המנתח הזה

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