en
שפה
  • en
  • de
  • fr
  • es
  • br
  • ru
  • jp
  • kr
תרגום AI
  • ae
  • cn
  • vn
  • id
  • eu
  • il
  • gr
  • no
  • fi
  • dk
  • se
  • tr
  • bg
  • nl
  • it
  • pl
  • hu
  • ro
  • ua
  • cs

כיצד להגדיר אימות Kerberos

Kerberos
SSO

מבוא

מינואר 2019, Easy Redmine (גירסה 2018.1.3, פלטפורמה 05.02) תומכת באימות משתמשים באמצעות Kerberos. Easy Software מספקת אימות Kerberos כשירות פרימיום, אשר עשוי להיות מחויב בתשלום חד פעמי.

הפונקציונליות היא חלק מהגדרת האימות הכללית של SSO (גרסה 10: ניהול >> הגדרות >> אימות, גרסה 11: ניהול >> קל SSO).

עם התצורה המתוארת בפירוט להלן, היית מזין: manager/admin@EASYPROJECT.COM כאשר EASYPROJECT.COM הוא שם ממלכה.

הגדרה זו היא החלק הקל. אולם החלק הגדול יותר נעשה בצד השרת. Kerberos for Easy Redmine דורש שרת אינטרנט של Apache. התצורה מתבצעת על ידי מומחי השרת שלנו בהתאם לצרכיך.

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

אל תהסס לפנות למנהל החשבונות שלך או תמיכה לתכנן את התצורה עם המומחים שלנו.

התקנת Kerberos בשרת Linux

תוכן

כיצד להתקין ולהכין שרת kerberos
כיצד להשתמש באימות kerberos בשרת האינטרנט של apache2
כיצד להשתמש באימות kerberos בשרת האינטרנט של nginx (רק במכונות מבוססות CentOS!)
מקורות וקישורים שימושיים

התקנת Kerberos

לדיון זה ניצור דומיין MIT Kerberos עם התכונות הבאות (נערוך אותן כך שיתאימו לצרכיך):

תחום: EASYPROJECT.COM
KDC ראשי: kdc01.easyproject.com (192.168.0.1)
KDC משני: kdc02.easyproject.com (192.168.0.2)
מנהל משתמש: מנהל
מנהל מערכת: קל/קל 666

מומלץ מאוד שהמשתמשים שלך המאומתים ברשת יהיו בעלי ה- uid שלהם בטווח אחר (נניח, החל מ -5000) מזה של המשתמשים המקומיים שלך.

לפני התקנת שרת Kerberos, יש צורך בשרת DNS מוגדר כהלכה עבור הדומיין שלך. מכיוון שאזור Kerberos לפי מוסכמה תואם את שם הדומיין, סעיף זה משתמש בדומיין EASYPROJECT.COM המוגדר במאסטר הראשי של תיעוד ה- DNS.

החלק הבא מאוד חשוב!

!!! כמו כן, Kerberos הוא פרוטוקול רגיש לזמן. כך שאם זמן המערכת המקומי בין מכונת לקוח לשרת שונה ביותר מחמש דקות (כברירת מחדל), תחנת העבודה לא תוכל לאמת. כדי לתקן את הבעיה, כל המארחים צריכים לסנכרן את זמנם באמצעות אותו שרת Network Time Protocol (NTP). לפרטים על הגדרת NTP ראו סנכרון זמן. !!!

 

התקנת שרת Kerberos

1) ראשית עלינו להתקין את חבילות krb5-kdc ו- krb5-admin-server.

sudo apt להתקין krb5-kdc krb5-admin-server

תתבקש בסוף ההתקנה לספק את שם המארח עבור שרתי Kerberos ו- Admin, שאולי הוא אותו השרת, או לא, עבור התחום.

כברירת מחדל התחום נוצר בשם הדומיין של KDC.

2) כעת עלינו ליצור את התחום החדש בעזרת כלי השירות kdb5_newrealm:

sudo krb5_newrealm

