שרת SOCKS5 מוגבל עם Dante
הגדירו Dante 1.4.4 עם מאזין מסוים, לקוח מורשה אחד ויעד מורשה אחד, והבחינו בין שני שלבי הכללים.
Dante מבצע שתי בדיקות גישה: כלל לקוח מקבל מקור נכנס, וכלל SOCKS מתיר את היעד והפקודה המבוקשים. הדוגמה הזו ל-Dante 1.4.4 מתירה ללקוח אחד להגיע ליעד אחד שבשליטתכם בפורט 443.
זהות השירות וכתובות
צרו חשבון ייעודי דל הרשאות אם ההתקנה אינה מספקת אחד:
sudo useradd --system --no-create-home --shell /usr/sbin/nologin danteproxy
שתי הזהויות יכולות להשתמש בחשבון הזה בהגדרה הבאה, עם פורט גבוה ורשימת מקורות מורשים. אימות בסיסמה או יכולות מיוחסות מחייבים בדיקה מחודשת של ההגדרות האלה. החליפו את כל כתובות התיעוד לפני השימוש.
logoutput: stderr
internal: 192.0.2.10 port = 1080
external: 192.0.2.10
clientmethod: none
socksmethod: none
user.privileged: danteproxy
user.unprivileged: danteproxy
client pass {
from: 198.51.100.27/32 to: 192.0.2.10/32 port = 1080
log: connect error
}
socks pass {
from: 198.51.100.27/32 to: 203.0.113.20/32 port = 443
command: connect
log: connect error
}
internal בוחר את המאזין שפונה ללקוחות; external בוחר את הכתובת היוצאת. שרת בעל ממשק אחד יכול להשתמש באותה כתובת מוקצית לשניהם. במקרים מתאימים אפשר גם שם ממשק; בדקו לאילו כתובות הוא מתרחב.
מה המדיניות הזאת מתירה
הכלל הראשון מקבל את המקור שצוין אל המאזין. השני מתיר רק CONNECT ליעד שצוין. בקשות שאינן תואמות נשארות חסומות, כולל BIND ו-UDP ASSOCIATE.
הגדרות השיטות אינן מספקות אימות שם משתמש. הגישה תלויה בכלל המקור המצומצם ובגבול הרשת שלו. ההסדר מתאים רק כאשר המקור הזה מזהה לקוח מורשה.
sockd -V -f /path/to/sockd.conf
בהפצות מסוימות שם קובץ ההפעלה הוא danted. בדקו את ההגדרה בפקודה המותקנת לפני הפעלת השירות. החילו מגבלות מקור תואמות בחומת האש, ואז בדקו גם את היעד המותר וגם יעד שבשליטתכם שאמור להידחות.