การจับคู่ owner ของ iptables สามารถระบุแพ็กเก็ตที่สร้างโดยซ็อกเก็ตของกระบวนการภายในเครื่องได้ ตัวอย่างเช่น -m owner --uid-owner 1234 หมายถึงซ็อกเก็ตภายในเครื่องที่เป็นของ UID 1234 ไม่ได้ระบุชื่อผู้ใช้พร็อกซี HTTP

บนเครื่องที่รัน Squid ให้แยกเส้นทางเหล่านี้:

ทราฟฟิกความแตกต่างที่เกี่ยวข้อง
ไคลเอนต์เชื่อมต่อกับ Squid บนเครื่องนี้การเชื่อมต่อขาเข้าสู่ตัวรับฟังของพร็อกซี
Squid เปิดการเชื่อมต่อไปยังปลายทางซ็อกเก็ตขาออกที่สร้างขึ้นภายในเครื่อง
ไคลเอนต์ LAN เส้นทางผ่านเครื่องนี้โดยตรงทราฟฟิกที่ส่งต่อโดยไม่มีซ็อกเก็ตผู้สร้างภายในเครื่อง

ส่วนขยายนี้ใช้ได้ใน OUTPUT และ POSTROUTING แพ็กเก็ตที่ส่งต่อไม่มีซ็อกเก็ตภายในเครื่องที่เกี่ยวข้องสำหรับการจับคู่นี้ ดังนั้นกฎ FORWARD จึงไม่สามารถค้นหาผู้ใช้ของคอมพิวเตอร์ระยะไกลได้ด้วยการถาม UID ของ Squid

ดังนั้นนโยบายที่อนุญาตซ็อกเก็ตขาออกของ Squid เองจึงครอบคลุมเพียงส่วนหนึ่งของการออกแบบเครือข่ายที่พึ่งพาพร็อกซีเท่านั้น การส่งต่อผ่านเกตเวย์ การเข้าถึงตัวรับฟัง บริการอื่นที่อนุญาต และบัญชีบริการพร็อกซีจริงต้องได้รับการจัดการในขอบเขตที่เหมาะสม

ใช้ตัวตนขณะรันที่กำหนดค่าไว้แทนการสมมติว่า Squid รันเป็น nobody หลายกระบวนการสามารถใช้ UID เดียวร่วมกันได้ ดังนั้นการอนุญาตตาม UID จึงเป็นขอบเขตของบัญชี ไม่ใช่หลักฐานว่าไฟล์เรียกทำงานหนึ่งสร้างทุกการเชื่อมต่อที่ได้รับอนุญาต

บทความที่เกี่ยวข้อง