نگاهی فنی به VPN
چهارشنبه, ۳۱ شهریور ۱۳۸۹، ۰۶:۵۶ ق.ظ
استفاده از RAS سرور و خط تلفن برای برقراری ارتباط دو مشکل عمده دارد عبارتند از: 1)در
صورتی که RAS سرور و سیستم تماس گیرنده در یک استان قرار نداشته باشند،
علاوه بر لزوم پرداخت هزینه زیاد، سرعت ارتباط نیز پایین خواهد آمد و این
مسئله وقتی بیشتر نمود پیدا می کند که کاربر نیاز به ارتباطی با سرعت
مناسب داشته باشد. 2)در صورتی که تعداد اتصالات راه دور در یک لحظه
بیش از یک مورد باشد، 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 و L2TP هستند که در ادامه مورد بررسی قرار خواهند گرفت. پروتکل نگهداری تونل پروتکل
نگهداری تونل به عنوان مکانیسمی برای مدیریت تونل استفاده می شود. برای
برخی از تکنولوژی های Tunneling مانند PPTP و L2TP یک تونل مانند یک
Session می باشد، یعنی هر دو نقطه انتهایی تونل علاوه بر اینکه باید با
نوع تونل منطبق باشند، می بایست از برقرار شدن آن نیز مطلع شوند. هر چند
بر خلاف یک Session، یک تونل ذریافت اطلاعات را به صورتی قابل اطمینان
گارانتی نمی کند و اطلاعات ارسالی معمولا به وسیله پروتکلی بر مبنای دیتا
گرام مانند UDP هنگام استفاده از L2TP یا TCP برای مدیریت تونل و یک
پروتکل کپسوله کردن مسیر یابی عمومی اصلاح شده به نام GRE برای وقتی که
PPTP استفاده می گردد، پیکربندی و ارسال می شوند. ساخته شدن تونل یک
تونل باید قبل از این که تبادل اطلاعات انجام شود، ساخته شود. عملیات
ساخته شدن تونل به وسیله یک طرف تونل یعنی کلاینت آغاز می شود و طرف دیگر
تونل یعنی سرور، تقاضای ارتباط Tunneling را دریافت می کند. برای ساخت
تونل یک عملیات ارتباطی مانند PPP انجام می شود. سرور تقاضا می کند که
کلاینت خودش را معرفی کرده و معیارهای تصدیق هویت خود را ارائه نماید.
هنگامی که قانونی بودن و معتبر بودن کلاینت مورد تایید قرار گرفت، ارتباط
تونل مجاز شناخته شده و پیغام ساخته شدن تونل توسط کلاینت به سرور ارسال
می گردد و سپس انتقال اطلاعات از طریق تونل شروع خواهد شد. برای روشن شدن
مطلب، مثالی می زنیم. اگر محیط عمومی را، که غالبا نیز همین گونه است،
اینترنت فرض کنیم، کلاینت پیغام ساخته شدن تونل را از آدرس IP کارت شبکه
خود به عنوان مبدا به آدرس IP مقصد یعنی سرور ارسال می کند. حال اگر
ارتباط اینترنت به صورت Dialup از جانب کلاینت ایجاد شده باشد، کلاینت به
جای آدرس NIC خود، آدرس IP را که ISP به آن اختصاص داده به عنوان مبدا
استفاده خواهد نمود. نگهداری تونل در برخی از تکنولوژی
های Tunneling مانند L2TP و 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 عمده ترین پروتکل هایی که به وسیله ویندوز 2000 برای دسترسی به VPN استفاده می شوند عبارتند از: PPTP، L2TP، IPSEC، IP-IP. البته
پروتکل امنیتی SSL نیز جزء پروتکل های مورد استفاده در VPN به شمار می
آید، ولی به علت اینکه SSL بیشتر بر روی پروتکل های HTTP، LDAP، POP3،
SMTP و... مورد استفاده قرار می گیرد، بحث در مورد آن را به فرتی دیگر
موکول می کنیم. پروتکل PPTP پروتکل Tunneling نقطه به نقطه،
بخش توسعه یافته ای از پروتکل PPP است که فریم های پروتکل PPP را به صورت
IP برای تبادل آنها از طریق یک شبکه IP مانند اینترنت توسط یک سرایند،
کپسوله می کند. این پروتکل می تواند در شبکه های خصوصی از نوع LAN-to-LAN
نیز استفاده گردد. پروتکل PPTP به وسیله انجمنی از شرکت های
مایکروسافت، Ascend Communications، 3com، ESI و US Robotics ساخته شد.
PPTP یک ارتباط TCPرا (که یک ارتباط Connection Oriented بوده و پس از
ارسال پکت منتظرAcknowledgment آن می ماند) برای نگهداری تونل و فریم های
PPP کپسوله شده توسط (Generic Routing Encapsulation) GRE که به معنی
کپسوله کردن مسیریابی عمومی است، برای Tunneling کردن اطلاعات استفاده می
کند. ضمنا اطلاعات کپسوله شده PPP قابلیت رمز نگاری و فشرده شدن را نیز
دارا هستند، تونل های PPTP باید به وسیله مکانیسم گواهی همان پروتکل PPP
که شامل (EAP، CHAP، MS-CHAP، PAP) می شوند، گواهی شوند. در ویندوز 2000
رمزنگاری پروتکل PPP فقط زمانی استفاده می گردد که پروتکل احراز هویت یکی
از پروتکل های EAP، TLS و یا MS-CHAP باشد. باید توجه شود که رمز نگاری
PPP، محرمانگی اطلاعات را فقط بین دو نقطه نهایی یک تونل تامین می کند و
در صورتی که به امنیت بیشتری نیاز باشد، باید از پروتکل Ipsec استفاده
شود. پروتکل L2TP پروتکل L2TP ترکیبی است از پروتکل های PPTP
و (Layer 2 Forwarding) L2F که توسط شرکت سیسکو توسعه یافته است. این
پروتکل ترکیبی است از بهترین خصوصیات موجود در L2F و PPTP. L2TP نوعی
پروتکل شبکه است که فریم های PPP را برای ارسال بر روی شبکه های IP مانند
اینترنت و علاوه بر این برای شبکه های مبتنی بر X.25، Frame Relay و یا
ATM کپسوله می کند. هنگامی که اینترنت به عنوان زیر ساخت تبادل اطلاعات
استفاده می گردد، L2TP می تواند به عنوان پروتکل Tunneling از طریق
اینترنت مورد استفاده قرار گیرد. L2TP برای نگهداری تونل از یک سری
پیغام های L2TP و نیز از پروتکل UDP (پروتکل تبادل اطلاعات به صورت
Connection Less که پس از ارسال اطلاعات منتظر دریافت Acknowledgment نمی
شود و اطلاعات را، به مقصد رسیده فرض می کند) استفاده می کند. در L2TP نیز
فریم های PPP کپسوله شده می توانند همزمان علاوه بر رمزنگاری شدن، فشرده
نیز شوند. البته مایکروسافت پروتکل امنیتی Ipsec را به جای رمزنگاری PPP
توصیه می کند. ساخت تونل L2TP نیز باید همانند PPTP توسط مکانیسم (PPP
EAP، CHAP، MS-CHAP، PAP) بررسی و تایید شود. PPTP در مقابل L2TP هر
دو پروتکل PPTP و L2TP از پروتکل PPP برای ارتباطات WAN استفاده می کنند
تا نوعی اطلاعات ابتدایی برای دیتا را فراهم کنند و سپس یک سرایند اضافه
برای انتقال اطلاعات از طریق یک شبکه انتقالی به پکت الحاق بنمایند. هر
چند این دو پروتکل در برخی موارد نیز با هم تفاوت دارند. برخی از این
تفاوت ها عبارتند از: 1)شبکه انتقال که PPTP احتیاج دارد، باید یک
شبکه IP باشد. ولی L2TP فقط به یک تونل احتیاج دارد تا بتواند ارتباط
Point-to-Point را برقرار کند. حال این تونل می تواند بر روی یک شبکه IP
باشد و یا بر روی شبکه های دیگر مانند Frame Relay، X.25 و یا ATM. 2)L2TP
قابلیت فشرده سازی سرایند را داراست. هنگامی که فشرده سازی سرایند انجام
می گیرد، L2TP با حجم 4 بایت عمل می کند، در حالی که PPTP با حجم 6 بایت
عمل می نماید. 3)L2TP متد احراز هویت را تامین می کند، در حالی که
PPTP این گونه عمل نمی کند، هر چند وقتی که PPTP یا L2TP از طریق پروتکل
امنیتی Ipsec اجرا می شوند، هر دو، متد احراز هویت را تامین می نمایند. 4)PPTP رمزنگاری مربوط به PPP را استفاده می کند، ولی L2TP از پروتکل 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 هایی که مبتنی
بر ویندوز 2000 پیکربندی می شوند، به صورت پیش فرض، IP آدرس هایی که به
Client های VPN اختصاص داده می شود، از طریق سرور DHCP گرفته می شوند.
البته همان طور که قبلا گفته شد شما می توانید یک رشته IP را به صورت دستی
یعنی ایستا به جای استفاده از DHCP اعمال کنید. ضمنا VPN Server باید توسط
یک سیستم تامین کننده نام مانند DNS و یا WINS نیز پشتیبانی شود تا بتواند
سیستم IPCP را به مورد اجرا بگذارد.
۸۹/۰۶/۳۱