משימות תחזוקה של OpenLDAP

מיקום קובץ היומן

קובצי היומן של OpenLDAP נמצאים בספרייה /opt/apigee/var/log. אפשר להעביר את הקבצים האלה לארכיון מדי פעם ולהסיר אותם כדי לוודא שהם לא תופסים יותר מדי מקום בכונן. מידע על תחזוקה, העברה לארכיון והסרה של יומני OpenLDAP זמין בסעיף 19.2 במדריך של OpenLDAP בכתובת http://www.openldap.org/doc/admin24/maintenance.html.

הגדרה ידנית של סיסמת משתמש

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

כדי להגדיר סיסמה למשתמש:

  1. כדי להוריד את פרטי המשתמשים, משתמשים ב-ldapsearch:
    ldapsearch -w ldapAdminPWord -D "cn=manager,dc=apigee,dc=com" -b "dc=apigee,dc=com" -LLL -h LDAP_IP -p 10389 > ldap.txt
  2. מחפשים בקובץ ldap.txt את כתובת האימייל של המשתמש. אמור להופיע בלוק בפורמט הבא:
    dn: uid=29383a67-9279-4aa8-a75b-cfbf901578fc,ou=users,ou=global,dc=apigee,dc=com
    mail: foo@bar.com
    userPassword:: e1NTSEF9a01UUDdSd01BYXRuUURXdXN5OWNPRzBEWWlYZFBRTm14MHlNVWc9PQ==
    uid: 29383a67-9279-4aa8-a75b-cfbf901578fc
  3. משתמשים ב-ldappasswd כדי להגדיר את הסיסמה של המשתמש על סמך ה-UID שלו:
    ldappasswd -h LDAP_IP -p 10389 -D "cn=manager,dc=apigee,dc=com" -W -s newPassWord \
      "uid=29383a67-9279-4aa8-a75b-cfbf901578fc,ou=users,ou=global,dc=apigee,dc=com"

    תתבקשו להזין את סיסמת האדמין של OpenLDAP.

המשתמש יכול עכשיו להתחבר באמצעות newPassWord.

הגדרה ידנית של סיסמת המערכת ב-OpenLDAP

במאמר איפוס סיסמאות Edge מוסבר איך לשנות את סיסמת המערכת של OpenLDAP, אבל צריך לדעת את הסיסמה הקיימת. אם שכחתם את הסיסמה, אתם יכולים לאפס אותה לפי ההוראות הבאות.

  1. משתמשים ב-slappasswd כדי ליצור את הסיסמה המוצפנת ב-SSHA לסיסמה חדשה:
    slappasswd -h {SSHA} -s newPassWord

    הפקודה הזו מחזירה מחרוזת בפורמט הבא:

    {SSHA}+DOup9d6l+czfWzkIvajwYPArjPurhS6
  2. פותחים את הקובץ /opt/apigee/data/apigee-openldap/slapd.d/cn=config/olcDatabase={2}bdb.ldif בכלי לעריכת טקסט:
    vi /opt/apigee/data/apigee-openldap/slapd.d/cn=config/olcDatabase={2}bdb.ldif
  3. מוצאים את השורה בטופס:
    olcRootPW:: OldPasswordString
  4. מחליפים את OldPasswordString במחרוזת שהתקבלה מ-slappasswd. אם יש 2 נקודתיים אחרי olcRootPw, צריך להסיר אחד מהם ולוודא שיש רווח אחרי הנקודתיים:
    olcRootPW: {SSHA}RGon+bLCe+Sk+HyHholFBj8ONQfabrhw
  5. מפעילים מחדש את OpenLDAP:
    /opt/apigee/apigee-service/bin/apigee-service apigee-openldap restart
  6. בודקים באמצעות ldapsearch אם הסיסמה החדשה פועלת:
    ldapsearch -W -D "cn=manager,dc=apigee,dc=com" -b "dc=apigee,dc=com" -LLL -h LDAP_IP -p 10389

    תתבקשו להזין את סיסמת האדמין של OpenLDAP.

  7. חוזרים על השלבים האלה בכל שרת OpenLDAP אחר שמשמש לשכפול.
  8. מעדכנים את שרת הניהול כדי להשתמש בסיסמה החדשה:
    /opt/apigee/apigee-service/bin/apigee-service edge-management-server store_ldap_credentials -p newPassWord

הגדרה ידנית של סיסמת האדמין של Edge

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

  1. בצומת של ממשק המשתמש, עוצרים את ממשק המשתמש של Edge:
    /opt/apigee/apigee-service/bin/apigee-service edge-ui stop
  2. משתמשים ב-ldappasswd כדי להגדיר את הסיסמה של מנהל המערכת של Edge:
    ldappasswd -h localhost -p 10389 -D "cn=manager,dc=apigee,dc=com" -W -s newPassWord \
      "uid=admin,ou=users,ou=global,dc=apigee,dc=com"

    תתבקשו להזין את סיסמת האדמין של OpenLDAP.

  3. מעדכנים את קובץ התצורה שבו השתמשתם כדי להתקין את ממשק המשתמש של Edge, עם הסיסמה החדשה של מערכת Edge:
    APIGEE_ADMINPW=newPassWord
  4. מגדירים ומפעילים מחדש את ממשק המשתמש של Edge:
    /opt/apigee/apigee-setup/bin/setup.sh -p ui -f configFile
  5. (רק אם TLS מופעל בממשק המשתמש) מפעילים מחדש את TLS בממשק המשתמש של Edge, כמו שמתואר במאמר הגדרת TLS לממשק המשתמש של הניהול.