שדרג את ניהול הפרויקט שלך

קבל תכונות Redmine ברמה הבאה שמתאימות לצרכים שלך ומביאות לך סקירה מושלמת.

תצורת שרת Kerberos

1) השאלות שנשאלות במהלך ההתקנה משמשות להגדרת קובץ /etc/krb5.conf. אם עליך לשנות את הגדרות מרכז הפצת המפתחות (KDC) פשוט ערוך את הקובץ והפעל מחדש את השד krb5-kdc. אם אתה צריך להגדיר מחדש את Kerberos מאפס, אולי כדי לשנות את שם התחום, תוכל להריץ את הפקודה הבאה

sudo dpkg-configure krb5-kdc

2) ברגע שה- KDC פועל כראוי, יש צורך במשתמש מנהל - מנהל הניהול. מומלץ להשתמש בשם משתמש שונה מהשם המשתמש היומיומי שלך. לָרוּץ

sudo kadmin.local אימות כעיקרון root/admin@EASYPROJECT.COM עם סיסמה. kadmin.local: מנהל addprinc/easy אזהרה: לא צוינה מדיניות עבור manager/admin@EASYPROJECT.COM; כברירת מחדל ללא מדיניות הזן סיסמה למנהלת "manager/admin@EASYPROJECT.COM": הזן מחדש סיסמה למנהל "manager/admin@EASYPROJECT.COM": מנהל "manager/admin@EASYPROJECT.COM" שנוצר. kadmin.local: צא

בדוגמה שלעיל המנהל הוא המנהל, /admin הוא מופע, ו- @EASYPROJECT.COM מסמל את התחום. מנהל "כל יום", הלא הוא מנהל המשתמש, יהיה manager@EASYPROJECT.COM, וצריכות להיות לו זכויות משתמש רגילות בלבד.

החלף את EASYPROJECT.COM והמנהל בשם המשתמש שלך ב- Realm וב- admin.

3) לאחר מכן, המשתמש החדש צריך להיות בעל הרשאות רשימת בקרת גישה (ACL) המתאימות. ההרשאות מוגדרות בקובץ /etc/krb5kdc/kadm5.acl:

manager/admin@EASYPROJECT.COM *

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

4) הפעל מחדש את השרת krb5-admin כדי שה- ACL החדש ישפיע:

sudo systemctl הפעלה מחדש של krb5-admin-server.service

5) ניתן לבדוק את מנהל המשתמש החדש באמצעות כלי הקיניט:

מנהל kinit/admin admin/admin@EASYPROJECT.COM הסיסמה:

לאחר הזנת הסיסמה, השתמש בכלי השירות klist כדי להציג מידע אודות כרטיס הענקת כרטיסים (TGT):

מטמון klist Credentials: FILE:/tmp/krb5cc_1000 מנהל: manager/admin@EASYPROJECT.COM הונפק פג תוקף מנהל 13 יולי 17:53:34 14 ביולי 03:53:34 krbtgt/EASYPROJECT.COM@EASYPROJECT.COM

כאשר שם קובץ המטמון krb5cc_1000 מורכב מהקידומת krb5cc_ ומזהה המשתמש (uid), שבמקרה זה הוא 1000. ייתכן שיהיה עליך להוסיף ערך ל- /etc /hosts עבור KDC כך שהלקוח יוכל למצוא את ה- KDC. לדוגמה:

192.168.0.1 kdc01.example.com kdc01

החלפת 192.168.0.1 בכתובת ה- IP של ה- KDC שלך. זה קורה בדרך כלל כאשר יש לך תחום Kerberos המקיף רשתות שונות המופרדות על ידי נתבים.

הדרך הטובה ביותר לאפשר ללקוחות לקבוע באופן אוטומטי את ה- KDC לתחום היא באמצעות רשומות DNS SRV. הוסף את /etc/named/db.example.com את הדברים הבאים:

