تطبیق owner در iptables می‌تواند بسته‌هایی را که سوکت یک فرایند محلی ساخته است شناسایی کند. برای نمونه، -m owner --uid-owner 1234 به سوکت محلی متعلق به UID 1234 اشاره دارد؛ نام کاربری پروکسی HTTP را شناسایی نمی‌کند.

روی ماشینی که Squid اجرا می‌کند، این مسیرها را از هم جدا کنید:

ترافیکتمایز مرتبط
یک کلاینت روی همین ماشین به Squid وصل می‌شوداتصال ورودی به شنونده پروکسی
Squid اتصال مقصد را باز می‌کندسوکت خروجی ساخته‌شده به‌صورت محلی
یک کلاینت LAN مستقیماً از این ماشین مسیریابی می‌کندترافیک ارسال‌شده بدون سوکت سازنده محلی

این افزونه در OUTPUT و POSTROUTING معتبر است. بسته‌های ارسال‌شده برای این تطبیق سوکت محلی مرتبط ندارند، بنابراین قاعده FORWARD نمی‌تواند با پرسیدن UID مربوط به Squid کاربر رایانه دور را کشف کند.

پس سیاستی که سوکت‌های خروجی خود Squid را مجاز می‌کند تنها یک بخش از طراحی شبکه‌ای را پوشش می‌دهد که فقط بر پروکسی تکیه دارد. ارسال از طریق دروازه، دسترسی شنونده، سایر سرویس‌های مجاز و حساب واقعی سرویس پروکسی باید در محدوده مناسب خودشان رسیدگی شوند.

به‌جای فرض اینکه Squid با هویت nobody اجرا می‌شود، از هویت زمان اجرای پیکربندی‌شده استفاده کنید. چند فرایند می‌توانند یک UID را شریک شوند، پس مجوز مبتنی بر UID یک مرز حساب است، نه دلیلی بر اینکه یک فایل اجرایی مشخص همه اتصال‌های مجاز را ساخته است.

مقالات مرتبط