מחיקת קובץ הנעילה של SLAPD

אם מופיעה הודעת שגיאה כשמנסים להפעיל את OpenLDAP, וכתוב בה שקובץ הנעילה slapd.pid קיים, אפשר למחוק את הקובץ.

הקובץ נמצא ב-/opt/apigee/apigee-openldap/var/run/slapd.pid. מוחקים את הקובץ ומנסים להפעיל מחדש את OpenLDAP:

/opt/apigee/apigee-service/bin/apigee-service apigee-openldap restart

אם OpenLDAP לא מתחיל, נסו להפעיל אותו במצב ניפוי באגים ולבדוק אם יש שגיאות:

slapd -h ldap://:10389/ -u apigee -d 255 -F /opt/apigee/data/apigee-openldap/slapd.d

שגיאות יכולות להצביע על בעיות במשאבים, בזיכרון או בניצול המעבד.

שינוי הרפליקציה של OpenLDAP

בקטע הזה מוסבר איך לשנות את הרפליקציה של OpenLDAP.

מבצעים את השלבים הבאים בצומת הרפליקציה של OpenLDAP, שמשכפל את הנתונים שלו לצומת השני של OpenLDAP. לדוגמה, אם אתם מגדירים שכפול מ-node1 ל-node2, הריצו את הפקודות ב-node1.

  1. בודקים את המצב הנוכחי:
    ldapsearch -H ldap://{HOST}:{PORT} -LLL -x -b "cn=config" -D "cn=admin,cn=config" -w {PASSWORD} -o ldif-wrap=no 'olcSyncRepl' | grep olcSyncrepl

    הפלט אמור להיראות כך:

    olcSyncrepl: {0}rid=001 provider=ldap://{HOST}:{PORT}/ binddn="cn=manager,dc=apigee,dc=com" bindmethod=simple credentials={PASSWORD} searchbase="dc=apigee,dc=com" attrs="*,+" type=refreshAndPersist retry="60 1 300 12 7200 +" timeout=1
  2. יוצרים קובץ repl.lidf ומדביקים בו את הפקודות הבאות:
    dn: olcDatabase={2}bdb,cn=config
    changetype: modify
    replace: olcSyncRepl
        olcSyncRepl: rid=001
        provider=ldap://{NEW_HOST}:{PORT}/
        binddn="cn=manager,dc=apigee,dc=com"
        bindmethod=simple
        credentials={PASSWORD}
        searchbase="dc=apigee,dc=com"
        attrs="*,+"
        type=refreshAndPersist
        retry="60 1 300 12 7200 +"
        timeout=1

    חשוב להחליף את הערך המתאים לפלייסהולדרים הבאים:

    • ‫{NEW_HOST}: המארח החדש של OpenLDAP שאליו אתם מתכננים לשכפל.
    • ‫{PORT}: היציאה של OpenLDAP. יציאת ברירת המחדל היא 10389.
    • {PASSWORD}: הסיסמה של OpenLDAP.
  3. מריצים את הפקודה ldapmodify:
    ldapmodify -x -w {PASSWORD} -D "cn=admin,cn=config" -H "ldap://{HOST}:{PORT}/" -f repl.ldif
        

    The output should be similar to the following:

    modifying entry "olcDatabase={2}bdb,cn=config"
  4. אימות הרפליקציה:
    ldapsearch -H ldap://{HOST}:{PORT} -LLL -x -b "cn=config" -D "cn=admin,cn=config" -w {PASSWORD} -o ldif-wrap=no 'olcSyncRepl' | grep olcSyncrepl

    הפלט אמור להיראות כך:

    olcSyncrepl: {0}rid=001 provider=ldap://{NEW_HOST}:{PORT}/ binddn="cn=manager,dc=apigee,dc=com" bindmethod=simple credentials={PASSWORD} searchbase="dc=apigee,dc=com" attrs="*,+" type=refreshAndPersist retry="60 1 300 12 7200 +" timeout=1

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

    ldapsearch -w {PASSWORD} -D "cn=manager,dc=apigee,dc=com" -b "dc=apigee,dc=com" -LLL -h localhost -p 10389 contextCSN | grep contextCSN

פתרון בעיות ברפליקציה של OpenLDAP

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

  1. מוודאים שהפקודה ldapsearch מחזירה נתונים מכל שרת OpenLDAP:
    ldapsearch -W -D "cn=manager,dc=apigee,dc=com" -b "dc=apigee,dc=com" -LLL -h LDAP_IP -p 10389

    תתבקשו להזין את סיסמת האדמין של OpenLDAP.

  2. בודקים את הגדרות הרפליקציה בקובץ /opt/apigee/conf/openldap/slapd.d/cn=config/olcDatabase={2}bdb.ldif.
  3. חשוב לוודא שהסיסמה של המערכת זהה בכל שרת OpenLDAP.
  4. בודקים את ההגדרות של iptables ו-tcp wrapper.