iptables --uid-owner-ը համընկնում է Squid-ի տեղական սոկետներին, ոչ թե LAN օգտվողներին
Squid-ի ելքի մասին մտածելիս օգտագործեք --uid-owner-ի տեղական սոկետ ստեղծող իմաստը և փոխանցված LAN փաթեթները առանձին պահեք։
iptables-ի owner համընկնումը կարող է նույնականացնել տեղական գործընթացի սոկետով ստեղծված փաթեթները։ Օրինակ՝ -m owner --uid-owner 1234-ը վերաբերում է UID 1234-ին պատկանող տեղական սոկետին. այն չի նույնականացնում HTTP փրոքսիի օգտանուն։
Squid աշխատող մեքենայի վրա տարբերակեք այս ուղիները.
| Երթևեկություն | Համապատասխան տարբերություն |
|---|---|
| Հաճախորդը միանում է Squid-ին այս մեքենայի վրա | Մուտքային կապ դեպի փրոքսի լսողը |
| Squid-ը բացում է նպատակակետային կապ | Տեղականորեն ստեղծված ելքային սոկետ |
| LAN հաճախորդը երթուղավորում է ուղղակիորեն այս մեքենայով | Փոխանցված երթևեկություն առանց տեղական ստեղծող սոկետի |
Ընդլայնումը վավեր է OUTPUT և POSTROUTING-ում։ Փոխանցված փաթեթները այս համընկնման համար կապակցված տեղական սոկետ չունեն, ուստի FORWARD կանոնը չի կարող հայտնաբերել հեռավոր համակարգչի օգտվողին՝ հարցնելով Squid-ի UID-ը։
Այսպիսով, Squid-ի սեփական ելքային սոկետները թույլատրող քաղաքականությունը ծածկում է միայն փրոքսիի վրա հիմնված ցանցային ձևավորման մի մասը։ Դարպասային փոխանցումը, լսողի հասանելիությունը, այլ թույլատրված ծառայությունները և փրոքսիի փաստացի ծառայողական հաշիվը պետք է կարգավորվեն իրենց համապատասխան շրջանակում։
Օգտագործեք կազմաձևված գործարկման ինքնությունը՝ փոխարենը ենթադրելու, որ Squid-ը աշխատում է որպես nobody։ Մի քանի գործընթաց կարող են կիսել մեկ UID, ուստի UID-ի վրա հիմնված թույլտվությունը հաշվի սահման է, ոչ թե ապացույց, որ կոնկրետ կատարվող ֆայլը ստեղծել է բոլոր թույլատրված կապերը։