ההליך מוסיף אימות Basic המבוסס על NCSA לפרוקסי Squid 6.13 מוגבל לפי מקור. המסייע ב-Debian 13 הוא /usr/lib/squid/basic_ncsa_auth; אשרו את הנתיב וחשבון השירות של החבילה שלכם.

צרו את החשבון הראשון

השתמשו בכלי htpasswd של ההפצה והזינו את הסיסמה באופן אינטראקטיבי:

sudo htpasswd -c /etc/squid/users proxyuser
sudo chown root:proxy /etc/squid/users
sudo chmod 640 /etc/squid/users

הבעלות מניחה את קבוצת השירות של Debian. Squid צריך לקרוא את הקובץ; משתמשים אחרים לא. לחשבונות נוספים השמיטו -c, שיוצר קובץ חדש ועלול להחליף רשומות קיימות.

דרשו מקור וכניסה באותו כלל הרשאה

מקמו את אלה אחרי ההגנות הקיימות על יציאות יעד, ניהול, localhost וכתובות link-local:

auth_param basic program /usr/lib/squid/basic_ncsa_auth /etc/squid/users
auth_param basic realm PrivateProxy

acl proxy_client src 198.51.100.27/32
acl logged_in proxy_auth REQUIRED

http_access allow proxy_client logged_in
http_access deny all

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

בדקו תחביר, טענו מחדש והשוו שתי בקשות

sudo squid -k parse -f /etc/squid/squid.conf

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

curl --proxy http://proxy.example:3128 --proxy-basic --proxy-user proxyuser --noproxy '' --connect-timeout 5 --max-time 15 https://example.com/

ציון שם המשתמש בלבד גורם ל-curl לבקש סיסמה. בקשה תקפה אמורה להגיע ליעד.

אימות Basic אינו מצפין את חילופי המידע בין הלקוח לפרוקסי. HTTPS מאוחר יותר של היעד אינו מגן על פרטי כניסה שכבר נשלחו לפרוקסי גלוי; השתמשו במסלול מוגן כראוי. ההנחיות האלה מיועדות ל-Squid 6.13; עבור Squid 8 עיינו בתצורה של הגרסה המתאימה.

מאמרים קשורים