ProxynetProxynet

پروکسی و فایروال: تفاوت در چیست؟

تاریخ انتشار:

13 دقیقه مطالعه

Acar Diveroli
نویسنده: Acar Diveroli
ترافیکی که از مکعب آبی پروکسی خارج می‌شود و به فایروالی آجری با سپری بر فراز آن می‌رسد

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

در این نوشته فایروال و پروکسی را جداگانه تعریف می‌کنیم، نشان می‌دهیم هر کدام در کدام لایه شبکه کار می‌کند و مفهوم «پروکسی فایروال» را که محل هم‌پوشانی این دوست توضیح می‌دهیم. سپس می‌بینیم ترافیک در شبکه سازمانی چگونه از هر دو لایه می‌گذرد، کاربران پروکسی به دلیل فایروال با چه مشکلات اتصالی روبه‌رو می‌شوند و برای هر نیاز کدام لازم است.

فایروال چیست؟

فایروال سامانه‌ای است که ترافیک ورودی و خروجی شبکه را بر پایه قواعد از پیش تعریف‌شده بررسی می‌کند. می‌تواند دستگاه سخت‌افزاری، نرم‌افزار درون سیستم‌عامل یا سرویس ابری باشد. Windows Defender Firewall، nftables در لینوکس و دستگاه‌های ویژه در شبکه‌های سازمانی همین کار را در مقیاس‌های مختلف انجام می‌دهند.

یک قاعده فایروال در اصل می‌پرسد: بسته از کجا می‌آید، به کجا می‌رود، از کدام پروتکل و پورت استفاده می‌کند و آیا بخشی از اتصال موجود است؟ بسته به پاسخ، بسته عبور می‌کند، دور ریخته می‌شود یا رد می‌شود.

انواع فایروال در عمق نگاه به ترافیک با هم فرق دارند. راهنمای ⁦SP 800-41 Rev. 1⁩ از NIST آن‌ها را چنین دسته‌بندی می‌کند:

  • فیلتر بسته: هر بسته را جداگانه بر اساس آدرس مبدأ و مقصد، پروتکل و پورت ارزیابی می‌کند.
  • فایروال با بازرسی وضعیت: جدولی از اتصال‌های باز نگه می‌دارد. پاسخ اتصالی را که از داخل آغاز شده می‌پذیرد و بسته‌های ناخواسته از بیرون را رد می‌کند.
  • فایروال لایه برنامه: درون ترافیک را نگاه می‌کند؛ می‌تواند متد یک درخواست HTTP یا قالب یک پرس‌وجوی DNS را بررسی کند.
  • دروازه پروکسی برنامه: اتصال میان کلاینت و سرور را دو نیم می‌کند و ترافیک را خودش ارسال می‌کند. این نوع همان جایی است که فایروال و پروکسی هم‌پوشانی دارند.

پروکسی چیست؟

پروکسی سرور واسطه‌ای است که درخواست کلاینت را می‌گیرد و از طرف خودش به سرور مقصد می‌فرستد. سایت مقصد درخواست را از IP پروکسی می‌بیند. کلاینت پروکسی را خودش تنظیم می‌کند یا مدیر شبکه ترافیک را به‌صورت شفاف به آن هدایت می‌کند. سازوکار پایه را در سرور پروکسی چیست و چگونه کار می‌کند؟ مفصل توضیح داده‌ایم.

بنیادی‌ترین تفاوت با فایروال این است: فایروال در مسیر یک اتصال موجود می‌نشیند و بسته‌ها را عبور می‌دهد یا متوقف می‌کند. پروکسی دو اتصال جداگانه برقرار می‌کند: یکی با کلاینت و یکی با مقصد. هیچ‌گاه اتصال مستقیمی میان کلاینت و مقصد وجود ندارد.

پروکسی دو جهت دارد: فوروارد پروکسی که نماینده کاربران داخلی در راه اینترنت است و ریورس پروکسی که جلوی یک سایت می‌نشیند و نماینده سرورهای آن است. این دو را در فوروارد پروکسی و ریورس پروکسی مقایسه کرده‌ایم.

تفاوت اصلی: فیلتر کردن یا واسطه شدن؟

ساده‌ترین راه تمایز دو لایه این است که ببینیم هر کدام در مسیر درخواست چه می‌کند.

