سه شنبه, ۲۴ مهر, ۱۴۰۳ / 15 October, 2024
مجله ویستا

نگاهی فنی به VPN


نگاهی فنی به VPN
استفاده از RAS سرور و خط تلفن برای برقراری ارتباط دو مشکل عمده دارد عبارتند از:
۱) در صورتی که RAS سرور و سیستم تماس گیرنده در یک استان قرار نداشته باشند، علاوه بر لزوم پرداخت هزینه زیاد، سرعت ارتباط نیز پایین خواهد آمد و این مسئله وقتی بیشتر نمود پیدا می کند که کاربر نیاز به ارتباطی با سرعت مناسب داشته باشد.
۲) در صورتی که تعداد اتصالات راه دور در یک لحظه بیش از یک مورد باشد، RAS سرور به چندین خط تلفن و مودم احتیاج خواهد داشت که باز هم مسئله هزینه مطرح می گردد.
اما با ارتباط VPN مشکلات مذکور به طور کامل حل می شود و کاربر با اتصال به ISP محلی به اینترنت متصل شده و VPN بین کامپیوتر کاربر و سرور سازمان از طریق اینترنت ایجاد می گردد. ارتباط مذکور می تواند از طریق خط Dialup و یا خط اختصاصی مانند Leased Line برقرار شود.
به هر حال اکنون مسئله این نیست که طریقه استفاده از VPN چیست، بلکه مسئله این است که کدامیک از تکنولوژی های VPN باید مورد استفاده قرار گیرند. پنج نوع پروتکل در VPN مورد استفاده قرار می گیرد که هر کدام مزایا و معایبی دارند. در این مقاله ما قصد داریم در مورد هر کدام از این پروتکل ها بحث کرده و آنها را مقایسه کنیم. البته نتیجه نهایی به هدف شما در استفاده VPN بستگی دارد.
● ارتباط سیستم ها در یک اینترانت
در برخی سازمان ها، اطلاعات یک دپارتمان خاص به دلیل حساسیت بالا، به طور فیزیکی از شبکه اصلی داخلی آن سازمان جدا گردیده است. این مسئله علیرغم محافظت از اطلاعات آن دپارتمان، مشکلات خاصی را نیز از بابت دسترسی کاربران دپارتمان مذکور به شبکه های خارجی به وجود می آورد. VPN اجازه می دهد که شبکه دپارتمان مذکور به صورت فیزیکی به شبکه مقصد مورد نظر متصل گردد، اما به صورتی که توسط VPN سرور، جدا شده است (با قرار گرفتن VPN سرور بین دو شبکه). البته لازم به یادآوری است که نیازی نیست VPN سرور به صورت یک Router مسیر یاب بین دو شبکه عمل نماید، بلکه کاربران شبکه مورد نظر علاوه بر اینکه خصوصیات و Subnet شبکه خاص خود را دارا هستند به VPNسرورمتصل شده و به اطلاعات درشبکه مقصد دست می یابند. علاوه بر این تمام ارتباطات برقرار شده از طریق VPN، می توانند به منظور محرمانه ماندن رمز نگاری شوند. برای کاربرانی که دارای اعتبار نامه مجاز نیستند، اطلاعات مقصد به صورت خودکار غیر قابل رویت خواهند بود.
● مبانی Tunneling
Tunneling یا سیستم ایجاد تونل ارتباطی با نام کپسوله کردن (Encapsulation) نیز شناخته می شود که روشی است برای استفاده از زیر ساخت یک شبکه عمومی جهت انتقال اطلاعات. این اطلاعات ممکن است از پروتکل دیگری باشد. اطلاعات به جای اینکه به صورت اصلی و Original فرستاده شوند، با اضافه کردن یک Header (سرایند) کپسوله می شوند. این سزایند اضافی که به پکت متصل می شود، اطلاعات مسیر یابی را برای پکت فراهم می کند تا اطلاعات به صورت صحیح، سریع و فوری به مقصد برسند. هنگامی که پکت های کپسوله شده به مقصد رسیدند، سرایندها از روی پکت برداشته شده و اطلاعات به صورت اصلی خود تبدیل می شوند. این عملیات را از ابتدا تا اتمام کار Tunneling می نامند.
● نگهداری تونل
مجموعه عملیات متشکل از پروتکل نگهداری تونل و پروتکل تبادل اطلاعات تونل به نام پروتکل Tunneling شناخته می شوند. برای اینکه این تونل برقرار شود، هم کلاینت و هم سرور می بایست پروتکل Tunneling یکسانی را مورد استفاده قرار دهند. از جمله پروتکل هایی که برای عملیات Tunneling مورد استفاده قرار می گیرند PPTP و L۲TP هستند که در ادامه مورد بررسی قرار خواهند گرفت.
● پروتکل نگهداری تونل
پروتکل نگهداری تونل به عنوان مکانیسمی برای مدیریت تونل استفاده می شود. برای برخی از تکنولوژی های Tunneling مانند PPTP و L۲TP یک تونل مانند یک Session می باشد، یعنی هر دو نقطه انتهایی تونل علاوه بر اینکه باید با نوع تونل منطبق باشند، می بایست از برقرار شدن آن نیز مطلع شوند. هر چند بر خلاف یک Session، یک تونل ذریافت اطلاعات را به صورتی قابل اطمینان گارانتی نمی کند و اطلاعات ارسالی معمولا به وسیله پروتکلی بر مبنای دیتا گرام مانند UDP هنگام استفاده از L۲TP یا TCP برای مدیریت تونل و یک پروتکل کپسوله کردن مسیر یابی عمومی اصلاح شده به نام GRE برای وقتی که PPTP استفاده می گردد، پیکربندی و ارسال می شوند.
● ساخته شدن تونل
یک تونل باید قبل از این که تبادل اطلاعات انجام شود، ساخته شود. عملیات ساخته شدن تونل به وسیله یک طرف تونل یعنی کلاینت آغاز می شود و طرف دیگر تونل یعنی سرور، تقاضای ارتباط Tunneling را دریافت می کند. برای ساخت تونل یک عملیات ارتباطی مانند PPP انجام می شود. سرور تقاضا می کند که کلاینت خودش را معرفی کرده و معیارهای تصدیق هویت خود را ارائه نماید. هنگامی که قانونی بودن و معتبر بودن کلاینت مورد تایید قرار گرفت، ارتباط تونل مجاز شناخته شده و پیغام ساخته شدن تونل توسط کلاینت به سرور ارسال می گردد و سپس انتقال اطلاعات از طریق تونل شروع خواهد شد. برای روشن شدن مطلب، مثالی می زنیم. اگر محیط عمومی را، که غالبا نیز همین گونه است، اینترنت فرض کنیم، کلاینت پیغام ساخته شدن تونل را از آدرس IP کارت شبکه خود به عنوان مبدا به آدرس IP مقصد یعنی سرور ارسال می کند. حال اگر ارتباط اینترنت به صورت Dialup از جانب کلاینت ایجاد شده باشد، کلاینت به جای آدرس NIC خود، آدرس IP را که ISP به آن اختصاص داده به عنوان مبدا استفاده خواهد نمود.
● نگهداری تونل
در برخی از تکنولوژی های Tunneling مانند L۲TP و PPTP، تونل ساخته شده باید نگهداری و مراقبت شود. هر دو انتهای تونل باید از وضعیت طرف دیگر تونل با خبر باشندو نگهداری یک تونل معمولا از طریق عملیاتی به نام نگهداری فعال (KA) اجرا می گردد که طی این پروسه به صورت دوره زمانی مداوم از انتهای دیگر تونل آمار گیری می شود. این کار هنگامی که اطلاعاتی در خال تبادل نیست انجام می پذیرد.
● پروتکل تبادل اطلاعات تونل
زمانی که یک تونل برقرار می شود، اطلاعات می توانند از طریق آن ارسال گردند. پروتکل تبادل اطلاعات تونل، اطلاعات را کپسوله کرده تا قابل عبور از تونل باشند. وقتی که تونل کلاینت قصد ارسال اطلاعات را به تونل سرور دارد، یک سرایند (مخصوص پروتکل تبادل اطلاعات) را بر روی پکت اضافه می کند. نتیجه این کار این است که اطلاعات از طریق شبکه عمومی قابل ارسال شده و تا تونل سرور مسیریابی می شوند. تونل سرور پکت ها را دریافت کرده و سرایند اضافه شده را از روی اطلاعات برداشته و سپس اطلاعات را به صورت اصلی در می آورد.
● انواع تونل
تونل ها به دو نوع اصلی تقسیم می گردند: اختیاری و اجباری
▪ تونل اختیاری
تونل اختیاری به وسیله کاربر و از سمت کامپیوتر کلاینت طی یک عملیات هوشمند، پیکربندی و ساخته می شود. کامپیوتر کاربر نقطه انتهایی تونل بوده و به عنوان تونل کلاینت عمل می کند. تونل اختیاری زمانی تشکیل می شود که کلاینت برای ساخت تونل به سمت تونل سرور مقصد داوطلب شود. هنگامی که کلاینت به عنوان تونل کلاینت قصد انجام عملیات دارد، پروتکل Tunneling مورد نظر باید بر روی سیستم کلاینت نصب گردد. تونل اختیاری می تواند در هر یک از حالت های زیر اتفاق بیفتد:
- کلاینت ارتباطی داشته باشد که بتواند ارسال اطلاعات پوشش گذاری شده را از طریق مسیریابی به سرور منتخب خود انجام دهد.
- کلاینت ممکن است قبل از اینکه بتواندتونل را پیکربندی کند، ارتباطی را از طریق Dialup برای تبادل اطلاعات برقرار کرده باشد. این معمول ترین حالت ممکن است. بهترین مثال از این حالت، کاربران اینترنت هستند. قبل از اینکه یک تونل برای کاربران بر روی اینترنت ساخته شود، آن ها باید به ISP خود شماره گیری کنند و یک ارتباط اینترنتی را تشکیل دهند.
▪ تونل اجباری
تونل اجباری برای کاربرانی پیکربندی و ساخته می شود که دانش لازم را نداشته و یا دخالتی در ساخت تونل نخواهند داشت. در تونل اختیاری، کاربر، نقطه انتهایی تونل نیست. بلکه یک Device دیگر بین سیستم کاربر و تونل سرور، نقطه انتهایی تونل است که به عنوان تونل کلاینت عمل می نماید. اگر پروتکل Tunneling بر روی کامپیوتر کلاینت نصب و راه اندازی نشده و در عین حال تونل هنوز مورد نیاز و درخواست باشد. این امکان وجود دارد که یک کامپیوتر دیگر و یا یک Device شبکه دیگر، تونلی از جانب کامپیوتر کلاینت ایجاد نماید. این وظیفه ای است که به یک متمرکز کننده دسترسی (AS) به تونل، ارجاع داده شده است. در مرخله تکمیل این وظیفه، متمرکز کننده دسترسی یا همان AS باید پروتکل Tunneling مناسب را ایجاد کرده و قابلیت برقراری تونل را در هنگام اتصال کامپیوتر کلاینت داشته باشد. هنگامی که ارتباط از طریق اینترنت برقرار می شود، کامپیوتر کلاینت یک تونل تامین شده (Network Access Service) NAS را از طریق ISP احضار می کند. به عنوان مثال یک سازمان ممکن است قراردادی با یک ISP داشته باشد تا بتواند کل کشور را توسط یک متمرکز کننده دسترسی به هم پیوند دهد. این AC می تواند تونل هایی را از طریق اینترنت برقرار کند که به یک تونل سرور متصل باشند و از آن طریق به شبکه خصوصی مستقر در سازمان مذکور دسترسی پیدا کنند. این پیکربندی به عنوان تونل اجباری شناخته می شود، به دلیل این که کلاینت مجبور به استفاده از تونل ساخته شده به وسیله AC شده است. یک بار که این تونل ساخته شد، تمام ترافیک شبکه از سمت کلاینتو نیز از جانب سرور به صورت خودکار از طریق تونل مذکور ارسال خواهد شد. به وسیله این تونل اجباری، کامپیوتر کلاینت یک ارتباط PPP می سازد و هنگامی که کلاینت به NAS، از طریق شماره گیری متصل می شود، تونل ساخته می شود و تمام ترافیک به طور خودکار از طریق تونل مسیریابی و ارسال می گردد. تونل اجباری می تواند به طور ایستا و یا خودکار و پویا پیکربندی شود.
● تونل های اجباری ایستا
پیکربندی تونل های Static معمولا به تجهیزات خاص برای تونل های خودکار نیاز دارند. سیستم Tunneling خودکار به گونه ای اعمال می شودکه کلاینت ها به AC از طریق شماره گیری (Dialup) متصل می شوند. این مسئله احتیاج به خطوط دسترسی محلی اختصاصی و نیز تجهیزات دسترسی شبکه دارد که به این ها هزینه های جانبی نیز اضافه می گردد. برای مثال کاربران احتیاج دارند که با یک شماره تلفن خاص تماس بگیرند، تا به یک AC متصل شوند که تمام ارتباطات را به طور خودکار به یک تونل سرور خاص متصل می کند. در طرح های Tunneling ناحیه ای، متمرکز کننده دسترسی بخشی از User Name را که Realm خوانده می شود بازرسی می کند تا تصمیم بگیرد در چه موقعیتی از لحاظ ترافیک شبکه، تونل را تشکیل دهد.
● تونل های اجباری پویا
در این سیستم انتخاب مقصد تونل بر اساس زمانی که کاربر به AC متصل می شود، ساخته می شود. کاربران دارای Realm یکسان، ممکن است تونل هایی با مقصد های مختلف تشکیل بدهند. البته این امر به پارامترهای مختلف آنها مانند User Name، شماره تماسف محل فیزیکی و زمان بستگی دارد. تونل های Dynamic، دارای قابلیت انعطاف عالی هستند. همچنین تونل های پویااجازه می دهند که AC به عنوان یک سیستم Multi-NAS عمل کند، یعنی اینکه همزمان هم ارتباطات Tunneling را قبول می کند و هم ارتباطات کلاینت های عادی و بدون تونل را. در صورتی که متمرکز کننده دسترسی بخواهد نوع کلاینت تماس گسرنده را مبنی بر دارای تونل بودن یا نبودن از قبل تشخیص بدهد، باید از همکاری یک بانک اطلاعاتی سود ببرد. برای این کار باید AC اطلاعات کاربران را در بانک اطلاعاتی خود ذخیره کند که بزرگترین عیب این مسئله این است که این بانک اطلاعاتی به خوبی قابل مدیریت نیست. بهترین راه حل این موضوع، راه اندازی یک سرور RADIUS است، سروری که اجازه می دهد که تعداد نا محدودی سرور، عمل شناسایی USER های خود را بر روی یک سرور خاص یعنی همین سرور RADIUS انجام دهند، به عبارت بهتر این سرور مرکزی برای ذخیره و شناسایی و احراز هویت نمودن کلیه کاربران شبکه خواهد بود.
● پروتکل های VPN
عمده ترین پروتکل هایی که به وسیله ویندوز ۲۰۰۰ برای دسترسی به VPN استفاده می شوند عبارتند از: PPTP، L۲TP، IPSEC، IP-IP.
البته پروتکل امنیتی SSL نیز جزء پروتکل های مورد استفاده در VPN به شمار می آید، ولی به علت اینکه SSL بیشتر بر روی پروتکل های HTTP، LDAP، POP۳، SMTP و... مورد استفاده قرار می گیرد، بحث در مورد آن را به فرتی دیگر موکول می کنیم.
● پروتکل PPTP
پروتکل Tunneling نقطه به نقطه، بخش توسعه یافته ای از پروتکل PPP است که فریم های پروتکل PPP را به صورت IP برای تبادل آنها از طریق یک شبکه IP مانند اینترنت توسط یک سرایند، کپسوله می کند. این پروتکل می تواند در شبکه های خصوصی از نوع LAN-to-LAN نیز استفاده گردد.
پروتکل PPTP به وسیله انجمنی از شرکت های مایکروسافت، Ascend Communications، ۳com، ESI و US Robotics ساخته شد. PPTP یک ارتباط TCPرا (که یک ارتباط Connection Oriented بوده و پس از ارسال پکت منتظرAcknowledgment آن می ماند) برای نگهداری تونل و فریم های PPP کپسوله شده توسط (Generic Routing Encapsulation) GRE که به معنی کپسوله کردن مسیریابی عمومی است، برای Tunneling کردن اطلاعات استفاده می کند. ضمنا اطلاعات کپسوله شده PPP قابلیت رمز نگاری و فشرده شدن را نیز دارا هستند، تونل های PPTP باید به وسیله مکانیسم گواهی همان پروتکل PPP که شامل (EAP، CHAP، MS-CHAP، PAP) می شوند، گواهی شوند. در ویندوز ۲۰۰۰ رمزنگاری پروتکل PPP فقط زمانی استفاده می گردد که پروتکل احراز هویت یکی از پروتکل های EAP، TLS و یا MS-CHAP باشد. باید توجه شود که رمز نگاری PPP، محرمانگی اطلاعات را فقط بین دو نقطه نهایی یک تونل تامین می کند و در صورتی که به امنیت بیشتری نیاز باشد، باید از پروتکل Ipsec استفاده شود.
● پروتکل L۲TP
پروتکل L۲TP ترکیبی است از پروتکل های PPTP و (Layer ۲ Forwarding) L۲F که توسط شرکت سیسکو توسعه یافته است. این پروتکل ترکیبی است از بهترین خصوصیات موجود در L۲F و PPTP.
L۲TP نوعی پروتکل شبکه است که فریم های PPP را برای ارسال بر روی شبکه های IP مانند اینترنت و علاوه بر این برای شبکه های مبتنی بر X.۲۵، Frame Relay و یا ATM کپسوله می کند. هنگامی که اینترنت به عنوان زیر ساخت تبادل اطلاعات استفاده می گردد، L۲TP می تواند به عنوان پروتکل Tunneling از طریق اینترنت مورد استفاده قرار گیرد.
L۲TP برای نگهداری تونل از یک سری پیغام های L۲TP و نیز از پروتکل UDP (پروتکل تبادل اطلاعات به صورت Connection Less که پس از ارسال اطلاعات منتظر دریافت Acknowledgment نمی شود و اطلاعات را، به مقصد رسیده فرض می کند) استفاده می کند. در L۲TP نیز فریم های PPP کپسوله شده می توانند همزمان علاوه بر رمزنگاری شدن، فشرده نیز شوند. البته مایکروسافت پروتکل امنیتی Ipsec را به جای رمزنگاری PPP توصیه می کند. ساخت تونل L۲TP نیز باید همانند PPTP توسط مکانیسم (PPP EAP، CHAP، MS-CHAP، PAP) بررسی و تایید شود.
● PPTP در مقابل L۲TP
هر دو پروتکل PPTP و L۲TP از پروتکل PPP برای ارتباطات WAN استفاده می کنند تا نوعی اطلاعات ابتدایی برای دیتا را فراهم کنند و سپس یک سرایند اضافه برای انتقال اطلاعات از طریق یک شبکه انتقالی به پکت الحاق بنمایند. هر چند این دو پروتکل در برخی موارد نیز با هم تفاوت دارند. برخی از این تفاوت ها عبارتند از:
۱) شبکه انتقال که PPTP احتیاج دارد، باید یک شبکه IP باشد. ولی L۲TP فقط به یک تونل احتیاج دارد تا بتواند ارتباط Point-to-Point را برقرار کند. حال این تونل می تواند بر روی یک شبکه IP باشد و یا بر روی شبکه های دیگر مانند Frame Relay، X.۲۵ و یا ATM.
۲) L۲TP قابلیت فشرده سازی سرایند را داراست. هنگامی که فشرده سازی سرایند انجام می گیرد، L۲TP با حجم ۴ بایت عمل می کند، در حالی که PPTP با حجم ۶ بایت عمل می نماید.
۳) L۲TP متد احراز هویت را تامین می کند، در حالی که PPTP این گونه عمل نمی کند، هر چند وقتی که PPTP یا L۲TP از طریق پروتکل امنیتی Ipsec اجرا می شوند، هر دو، متد احراز هویت را تامین می نمایند.
۴)PPTP رمزنگاری مربوط به PPP را استفاده می کند، ولی L۲TP از پروتکل Ipsec برای رمزنگاری استفاده می نماید.
● پروتکل Ipsec
Ipsec یک پروتکل Tunneling لایه سوم است که از متد ESP برای کپسوله کردن و رمزنگاری اطلاعات IP برای تبادل امن اطلاعات از طریق یک شبکه کاری IP عمومی یا خصوصی پشتیبانی می کند. Ipsec به وسیله متد ESP می تواند اطلاعات IP را به صورت کامل کپسوله کرده و نیز رمزنگاری کند. به محض دریافت اطلاعات رمزگذاری شده، تونل سرور، سرایند اضافه شده به IP را پردازش کرده و سپس کنار می گذارد و بعد از آن رمزهای ESP و پکت را باز می کند. بعد از این مراحل است که پکت IP به صورت عادی پردازش می شود. پردازش عادی ممکن است شامل مسیریابی و ارسال پکت به مقصد نهایی آن باشد.
● پروتکل IP-IP
این پروتکل که با نام IP-IN-IP نیز شناخته می شود، یک پروتکل لایه سوم یعنی لایه شبکه است. مهمترین استفاده پروتکل IP-IP برای ایجاد سیستم Tunneling به صورت Multicast است که در شبکه هایی که سیستم مسیریابی Multicast را پشتیبانی نمی کنند کاربرد دارد. ساختار پکت IP-IPتشکیل شده است از: سرایند IPخارجی، سرایند تونل، سرایند IP داخلی و اطلاعات IP. اطلاعات IP می تواند شامل هر چیزی در محدوده IP مانند TCP، UDP، ICMP و اطلاعات اصلی پکت باشد.
● مدیریت VPN
در بیشتر موارد مدیریت یک VPN مانند مدیریت یک RAS سرور (به طور خلاصه، سروری که ارتباط ها و Connection های برقرار شده از طریق راه دور را کنترل و مدیریت می کند)، می باشد. البته امنیت VPN باید به دقت توسط ارتباطات اینترنتی مدیریت گردد.
● مدیریت کاربران VPN
بیشتر مدیران شبکه برای مدیریت کاربران خود ار یک پایگاه داده مدیریت کننده اکانت ها برروی کامپیوتر DC و یا از سرور RADIUS استفاده می نمایند. این کار به سرور VPN اجازه می دهد تا اعتبارنامه احراز هویت کاربران را به یک سیستم احراز هویت مرکزی ارسال کند.
● مدیریت آدرس ها و Name Server ها
سرور VPN باید رشته ای از آدرس های IP فعال را در خود داشته باشد تا بتواند آنها را در طول مرحله پردازش ارتباط از طریق پروتکل کنترل IP به نام IPCP به درگاه های VPN Server یا Client اختصاص دهد.
در VPN هایی که مبتنی بر ویندوز ۲۰۰۰ پیکربندی می شوند، به صورت پیش فرض، IP آدرس هایی که به Client های VPN اختصاص داده می شود، از طریق سرور DHCP گرفته می شوند. البته همان طور که قبلا گفته شد شما می توانید یک رشته IP را به صورت دستی یعنی ایستا به جای استفاده از DHCP اعمال کنید. ضمنا VPN Server باید توسط یک سیستم تامین کننده نام مانند DNS و یا WINS نیز پشتیبانی شود تا بتواند سیستم IPCP را به مورد اجرا بگذارد.
منبع : میکرو کنترلر