بازگشت به وبلاگ

پروتکل WPAD: چگونه شناسایی خودکار پروکسی را در شبکه شرکتی بدون خطا تنظیم کنیم

WPAD به طور خودکار پروکسی را در تمام دستگاه‌های شبکه شرکتی بدون پیکربندی دستی تنظیم می‌کند - بررسی می‌کنیم که این چگونه کار می‌کند و چه مشکلاتی ممکن است وجود داشته باشد.

📅۱۴ مرداد ۱۴۰۵
```html

اگر در شرکت شما ده‌ها یا صدها دستگاه وجود دارد — نوشتن پروکسی به صورت دستی بر روی هر یک از آنها غیرممکن است. به همین دلیل است که WPAD (Web Proxy Auto-Discovery) وجود دارد — پروتکلی که به مرورگرها و برنامه‌ها اجازه می‌دهد به طور خودکار تنظیمات سرور پروکسی را بدون نیاز به دخالت کاربر پیدا کنند. بررسی می‌کنیم که چگونه کار می‌کند، چگونه به درستی تنظیم می‌شود و از چه اشتباهاتی باید پرهیز کرد.

WPAD چیست و چرا به آن نیاز داریم

WPAD به معنای Web Proxy Auto-Discovery Protocol است — پروتکل کشف خودکار وب پروکسی. وظیفه اصلی آن این است که به دستگاه‌های کلاینت (لپ‌تاپ، گوشی هوشمند، ایستگاه کاری) اجازه دهد به طور خودکار تنظیمات سرور پروکسی را پیدا و اعمال کنند، بدون اینکه نیاز به دخالت دستی مدیر سیستم یا کاربر باشد.

تصور کنید یک شبکه شرکتی با 300 کارمند. هر بار که یک نفر جدید استخدام می‌شود یا آدرس پروکسی تغییر می‌کند، بدون WPAD، مدیر مجبور به گشتن به دور هر دستگاه یا ارسال دستورالعمل‌ها می‌شود. با WPAD همه چیز به طور خودکار انجام می‌شود: دستگاه به شبکه متصل می‌شود، پیکربندی را درخواست می‌کند و بلافاصله از طریق پروکسی مورد نیاز کار می‌کند.

این پروتکل در اواخر دهه 1990 توسط شرکت‌های Netscape و Sun Microsystems توسعه یافته است. با وجود سن آن، هنوز هم به طور گسترده‌ای در زیرساخت‌های IT شرکتی در سرتاسر جهان استفاده می‌شود — به ویژه در جاهایی که نیاز به کنترل متمرکز ترافیک اینترنت، فیلتر کردن محتوا یا مسیریابی اجباری درخواست‌ها از طریق دروازه شرکتی وجود دارد.

زمانی که WPAD واقعاً ضروری است:

  • در شرکت بیش از 20 دستگاه وجود دارد که به یک پروکسی متصل هستند
  • آدرس سرور پروکسی به طور دوره‌ای تغییر می‌کند
  • کارمندان از مکان‌های مختلف متصل می‌شوند (دفتر، شعبه، دورکاری)
  • نیاز به استفاده از پروکسی‌های مختلف برای انواع مختلف ترافیک وجود دارد
  • مدیریت متمرکز بدون دخالت کاربران ضروری است

از نظر فنی، WPAD در کنار فایل PAC (Proxy Auto-Config) کار می‌کند که شامل یک تابع JavaScript با منطق انتخاب پروکسی است. WPAD مکانیزم تحویل این فایل به دستگاه‌های کلاینت است و PAC خود مجموعه‌ای از قوانین است. درک هر دو جزء برای تنظیم صحیح بسیار مهم است.

نحوه کارکرد WPAD: مکانیزم کشف مرحله به مرحله

وقتی دستگاهی با WPAD فعال به شبکه متصل می‌شود، فرایند کشف خودکار پروکسی را آغاز می‌کند. این فرایند به شدت استاندارد شده و در یک توالی خاص انجام می‌شود. درک این توالی به تنظیم صحیح زیرساخت و تشخیص سریع مشکلات کمک می‌کند.

مرحله 1: درخواست از طریق DHCP (گزینه 252)

ابتدا دستگاه یک درخواست DHCP با گزینه 252 (wpad) ارسال می‌کند. اگر سرور DHCP برای پشتیبانی از WPAD تنظیم شده باشد، URL فایل PAC را در پاسخ برمی‌گرداند — به عنوان مثال، http://wpad.company.local/wpad.dat. این سریع‌ترین و مطمئن‌ترین روش برای تحویل پیکربندی است، زیرا هنوز در مرحله دریافت آدرس IP انجام می‌شود.

مرحله 2: درخواست DNS به میزبان "wpad"

اگر DHCP URL را برنگرداند، دستگاه به سرور DNS با درخواست برای حل نام wpad در دامنه فعلی مراجعه می‌کند. اگر دستگاه در دامنه company.local باشد، درخواست DNS به wpad.company.local خواهد بود. در صورت موفقیت در حل، دستگاه به آدرس http://wpad.company.local/wpad.dat مراجعه می‌کند.

مرحله 3: بارگذاری و اعمال فایل PAC

پس از دریافت URL، مرورگر یا برنامه فایل PAC را از طریق HTTP بارگذاری می‌کند. این فایل شامل تابع JavaScript FindProxyForURL(url, host) است که برای هر درخواست یک رشته با دستورالعمل را برمی‌گرداند: از پروکسی استفاده کنید، به طور مستقیم متصل شوید یا لیست سرورها را بررسی کنید. کلاینت این فایل را کش می‌کند و از آن برای مسیریابی ترافیک استفاده می‌کند.

نکته مهم: کشف WPAD نه تنها در هنگام اولین اتصال انجام می‌شود، بلکه به طور دوره‌ای تکرار می‌شود. مرورگرها معمولاً فایل PAC را در هر بار راه‌اندازی یا در فواصل معین دوباره بارگذاری می‌کنند. این بدان معناست که در صورت تغییر تنظیمات پروکسی، کافی است فایل PAC را در سرور به‌روزرسانی کنید — تمام دستگاه‌ها به طور خودکار تغییرات را دریافت خواهند کرد.

مرحله کشف روش اولویت نیازها
DHCP Option 252 انتقال مستقیم URL 1 (بالاترین) سرور DHCP تنظیم شده
DNS wpad.* حل نام میزبان 2 A-record wpad در DNS
URL PAC دستی تنظیم صریح دستی تنظیم در هر دستگاه

فایل PAC: قلب پیکربندی WPAD

فایل PAC (Proxy Auto-Configuration) یک فایل JavaScript با یک تابع الزامی FindProxyForURL(url, host) است. هر بار که مرورگر یا برنامه می‌خواهد یک اتصال برقرار کند، این تابع فراخوانی می‌شود و دستورالعملی را دریافت می‌کند: از کدام پروکسی استفاده کند یا به طور مستقیم متصل شود.

این تابع دو پارامتر می‌گیرد: URL کامل منبع درخواست شده و نام میزبان. بر اساس این داده‌ها، یک رشته با یکی از سه نوع دستورالعمل برمی‌گرداند:

  • DIRECT — به طور مستقیم متصل شوید، بدون پروکسی
  • PROXY host:port — از پروکسی HTTP مشخص شده استفاده کنید
  • SOCKS host:port یا SOCKS5 host:port — از پروکسی SOCKS استفاده کنید

نمونه‌ای از یک فایل PAC ساده برای شبکه شرکتی:

function FindProxyForURL(url, host) {

  // آدرس‌های محلی — به طور مستقیم
  if (isPlainHostName(host) ||
      shExpMatch(host, "*.company.local") ||
      isInNet(host, "192.168.0.0", "255.255.0.0")) {
    return "DIRECT";
  }

  // خدمات داخلی — به طور مستقیم
  if (shExpMatch(host, "*.internal.company.com")) {
    return "DIRECT";
  }

  // تمام ترافیک دیگر — از طریق پروکسی شرکتی
  return "PROXY proxy.company.local:8080; DIRECT";
}
  

به ساختار PROXY proxy.company.local:8080; DIRECT توجه کنید — این یک زنجیره از fallback‌ها است. اگر پروکسی اصلی در دسترس نباشد، مرورگر به طور خودکار به اتصال مستقیم تغییر می‌کند. می‌توان چندین سرور پروکسی را از طریق نقطه ویرگول برای متعادل‌سازی بار یا پشتیبان‌گیری مشخص کرد.

فایل PAC باید توسط وب‌سرور با نوع MIME صحیح توزیع شود: application/x-ns-proxy-autoconfig. برخی مرورگرها همچنین text/plain را می‌پذیرند، اما این توصیه نمی‌شود. این فایل معمولاً wpad.dat یا proxy.pac نامیده می‌شود و در ریشه وب‌سرور قرار می‌گیرد.

توابع مفید PAC برای سناریوهای پیچیده:

  • isInNet(host, pattern, mask) — بررسی آدرس IP با ماسک زیرشبکه
  • shExpMatch(str, pattern) — مقایسه با الگو (wildcards)
  • dnsDomainIs(host, domain) — بررسی تعلق به دامنه
  • myIpAddress() — دریافت آدرس IP کلاینت (برای دفاتر مختلف)
  • weekdayRange() / timeRange() — مسیریابی بر اساس زمان‌بندی

تنظیم WPAD از طریق DHCP و DNS

دو روش اصلی برای پیاده‌سازی WPAD در شبکه شرکتی وجود دارد: از طریق DHCP و از طریق DNS. در عمل، توصیه می‌شود هر دو را تنظیم کنید — DHCP به عنوان روش اولویت‌دار و DNS به عنوان پشتیبان. هر رویکرد را به تفصیل بررسی می‌کنیم.

تنظیم از طریق DHCP (گزینه 252)

در سرور DHCP باید گزینه 252 (WPAD) با مقدار URL فایل PAC اضافه شود. برای Windows Server (نقش DHCP):

  1. کنسول مدیریت سرور DHCP را باز کنید
  2. به بخش Server Options یا Scope Options بروید
  3. روی Configure OptionsAdvanced کلیک کنید
  4. گزینه Vendor class: Microsoft Windows 2000 Options را انتخاب کنید
  5. گزینه 252 (WPAD) را پیدا کنید و URL را وارد کنید: http://wpad.company.local/wpad.dat
  6. تغییرات را ذخیره کنید — مشتریان جدید DHCP به طور خودکار تنظیمات را دریافت خواهند کرد

برای سیستم‌های لینوکس با ISC DHCP Server، به فایل پیکربندی اضافه کنید:

# /etc/dhcp/dhcpd.conf
option wpad code 252 = text;

subnet 192.168.1.0 netmask 255.255.255.0 {
  range 192.168.1.100 192.168.1.200;
  option routers 192.168.1.1;
  option wpad "http://wpad.company.local/wpad.dat\000";
}
  

تنظیم از طریق DNS

برای روش DNS، باید یک A-record با نام wpad در دامنه داخلی DNS خود ایجاد کنید که به آدرس IP وب‌سروری که فایل PAC را توزیع می‌کند اشاره کند.

  1. کنسول DNS Manager (Windows) را باز کنید یا فایل زون (BIND) را ویرایش کنید
  2. در ناحیه company.local یک A-record ایجاد کنید: wpad → 192.168.1.50
  3. در سرور 192.168.1.50 یک وب‌سرور (IIS، Apache، Nginx) راه‌اندازی کنید
  4. فایل wpad.dat را در ریشه سایت قرار دهید
  5. نوع MIME را برای پسوند .dat تنظیم کنید: application/x-ns-proxy-autoconfig
  6. دسترس‌پذیری را بررسی کنید: در مرورگر http://wpad.company.local/wpad.dat را باز کنید

⚠️ مهم برای DNS سرور Windows:

به طور پیش‌فرض، DNS سرور Windows ایجاد A-record با نام "wpad" را به دلایل امنیتی مسدود می‌کند (برای جلوگیری از حملات WPAD). برای مجاز کردن ایجاد، در PowerShell اجرا کنید: dnscmd /config /enableglobalqueryblocklist 0 یا "wpad" را از لیست مسدود جهانی DNS حذف کنید.

تنظیم وب‌سرور Nginx برای توزیع فایل PAC

# /etc/nginx/sites-available/wpad
server {
    listen 80;
    server_name wpad.company.local;
    root /var/www/wpad;

    location /wpad.dat {
        default_type application/x-ns-proxy-autoconfig;
        add_header Cache-Control "max-age=3600";
    }

    location /proxy.pac {
        default_type application/x-ns-proxy-autoconfig;
        add_header Cache-Control "max-age=3600";
    }
}
  

آسیب‌پذیری‌ها و خطرات امنیتی WPAD

WPAD یکی از آن پروتکل‌ها است که راحتی مدیریت با خطرات امنیتی جدی همراه است. درک این خطرات برای هر متخصص IT که با شبکه‌های شرکتی کار می‌کند، حیاتی است. چندین کلاس حمله از WPAD به عنوان وکتور برای شنود ترافیک استفاده می‌کنند.

سرقت نام WPAD

اگر دستگاهی به شبکه‌ای متصل شود که هیچ سرور WPAD قانونی وجود ندارد، اما یک مهاجم یک سرور DNS جعلی راه‌اندازی کند یا به درخواست‌های DHCP پاسخ دهد، او می‌تواند یک فایل PAC مخرب را به قربانی تحمیل کند. تمام درخواست‌های HTTP مرورگر از طریق پروکسی مهاجم خواهد رفت — این یک حمله کلاسیک "مرد میانه" (MITM) است. این موضوع به ویژه در شبکه‌های Wi-Fi عمومی خطرناک است.

DNS Rebinding از طریق WPAD

این حمله از این واقعیت استفاده می‌کند که مرورگر به فایل PAC اعتماد دارد و JavaScript را در آن اجرا می‌کند. یک فایل PAC مخرب می‌تواند از تابع dnsResolve() برای شناسایی شبکه داخلی استفاده کند: آدرس‌های IP را بررسی کند، پورت‌ها و خدمات باز را شناسایی کند. این موضوع مرورگر قربانی را به ابزاری برای اسکن زیرساخت شرکتی تبدیل می‌کند.

WPAD در شبکه‌های عمومی

دستگاه‌های با فعال‌سازی کشف خودکار پروکسی حتی در شبکه‌های عمومی — کافه‌ها، فرودگاه‌ها، هتل‌ها — به جستجوی سرور WPAD ادامه می‌دهند. اگر در دامنه سطح بالا یک رکورد wpad.com وجود داشته باشد (و چنین مواردی توسط محققان ثبت شده است)، مرورگر ممکن است فایل PAC را از یک سرور خارجی بارگذاری کند. به همین دلیل ICANN ثبت دامنه wpad.com را مسدود کرده است.

تهدید وکتور حمله اقدامات حفاظتی
MITM از طریق WPAD جعلی جعل DHCP/DNS DHCP Snooping، امضای DNS
شناسایی شبکه داخلی فایل PAC مخرب بررسی یکپارچگی PAC
نشت داده‌ها در شبکه‌های عمومی Wi-Fi عمومی غیرفعال کردن WPAD در خارج از دفتر
شنود اعتبارنامه‌ها پروکسی شنودگر HTTPS + HSTS در همه جا

چگونه از خود محافظت کنیم: توصیه‌های عملی

  • WPAD را فقط در جاهایی که ضروری است فعال کنید — بر روی دستگاه‌های شرکتی از طریق سیاست‌های گروهی (GPO)
  • از HTTPS برای توزیع فایل PAC استفاده کنید — این مانع از تغییر محتوا می‌شود
  • DHCP Snooping را در سوئیچ‌ها تنظیم کنید — محافظت در برابر سرورهای DHCP جعلی
  • درخواست‌های DNS wpad را در مرز مسدود کنید — تا دستگاه‌ها در شبکه‌های خارجی به دنبال WPAD نباشند
  • برای کارمندان دورکار WPAD را غیرفعال کنید از طریق سیاست‌های VPN یا GPO هنگام کار در خارج از دفتر
  • به درخواست‌های wpad.dat نظارت کنید — درخواست‌های غیرمنتظره می‌توانند نشانه‌ای از حمله باشند

WPAD در مقابل تنظیم دستی: مقایسه رویکردها

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

پارامتر WPAD تنظیم دستی GPO (سیاست‌های گروهی)
مقیاس‌پذیری ✅ عالی ❌ ضعیف ✅ عالی
پشتیبانی از دستگاه‌های غیر ویندوز ✅ بله ✅ بله ⚠️ فقط ویندوز
امنیت ⚠️ خطرات وجود دارد ✅ بالا ✅ بالا
انعطاف‌پذیری قوانین مسیریابی ✅ حداکثر ❌ خیر ⚠️ محدود
سرعت تغییر تنظیمات ✅ آنی ❌ به صورت دستی در هر رایانه ⚠️ در هنگام به‌روزرسانی بعدی GPO
عملکرد در خارج از شبکه شرکتی ⚠️ خطرات در شبکه‌های عمومی ✅ پایدار ✅ پایدار

استراتژی بهینه برای اکثر محیط‌های شرکتی — رویکرد ترکیبی: WPAD برای دستگاه‌های اداری در دامنه و تنظیم دستی اجباری (از طریق GPO یا MDM) برای لپ‌تاپ‌های کارمندان دورکار. این امر انعطاف‌پذیری مدیریت را بدون مصالحه در امنیت فراهم می‌کند.

همچنین باید در نظر داشته باشید که برای کارهایی که ناشناسی و قابلیت اطمینان مهم است — به عنوان مثال، هنگام کار با خدمات خارجی یا نظارت بر رقبا — پروکسی شرکتی از طریق WPAD ممکن است کافی نباشد. در چنین مواردی، معمولاً از پروکسی‌های مسکونی استفاده می‌شود که آدرس‌های IP واقعی کاربران خانگی را فراهم می‌کنند و خطر مسدود شدن توسط خدمات خارجی را به طور قابل توجهی کاهش می‌دهند.

جایگزین‌های WPAD برای شبکه‌های شرکتی

WPAD تنها راه برای مدیریت متمرکز تنظیمات پروکسی در شبکه شرکتی نیست. بسته به زیرساخت، اندازه شرکت و الزامات امنیتی، ممکن است رویکردهای دیگری نیز مناسب باشند. بیایید به بررسی اصلی‌ترین جایگزین‌ها بپردازیم.

1. توزیع مستقیم فایل PAC از طریق GPO

در محیط Active Directory می‌توان از سیاست‌های گروهی برای نصب اجباری URL فایل PAC در مرورگرهای Internet Explorer و Edge (از طریق تنظیمات نگهداری Internet Explorer یا الگوهای مدیریتی) استفاده کرد. مزیت این روش — کنترل کامل بر روی اینکه کدام دستگاه‌ها تنظیمات را دریافت می‌کنند، بدون خطرات حملات WPAD. معایب — فقط برای دستگاه‌های ویندوزی در دامنه کار می‌کند.

2. پروکسی شفاف (Transparent Proxy)

تجهیزات شبکه (روتر، فایروال) ترافیک HTTP/HTTPS را شنود کرده و آن را از طریق سرور پروکسی بدون نیاز به هرگونه تنظیم در دستگاه‌های کلاینت هدایت می‌کنند. کاربران و برنامه‌ها اصلاً از وجود پروکسی آگاه نیستند. این روش راحت است، اما نیاز به پشتیبانی از SSL Inspection برای ترافیک HTTPS دارد که نیازهای اضافی به زیرساخت PKI را به همراه دارد.

3. سیستم‌های MDM برای دستگاه‌های موبایل

برای گوشی‌های هوشمند و تبلت‌ها در iOS و Android، سیستم‌های مدیریت دستگاه‌های موبایل (MDM) — مانند Microsoft Intune، Jamf یا VMware Workspace ONE — به طور متمرکز اجازه می‌دهند تنظیمات پروکسی را پخش کنند. این روش برای دستگاه‌های موبایل که اغلب در خارج از شبکه شرکتی کار می‌کنند، مطمئن‌تر از WPAD است.

4. VPN شرکتی با مسیریابی اجباری

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

برای کارهایی که فراتر از زیرساخت شرکتی هستند — به عنوان مثال، زمانی که کارمندان بخش بازاریابی قیمت‌های رقبا را نظارت می‌کنند یا کمپین‌های تبلیغاتی را از مناطق مختلف آزمایش می‌کنند — ابزارهای شرکتی اغلب کافی نیستند. در چنین مواردی، معمولاً از پروکسی‌های دیتاسنتر برای کارهای سریع پارسینگ یا پروکسی‌های موبایل برای کار با شبکه‌های اجتماعی و پلتفرم‌های تبلیغاتی استفاده می‌شود.

چک‌لیست: چگونه رویکردی برای مدیریت پروکسی انتخاب کنیم

  • ✅ فقط دستگاه‌های ویندوزی در دامنه → GPO + فایل PAC
  • ✅ محیط مختلط (ویندوز + مک + لینوکس + موبایل) → WPAD + DHCP
  • ✅ نیازهای امنیتی بالا → پروکسی شفاف یا VPN
  • ✅ دستگاه‌های موبایل → MDM (Intune، Jamf)
  • ✅ کارمندان دورکار → VPN + مسیریابی اجباری
  • ✅ کار با خدمات خارجی، تبلیغات، پارسینگ → ارائه‌دهندگان پروکسی خارجی

نتیجه‌گیری

WPAD یک ابزار قدرتمند برای مدیریت متمرکز تنظیمات پروکسی در شبکه‌های شرکتی است. WPAD به درستی تنظیم شده از طریق DHCP و DNS مدیران سیستم را از نیاز به پیکربندی دستی هر دستگاه رها می‌کند و اجازه می‌دهد تغییرات به سرعت در تمام زیرساخت اعمال شود. کلید موفقیت در پیاده‌سازی — درک مکانیزم کار، پیکربندی صحیح فایل PAC و اقدامات امنیتی الزامی: DHCP Snooping، HTTPS برای توزیع PAC، مسدود کردن درخواست‌های WPAD در مرز شبکه.

مهم است که به یاد داشته باشید که WPAD وظیفه مسیریابی ترافیک در داخل شبکه شرکتی را انجام می‌دهد، اما جایگزین راه‌حل‌های پروکسی تخصصی برای کار با خدمات خارجی نمی‌شود. اگر تیم شما در حال نظارت بر رقبا، آزمایش تبلیغات از مناطق مختلف یا کار با بازارهای آنلاین است، توصیه می‌کنیم به طور اضافی به پروکسی‌های مسکونی فکر کنید — آنها آدرس‌های IP واقعی کاربران خانگی را فراهم می‌کنند و خطر مسدود شدن توسط پلتفرم‌های خارجی را به حداقل می‌رسانند.

```