وقتی کارمندی می‌خواهد به example.com وصل شود:

  • فقط با فایروال: رایانه کارمند مستقیم به سرور example.com وصل می‌شود. فایروال بررسی می‌کند اتصال با قواعد جور است یا نه و اگر باشد، بسته‌ها را بدون تغییر عبور می‌دهد. سایت مقصد IP عمومی شرکت را پس از NAT می‌بیند.
  • با پروکسی: رایانه کارمند به پروکسی وصل می‌شود. پروکسی درخواست را می‌گیرد، سیاست دسترسی را بررسی می‌کند و اگر مجاز باشد، اتصال خودش را با example.com باز می‌کند. سایت مقصد IP پروکسی را می‌بیند؛ رایانه کارمند هرگز مستقیم با اینترنت حرف نمی‌زند.
معیارفایروالپروکسی
کار اصلیمجاز یا مسدود کردن ترافیکارسال ترافیک از طرف کلاینت
ساختار اتصالیک اتصال، فیلترشده در مسیردو اتصال جداگانه برقرار می‌کند
لایه کاریمعمولاً شبکه و انتقال (L3 و L4)برنامه (L7) یا نشست
به چه نگاه می‌کندآدرس IP، پورت، پروتکل، وضعیت اتصالدامنه، URL، متد HTTP، کاربر
IP دیده‌شده توسط مقصدIP عمومی شرکت (NAT)IP پروکسی
ترافیک تحت پوششهمه پروتکل‌هاپروتکل‌های پشتیبانی‌شده (HTTP، SOCKS و غیره)
قاعده بر اساس کاربرمحدودرایج (با احراز هویت)
کشندارددر HTTP رمزنگاری‌نشده ممکن است
جزئیات لاگدر سطح اتصالدر سطح درخواست (URL، کاربر)
پیکربندی کلاینتلازم نیستدر پروکسی صریح لازم، در پروکسی شفاف نه

در کدام لایه کار می‌کنند؟

ترافیک شبکه به‌صورت لایه‌ای فهم می‌شود. تفاوت فایروال و پروکسی وقتی روشن‌تر می‌شود که ببینیم هر کدام تصمیم را در کدام لایه می‌گیرد.

لایهاطلاعات حمل‌شدهمؤلفه فعال در آن
L3 شبکهآدرس‌های IPفایروال فیلتر بسته
L4 انتقالپورت‌های TCP و UDP، وضعیت اتصالفایروال با وضعیت، پروکسی SOCKS5
L7 برنامهدامنه، URL، هدرهای HTTP، کاربرپروکسی HTTP، فایروال برنامه، WAF

پیامد عملی این جدول: فایروال فیلتر بسته می‌تواند بگوید «ترافیک به پورت 443 مجاز است»، اما نمی‌داند این ترافیک به سایت خبری می‌رود یا به سرویس اشتراک فایل. پروکسی HTTP می‌بیند درخواست به کدام دامنه است و می‌تواند بر همان اساس تصمیم بگیرد. پروکسی SOCKS5 میان این دوست: آدرس و پورت مقصد را می‌داند اما به محتوا نگاه نمی‌کند. سازوکار SOCKS را در پروکسی SOCKS5: چطور کار می‌کند و چه فرقی دارد توضیح داده‌ایم.

فایروال‌های نسل جدید (NGFW) این مرز را کم‌رنگ می‌کنند: افزون بر فیلتر بسته، قابلیت‌های لایه بالاتر مانند شناسایی برنامه، قاعده بر اساس کاربر و تشخیص نفوذ دارند. با این حال معماری پایه همان است؛ ترافیک را در مسیر بازرسی می‌کنند بی‌آنکه آن را ارسال کنند.

پروکسی فایروال (دروازه لایه برنامه) چیست؟

پروکسی فایروال نوعی فایروال است که به‌جای فقط فیلتر کردن ترافیک، آن را همچون پروکسی دو نیم می‌کند. در منابع انگلیسی «application-level gateway» یا «application proxy gateway» نامیده می‌شود.

کارکرد آن چنین است:

  1. کلاینتی در شبکه داخلی می‌خواهد به سروری بیرونی وصل شود؛ اتصال در پروکسی فایروال پایان می‌یابد.
  2. پروکسی فایروال درخواست را در سطح پروتکل برنامه می‌خواند و بر پایه سیاست ارزیابی می‌کند.
  3. اگر درخواست مجاز باشد، از طرف خودش اتصال تازه‌ای با مقصد باز می‌کند.
  4. پاسخ مقصد را هم به همان شیوه بازرسی می‌کند و به کلاینت می‌رساند.

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

این فکر که چنین دروازه‌هایی نباید رفتار مورد انتظار پروتکل‌ها را بشکنند، در ⁦RFC 2979⁩ از هیئت معماری اینترنت هم آمده است: فایروال نباید رفتار عادی برنامه‌ها را در ترافیکی که مجاز می‌داند تغییر دهد.

