VPN چیست؟
VPN در یک تعریف کوتاه شبکهای از مدارهای مجازی برای انتقال ترافیک شخصی است. در واقع پیادهسازی شبکه خصوصی یک شرکت یا سازمان را روی یک شبکه عمومی، VPN گویند.
شبکههای کامپیوتری به شکل گستردهای در سازمانها و شرکتهای اداری و تجاری مورد استفاده قرار میگیرند. اگر یک شرکت از نظر جغرافیایی در یک نقطه متمرکز باشد، ارتباطات بین بخشهای مختلف آن را میتوان با یک شبکه محلی برقرار کرد. اما برای یک شرکت بزرگ که دارای شعب مختلف در نقاط مختلف یک کشور و یا در نقاط مختلف دنیا است و این شعب نیاز دارند که با هم ارتباطات اطلاعاتی امن داشته باشند، باید یک شبکه گسترده خصوصی بین شعب این شرکت ایجاد گردد.
شبکههای اینترانت که فقط محدود به یک سازمان یا یک شرکت میباشند، به دلیل محدودیتهای گسترشی نمیتوانند چندین سازمان یا شرکت را تحت پوشش قرار دهند. شبکههای گسترده نیز که با خطوط استیجاری راهاندازی میشوند، در واقع شبکههای گسترده امنی هستند که بین مراکز سازمانها ایجاد میشوند. پیادهسازی این شبکه علیرغم درصد پایین بهرهوری، نیاز به هزینه زیادی دارد. زیرا، این شبکهها به دلیل عدم اشتراک منابع با دیگران، هزینه مواقع عدم استفاده از منابع را نیز باید پرداخت کنند. راه حل غلبه بر این مشکلات، راه اندازی یک VPN است.
فرستادن حجم زیادی از داده از یک کامپیوتر به کامپیوتر دیگر مثلاً در بروزرسانی بانک اطلاعاتی یک مشکل شناخته شده و قدیمی است. انجام این کار از طریق ایمیل به دلیل محدودیت گنجایش سرویسدهنده Mail نشدنی است. استفاده از FTP هم به سرویسدهنده مربوطه و همچنین ذخیرهسازی موقت روی فضای اینترنت نیاز دارد که اصلاً قابل اطمینان نیست.
یکی از راهحلهای اتصال مستقیم به کامپیوتر مقصد به کمک مودم است که در اینجا هم علاوه بر مودم، پیکربندی کامپیوتر به عنوان سرویس دهنده RAS لازم خواهد بود. از این گذشته، هزینه ارتباط تلفنی راه دور برای مودم هم قابل تامل است. اما اگر دو کامپیوتر در دو جای مختلف به اینترنت متصل باشند میتوان از طریق سرویس به اشتراکگذاری فایل در ویندوز به سادگی فایلها را رد و بدل کرد. در این حالت، کاربران میتوانند به هارد دیسک کامپیوترهای دیگر همچون هارد دیسک کامپیوتر خود دسترسی داشته باشند. به این ترتیب بسیاری از راههای نفوذ برای هکرها بسته میشود.
شبکههای شخصی مجازی یا VPNها (مخفف Virtual Private Network) این گونه مشکلات را حل میکند. VPN به کمک رمزگذاری روی دادهها، یک شبکه کوچک میسازد و تنها کسی که آدرسهای لازم و رمز عبور را در اختیار داشته باشد میتواند به این شبکه وارد شود. مدیران شبکهای که بیش از اندازه وسواس داشته و محتاط هستند میتوانند VPN را حتی روی شبکه محلی هم پیاده کنند. اگرچه نفوذکنندگان میتوانند به کمک برنامههای Packet Snifter جریان دادهها را دنبال کنند اما بدون داشتن کلید رمز نمیتوانند آنها را بخوانند.
یک شبکه اختصاصی مجازی (VPN) از رمزنگاری سطح بالا برای ایجاد ارتباط امن بین ابزار دور از یکدیگر، مانند لپتاپها و شبکه مقصد استفاده میکند. VPN اساساً یک تونل رمز شده تقریباً با امنیت و محرمانگی یک شبکه اختصاصی اما از میان اینترنت ایجاد میکند. این تونل VPN میتواند در یک مسیریاب بر پایه VPN، فایروال یا یک سرور در ناحیه DMZ پایان پذیرد. برقراری ارتباطات VPN برای تمام بخشهای دور و بیسیم شبکه یک عامل مهم است که نسبتاً آسان و ارزان پیادهسازی میشود.
تبادل دادهها روی اینترنت چندان ایمن نیست. تقریباً هر کسی که در جای مناسب قرار داشته باشد میتواند جریان دادهها را زیر نظر گرفته و از آنها سوء استفاده کند. اگرچه VPN رمزنگاری موثری ارائه میکند و کار نفوذ را برای خرابکاری خیلی سخت میکند، اما کار اجرایی بیشتری را روی کارمندان IT تحمیل میکنند، چرا که کلیدهای رمزنگاری و گروههای کاربری باید به صورت مداوم مدیریت شوند.
معایب و مزایا
VPN به عوامل متفاوتی نظیر امنیت، اعتمادپذیری، مدیریت شبکه و سیاستهای سازمان وابسته میباشد. استفاده از VPN برای یک سازمان میتواند دارای مزایای زیر باشد:
- گسترش محدوده جغرافیایی ارتباطی
- بهبود وضعیت امنیت
- کاهش هزینههای عملیاتی در مقایسه با روشهای سنتی نظیر WAN
- کاهش زمان ارسال و حمل اطلاعات برای کاربران از راه دور
- بهبود بهرهوری
- توپولوژی آسان
برخی از مواردی که میتوان به عنوان جوانب منفی VPN برشمرد را در زیر مشاهده میکنید:
- شک نسبت به اطلاعات دریافت شده
- استفاده از منابع غیر موثق
- تفسیر بد از اطلاعات رسیده
- سرقت ایدهها
- نبود مهارتهای حرفهای در کار با اطلاعات
- فروش اطلاعات یا استفاده نابجای از اطلاعات
- عدم اطمینان از کارآیی سرویس و تاخیر در ارتباطات
VPN نسبت به شبکههای پیادهسازی شده با خطوط استیجاری، در پیادهسازی و استفاده، هزینه کمتری صرف میکند. اضافه و کم کردن گرهها یا شبکههای محلی به VPN، به خاطر ساختار آن، با هزینه کمتری امکانپذیر است.
تونلکشی
مجازی بودن در VPN به این معنا است که شبکههای محلی و میزبانهای متعلق به عناصر اطلاعاتی یک شرکت که در نقاط مختلف از نظر جغرافیایی قرار دارند، همدیگر را ببینند و این فاصلهها را حس نکنند. VPNها برای پیادهسازی این خصوصیت از مفهومی به نام تونلکشی (Tunneling) استفاده میکنند. در تونلکشی، بین تمامی عناصر مختلف یک VPN، تونل زده میشود. از طریق این تونل، عناصر به صورت شفاف همدیگر را میبینند.
در روش فوق تمام بسته اطلاعاتی در یک بسته دیگر قرار گرفته و از طریق شبکه ارسال خواهد شد. پروتکل مربوط به بسته اطلاعاتی خارجی (پوسته) توسط شبکه و دو نقطه (ورود و خروج بسته اطلاعاتی) قابل فهم میباشد. دو نقطه فوق را (اینترفیسهای تونل) میگویند. روش فوق مستلزم استفاده از سه پروتکل است:
- پروتکل حمل کننده: از پروتکل فوق شبکه حامل اطلاعات استفاده مینماید.
- پروتکل کپسولهسازی: از پروتکلهایی نظیر GRE – L2TP – PPTP – L2F – IPSec استفاده میگردد.
- پروتکل مسافر: از پروتکلهایی نظیر NetBeui – IP – IPX به منظور انتقال دادههای اولیه استفاده شود.
مفهوم تونلکشی در VPN
برای تونلکشی بین عناصر یک VPN از مفهومی به نام (Encapsulation) لفافهبندی بستههای اطلاعاتی استفاده میشود. تمام عناصر یک VPN دارای آدرسهای اختصاصی هستند. همه این عناصر از آدرسهای اختصاصی یکدیگر مطلع بوده و هنگام ارسال داده بین یکدیگر از این آدرسها استفاده میکنند. این وظیفه یک VPN است که بستههای اطلاعاتی را در بستههای انتقالی روی شبکه عمومی لفافهبندی کند و پس از انتقال امن از محیط ارتباط عمومی، آن بستهها را از حالت لفافهبندی خارج نموده و با توجه به آدرس قبل از لفافهبندی، بستهها را به عنصر گیرنده برساند. به این ترتیب ایجاد VPN روی یک شبکه عمومی، با پیادهسازی دو جنبه خصوصیگری و مجازیگری امکانپذیر است.
عملکرد Tunneling مشابه حمل یک نامه توسط یک کیف است. فروشنده، پس از بستهبندی نامه (پروتکل مسافر) درون یک پاکت (پروتکل کپسولهسازی) آن را توسط یک کیف (پروتکل حمل کننده) از پست (Interface ورودی تونل) برای متقاضی ارسال میدارد. کیف (پروتکل حمل کننده) از طریق مامور پست (اینترنت) مسیر خود را طی، تا به منزل شما (Interface خروجی تونل) برسد. شما در منزل پاکت (پروتکل کپسولسازی) را باز و نامه (پروتکل مسافر) را از آن خارج مینمایید.
با استفاده از روش Tunneling میتوان عملیات جالبی را انجام داد. مثلاً میتوان از بستهای اطلاعاتی که پروتکل اینترنت را حمایت نمیکند، نظیر NetBeui درون یک بسته اطلاعاتی IP استفاده و آن را از طریق اینترنت ارسال نمود و یا میتوان یک بسته اطلاعاتی را که از یک آدرس IP غیرقابل رویت (اختصاصی) استفاده مینماید، درون یک بسته اطلاعاتی که از آدرسهای معتبر IP استفاده میکند، مستقر و از طریق اینترنت ارسال نمود.
امنیت در VPN
خصوصی بودن یک VPN بدین معنا است که بستهها به صورت امن از یک شبکه عمومی مثل اینترنت عبور نمایند. برای محقق شدن این امر در محیط واقعی از:
- هویتشناسی بستهها، برای اطمینان از ارسال بستهها بوسیله یک فرستنده مجاز استفاده میشود.
- فایروال یک دیواره مجازی بین شبکه اختصاصی یک سازمان و اینترنت ایجاد مینماید. با استفاده از فایروال میتوان عملیات متفاوتی را در جهت اعمال سیاستهای امنیتی یک سازمان انجام داد. ایجاد محدودیت در تعداد پورتهای فعال، ایجاد محدودیت در رابطه به پروتکلهای خاص، ایجاد محدودیت در نوع بستههای اطلاعاتی و… نمونههایی از عملیاتی است که میتوان با استفاده از یک فایروال انجام داد.
- رمزنگاری فرآیندی است که با استفاده از آن کامپیوتر مبدا اطلاعاتی رمز شده را برای کامپیوتر دیگر ارسال مینماید. سایر کامپیوترهای مجاز قادر به رمزگشایی اطلاعات ارسالی خواهند بود. بدین ترتیب پس از ارسال اطلاعات توسط فرستنده، دریافت کنندگان، قبل از استفاده از اطلاعات باید اقدام به رمزگشایی اطلاعات ارسال شده نمایند. سیستمهای رمزنگاری در کامپیوتر به دو گروه عمده تقسیم میگردد:
- رمزنگاری کلید متقارن
- رمزنگاری کلید عمومی
رمزنگاری کلید متقارن
در رمزنگاری کلید متقارن هر یک از کامپیوترها دارای یک کلید Secret (کد) بوده که با استفاده از آن قادر به رمزنگاری یک بسته اطلاعاتی قبل از ارسال در شبکه برای کامپیوتر دیگر میباشند. در روش فوق باید در ابتدا نسبت به کامپیوترهایی که قصد برقراری و ارسال اطلاعات برای یکدیگر را دارند، آگاهی کامل وجود داشته باشد. هر یک از کامپیوترهای شرکت کننده در مبادله اطلاعاتی باید دارای کلید رمز مشابه به منظور رمزگشایی اطلاعات باشند.
به منظور رمزنگاری اطلاعات ارسالی نیز از کلید فوق استفاده خواهد شد. فرض کنید قصد ارسال یک پیام رمز شده برای یکی از دوستان خود را داشته باشید. بدین منظور از یک الگوریتم خاص برای رمزنگاری استفاده میشود. در الگوریتم فوق هر حرف به دو حرف بعد از خود تبدیل میگردد. (حرف A به حرف C، حرف B به حرف D). پس از رمز نمودن پیام و ارسال آن، باید دریافت کننده پیام به این حقیقت واقف باشد که برای رمزگشایی پیام ارسال شده، هر حرف به دو حرف قبل از خود باید تبدیل گردد.
رمزنگاری کلید عمومی
در رمزنگاری عمومی از ترکیب یک کلید خصوصی و یک کلید عمومی استفاده میشود. کلید خصوصی صرفاً برای کامپیوتر شما (ارسال کننده) قابل شناسایی و استفاده است. کلید عمومی توسط کامپیوتر شما در اختیار تمام کامپیوترهای دیگر که قصد ارتباط با آن را داشته باشند، گذاشته میشود. به منظور رمزگشایی یک پیام رمز شده، یک کامپیوتر باید با استفاده از کلید عمومی (ارائه شده توسط کامپیوتر ارسال کننده)، کلید خصوصی مربوط به خود اقدام به رمزگشایی پیام ارسالی نماید. با استفاده از روش فوق میتوان اقدام به رمزنگاری اطلاعات دلخواه خود نمود.
قراردادهای کاربردگرای VPN
قراردادهای SSH
کاربرد اصلی قرارداد SSH، امن نمودن خدمت ارتباط از راه دور است. این قرارداد در لایه کاربرد و بالاتر از قرارداد TCP/IP کار میکند. SSH قابلیت هویتشناسی کاربران و رمزنگاری اطلاعات را دارد. قرارداد SSH دارای سه لایه اصلی انتقال، هویتشناسی کاربر و اتصال میباشد. لایه انتقال، وظیفه فراهم آوردن امنیت و هویتشناسی کارگزار را به عهده دارد. به علت قرار گرفتن این لایه روی لایه TCP و همچنین وجود حفره امنیتی در لایههای TCP و IP، امنیت در ارتباط بین دو کامپیوتر از بین خواهد رفت، که میتوان با قرار دادن دیواره آتش روی آن، این مشکل را به نوعی حل نمود.
لایه هویتشناسی کاربر، وظیفه شناساندن کارفرما به کارگزار را به عهده دارد. لایه اتصال وظیفه تسهیم و ایجاد کانالهای امن لایههای انتقال و هویتشناسی را بر عهده دارد. از قرارداد SSH میتوان برای پیادهسازی شبکههای خصوصی که حالت خاصی از VPNها هستند، استفاده نمود.
قرارداد SOCKS
قرارداد SOCKS در مدل لایهبندی شبکه OSI در لایه پنجم به صورت کارفرما و کارگزار پیادهسازی شده است. این قرارداد دارای امکان رمزنگاری اطلاعات نیست، ولی به دلیل داشتن امکان هویتشناسی چند سطحی و امکان مذاکره بین کارفرما و کارگزار SOCKS، میتوان از آن برای پیادهسازی قراردادهای رمزنگاری موجود، استفاده نمود.
SOCKS، به صورت Circuit-Level Proxy پیادهسازی شده است. یعنی، کارفرما و کارگزار SOCKS، در دروازههای دو شبکه محلی، اعمال هویتشناسی و مذاکرههای لازم را انجام میدهند و سپس ارتباطات میزبانهای دو شبکه محلی با یکدیگر انجام میشود. چون کارفرمای SOCKS مثل یک Proxy عمل مینماید، میتوان برای امنیت بیشتر، به میزبانهای شبکه محلی، آدرسهای نامعتبر اختصاص داد و با ترجمه آدرس شبکه (NAT) که در کارگزار SOCKS انجام میشود، این آدرسهای نامعتبر را به آدرس معتبر و بالعکس تبدیل نمود. با این روش میتوان شبکه محلی را از یک شبکه عمومی مخفی نمود.
منابع
- کتاب مدیریت سرور. نوشته وحید گودرزی اصفهانی. انتشارات ناقوس. سال 1395.