_kerberos._udp.EASYPROJECT.COM. ב- SRV 1 0 88 kdc01.easyproject.com. _kerberos._tcp.EASYPROJECT.COM. ב- SRV 1 0 88 kdc01.easyproject.com. _kerberos._udp.EASYPROJECT.COM. ב- SRV 10 0 88 kdc02.easyproject.com. _kerberos._tcp.EASYPROJECT.COM. ב- SRV 10 0 88 kdc02.easyproject.com. _kerberos-adm._tcp.EASYPROJECT.COM. ב- SRV 1 0 749 kdc01.easyproject.com. _kpasswd._udp.EASYPROJECT.COM. ב- SRV 1 0 464 kdc01.easyproject.com.

החלף את EASYPROJECT.COM, kdc01 ו- kdc02 בשם הדומיין שלך, KDC הראשי ו- KDC המשני.

עיין בשירות שמות תחומים (DNS) להוראות מפורטות בנושא הגדרת DNS.

ממלכת Kerberos החדשה שלך מוכנה כעת לאמת לקוחות.

תצורת KDC משנית (אופציונלי)

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

1) התקן את החבילות, וכאשר תתבקש לציין את שמות שרת Kerberos ו- Admin הזן את שמו של ה- KDC הראשי:

sudo apt להתקין krb5-kdc krb5-admin-server

2) לאחר התקנת החבילות, צור את מנהל המארח המשני של KDC. מהנחיית מסוף, הזן:

kadmin -q "addprinc -randkey host/kdc02.easyproject.com"

לאחר שתוציא פקודות kadmin תתבקש להזין את שם המשתמש שלך /admin@EASYPROJECT.COM.

3) חלץ את קובץ המפתח:

kadmin -q "ktadd -norandkey -k keytab.kdc02 host/kdc02.easyproject.com"

4) כעת אמור להיות keytab.kdc02 בספרייה הנוכחית, העבר את הקובץ אל /etc/krb5.keytab:

sudo mv keytab.kdc02 /etc/krb5.keytab

אם הנתיב לקובץ keytab.kdc02 שונה התאם בהתאם.

5) כמו כן, תוכל לרשום את המנהלים בקובץ Keytab, שיכול להיות שימושי בעת פתרון בעיות, בעזרת כלי klist:

sudo klist -k /etc/krb5.keytab

האפשרות -k מציינת שהקובץ הוא קובץ keytab.

6) לאחר מכן, צריך להיות קובץ kpropd.acl בכל KDC המפרט את כל ה- KDCs עבור התחום. לדוגמה, ב- KDC הראשי והמשני, צור /etc/krb5kdc/kpropd.acl:

host/kdc01.easyproject.com@EASYPROJECT.COM host/kdc02.easyproject.com@EASYPROJECT.COM

7) צור מסד נתונים ריק ב- KDC המשני:

sudo kdb5_util -s ליצור

8) כעת הפעל את השד kpropd, המאזין לחיבורים מכלי השירות kprop. kprop משמש להעברת קבצי dump:

sudo kpropd -S

9) ב- KDC הראשי, צור קובץ dump של מסד הנתונים הראשי:

sudo kdb5_util dump/var/lib/krb5kdc/dump

10) חלץ את קובץ המקשים הראשי של KDC והעתק אותו אל /etc/krb5.keytab:

kadmin -q "ktadd -k keytab.kdc01 host/kdc01.easyproject.com" sudo mv keytab.kdc01 /etc/krb5.keytab

וודא שיש מארח עבור kdc01.easyproject.com לפני החילוץ של Keytab.

11) שימוש בכלי kprop דחף את מסד הנתונים ל- KDC המשני:

sudo kprop -r EASYPROJECT.COM -f/var/lib/krb5kdc/dump kdc02.easyproject.com

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

12) ייתכן שתרצה גם ליצור עבודת cron לעדכן מעת לעת את מסד הנתונים ב- KDC המשני. לדוגמה, הדברים הבאים ידחפו את מסד הנתונים כל שעה (שימו לב שהתור הארוך פוצל כך שיתאים לפורמט של מסמך זה):