فایروال برنامه وب (WAF) همتای سمت سرور همین فکر است. همچون ریورس پروکسی جلوی سایت کار می‌کند و درخواست‌های HTTP ورودی را بر پایه قواعدی مانند تزریق SQL، هدرهای بدساخت یا محدودیت نرخ بازرسی می‌کند.

ترافیک HTTPS در این لایه‌ها چگونه دیده می‌شود؟

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

  • فایروال در handshake مربوط به TLS یک اتصال HTTPS، IP مقصد، پورت و نام سرور (SNI) را می‌بیند. محتوا را نمی‌بیند.
  • فوروارد پروکسی با پیکربندی صریح دامنه را از درخواست CONNECT example.com:443 می‌بیند و سپس بایت‌های رمزنگاری‌شده را جابه‌جا می‌کند. بقیه URL و محتوا را نمی‌بیند.
  • پروکسی سازمانی با بازرسی TLS اتصال را با گواهی خودش پایان می‌دهد، محتوا را رمزگشایی و بازرسی می‌کند و دوباره به سوی مقصد رمزنگاری می‌کند. برای کار کردن آن، مرجع صدور گواهی شرکت باید روی رایانه‌های کارکنان نصب باشد.

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

در شبکه سازمانی چگونه با هم به کار می‌روند؟

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

  1. رایانه کارمند: مرورگر تنظیم پروکسی سیستم‌عامل یا فایل پیکربندی خودکار شبکه را می‌خواند. اینکه در ویندوز این تنظیمات از کجا خوانده می‌شود در تنظیم پروکسی در ویندوز و کروم آمده است.
  2. فایروال داخلی: به کلاینت‌ها فقط اجازه خروج به سوی سرور پروکسی را می‌دهد؛ اتصال‌هایی را که مستقیم به اینترنت می‌روند مسدود می‌کند.
  3. فوروارد پروکسی: کاربر را احراز هویت می‌کند، سیاست دامنه را اعمال می‌کند، درخواست را ثبت می‌کند و در صورت لزوم بازرسی TLS انجام می‌دهد.
  4. فایروال بیرونی: فقط به سرور پروکسی اجازه رسیدن به اینترنت می‌دهد؛ اتصال‌های ورودی ناخواسته را رد می‌کند.
  5. اینترنت: سایت مقصد درخواست را از IP خروجی پروکسی می‌بیند.

در این ساختار دو لایه مکمل یکدیگرند. فایروال نمی‌گذارد پروکسی دور زده شود: حتی اگر کارمند تنظیم پروکسی مرورگر را خاموش کند، نمی‌تواند مستقیم به اینترنت برسد. پروکسی جزئیاتی را می‌افزاید که فایروال نمی‌بیند: کدام کاربر، کی و به کدام دامنه رفته است.

در سمت سرور ترتیب برعکس است: اینترنت ← فایروال بیرونی ← WAF یا ریورس پروکسی ← فایروال داخلی ← سرور برنامه. سناریوهای حفاظت از داده سازمانی در صفحه راه‌حل امنیت داده آمده است.

آیا فایروال می‌تواند اتصال پروکسی را مسدود کند؟

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

  • اتصال به پورت پروکسی timeout می‌شود. فایروال شبکه سازمانی یا مدرسه ممکن است ترافیک خروجی را فقط به پورت‌های 80 و 443 مجاز بداند. اگر پروکسی شما روی پورت دیگری مانند 8000 کار کند، اتصال هرگز برقرار نمی‌شود. از ارائه‌دهنده بپرسید پورت جایگزین دارد یا نه، یا با مدیر شبکه صحبت کنید.
  • اتصال باز می‌شود اما بی‌درنگ قطع می‌شود. فایروال لایه برنامه ممکن است پروتکل پروکسی را بشناسد و بر پایه سیاست آن را ببندد.
  • در ویندوز فقط یک برنامه وصل نمی‌شود. قاعده خروجی در فایروال محلی ممکن است دسترسی آن برنامه به شبکه را مسدود کرده باشد. آزمودن همان پروکسی با cURL نشان می‌دهد مشکل در برنامه است یا در شبکه.
  • SOCKS5 کار می‌کند اما ترافیک UDP عبور نمی‌کند. فایروال ممکن است UDP خروجی را محدود کرده باشد؛ برنامه‌هایی مانند بازی و تماس صوتی متأثر می‌شوند.

برای بررسی سریع اینکه پورت پروکسی از شبکه شما در دسترس است یا نه:

bash
# Linux / macOS
nc -vz pr.proxynet.io 8000

# Windows PowerShell
Test-NetConnection pr.proxynet.io -Port 8000

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

تفاوت پروکسی، VPN و فایروال

