مفهوم پروکسی سرور و نحوه کار آن
پروکسی چیست؟
پروکسی در لغت به معنای “وکیل” و “به نیابت کسی کاری را انجام دادن” است. در دنیای اینترنت پروکسی به کامپیوتری گفته میشود که به سایر کامپیوترها اجازه میدهد تا از طریق آن با مقصدشان یک ارتباط غیر مستقیم برقرار کنند.
بیایید این مطلب را با یک مثال ساده بیشتر توضیح دهیم. فرض کنید شما در یک اداره کار میکنید. هر اتاق این اداره یک خط تلفنن دارد که به تلفنخانه مرکزی اداره وصل است. حال اگر شما بخواهید از اداره به منزلتان زنگ بزنید لازم است یک شماره (مثلا ٩) را بگیرید و بعد از تلفنچی اداره بخواهید که شماره تلفن منزلتان را گرفته و به شما وصل کند. نقش تلفنخانه و تلفنچی در این مثال دقیقا مانند نقش پروکسی در اینترنت است. وقتی کامپیوتری از طریق پروکسی به اینترنت وصل است و میخواهد به یک فایل دسترسی پیدا کند، ابتدا درخواستش را به پروکسی میفرستد. سپس پروکسی به کامپیوتر مقصد متصل شده و فایل درخواستی را دریافت میکند و بعد آن را برای کامپیوتر درخواست کننده میفرستد.این شکل ارتباط مستقیم بین کامپیوترهای سرویس دهنده و سرویس گیرنده را نمایش میدهد.این شکل ارتباط از طریق پروکسی را نشان میدهد. همانطور که می بینید عملا هیچ ارتباط مستقیمی بین کامپیوتر سرویس دهنده و کامپیوتر سرویس گیرنده وجود ندارد .
همانطور که می بینید پروکسی در اینجا به عنوان یک واسطه عمل میکند و عملا هیچ ارتباط مستقیمی بین کامپیوترهای سرویس دهنده و سرویس گیرنده وجود ندارد. حال ممکن است برایتان این سوال پیش آید که کاربرد پروکسی چیست و چرا گاهی از آن استفاده میشود.
پاسخ این است که برای استفاده از پروکسی دلایل زیادی وجود دارد که در زیر به مهمترین انها اشاره می کنیم:
بالا بردن امنیت شبکه:
گاهی مدیران شبکه برای بالا بردن امنیت شبکه شان و حفاظت کاربران در برابر هکرها از پروکسی استفاده میکنند. در اینن حالت به جای این که تک تک کاربران مستقیما به اینترنت متصل شوند، همگی از طریق یک پروکسی به اینترنت وصل میشوند. به این ترتیب مدیر شبکه می تواند با نصب فایروال و سایر نرم افزارهای امنیتی و با نظارت بر پروکسی از کل شبکه تحت مدیریتش محافظت کند.
اعمال محدودیت بر کاربران:
گاهی علت استفاده مدیران شبکه از پروکسی، اعمال محدودیت بر کاربران است. البته توجه کنید که اعمال محدودیت، صرفا بهه معنی فیلترینگ یا سانسور نیست بلکه ممکن است مدیر شبکه فقط استفاده از برخی نرم افزارها (مانند چت) را برای کاربرانش ممنوع کند.
کش کردن (Caching):
یکی از کاربردها مهم پروکسی انجام کش است. کش به یک نسخه بایگانی شده از محتویات اینترنت بر روی پروکسی گویند.. فرض کنید در شبکه ای که از پروکسی ایستفاده میکند چند صد کاربر وجود دارد. حال یکی از این کاربران مخواهد اخبار سایت بی بی سی را بخواند، لذا درخواستی را به پروکسی فرستاده و پروکسی نیز صفحه مورد نظر را از سایت بی بی سی گرفته و برایش ارسال میکند. در اینجا پروکسی میتواند یک نسخه از این صفحه را بر روی هارد دیسکش ذخیره کند. حال اگر کاربر دیگری تقاضای همین صفحه را بکند دیگر لازم نیست پروکسی مجددا به سایت بی بی سی مراجعه کند، بلکه خیلی راحت نسخه ای که روی هارد دیسکش ذخیره شده را برای وی میفرستد. با انجام این کار هم به سرعت و کارایی شبکه اضافه میشود و هم از ترافیک و بار شبکه کاسته میگردد. البته انجام عمل کش، الگوریتم پیچیده ای دارد و پروکسی باید به نحوی این کار را انجام دهد تا از ارسال اطلاعات تاریخ گذشته اجتناب شود.
حفظ هویت:
علت استفاده بعضی کاربران از پروکسی، مخفی ماندن و شناسایی نشدن است، زیرا از دید کامپیوتر میزبان، آن کسی کهه تقاضای اطلاعات کرده پروکسی است نه کاربر. البته هر کس برای مخفی کاری دلایل خاص خود را دارد. ممکن است شما یک شخص معروف باشید و نخواهید کسی بفهمد که شما از چه سایتهایی بازدید کرده اید. حالت دیگر این است که یک هکر بخواهد به یک سیستم نفوذ کند و هیچ ردپایی از خود بجا نگذارد.
توجه داشته باشید که همه پروکسی ها برای مخفی کاری مناسب نیستند و از این نظر به دو دسته ناشناس (Anonymous) و غیر ناشناس (Non Anonymous) تقسیم میشوند. پروکسی های ناشناس، هویت فردی که ازشان استفاده میکند را حفظ میکنند در حالی که پروکسی های غیر ناشناس هویت (IP آدرس) کاربرشان را به کامپیوتر هدف اطلاع میدهند.
تحت نظر گرفتن و سرقت اطلاعات:
به مثالی که در اول این بحث آورده شد برگردید. همواره برای تلفنچی اداره این امکان وجود دارد که به مکالمات شما دزدکیی گوش دهد و از کارتان سر درآورد. عین همین مسئله برای پروکسی صادق است. گاهی یک سازمان امنیتی یا یک نهاد دولتی مثل FBI اقدام به ایجاد پروکسی عمومی میکند و سعی میکند با تحت نظر قرار دادن کسانی که از پروکسی آنها استفاده میکنند، اقدام به شناسایی هکرها و خرابکاران کند. گاهی نیز این هکرها و دزدان اینترنتی هستند که اقدام به ایجاد پروکسی میکنند و قصدشان این است تا با زیر نظر گرفتن کاربران، اطلاعات مهم آنها مثل شماره کارت اعتباری و پسوردها را سرقت کنند.
آدرس پروکسی:
آدرس پروکسی که قصد استفاده از آن را دارید نباید در لیست سیاه مخابرات باشد وگرنه کار نخواهد کرد. عملا این امکان برایی سانسور کنندگان وجود ندارد که آدرس تمام پروکسی ها را در لیست سیاهشان قرار دهند؛ چون هر روزه هزاران پروکسی شروع به کار میکنند و صدهها عدد نیز از ارائه سرویس باز می مانند. کنترل و شناسایی همه پروکسی ها برای سانسور کنندگان کاری غیر ممکن است.
پروکسی عمومی :
بسیاری از پروکسی ها توسط سازمانها و مؤسسات و برای ارائه خدمت به کاربران خودشان ایجاد شده اند. این دسته از پروکسی ها از ارائه سرویس به شما امتناع خواهند کرد. برای استفاده از گروهی دیگر از پروکسی ها ممکن است نیاز به پسورد داشته باشید. برای این که بتوانید از آنها استفاده کنید باید مشترکشان شوید و آبونمان بپردازید. خوب، اگر قصد پول خرج کردن ندارید تنها گزینه باقیمانده برایتان پروکسی های عمومی و پروکسی های حفاظت نشده هستند. پروکسی های حفاظت نشده در اصل متعلق به مؤسسات و سازمانها هستند و برای استفاده داخلی خودشان طراحی شده اند ولی به علت ضعف در مدیریت و پیکربندی، به افراد خارج از آن سازمان نیز سرویس میدهند. بدیهی است که عمر این پروکسی ها بسیار کوتاه می باشد و به محض این که صاحبان پروکسی به سوء استفاده از پروکسیشان پی ببرند آن را خواهند بست. پروکسی عمومی (Public Proxy) به پروکسی میگویند که برای استفاده رایگان عموم کاربران اینترنت طراحی شده است. عملا چنین پروکسی وجود ندارد؛ چرا که ایجاد و نگهداری یک پروکسی هزینه زیادی برای صاحب آن دارد و در مقابل هیچ منفعتی هم برای او به همراه ندارد (البته بجز وب پروکسی ها). بنابراین نسبت به پروکسی های عمومی به دیده احتیاط نگاه کنید، زیرا ممکن است متعلق به سازمانهای جاسوسی یا دزدان اینترنتی باشد. البته گاهی چنین پروکسی هایی از طرف سازمانهای مبارزه با سانسور هم راه اندازی می شوند.
ويژگی های پروكسی
ويژگی اول : با استفاده از Proxy Server مي توان از اكثر پروتكلهای موجود در شبكه های محلی در محدوده نرم افزارهای كاربردی در شبكه های LAN مرتبط با اينترنت استفاده كرد .
Proxy Server پروتكلهای پر كاربرد شبكه های محلی مانند IPX/SPX (مورد استفاده در شبكه های ناول) ، NETBEUI (مورد استفاده در شبكه های LAN با تعداد كاربران كم) و TCP/IP (مورد استفاده در شبكه هاي Intranet) را پشتيباني مي كند. با اين ترتيب برای اينكه بتوان از يك نرم افزار كاربردي شبكه LAN كه مثلا” با پروتكل IPX/SPX روي ناول نوشته شده ، روي اينترنت استفاده كرد نيازی نيست كه قسمتهاي مربوط به ارتباط با شبكه كه از Function Call هاي API استفاده كرده را به Function Call های TCP/IP تغيير داد بلكه Proxy Server خود اين تغييرات را انجام داده و مي توان به راحتي از نرم افزاری كه تا كنون تحت يك شبكه LAN با ناول كار می كرده است را در شبكه ای كه مستقيما” به اينترنت متصل است ، استفاده كرد .
همين ويژگی درباره سرويسهای اينترنت مانند , FTP , Telnet , Gopher , IRC RealAudio , Pop3 و . . . وجود دارد . به اين معنا كه هنگام پياده سازی برنامه با يك سرويس يا پروتكل خاص ، محدوديتی نبوده و كدي در برنامه برای ايجاد هماهنگی نوشته نمي شود .
ويژگي دوم : با Cache كردن اطلاعاتی كه بيشتر استفاده مي شوند و با بروز نگاه داشتن آنها ، قابليت سرويسهای اينترنت نمايان تر شده و مقدار قابل توجهی در پهنای باند ارتباطی صرفه جويی مي گردد.
ويژگي سوم : Proxy Server امكانات ويژه ای برای ايجاد امنيت در شبكه دارد . معمولا” در شبكه ها دو دسته امنيت اطلاعاتی مد نظر است . يكی آنكه همه كاربران شبكه نتوانند از همه سايتها استفاده كنند و ديگر آنكه هر كسي نتواند از روی اينترنت به اطلاعات شبكه دسترسی پيدا كند . با استفاده ازProxy Server نيازی نيست كه هر Client بطور مستقيم به اينترنت وصل شود در ضمن از دسترسی غيرمجاز به شبكه داخلی جلوگيری مي شود . همچنين مي توان با استفاده از SSL(Secure Sockets Layers) امكان رمز كردن داده ها را نيز فراهم آورد.
ويژگي چهارم : Proxy Server بعنوان نرم افزاری كه مي تواند با سيستم عامل شما مجتمع شود و همچنين با IIS(Internet Information Server) سازگار می باشد، استفاده می گردد.
خدمات Proxy Server
Proxy Server سه سرويس در اختيار كاربران خود قرار مي دهد:
1-Web Proxy Service : اين سرويس برای Web Publishing يا همان ايجاد Web Site های مختلف درشبكه LAN مفيد می باشد . براي اين منظور قابليت مهم Reverse Proxing در نظر گرفته شده است . Reverse Proxing امكان شبيه سازی محيط اينترنت درمحيط داخل مي باشد. به اين ترتيب فرد بدون ايجاد ارتباط فيزيكی با اينترنت مي تواند برنامه خود را همچنان كه در محيط اينترنت عمل خواهد كرد، تست كرده و مورد استفاده قرا دهد. اين قابليت در بالا بردن سرعت و كاهش هزينه توليد نرم افزارهای كاربردی تحت اينترنت موثر است.
2-Winsock Proxy Service : منظور، امكان استفاده از API Call های Winsock در Windows است . در Windows ، Function Call های مورد استفاده در سرويسهای اينترنت مانند Telnet ، FTP ، Gopher و . . . ، تحت عنوان Winsock Protocolss معرفی شده اند. در حقيقت برای استفاده از اين سرويسها در نرم افزارهای كاربردی نيازی نيست كه برنامه نويس چگونگی استفاده از اين سرويسها را پيش بيني كند.
3-Socks Proxy Service : اين سرويس، سرويس Socks 4.3a را پشتيبانی مي كند كه در واقع زير مجموعه ای از Winsock مي باشد و امكان استفاده از Http 1.02 و بالاتر را فراهم مي كند. به اين ترتيب مي توان در طراحی Website خارج از Firewall ،، Securityy ايجاد كرد.
معيارهای موثر در انتخاب Proxy Server
1- سخت افزار مورد نياز : براي هر چه بهتر شدن توانمنديهای Proxy Server ، بايد سخت افزار آن توانايی تحمل بار مورد انتظار را داشته باشد .
2- نوع رسانه فيزيكي براي ارتباط با اينترنت : راه حلهای مختلفی برای اتصال به شبكه اينترنت وجود دارد . ساده ترين راه ، استفاده از مودم و خطوط آنالوگ مي باشد . راه ديگر استفاده از ISDN و خطوط ديجيتال است كه هم احتياج به تبديل اطلاعاتت از آنالوگ به ديجيتال و برعكس در ارسال و دريافت اطلاعات ندارد و هم از سرعت بالاتری برخوردار است . روش ديگر استفاده از خط هاي T1/E1 با ظرفيت انتقال گيگا بايت می باشد .
* پيشنهاد می شود كه در شبكه های با كمتر از 250 كاربر از ISDN و از 250 كاربر به بالا از T1/E1 استفاده شود . ( البته در ايران به علت عدم وجود خطوط ISDN و كمبود خطوط T1/E1 اين استانداردها كمتر قابل پياده سازی هستند. )
3- هزينه ارتباط با اينترنت : دو عامل موثر در هزينه اتصال به اينترنت ، پهنای باند و مانايي ارتباط مي باشد . هر چه مرورگرهای اينترنتی بيشتر و زمان استفاده بيشتر باشد ، هزينه بالاتر خواهد بود . با توجه به اينكه Proxy Server می تواند با Caching اطلاعات اين موارد را بهبود بخشد ، بررسی اين عامل مي تواند در تعيين تعداد Proxy هاي مورد استفاده موثر باشد .
4- نوع و نحوه مديريت سايت :اين عامل نيز در تعيين تعداد Proxyها موثر است . مثلا” اگر در شبكه ای مشكل راهبري وجود داشته باشد ، با اضافه كردن تعداد Proxyها ، مشكل راهبری نيز بيشتر خواهد شد .
5- پروتكل هاي مورد استفاده :Proxy Server ها معمولا” از پروتكلهای TCP/IP و يا IPX/SPX براي ارتباط با Client ها استفاده مي كنند . بنابراين برای استفاده از Proxy بايد يكی از اين پروتكل ها را در شبكه استفاده كرد .
* پيشنهاد مي شود در شبكه های كوچك با توجه به تعداد كاربرها Proxy Server و Web Server روی يك كامپيوتر تعبيه شوند و در شبكه های متوسط يا بزرگ تعداد serverProxy ها بيش از يكي باشد .
انواع Proxy
تعدادی از انواع Proxy Server ها به قرار ذیل می باشند :
cache Proxy: جهت caching اطلاعات .
web Proxy: جهت جلوگیری از نفوذ Hacker ها و هم چنین تغییر فرمت webpage ها .
Access control Proxy: جهت ضبط اطلاعات و عملکرد کاربران در شبکه های محلی.
Anonymizing Proxy:جهت مخفی نگه داشتن اطلاعات کاربر متقاضی اطلاعات .
Hostile Proxy: معمولا توسط نفوذگران به صورت یک نرم افزار در سرور نصب می شود تا نسبت به شنود کلیه فعالیت هایی کاربران برای نصب کننده آن اقدام کند.
Transparent Proxy: به Proxy هایی گفته می شود که از دید user در شبکه وجود ندارد ، در حالی که وجود داشته و نسبتت به انجام اعمال محول شده اقدام می کند.
Non-trans Proxy,Open Proxy ,Spilet Proxy ,Reverse Proxyو …انواع دیگر Proxy می باشند که در فرصتی دیگر به معرفیی آنها خواهیم پرداخت .
نحوه کار Proxy
همان طور که از تعریف انواع Proxy ها می توانید حدس بزنید ،ف ی ل ت ر شکن ها در واقع نوعی Anonymizing Proxy هستند که اطلاعات مورد نظر شما را از چشم ف ی ل ت ر به دور نگه می دارند.
هنگامی که شما در محل آدرس مرورگر خود ، آدرس سایتی را وارد می کنید و یا در قسمت search یک موتور جستجو ، کلمه ای را تایپ می کنید ، این در خواست تبدیل به یک packet شده و برای ارسال به سمت ISP و از آنجا به سمت سرور اصلی مورد نظر شما آماده می شود.هم چنین پس از رسیدن packet به دست ISP تان ، سرور ف ی ل ت رینگ موجود در ISP با خواندن محتویات آن ، ازقصد و منظور شما مطلع شده و اجازه و یا عدم اجازه عبور را صادر می کند .
هنگامی که به طور عادی نسبت به وارد کردن کلمه و یا سایتی که فیلتر شده است اقدام می کنید ، سرور فیلتر متوجه غیرر مجاز بودن درخواست شما شده و پیغام Access Denide را برای شما ارسال می کند .اما اگر از یک سرور Proxy استفاده کنید ،موارد زیر اتفاق می افتد :
ابتدا شما در Address Bar مرورگر ،آدرس Proxy Server مورد نظرتان را وارد می کنید .
Home Page سرور Proxy ظاهر شده و از شما می خواهد که آدرس واقعی مورد نظرتان را وارد کنید .
با وارد کردن آدرس مورد نظر در Proxy ، کلمات واردشده از حالت معمول به حالت کد شده تبدیل شده و به سمت سرور Proxyy ارسال می شود.
سرور Proxy که شما به آن وصل شده اید ،با بازیابی اطلاعات کد شده ،متوجه می شود که با کدام سرور کاردارید .
تقاضای شما از طریق Proxy برای سرور مورد نظرتان ارسال می شود.
اطلاعات مورد نظر شما از سرور اصلی به سمت Proxy ارسال می شود.
سرور Proxy اطلاعات دریافتی را کد کرده و برای شما ارسال می کند .
و به این ترتیب چه در مسیر رفت (ارسال تقاضا) و چه در مسیر برگشت (دریافت اطلاعات)،فیلتر موجوددر ISP متوجه نخواهد شدد که شما تقاضای دریافت چه اطلاعاتی را کرده اید .
اما با همه این تفاصیل باید گفت راه مقابله با بدی های موجود در اینترنت ،فیلتر آنها به نحو موجود نیست ،چرا که به راحتی میی توان هر ف ی ل ت ر و همین طور هر ف ی ل ت ر شکنی را دور زد .راه حل عملی و منطقی این معضل ، واکسینه کردن مردم در مقابل این بدی هاست.به عبارت دیگر اگر بتوانیم مردم را از مزایا و معایب مطالب ،اطلاعات و اتفاقات اطراف خود مطلع سازیم ،آنگاه نیازی به مراقبت دائم از آنها نیست.