פקודת # mh dom mon dow 0 * * * */usr/sbin/kdb5_util dump/var/lib/krb5kdc/dump &&/usr/sbin/kprop -r EASYPROJECT.COM -f/var/lib/krb5kdc/dump kdc02. easyproject.com

13) בחזרה ל- KDC המשני, צור קובץ סטאש שיכיל את מפתח הראשי של Kerberos:

sudo kdb5_util stash

14) לבסוף, הפעל את הדמון krb5-kdc ב- KDC המשני:

sudo systemctl התחל krb5-kdc.service

KDC המשנית אמורה כעת להיות מסוגלת להנפיק כרטיסים לתחום. אתה יכול לבדוק זאת על ידי עצירת הדמון krb5-kdc ב- KDC הראשי, ולאחר מכן באמצעות kinit לבקש כרטיס. אם הכל הולך טוב אתה צריך לקבל כרטיס מה- KDC המשני. אחרת, בדוק/var/log/syslog ו- /var/log/auth.log ב- KDC המשני.

Active Directory כשרת Kerberos

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

1) צור משתמש AD עבור שרת האינטרנט עם סיסמת אופציה שמעולם לא פג מופעל. למשל משתמש easysso עם סיסמה SECRET והדומיין המשמש עבור SSO (למשל EASYPROJECT.COM).

2) צור קובץ keber tab Kerberos בשרת Windows AD:
ktpass -princ HTTP/www.easyproject.com@EASYPROJECT.COM -mapuser easysso@EASYPROJECT.COM -pass SECRET -crypto ALL -type KRB5_NT_PRINCIPAL -out C: \ Temp \ http.keytab

3) הגדר SPN (שם מנהל השירות) לחשבון AD שנוצר למעלה בשרת Windows, למשל על ידי:
setspn -s HTTP/www.easyproject.com easysso

לקוח Kerberos Linux

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

1) על מנת לאמת לממלכת Kerberos, יש צורך בחבילות krb5-user ו- libpam-krb5, יחד עם כמה אחרות שאינן נחוצות בהחלט אך מקלות על החיים. כדי להתקין את החבילות במערכת מבוססת Debian הזן את הפקודה הבאה בהנחיית מסוף:

sudo apt להתקין krb5-user libpam-krb5 libpam-ccreds auth-client-config

כדי להתקין את החבילות במערכת מבוססת Redhat:

yum התקן krb5-תחנת עבודה pam_krb5

חבילת auth-client-config מאפשרת תצורה פשוטה של ​​PAM לאימות ממספר מקורות, ו- libpam-ccreds ימחקו אישורי אימות במטמון שיאפשרו לכם להיכנס למקרה שמרכז הפצת המפתחות (KDC) אינו זמין. חבילה זו שימושית גם עבור מחשבים ניידים שעשויים לאמת באמצעות Kerberos ברשת הארגונית, אך יהיה צורך לגשת אליהם גם מהרשת.

2) כדי להגדיר את הלקוח במסוף (מערכת מבוססת דביאן) הזן:

sudo dpkg-configure krb5-config

במערכת מבוססת Redhat, מספיק לערוך /etc/krb5.conf (ראה להלן).

לאחר מכן תתבקש להזין את שמו של ממלכת Kerberos. כמו כן, אם אין לך DNS מוגדר עם רשומות Kerberos SRV, התפריט יבקש ממך לציין את שם המארח של מרכז הפצת המפתחות (KDC) ושרת ניהול התחום.

קובץ dpkg-reconfigure מוסיף ערכים לקובץ /etc/krb5.conf עבור התחום שלך. אמורות להיות לך ערכים הדומים להלן:

[libdefaults] default_realm = EASYPROJECT.COM ... [תחומים] EXAMPLE.COM = {kdc = 192.168.0.1 admin_server = 192.168.0.1}

