مفهوم پروکسی سرور و نحوه کار آن
پروکسی چیست؟
پروکسی در لغت به معنای “وکیل” و “به نیابت کسی کاری را انجام دادن” است. در دنیای اینترنت پروکسی به کامپیوتری گفته میشود که به سایر کامپیوترها اجازه میدهد تا از طریق آن با مقصدشان یک ارتباط غیر مستقیم برقرار کنند.
بیایید این مطلب را با یک مثال ساده بیشتر توضیح دهیم. فرض کنید شما در یک اداره کار میکنید. هر اتاق این اداره یک خط تلفنن دارد که به تلفنخانه مرکزی اداره وصل است. حال اگر شما بخواهید از اداره به منزلتان زنگ بزنید لازم است یک شماره (مثلا ٩) را بگیرید و بعد از تلفنچی اداره بخواهید که شماره تلفن منزلتان را گرفته و به شما وصل کند. نقش تلفنخانه و تلفنچی در این مثال دقیقا مانند نقش پروکسی در اینترنت است. وقتی کامپیوتری از طریق پروکسی به اینترنت وصل است و میخواهد به یک فایل دسترسی پیدا کند، ابتدا درخواستش را به پروکسی میفرستد. سپس پروکسی به کامپیوتر مقصد متصل شده و فایل درخواستی را دریافت میکند و بعد آن را برای کامپیوتر درخواست کننده میفرستد.این شکل ارتباط مستقیم بین کامپیوترهای سرویس دهنده و سرویس گیرنده را نمایش میدهد.این شکل ارتباط از طریق پروکسی را نشان میدهد. همانطور که می بینید عملا هیچ ارتباط مستقیمی بین کامپیوتر سرویس دهنده و کامپیوتر سرویس گیرنده وجود ندارد .
همانطور که می بینید پروکسی در اینجا به عنوان یک واسطه عمل میکند و عملا هیچ ارتباط مستقیمی بین کامپیوترهای سرویس دهنده و سرویس گیرنده وجود ندارد. حال ممکن است برایتان این سوال پیش آید که کاربرد پروکسی چیست و چرا گاهی از آن استفاده میشود.
پاسخ این است که برای استفاده از پروکسی دلایل زیادی وجود دارد که در زیر به مهمترین انها اشاره می کنیم:
● بالا بردن امنیت شبکه:
گاهی مدیران شبکه برای بالا بردن امنیت شبکه شان و حفاظت کاربران در برابر هکرها از پروکسی استفاده میکنند. در اینن حالت به جای این که تک تک کاربران مستقیما به اینترنت متصل شوند، همگی از طریق یک پروکسی به اینترنت وصل میشوند. به این ترتیب مدیر شبکه می تواند با نصب فایروال و سایر نرم افزارهای امنیتی و با نظارت بر پروکسی از کل شبکه تحت مدیریتش محافظت کند.
●اعمال محدودیت بر کاربران:
گاهی علت استفاده مدیران شبکه از پروکسی، اعمال محدودیت بر کاربران است. البته توجه کنید که اعمال محدودیت، صرفا بهه معنی فیلترینگ یا سانسور نیست بلکه ممکن است مدیر شبکه فقط استفاده از برخی نرم افزارها (مانند چت) را برای کاربرانش ممنوع کند.
●کش کردن (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 متوجه نخواهد شدد که شما تقاضای دریافت چه اطلاعاتی را کرده اید .
اما با همه این تفاصیل باید گفت راه مقابله با بدی های موجود در اینترنت ،فیلتر آنها به نحو موجود نیست ،چرا که به راحتی میی توان هر ف ی ل ت ر و همین طور هر ف ی ل ت ر شکنی را دور زد .راه حل عملی و منطقی این معضل ، واکسینه کردن مردم در مقابل این بدی هاست.به عبارت دیگر اگر بتوانیم مردم را از مزایا و معایب مطالب ،اطلاعات و اتفاقات اطراف خود مطلع سازیم ،آنگاه نیازی به مراقبت دائم از آنها نیست.