התאמת owner של iptables יכולה לזהות חבילות שנוצרו על ידי סוקט של תהליך מקומי. לדוגמה, -m owner --uid-owner 1234 מתייחס לסוקט מקומי בבעלות UID 1234; הוא אינו מזהה שם משתמש של פרוקסי HTTP.

במכונה שמריצה Squid, הבדילו בין המסלולים האלה:

תעבורהההבחנה הרלוונטית
לקוח מתחבר ל-Squid במכונה הזוחיבור נכנס למאזין הפרוקסי
Squid פותח חיבור ליעדסוקט יוצא שנוצר מקומית
לקוח LAN מנתב ישירות דרך המכונה הזותעבורה מועברת ללא סוקט יוצר מקומי

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

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

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

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