چون این سه مفهوم با هم اشتباه گرفته می‌شوند، آن‌ها را کنار هم می‌گذاریم:

  • فایروال ترافیک را ارسال نمی‌کند؛ بر پایه قواعد آن را عبور می‌دهد یا متوقف می‌کند.
  • پروکسی ترافیک برنامه‌های مشخص را با آدرس IP خودش ارسال می‌کند؛ خودش چیزی را رمزنگاری نمی‌کند.
  • VPN همه ترافیک دستگاه را در تونلی رمزنگاری‌شده به سرور دیگری می‌برد و از آنجا خارج می‌کند.

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

شبکه سازمانی به کدام نیاز دارد؟

هر شبکه‌ای به فایروال نیاز دارد؛ وصل کردن شبکه به اینترنت بدون فایروال روال پذیرفته‌ای نیست. پروکسی زمانی افزوده می‌شود که نیازهای مشخصی پدید آید.

راهنمای انتخاب

نیاز شماپیشنهاد
مسدود کردن اتصال‌های ورودی ناخواستهفایروال
بستن پورت‌ها یا پروتکل‌های مشخصفایروال
ثبت اینکه کارکنان به تفکیک کاربر به کدام سایت‌ها می‌روندفوروارد پروکسی
اعمال سیاست دسترسی بر اساس دامنهفوروارد پروکسی یا فایروال برنامه
جلوگیری از دور زدن تنظیم پروکسی توسط کاربرانفایروال همراه فوروارد پروکسی
محافظت از برنامه وب در برابر حملهWAF (ریورس پروکسی)
ارسال درخواست از آدرس IP و موقعیت دیگرخدمات فوروارد پروکسی
رمزنگاری همه ترافیک دستگاهVPN

پرسش‌های متداول

آیا پروکسی می‌تواند جایگزین فایروال شود؟

نه. پروکسی فقط ترافیکی را می‌بیند که به آن فرستاده شده و از پروتکلی که پشتیبانی می‌کند استفاده کند. پروتکل‌های دیگر و اتصال‌های ورودی بیرون از دسترس آن است. محافظت از کل شبکه به فایروال نیاز دارد.

آیا فایروال آدرس IP مرا پنهان می‌کند؟

نه. فایروال‌های سازمانی معمولاً NAT انجام می‌دهند و رایانه‌های شبکه داخلی با IP عمومی شرکت خارج می‌شوند؛ اما آن آدرس متعلق به شرکت است و شما را به شبکه آن پیوند می‌دهد. دیده شدن از IP و موقعیت دیگر کار پروکسی است.

پروکسی شفاف چیست؟

ساختاری است که در آن دستگاه‌های شبکه ترافیک را بدون هیچ پیکربندی در کلاینت، خودکار به پروکسی هدایت می‌کنند. ممکن است کاربر از وجود پروکسی خبر نداشته باشد. در شبکه مدرسه‌ها و هتل‌ها رایج است.

آیا WAF همان فایروال است؟

نه. فایروال شبکه در سطح آدرس IP، پورت و اتصال کار می‌کند. WAF فقط بر ترافیک وب تمرکز دارد، همچون ریورس پروکسی جلوی سایت می‌نشیند و محتوای درخواست‌های HTTP را بازرسی می‌کند.

آیا برای استفاده شخصی به هم پروکسی و هم فایروال نیاز دارم؟

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

کدام پروتکل پروکسی راحت‌تر از فایروال می‌گذرد؟

عامل تعیین‌کننده پورت است، نه پروتکل. شبکه‌های محدود اغلب ترافیک خروجی را فقط به پورت‌های 80 و 443 مجاز می‌دانند. هنگام استفاده از پروکسی HTTPS برای ترافیک وب یا پروکسی SOCKS5 برای ترافیک برنامه‌ها، ابتدا بررسی کنید شبکه شما اتصال خروجی به پورت پروکسی را مجاز می‌داند.

خلاصه

فایروال ترافیک را بر پایه قواعد عبور می‌دهد یا متوقف می‌کند؛ پروکسی ترافیک را با اتصال و آدرس IP خودش از طرف کلاینت ارسال می‌کند. فایروال بیشتر در لایه‌های شبکه و انتقال و پروکسی در لایه برنامه تصمیم می‌گیرد. پروکسی فایروال‌ها و WAFها دو فکر را ترکیب می‌کنند. در شبکه‌های سازمانی فایروال نمی‌گذارد پروکسی دور زده شود و پروکسی جزئیات کاربر و دامنه را که فایروال نمی‌بیند می‌افزاید. برای ارسال درخواست‌هایتان از آدرس‌های IP و موقعیت‌های گوناگون، نگاهی به خدمات پروکسی ما بیندازید.

پرسش از ChatGPTپرسش از Claude