سرور پراکسی یک کامپیوتر اختصاصی یا یک سیستم نرمافزاری است که روی کامپیوتری در حال اجرا میباشد. سرور پراکسی به عنوان یک میانجی بین یک دستگاه اندپوینت (endpoint) – مثلا یک کامپیوتر – و سروری دیگر که یک کاربر یا کلاینت دارد از آنجا درخواست سرویس میکند، عمل میکند. ممکن است در ماشینی، سرور پراکسی همان سرور فایروال هم باشد یا ممکن است در یک سرور جداگانه باشد و درخواستها را از طریق فایروال منتقل کند.
یکی از برتریهای سرور پراکسی این است که کش (حافظه پنهان) آن میتواند در خدمت همه کاربران باشد. اگر یک یا چند سایت اینترنتی مداوماً مورد درخواست باشند، به احتمال زیاد در کش پراکسی قرار خواهند گرفت و این امر زمان پاسخدهی کاربر را بهبود میبخشد. ضمناً پراکسی میتواند تعاملات خود را ثبت کند که این کار میتواند به هنگام اشکالیابی مفید واقع شود.
فهرست موضوعات مقاله
مثالی ساده از نحوه کار سرورهای پراکسی:
وقتی یک سرور پراکسی درخواستی درباره یک منبع اینترنتی (مثلا یک صفحه وب) دریافت میکند، به کش محلیِ صفحات قبلی خود نگاه میکند. اگر صفحه را آنجا بیابد، آن را بدون نیاز به انتقالِ درخواست به اینترنت، به کاربر برمیگرداند. اگر صفحه در کش یافت نشود، سرور پراکسی که مانند کلاینتی از طرف کاربر عمل میکند، از یکی از IP addressهای خود برای درخواست کردن صفحه از سرور اینترنت استفاده میکند. وقتی صفحه بازگردانده میشود، سرور پراکسی آن را به درخواست اصلی مرتبط کرده و به کاربر منتقلش میکند.
سرورهای پراکسی هم برای اهداف قانونی و هم برای اهداف غیرقانونی مورد استفاده قرار میگیرند. در تشکیلات اقتصادی، از سرور پراکسی برای تقویت امنیت، کنترل مدیریتی و سرویسهای کشینگ، و بسیاری کارهای دیگر، استفاده میشود. در زمینههای محاسبات شخصی، از سرورهای پراکسی برای محقق کردن حریم شخصی و جستجوی ناشناس استفاده میشود. سرورهای پراکسی برای اهداف کاملاً مخالف این نیز میتوانند استفاده شوند: نظارت بر ترافیک کاربران و تونل زدن به درون حریم شخصی آنها
سرور پراکسی برای کاربران نامرئی است؛ تمام درخواستهای اینترنتی و پاسخهای برگرداندهشده مستقیماً با سرور اینترنتی آدرسگذاریشده در ارتباطاند. (پراکسی در واقع نامرئی نیست، IP address آن باید به عنوان یک گزینه پیکرهبندی برای مرورگر یا برای سایر برنامههای پروتوکلی مشخص باشد.)
کاربران میتوانند به صورت آنلاین به پراکسیهای وب دسترسی پیدا کرده یا مرورگرهای وب را طوری پیکربندی کنند که دائماً از یک سرور پراکسی استفاده کنند. تنظیمات مرورگر شامل گزینههای خودکار تشخیصدادهشده یا گزینههای دستی است که برای پراکسیهای HTTP، SSL، FTP و SOCKS میباشند. یک سرور پراکسی میتواند به کاربران بسیار یا فقط به یک کاربر خدمات بدهد. این گزینهها به ترتیب پراکسیهای Shared and dedicated proxies نام دارند. در دستهبندیهای مشترک، اغلب برای استفاده از پراکسیها شماری علتهای متفاوت و در نتیجه شماری از انواع سرورهای پراکسی مختلف وجود دارد.
سرورهای پراکسی Forward (انتقال) و reverse (معکوس)
پراکسیهای انتقال درخواستهای یک کلاینت را به یکی از سرورهای وب ارسال میکنند. کاربران میتوانند برای دسترسی به پراکسیهای انتقال مستقیماً به یک آدرس پراکسی وب مراجعه کرده یا تنظیمات اینترنت خود را در این راستا پیکربندی کنند. پراکسیهای انتقال، پیشدستی فایروالها و افزایش حریم شخصی و امنیت کاربر را ممکن میکنند اما گاقی اوقات برای دانلود موارد غیر قانونی همچون موارد شامل کپیرایت یا پورنوگرافی کودکان نیز استفاده میشوند.
پراکسیهای معکوس به صورت شفاف در سرورهای مقصد درخواست منابع را بدون نیاز به اینکه از سوی درخواستدهنده کاری انجام شود، اداره میکنند.
از پراکسیهای معکوس برای موارد زیر استفاده میشود:
- فعال کردن دسترسی غیر مستقیم هنگامی که وبسایتی اتصال مستقیم را به خاطر یک معیار امنیتی غیر مجاز میداند.
- ممکن کردن توازن زمان بارگذاری بین سرورها.
- استریم کردن محتوای داخلی به کاربران اینترنت.
- غیرفعال کردن دسترسی به یک سایت، مثلا برای وقتی که یک ISP (خدماتدهنده اینترنت) یا دولت میخواهد وبسایتی را مسدود کند.
سایتها ممکن است به خاطر دلایل کم و بیش قانونی مسدود شوند. پراکسیهای معکوس برای جلوگیری از دسترسی به محتوای غیر اخلاقی، غیر قانونی یا محتوای شامل کپیرایت استفاده میشوند. گاهی اوقات این دلایل قابل توجیه هستند اما گاهی اوقات نیز توجیهات آوردهشده مشکوک میباشند. پراکسیهای معکوس بعضی وقتها جلوی دسترسی به سایتهای خبری را که کاربران میتوانند در آنجا اطلاعات لو رفتهای را مشاهده کنند، میگیرند. ضمناً قادرند جلوی کاربران را از دسترسی به سایتهایی که در آنجا میتوانند اطلاعات دولتی یا اعمال صنایع را فاش کنند، بگیرند. مسدود کردن دسترسی به چنین سایتهایی میتواند نقض حق آزادی کلام باشد.
انواع دیگر پراکسی
پراکسیهای شفاف (Transparent) معمولا اطراف خروجی یک شبکهی صنفی یافت میشوند. این پراکسیها ترافیک شبکه را مترمکز میکنند. در شبکههای صنفی، سرور پراکسی با سرور مسیر دریچه (gateway) که شبکه را از شبکههای خارجی (معمولاً اینترنت) جدا میکند و فایروالی که از شبکه در مقابل تجاوز بیرونی محافظت کرده و امکان اسکن کردن دادهها را برای اهداف امنیتی – قبل از تحویل آنها به کلاینت منتظر در شبکه – فراهم میکند، در ارتباط است (یا بخشی از آنها میباشد). از آنجایی که کامپیوترهای یک شبکه صنفی معمولاً دستگاههای ایمنی هستند که برای انجام امور عادی احتیاجی به ناشناس بودن ندارند، این پراکسیها در نظارت و مدیریت ترافیک شبکه کارآمد هستند.
پراکسیهای ناشناس (Anonymous) آدرس آیپیِ کلاینتی را که دارد از آنها استفاده میکند پنهان کرده و به وی امکان میدهند به مواردی که با فایروالها مسدود شدهاند دسترسی پیدا کرده یا مسدودیتهای IP address را دور بزند. این پراکسیها برای تقویت حریم شخصی و/یا برای حفاظت در مقابل حملات استفاده میشوند.
پراکسیهای فوق ناشناس (Highly anonymous) حتی این امر که کلاینتی دارد از آنها استفاده میکند را هم مخفی کرده و یک IP address عمومیِ فاقد پراکسی به نمایش میگذارند. بنابراین این پراکسیها نه تنها IP address کلاینتی را که دارد از آنها استفاده میکند مخفی میکنند، بلکه امکان دسترسی به سایتهایی را که ممکن است سرورهای پراکسیدار را مسدود کنند نیز فراهم میکند. نمونههایی از پراکسیهای فوق ناشناس I2P و TOR میباشند.
پراکسیهای ساکس 4 و ساکس 5 (Socks) برای دادههای پروتکل دادهنگار کاربر (UDP؛ مخفف User Datagram Protocol) و عملیاتهای جستجوی ساناد (سامانهی نامِ دامنه، DNS) – علاوه بر ترافیک وب – سرویس پراکسی فراهم میکنند. بعضی سرورهای پراکسی هر دو پروتکل ساکس را ارائه میدهند.
پراکسیهای DNS درخواستهای سرویس نام دامنه (DNS) را از شبکههای LAN به سرورهای DNS اینترنت ارسال میکنند و در همین حین به منظور بالا بردن سرعت اقدام به کش کردن (تهیه حافظهی پنهان) میکنند.
هک کردن پراکسی
در هک کردن یک پراکسی، مهاجم در لیست موتور جستجو و صفحات نتایج جستجو اقدام به دزدیدن هیتهای وب (پاسخهای برگرداندهشده از سوی وب که در حال بازبینیاند) از یک صفحه وب معتبر میکند. هکر پراکسی یا یک سایت شیادانه دارد که از سایت اصلی تقلید میکند یا هر چیز دیگری که هوس کند به کلاینت درخواستکننده صفحه مورد نظرش نشان دهد.
نحوه کار آن بدین صورت است: مهاجم روی سرور پراکسی یک کپی از وب پیج هدف میسازد و از روشهایی چون بمباران کلمهی کلیدی (Keyword stuffing) و لینک کردن به صفحه کپیشده از سایتهای بیرونی استفاده میکند تا به طور مصنوعی رتبهبندی موتور جستجویش را بالا ببرد. صفحه معتبر رتبه پایینتری خواهد گرفت و ممکن است به عنوان محتوای تکراری (duplicated content) دیده شود که در مواردی موتور جستجو ممکن است آن را از فهرست خود حذف کند.
این نوع هک کردن میتواند در تحویل صفحات دارای سوء نیت به کاربر نیز استفاده شود. هک کردن پراکسی میتواند کاربران را به سایتهای بانکداری تقلبی، مثلا به منظور دزدیدن اطلاعات حساب که بعداً میتوانند فروخته شده یا به منظور دزیدن موجودی از آن حساب استفاده شوند، هدایت کند. مهاجم ضمناً میتواند از هک کردن برای هدایت کاربران به سایتهای آلودهکننده سختافزاری استفاده کند و دستگاههایشان را به خاطر انواع و اقسام اهداف نادرست به خطر بیاندازد.
یک سری روشهای برای تحتالشعاع قرار دادن تواناییهای پراکسیها ساخته شدهاند. به خصوص برنامههای Java و Flash، Javascript، Active X و برخی پلاگینهای مروگری دیگر میتوانند برای آشکار کردن هویت استفادهکننده پراکسی مورد استفاده قرار گیرند. بنابراین پراکسیها بهتر است در سایتهای غیر مطمئن یا هر جایی که ناشناس بودن اهمیت دارد، استفاده نشوند.
صاحبان وبسایتهایی که شک کردهاند قربانی هک پراکسی بودهاند میتوانند این فرضیه را با جستجوی عبارتی که تقریباً و منحصراً برای سایت قابل شناسایی است بررسی کنند. سایت آنها باید در صفحه نتایج موتور جستجو (SERP) برجسته باشد. اگر سایت دومی با همان محتوا ظاهر شد ممکن است یک صفحه پراکسی باشد.
امنیت سرور پراکسی
سرورهای پراکسی در شکلهای بسیاری امنیت را افزایش میدهند اما مانند بسیاری چیزها در دنیای کامپیوتر، خودشان ممکن است آسیبپذیر باشند. برای جلوگیری از وقوع حملات داس (Dos) و نفوذ به شبکه، مدیران باید نرمافزارشان را بروز نگه دارند، از متعادل کردن بارگذاری (لودینگ) استفاده ببرند، اختیارات و اعتبارات ایمن را به اجرا درآورند و ترافیک ناخواسته و همچنین پراکسیهای باز و مخرب را مسدود کنند.