אם אתה מגדיר את ה- uid של כל אחד מהמשתמשים שלך מאומת הרשת להתחיל ב- 5000, כפי שהציע בהתקנה, תוכל להגיד ל- pam לנסות לאמת רק באמצעות משתמשי Kerberos עם uid> 5000:

# יש להחיל את Kerberos רק על משתמשי ldap/kerberos, ולא על משתמשים מקומיים. עבור i in common-auth common-session common-account common-password; לעשות sudo sed -i -r \ -e 's/pam_krb5.so minimum_uid = 1000/pam_krb5.so minimum_uid = 5000/' \ /etc/pam.d/$i נעשה

זה ימנע מבקשת סיסמת Kerberos (שאינה קיימת) של משתמש מאומת מקומי בעת שינוי הסיסמה שלו באמצעות passwd.

 

3) תוכל לבדוק את התצורה על ידי בקשת כרטיס באמצעות כלי הקיניט. לדוגמה:

kinit manager@EASYPROJECT.COM סיסמה עבור manager@EASYPROJECT.COM:

כאשר ניתן כרטיס, ניתן לצפות בפרטים באמצעות קליסט:

klist מטמון כרטיסים: קובץ:/tmp/krb5cc_1000 מנהל ברירת מחדל: manager@EASYPORJECT.COM תקף התחלה פג תוקף מנהל השירות 07/24/08 05:18:56 07/24/08 15:18:56 krbtgt/EASYPROJECT.COM@EASYPROJECT .COM לחדש עד 07/25/08 05:18:57
מטמון כרטיסים של Kerberos 4: /tmp /tkt1000 klist: אין לך כרטיסים במטמון

4) לאחר מכן, השתמש ב- auth-client-config כדי להגדיר את המודול libpam-krb5 כדי לבקש כרטיס במהלך הכניסה:

sudo auth -client -config -a -p kerberos_example

כעת תקבל כרטיס לאחר אימות התחברות מוצלח.

 

תצורת Apache 2

1) התקן את מודול האימות mod_auth_kerb

Apache אינה מספקת תמיכה ב- SPNEGO עצמה אך ניתן להוסיף אותה באמצעות המודול mod_auth_kerb. זה כלול ברוב הפצות ה- GNU/Linux הגדולות, אך מכיוון שמדובר במודול של צד שלישי הוא בדרך כלל ארוז בנפרד מאפצ'י. במערכות מבוססות Debian הוא מסופק על ידי החבילה libapache2-mod-auth-curb:

apt-get להתקין libapache2-mod-auth-curb

ועל מערכות מבוססות Red Hat לפי החבילה mod_auth_kerb:

יאם התקן mod_auth_kerb

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

LoadModule auth_kerb_module /usr/lib/apache2/modules/mod_auth_kerb.so

(כאשר יש להחליף את שם הנתיב של המודול לכל מה שמתאים למערכת שלך).

3) צור מנהל שירות עבור שרת האינטרנט

SPNEGO דורש ליצור מנהל שירות Kerberos עבור שרת האינטרנט. שם השירות מוגדר כ- HTTP, ולכן עבור השרת www.easyproject.com שם מנהל השירות הנדרש הוא HTTP/www.easyproject.com@easyproject.COM.

אם אתה משתמש ב- MIT Kerberos, ניתן ליצור את מנהל השירות באמצעות הפקודה kadmin:

kadmin -p manager/admin -q "addprinc -randkey HTTP/www.easyproject.com"

4) צור כרטיסיית מפתח עבור מנהל השירות

Tab keytab הוא קובץ לאחסון מפתחות ההצפנה המתאימים למנהלי Kerberos אחד או יותר. mod_auth_kerb צריך אחד כדי להשתמש במנהל השירות שנוצר למעלה. אם אתה משתמש ב- MIT Kerberos, ניתן ליצור את לוח המקשים (כמו מנהל השירות) באמצעות הפקודה kadmin. הבעלות עליה חייבת להיות כזו שניתנת לקריאה בתהליך Apache.

