Squid’da myportname va src’ni alohida ACL bilan birlashtirish
Bitta ta’rifga ikki xil ACL qo‘ymasdan nomlangan Squid listener’ni ruxsat berilgan mijoz tarmog‘i bilan birlashtiring.
Konfiguratsiya birinchi qarashda ishonchli ko‘rinadi:
acl team_a myportname 3128 src 198.51.100.0/24
Ammo ACL ta’rifida faqat bitta tur bo‘ladi. Bu yerda myportname — tur; src so‘zini qo‘shish ikkinchi tekshiruvni boshlamaydi. Qolgan so‘zlar birinchi tur qiymatlar ro‘yxatiga tegishli. Bu satr “bu listener va bu mijoz tarmog‘i” degani emas.
Har bir shartga nom bering
Tinglayotgan socket uchun nom va manba uchun alohida ACL ishlating. Bu parcha hujjat manzillaridan foydalanadi, ularni joylashtirishga mos manzillar bilan almashtirish kerak:
http_port 192.0.2.10:3128 name=team_a_port
acl team_a_port myportname team_a_port
acl team_a_clients src 198.51.100.0/24
http_access allow team_a_port team_a_clients
http_access deny all
Ruxsat qoidasini xavfli manzil portlari, cheklangan CONNECT nishonlari va boshqaruv kirishi uchun mavjud himoyalardan keyin qo‘ying. Parcha mijoz/listener shartini ko‘rsatadi; u bu himoyalarni almashtirmaydi.
Bitta http_access satridagi shartlar AND bilan birlashtiriladi. Ikki alohida ruxsat satri har bir shartni mustaqil o‘tkazardi, bu siyosatni sezilarli o‘zgartirardi. Bitta ACL ichidagi bir nechta qiymat odatda o‘sha yagona tekshiruv uchun muqobillar beradi.
Chiqishni alohida tanlang
Mos listener tcp_outgoing_address orqali ham mahalliy manba manzilini tanlash uchun ishlatilishi mumkin. Bu marshrutlash tanlovi, proksidan foydalanish ruxsati emas. Chiqish manzili qoidasi rad etilgan so‘rovni http_access orqali o‘tkaza olmaydi.
Agar ko‘p manzilli konfiguratsiya yangilanishdan keyin ishlamay qolsa, dalillarni ajrating: tahlil xatosi konfiguratsiya sintaksisiga ishora qiladi; kirishni rad etish qoidalar mosligiga; noto‘g‘ri chiqish bilan ruxsat etilgan so‘rov chiqish tanloviga yoki keyingi NATga. Uchtasini bir vaqtda o‘zgartirish kichik ACL xatosini topishni ancha qiyinlashtiradi.