iptables --uid-owner ตรงกับซ็อกเก็ตภายในเครื่องของ Squid ไม่ใช่ผู้ใช้ LAN
ใช้ความหมายของ --uid-owner ในฐานะผู้สร้างซ็อกเก็ตภายในเครื่องเมื่อพิจารณาการออกของ Squid และแยกแพ็กเก็ต LAN ที่ส่งต่อออกมา
การจับคู่ owner ของ iptables สามารถระบุแพ็กเก็ตที่สร้างโดยซ็อกเก็ตของกระบวนการภายในเครื่องได้ ตัวอย่างเช่น -m owner --uid-owner 1234 หมายถึงซ็อกเก็ตภายในเครื่องที่เป็นของ UID 1234 ไม่ได้ระบุชื่อผู้ใช้พร็อกซี HTTP
บนเครื่องที่รัน Squid ให้แยกเส้นทางเหล่านี้:
| ทราฟฟิก | ความแตกต่างที่เกี่ยวข้อง |
|---|---|
| ไคลเอนต์เชื่อมต่อกับ Squid บนเครื่องนี้ | การเชื่อมต่อขาเข้าสู่ตัวรับฟังของพร็อกซี |
| Squid เปิดการเชื่อมต่อไปยังปลายทาง | ซ็อกเก็ตขาออกที่สร้างขึ้นภายในเครื่อง |
| ไคลเอนต์ LAN เส้นทางผ่านเครื่องนี้โดยตรง | ทราฟฟิกที่ส่งต่อโดยไม่มีซ็อกเก็ตผู้สร้างภายในเครื่อง |
ส่วนขยายนี้ใช้ได้ใน OUTPUT และ POSTROUTING แพ็กเก็ตที่ส่งต่อไม่มีซ็อกเก็ตภายในเครื่องที่เกี่ยวข้องสำหรับการจับคู่นี้ ดังนั้นกฎ FORWARD จึงไม่สามารถค้นหาผู้ใช้ของคอมพิวเตอร์ระยะไกลได้ด้วยการถาม UID ของ Squid
ดังนั้นนโยบายที่อนุญาตซ็อกเก็ตขาออกของ Squid เองจึงครอบคลุมเพียงส่วนหนึ่งของการออกแบบเครือข่ายที่พึ่งพาพร็อกซีเท่านั้น การส่งต่อผ่านเกตเวย์ การเข้าถึงตัวรับฟัง บริการอื่นที่อนุญาต และบัญชีบริการพร็อกซีจริงต้องได้รับการจัดการในขอบเขตที่เหมาะสม
ใช้ตัวตนขณะรันที่กำหนดค่าไว้แทนการสมมติว่า Squid รันเป็น nobody หลายกระบวนการสามารถใช้ UID เดียวร่วมกันได้ ดังนั้นการอนุญาตตาม UID จึงเป็นขอบเขตของบัญชี ไม่ใช่หลักฐานว่าไฟล์เรียกทำงานหนึ่งสร้างทุกการเชื่อมต่อที่ได้รับอนุญาต