במערכות מבוססות Debian מיקום מתאים ללוח המקשים יהיה /etc/apache2/http.keytab והבעלים המתאים הוא www-data:

kadmin -p manager/admin -q "ktadd -k /etc/apache2/http.keytab HTTP/www.easyproject.com" כבול www -data /etc/apache2/http.keytab

במערכות מבוססות Red Hat מיקום מתאים יהיה /etc/httpd/http.keytab והבעלים המתאים הוא apache:

kadmin -p manager/admin -q "ktadd -k /etc/httpd/http.keytab HTTP/www.easyproject.com" chown apache /etc/httpd/http.keytab

האפשרות -k מציינת את שם הנתיב ללשונית המקשים, שתיווצר אם היא לא קיימת כבר.

אם אתה משתמש ב- AD במקום בשרת Kerberos של Linux, השתמש בקובץ http.keytab שנוצר כמתואר לעיל ב מדור AD.

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

kinit -k -t /etc/apache2/http.keytab HTTP/www.easyproject.com klist

6) ציין את שיטת האימות שיש להשתמש בה

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

אם הכוונה היא להחיל את ההנחיה על כל אתר אינטרנט נתון, ניתן למקם אותו ב מיכל עם נתיב המתאים לשורש האתר:

AuthType Kerberos AuthName "Acme Corporation" KrbMethod משא ומתן על KrbMethodK5Passwd מחוץ Krb5Keytab /etc/apache2/http.keytab

במקרה של שרת AD Kerberos, ייתכן שתצטרך גם:

... KrbAuthRealms EASYPROJECT.COM KrbServiceName HTTP/www.easyproject.com

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

בנוסף לפרוטוקול SPNEGO, ל- mod_auth_kerb יש את היכולת לבקש מהמשתמש סיסמה באמצעות אימות בסיסי ואז לאמת את הסיסמה על ידי ניסיון לאמת ל- KDC. זה יכול להיות שימושי אם יש צורך שהאתר יהיה נגיש למשתמשים המורשים שלו ממכונות שאינן חלק מתחום Kerberos, אולם הוא פחות מאובטח באופן משמעותי מאשר אימות Kerberos אמיתי. הן אימות SPNEGO והן אימות סיסמה מופעלות כברירת מחדל. בדוגמה זו אין דרישה שהאתר יהיה נגיש לדפדפני אינטרנט שאינם מותאמים ל- SPNEGO, לכן אימות הסיסמה הושבת באמצעות הנחיית KrbMethodK5Passwd. לשם שלמות, SPNEGO הופעלה במפורש באמצעות הנחיית KrbMethodNegotiate.

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

אם כי א מיכל שימש בדוגמה זו, זה יהיה מקובל באותה מידה שההנחיות לעיל יוצבו בתוך א , אוֹ מיכל או בתוך קובץ .htaccess.

7) ציין רשימת משתמשים מורשים

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

בדוגמה זו ישנם רק ארבעה משתמשים הזקוקים לגישה, והדרך הפשוטה ביותר לארגן זאת היא באמצעות הוראת Require:

# ... דרישת משתמש dougal@EASYPROJECT.COM brian@EASYPROJECT.COM ermintrude@EASYPROJECT.COM dylan@EASYPROJECT.COM

עם זאת, אם ברצונך לאפשר גישה דרך Apache לכל משתמשי LDAP/AD, תוכל לציין:

# ... דרוש משתמש חוקי

8) טען מחדש את תצורת ה- Apache

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

טעינה מחדש של כוח apache2

 

תצורת Nginx

סעיף זה חל רק על מערכת הפעלה מבוססת CentOS/RedHat.

1) ודא ש- Nginx מותקן במערכת שלך.
כל הפקודות הבאות צריכות להיות מופעלות ממשתמש שורש או באמצעות sudo.

2) הפעל את הפקודה הבאה כדי לבדוק אילו מודולים זמינים בהתקנת nginx שלך.

