מסיבות רבות זה יכול להיות מאוד שימושי שיש גישה מבוקרת לספריות מסוימות בשרת אינטרנט או פשוט לתוכן העמוד או הבלוג שלנו באמצעות שירות אימות המבוסס על שם משתמש וסיסמה. אני מדבר על משהו כמו החלון האופייני שמופיע כשאנחנו רוצים להיכנס לאתר עם שירותים מוגבלים.
ישנן מספר דרכים ליצור חלונות עם טופס אימות, אך ניתן פיתרון מעניין ברמת השרת htpasswd. זהו כלי שירות שתפקידו לאחסן סיסמאות בצורה מוצפנת לשימוש אפאצ'י בשירותי אימות. השימוש בו יאפשר לנו להציג ספריות או קבצים מסוימים דרך http רק למשתמשים מזוהים ומבלי שיהיה בהכרח זמין באופן חופשי לכולם.
אני מבין שזה לא נושא נוצץ במיוחד אבל זה יכול להיות שימושי עבור חלקם. כדי לא להרוג אותם בשעמום, אשתמש בתמונות כדי להפוך את זה לדידקטי יותר.
שיקולים קודמים: אשתמש שרת אובונטו y Apache 2.2.22 בסביבה מבוקרת.
אנחנו מתחילים.
כפי שחלקכם אולי כבר יודעים, כברירת מחדל אתרי האפצ'י הזמינים מאוחסנים בספריה / var / www / ולדוגמא זו אצור ספריה עם תבנית HTML ואנסה לסוכך עליה עם .htpasswd.
הספרייה להגן היא / var / www / example / איפה שמתי את הדף הבא.
1. אנו הולכים ליצור את .htpasswd.
למקום בו הוא נמצא חשיבות רלוונטית והצבתו מחוץ לספריה ציבורית יכולה להיות יותר מהמומלץ. במקרה שלי אשים אותו בתיקיה האישית שלי (שאינה ספריית אפאצ'י ציבורית) ועם השם .htpasswd (אפריורי אין צורך לקרוא לזה כך, אבל זה שמוסתר הוא תמיד טוב).
עם הפקודה הבאה אני יוצר את קובץ ה-. Htpasswd עבור משתמש אינטרנט שכיוונתי בשם: "לוק".
# htpasswd -c /home/krel/.htpasswd Luke
זה יבקש מאיתנו לספק את הסיסמה פעמיים, במקרה שלי שמתי את "סקייווקר" (ללא הצעות מחיר). בסביבה לא מבוקרת עלינו ליצור סיסמאות חזקות יותר. ההצפנה המוגדרת כברירת מחדל בלינוקס היא MD5 אך ב- Unix מדובר בהטמעה רגילה של קריפטה () ולסיסמאות עם פחות מ- 8 תווים היא עלולה להיות פגיעה. עכשיו נשאלת השאלה אם זה אותו הדבר ב- BSD.
- -c → כדי ליצור את הקובץ
- /home/krel/.htpasswd → הנתיב המוחלט של הקובץ.
- לוק → שם המשתמש (זה יכול להיות מה שאתה רוצה)
באופן דומה, אני לא מכריח אף אחד להשתמש במסוף כשיש שירותים באינטרנט בשבילו:
http://www.web2generators.com/apache/htpasswd_generator
http://www.htaccesstools.com/htpasswd-generator/
התוצאה מועתקת לקובץ טקסט ועם השם .htpasswd אם תרצה בכך. לגבי שיטה זו, אל תפסיק לקרוא את מה שאני מגיב בפסקה הבאה.
במקרה שלנו נראה שהקובץ נוצר במקום בו ציפינו להם /home/krel/.htpasswd. בתמונה הדגשתי כי בשיטה זו הקובץ שייך לקבוצת האפאצ'י ולמשתמש, אשר באובונטו מכונה www-data. זה חשוב מכיוון שאם יצרנו את .htpasswd בדרך אחרת, עלינו לוודא שיש לו 644 הרשאות.
ובכן, עכשיו נראה איך האומץ שלהם הוא:
כפי שאתה יכול לראות, יש את המשתמש (לוק) אך הסיסמה מוצפנת.
באופן זה כבר יצרנו ועיצבנו את .htpasswd עבור המשתמש לוק, בסופו של דבר זה לא יותר מאשר מיכל לסיסמה. "הכל עם פקודה אחת" יהיה ביטוי טוב.
2. הגדר את תצורת אפאצ'י לשימוש ולהתיר שירות זה באתר.
# nano /etc/apache2/sites-available/default
אם יש לך כמה מארחים, עליהם לעבוד על כל אחד מהם, במקרה שלי יש לי רק את זה שמגיע כברירת מחדל. אל תשכח שתמיד טוב לעשות גיבוי של אותו קובץ.
לקובץ זה יש מבנה ברירת המחדל:
מנהל האתר של ServerAdmin @ localhost
..................
..................
בדיוק בכותרות של Virtualhost יוגדר השימוש ב- .htpasswd כדי לגשת לספריה מסוימת. אנו עושים זאת כאשר התמונה למטה מופיעה ומתאימה לדוגמא שלנו:
אתה צריך לשים את הספריה כדי להגן.
AuthType בסיסי
זהו סוג המשתמש והסיסמה שניהלו משא ומתן עם הדפדפן, במקרה זה הם בסיסיים, ללא הצפנה.
יש סוג אחר של משא ומתן: Digest, זה מצפין את שם המשתמש והסיסמה, אולם המילה האחרונה היא הדפדפן האם הוא תומך בשירות האמור. אפשר לומר ש- Digest הוא יישום קצת יותר חזק נגד מרחרח. אני מזמין אותך להתעמק בזה.
AuthName "נקיש על הדלת לפני הכניסה."
זוהי הודעה שתופיע למשתמש בדפדפן עם טופס הכניסה והיא יכולה להיות מה שאנחנו רוצים.
AuthUserFile /var/www/.pass/.htpasswd
נתיב לקובץ .htpasswd. מסיבה זו אני אומר כי אין צורך אפילו לקרוא לו שם .htpasswd, פשוט הצבת הנתיב תעבוד זהה.
דרוש משתמש חוקי
קו זה מיועד למספר משתמשים עם סיסמאות בהתאמה אישית. במקרה שמדובר במשתמש יחיד, ניתן לסכם אותו כגרסא הבאה.
דרוש משתמש el_que_sea
בדוגמה שלי יכול להיות: דרוש משתמש לוק
ולבסוף אנחנו סוגרים הכל עם
אנו מפעילים מחדש את אפאצ'י:
# service apache2 restart
בוא ננסה.
אם לא נאמת כראוי נקבל שגיאה 401.
בצד ההפוך, אם נשים את שם המשתמש והסיסמה הנכונים, זה היה מאפשר לנו לעבור ללא אי נוחות גדולה.
טיפים נוספים.
- כדי להוסיף משתמשים נוספים לקובץ htpasswd שנוצר כבר תוכלו להשתמש בפקודה זו
htpasswd -mb /home/krel/.htpasswd סיסמת משתמש
אם הגדרת "דרוש משתמש" ולא "דרוש משתמש חוקי" עליך להוסיף את המשתמש החדש ואחריו הקודם ומופרד על ידי רווח. דוגמא:
דרוש מהמשתמש לוק אנאקין
- השתמש בקבוצות משתמשים
אם במקום משתמשים בודדים אנו מעדיפים או צריכים לעבוד עם קבוצות באתר הבא הם מסבירים זאת בפירוט רב וזה מאמר מצוין.
http://www.juanfelipe.net/node/23
- אנחנו יכולים גם להגדיר סוג אחר של הצפנה, למשל: SHA
htpasswd -sb /home/krel/.htpasswd סיסמת משתמש
להלן תמונה כיצד רישום סיסמת SHA יבוא לידי ביטוי ב-. Htpasswd. בשניהם זה היה "סקיווקר".
למידע נוסף.
htpasswd - -עזרה
אם אתה רוצה להעמיק בנושא זה, RTFM תמיד טוב!
http://httpd.apache.org/docs/2.0/es/howto/auth.html
http://httpd.apache.org/docs/2.2/misc/password_encryptions.html
סקריפט PHP זה מדף אוניברסיטת גרנדה גם היה סקרן בעיני ליצור מחולל htaccess ו- htpasswd. לא הצלחתי להוציא את זה לפועל אבל אני מזמין אותך "לחטט באינטליגנציה".
תבנית ה- HTML שקיבלתי מדף זה למקרה שמישהו מעוניין בכך.
http://www.templatemo.com/
מקווה שאהבתם את המצגת htpasswd הזו.
עכשיו כשאני קורא את הפוסט הבנתי שעשיתי בלגן קטן. כשאני מסביר את השורות בתצורת האתר, ב- AuthUserFile שמתי /var/www/.pass/.htpasswd מתי זה אמור להיות:
/home/krel/.htpasswd.
בתמונה זה בסדר אבל שם זה התחמק ממני, זה שקודם לכן הכנתי את המאמר עם המסלול הזה, אבל ברגע האחרון שיניתי אותו ונראה שפספסתי לתקן אותו.
אני מתנצל מראש.
כל אלטרנטיבה לנאוטילוס ??
מה שאתה שואל לדעתי הולך בדרך אחרת אבל אני עונה לך בכל מקרה.
אני מאמין שעם Cryptkeeper יהיה זה שימושי להגן על ספריות ודברים כאלה.
אם אני כנה אם משהו שאני שונא בגמד הוא נאוטילוס. Dolphin (KDE) הוא הרבה יותר חזק בדיוק לדברים האלה של הגנה, הצפנה עם gpg וכו '.
קרל, תודה על ההדרכות המלאות שאתה מביא לכאן ובמיוחד על היותך לא כל כך נושאים ...
לחיים !!! ...
שלום הכל התנהל כשורה אבל .. כשאני סוגר את לשונית הכרום ופותח עוד אחת, אני כותב את הכתובת והיא לא מבקשת ממני את הסיסמה ...
שאמר שזה לא צעקני.
זה בדיוק מה שחיפשתי, והסביר טוב יותר שאי אפשר
תודה רבה.
ברכה
שלום, אני מודה לך מאוד על המידע, במיוחד החלק בהוספת מספר משתמשים ב- .htpasswd.
אלוהים יברך אותך!
מזל טוב, זה מאמר טוב מאוד, ברור ועיכול. תודה רבה לך
זה נותן לי שגיאת 500 כאשר אני מזין את שם המשתמש והסיסמה
AuthType בסיסי
שם Auth "Tocc tocc"
AuthUserFile /var/www/html/.pass/.htpasswd
דרוש משתמש Akira
כמה נהדר שזה קורה לי להגיב בלי להסתכל על התגובות האחרות perodna.
עובד פוסט נהדר נהדר
היי, הדרכה טובה, אבל האם יש אלטרנטיבה ל- "htpasswd"? אני שואל כי אני משתמש ב- Linux mint 17.3 ואין לי את הפקודה ... האם עלי להתקין אותו?
אוקיי, הבנתי את זה ... הייתי צריך להתקין אותו עם sudo apt-get install apache2-utils
שלום, הדרכה מעולה, עשיתי את זה בדיוק כפי שצוין כאן, הדבר היחיד הוא שבמקום לבצע את מה שמצוין בנקודה 2:
nano / etc / apache2 / sites-available / default
זה עבד לי עם
ננו /etc/apache2/sites-enabled/000-default.conf
ברכות, זה לא עובד בשבילי folder התיקיה שלי לא מופיעה בשרת שלי, כלומר, הגנתי על תיקיית / var / 222 / html / content שלי, וכשאני נכנס מהדפדפן תיקיית התוכן לא מופיעה. עֶזרָה