Nginx -V

(חפש את "with-stream = dynamic" בפלט הפקודה כדי לוודא שמודול הקיטור שלך זמין)

3) עבור אל השורש שלך וחפש את הקובץ ngx_stream_module.so

 cd / find / -name ngx_stream_module.so

שים לב לנתיב המדויק של קובץ מודול הקיטור
לדוגמה, ניתן למקם אותו ב "/usr/lib64/nginx/modules/ngx_stream_module.so" תזדקק לנתיב זה כדי להגדיר אותו ב- nginx.conf

אם אין לך ngx_stream_module, עליך להסיר את ההתקנה של ברירת המחדל של nginx ולהתקין אותה מחדש ממקורות או מחבילת סל"ד ספציפית. בדף זה תוכל למצוא את הגרסאות המדויקות של חבילות nginx הכוללות ngx_stream_module - https://rpmfind.net/linux/rpm2html/search.php?query=ngx_stream_module.so()(64bit)

4) עכשיו הכל מוכן לכתוב את ההגירה Nginx שלך.

vim /etc/nginx/nginx.conf
############################################# משתמשי nginx; process_processes 1; load_module /usr/lib64/nginx/modules/ngx_stream_module.so; error_log /var/log/nginx/error.log הזהיר; pid /var/run/nginx.pid; אירועים {worker_connections 1024; } להזרים { #… error_log /var/log/nginx/stream_error.log ניפוי באגים; שרת {האזינו 88; proxy_pass kdc01.easyproject.com:88; } שרת {האזינו 749; proxy_pass kdc01.easyproject.com:749; }} #############################################

5) הפעל מחדש את שירות nginx.

systemctl אפשר nginx systemctl התחל nginx

6) בדוק אם היציאות המוקצות פתוחות כעת.

netstat -tupnl | grep nginx

כעת ה- Nginx שלנו מוכן להפנות את הבקשות כדי לרסן את השרת.

תצורת לקוח אינטרנט אם AD נמצאת בשימוש

יש לאפשר את שם הדומיין בדפדפני הלקוח כדי שהלקוחות יוכלו להשתמש ב- SSO. ניתן להשתמש בזה על ידי עדכון מדיניות הדומיין או ישירות בדפדפנים כדלקמן:

  • IE: נווט אל כלים -> אפשרויות אינטרנט -> אבטחה -> אינטראנט מקומי -> אתרים -> מתקדם והוסף את הדומיין, למשל easyproject.com
  • קצה: בירושה מ- IE
  • Chrome: בירושה מ- IE
  • Firefox: נווט לכתובת URL אודות: config ועדכן את המשתנים הבאים: network.negotiate-auth.trusted-uris, network.automatic-ntlm-auth.trusted-uris-הוסף את הדומיין שוב, למשל easyproject.com

Debugging

אם ברצונך לוודא שאפליקציית EasyRedmine שלך ​​רואה את משתני SSO שנשלחים על ידי שרת האינטרנט (למשל Apache), נווט אל [url]/sso_variables, למשל אל https://www.easyproject.com/sso_variables.

יש למלא את הערך הנוכחי, הכניסה הנוכחית והשימוש הנוכחי בפריטי DB וצריכים להתאים למשתמש המנסה להיכנס.

 

מקורות וקישורים שימושיים

https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/6/html/managing_smart_cards/configuring_a_kerberos_5_server

https://help.ubuntu.com/lts/serverguide/kerberos.html.en

http://www.microhowto.info/howto/configure_apache_to_use_kerberos_authentication.html

https://active-directory-wp.com/docs/Networking/Single_Sign_On/Kerberos_SSO_with_Apache_on_Linux.html

https://medium.com/@Santii/how-to-setup-kerberos-behind-a-reverse-proxy-nginx-d692f609191c

נסה את Easy Redmine תוך 30 יום ניסיון חינם

תכונות מלאות, מוגנת SSL, גיבויים יומיים, במיקום הגיאוגרפי שלך