Vpn چیست؟
VPN، نظری و عملی 
 برقرار کردن امنیت برای یک شبکه درون یک ساختمان کار ساده ای است.
اما هنگامی که بخواهیم از نقاط دور رو ی دادههای مشترک کار کنیم ایمنی به مشکل بزرگی تبدیل میشود.
در این بخش به اصول و ساختمان یک VPN برای سرویس گیرندههای ویندوز و لینوکس میپردازیم.
اصول VPN 
فرستادن حجم زیادی از داده از یک کامپیوتر به کامپیوتر دیگر مثلاً در به هنگام رسانی بانک اطلاعاتی یک مشکل شناخته شده و قدیمی است.
انجام این کار از طریق Email به دلیل محدودیت گنجایش سرویس دهنده Mail نشدنی است.
استفاده از FTP هم به سرویس دهنده مربوطه و همچنین ذخیره سازی موقت روی فضای اینترنت نیاز دارد که اصلاً قابل اطمینان نیست.
یکی از راه حلهای اتصال مستقیم به کامپیوتر مقصد به کمک مودم است که در اینجا هم علاوه بر مودم، پیکر بندی کامپیوتر به عنوان سرویس دهنده RAS لازم خواهد بود.
از این گذشته، هزینه ارتباط تلفنی راه دور برای مودم هم قابل تامل است.
اما اگر دو کامپیوتر در دو جای مختلف به اینترنت متصل باشند میتوان از طریق سرویس به اشتراک گذاری فایل در ویندوز بسادگی فایلها را رد و بدل کرد.
در این حالت، کاربران میتوانند به سخت دیسک کامپیوترهای دیگر همچون سخت دیسک کامپیوتر خود دسترسی داشته باشند.
به این ترتیب بسیاری از راههای خرابکاری برای نفوذ کنندگان بسته میشود.
شبکههای شخصی مجاری یا VPN (Virtual private Network)ها اینگونه مشکلات را حل میکند.
VPN به کمک رمز گذاری روی داده ها، درون یک شبکه کوچک میسازد و تنها کسی که آدرسهای لازم و رمز عبور را در اختیار داشته باشد میتواند به این شبکه وارد شود.
مدیران شبکه ای که بیش از اندازه وسواس داشته و محتاط هستند میتوانند VPN را حتی روی شبکه محلی هم پیاده کنند.
اگر چه نفوذ کنندگان میتوانند به کمک برنامههای Packet sniffer جریان دادهها را دنبال کنند اما بدون داشتن کلید رمز نمی توانند آنها را بخوانند.
-4.1.1 VPN چیست ؟
 VPN دو کامپیوتر یا دو شبکه را به کمک یک شبکه دیگر که به عنوان مسیر انتقال به کار میگیرد به هم متصل میکند.
برای نمونه میتوان ب دو کامپیوتر یکی در تهران و دیگری در مشهد که در فضای اینترنت به یک شبکه وصل شده اند اشاره کرد.
VPN از نگاه کاربر کاملاً مانند یک شبکه محلی به نظر میرسد.
برای پیاده سازی چنین چیزی، VPN به هر کاربر یک ارتباط IP مجازی میدهد.
داده هایی که روی این ارتباط آمد و شد دارند را سرویس گیرنده نخست به رمز در آورده و در قالب بستهها بسته بندی کرده و به سوی سرویس دهنده VPN میفرستد.
اگر بستر این انتقال اینترنت باشد بستهها همان بستههای IP خواهند بود.
سرویس گیرنده VPN بستهها را پس از دریافت رمز گشایی کرده و پردازش لازم را روی آن انجام میدهد.
روشی که شرح داده شد را اغلب Tunneling یا تونل زنی مینامند چون دادهها برای رسیدن به کامپیوتر مقصد از چیزی مانند تونل میگذرند.
برای پیاده سازی VPN راههای گوناگونی وجود دارد که پر کاربرد ترین آنها عبارتند از 
Point to point Tunneling protocol یا PPTP که برای انتقال NetBEUI روی یک شبکه بر پایه IP مناسب است.
Layer 2 Tunneling protocol یا L2TP که برای انتقال IP، IPX یا NetBEUI روی هر رسانه دلخواه که توان انتقال Datagramهای نقطه به نقطه (Point to point) را داشته باشد مناسب است.
برای نمونه میتوان به IP، X.25، Frame Relay یا ATM اشاره کرد.
IP Security protocol یا Ipsec که برای انتقال دادههای IP روی یک شبکه بر پایه IP مناسب است.
-4.1.2 پروتکلهای درون تونل 
Tunneling را میتوان روی دو لایه از لایههای OSI پیاده کرد.
PPTP و L2TP از لایه 2 یعنی پیوند داده استفاده کرده و دادهها را در قالب Frameهای پروتکل نقطه به نقطه (PPP) بسته بندی میکنند.
در این حالت میتوان از ویژگیهای PPP همچون تعیین اعتبار کاربر، تخصیص آدرس پویا (مانند DHCP)، فشرده سازی دادهها یا رمز گذاری دادهها بهره برد.
با توجه به اهمیت ایمنی انتقال دادهها درVPN، دراین میان تعیین اعتبار کاربر نقش بسیار مهمی دارد.
برای این کار معمولاً از CHAP استفاده میشود که مشخصات کاربر را در این حالت رمز گذاری شده جابه جا میکند.
Call back هم دسترسی به سطح بعدی ایمنی را ممکن میسازد.
در این روش پس از تعیین اعتبار موفقیت آمیز، ارتباط قطع میشود.
سپس سرویس دهنده برای برقرار کردن ارتباط جهت انتقال دادهها شماره گیری میکند.
هنگام انتقال داده ها، Packetهای IP، IP X یا NetBEUI در قالب Frameهای PPP بسته بندی شده و فرستاده میشوند.
PPTP هم Frameهای PPP را پیش از ارسال روی شبکه بر پایه IP به سوی کامپیوتر مقصد، در قالب Packetهای IP بسته بندی میکند.
این پروتکل در سال 1996 از سوی شرکت هایی چون مایکرو سافت، Ascend، 3 com و Robotics US پایه گذاری شد.
محدودیت PPTP در کار تنها روی شبکههای IP باعث ظهور ایده ای در سال 1998 شد.L2TP روی X.25،Frame Relay یا ATM هم کار میکند.
برتری L2TP در برابر PPTP این است که به طور مستقیم روی رسانههای گوناگون WAN قابل انتقال است.
4.1.3 - VPN-Ipsec فقط برای اینترنت 
Ipsec برخلافPPTP و L2TP روی لایه شبکه یعنی لایه سوم کار میکند.
این پروتکل داده هایی که باید فرستاده شود را همراه با همه اطلاعات جانبی مانند گیرنده و پیغامهای وضعیت رمز گذاری کرده و به آن یک IP Header معمولی اضافه کرده و به آن سوی تونل میفرستد.
کامپیوتری که در آن سو قرار دارد IP Header را جدا کرده، دادهها را رمز گشایی کرده و آن را به کامپیوتر مقصد میفرستد.Ipsec را میتوان با دو شیوه Tunneling پیکر بندی کرد.
در این شیوه انتخاب اختیاری تونل، سرویس گیرنده نخست یک ارتباط معمولی با اینترنت برقرار میکند و سپس از این مسیر برای ایجاد اتصال مجازی به کامپیوتر مقصد استفاده میکند.
برای این منظور، باید روی کامپیوتر سرویس گیرنده پروتکل تونل نصب شده باشد.
معمولاً کاربر اینترنت است که به اینترنت وصل میشود.
اما کامپیوترهای درون LAN هم میتوانند یک ارتباط VPN برقرا کنند.
از آنجا که ارتباط IP از پیش موجود است تنها برقرار کردن ارتباط VPN کافی است.
در شیوه تونل اجباری، سرویس گیرنده نباید تونل را ایجاد کند بلکه این کار ار به عهده فراهم ساز (Service provider) است.
سرویس گیرنده تنها باید به ISP وصل شود.
تونل به طور خودکار از فراهم ساز تا ایستگاه مقصد وجود دارد.
البته برای این کار باید همانگیهای لازم با ISP انجام بگیرد.
۴.۱.۴- ویژگیهای امنیتی در IPsec 
Ipsec از طریق Authentication Header (AH) مطمئن میشود که Packetهای دریافتی از سوی فرستنده واقعی (و نه از سوی یک نفوذ کننده که قصد رخنه دارد) رسیده و محتویات شان تغییر نکرده.
AH اطلاعات مربوط به تعیین اعتبار و یک شماره توالی (Seguence Number) در خود دارد تا از حملات Replay جلوگیری کند.
اما AH رمز گذاری نمی شود.
رمز گذاری از طریق Encapsulation Security Header یا ESH انجام میگیرد.
در این شیوه دادههای اصلی رمز گذاری شده و VPN اطلاعاتی را از طریق ESH ارسال میکند.
ESH همچنین کارکرد هایی برای تعیین اعتبار و خطایابی دارد.
به این ترتیب دیگر به AH نیازی نیست.
برای رمز گذاری و تعیین اعتبار روش مشخص و ثابتی وجود ندارد اما با این همه، IETF برای حفظ سازگاری میان محصولات مختلف، الگوریتمهای اجباری برای پیاده سازی Ipsec تدارک دیده.
برای نمونه میتوان به MD5، DES یا Secure Hash Algorithm اشاره کرد.
مهمترین استانداردها و روش هایی که در Ipsec به کار میروند عبارتند از: 
• Diffie-Hellman برای مبادله کلیدها میان ایستگاههای دو سر ارتباط.
• رمز گذاری Public Key برای ثبت و اطمینان از کلیدهای مبادله شده و همچنین اطمینان از هویت ایستگاههای سهیم در ارتباط.
• الگوریتمهای رمز گذاری مانند DES برای اطمینان از درستی دادههای انتقالی.
• الگوریتمهای درهم ریزی (Hash) برای تعیین اعتبار تک تک Packet ها.
• امضاهای دیجیتال برای تعیین اعتبارهای دیجیتالی.
4.1.5 - Ipsec بدون تونل 
Ipsec در مقایسه با دیگر روشها یک برتری دیگر هم دارد و آن اینست که میتواند همچون یک پروتکل انتقال معمولی به کار برود.
 در این حالت برخلاف حالت Tunneling همه IP packet رمز گذاری و دوباره بسته بندی نمی شود.
بجای آن، تنها دادههای اصلی رمزگذاری میشوند و Header همراه با آدرسهای فرستنده و گیرنده باقی میماند.
این باعث میشود که دادههای سرباز (Overhead) کمتری جابجا شوند و بخشی از پهنای باند آزاد شود.
اما روشن است که در این وضعیت، خرابکاران میتوانند به مبدا و مقصد دادهها پی ببرند.
از آنجا که در مدل OSI دادهها از لایه 3 به بالا رمز گذاری میشوند خرابکاران متوجه نمیشوند که این دادهها به ارتباط با سرویس دهنده Mail مربوط میشود یا به چیز دیگر.
4.1.6 – جریان یک ارتباط Ipsec بیش از آن که دو کامپیوتر بتوانند از طریق Ipsec دادهها را میان خود جابجا کنند باید یکسری کارها انجام شود.
• نخست باید ایمنی برقرار شود.
برای این منظور، کامپیوترها برای یکدیگر مشخص میکنند که آیا رمز گذاری، تعیین اعتبار و تشخیص خطا یا هر سه آنها باید انجام بگیرد یا نه.
• سپس الگوریتم را مشخص میکنند، مثلاً DEC برای رمزگذاری و MD5 برای خطایابی.
• در گام بعدی، کلیدها را میان خود مبادله میکنند.
Ipsec برای حفظ ایمنی ارتباط از Security Association (SA) استفاده میکند.
SA چگونگی ارتباط میان دو یا چند ایستگاه و سرویسهای ایمنی را مشخص میکند.
SAها از سوی SPI (Security parameter Index) شناسایی میشوند.
SPI از یک عدد تصادفی و آدرس مقصد تشکیل میشود.
این به آن معنی است که همواره میان دو کامپیوتر دو SPI وجود دارد: یکی برای ارتباط A و B و یکی برای ارتباط B به A.
اگر یکی از کامپیوترها بخواهد در حالت محافظت شده دادهها را منتقل کند نخست شیوه رمز گذاری مورد توافق با کامپیوتر دیگر را بررسی کرده و آن شیوه را روی دادهها اعمال میکند.
سپس SPI را در Header نوشته و Packet را به سوی مقصد میفرستد.
4.1.7 - مدیریت کلیدهای رمز در Ipsec اگر چه Ipsec فرض را بر این میگذارد که توافقی برای ایمنی دادهها وجود دارد اما خودش برای ایجاد این توافق نمی تواند کاری انجام بدهد.
Ipsec در این کار به IKE (Internet Key Exchange) تکیه میکند که کارکردی همچون IKMP (Key Management Protocol) دارد.
برای ایجاد SA هر دو کامپیوتر باید نخست تعیین اعتبار شوند.
در حال حاضر برای این کار از راههای زیر استفاده میشود: • Pre shared keys: روی هر دو کامپیوتر یک کلید نصب میشود که IKE از روی آن یک عدد Hash ساخته و آن را به سوی کامپیوتر مقصد میفرستد.
اگر هر دو کامپیوتر بتوانند این عدد را بسازند پس هر دو این کلید دارند و به این ترتیب تعیین هویت انجام میگیرد.
• رمز گذاری Public Key: هر کامپیوتر یک عدد تصادفی ساخته و پس از رمز گذاری آن با کلید عمومی کامپیوتر مقابل، آن را به کامپیوتر مقابل میفرستد.اگر کامپیوتر مقابل بتواند با کلید شخصی خود این عدد را رمز گشایی کرده و باز پس بفرستد برا ی ارتباط مجاز است.
در حال حاضر تنها از روش RSA برای این کار پیشنهاد میشود.
• امضاء دیجیتال: در این شیوه، هر کامپیوتر یک رشته داده را علامت گذاری (امضاء) کرده و به کامپیوتر مقصد میفرستد.
در حال حاضر برای این کار از روشهای RSA و DSS (Digital Singature Standard) استفاده میشود.
برای امنیت بخشیدن به تبادل دادهها باید هر دو سر ارتبا طنخست بر سر یک یک کلید به توافق میرسند که برای تبادل دادهها به کار میرود.
برا ی این منظور میتوان همان کلید به دست آمده از طریق Diffie Hellman را به کاربرد که سریع تر است یا یک کلید دیگر ساخت که مطمئن تر است.
4.1.8 – خلاصه تبادل دادهها روی اینرنت چندان ایمن نیست.
تقریباً هر کسی که در جای مناسب قرار داشته باشد میتواند جریان دادهها را زیر نظر گرفته و از آنها سوء استفاده کند.
شبکههای شخصی مجازی یا VPNها کار نفوذ را برا ی خرابکاران خیلی سخت میکند..
محافظت از شبکه توسط مسیریاب ها مسیر یاب علاوه بر قابلیت های اتصال شبکه های مختلف به یکدیگر، در زمینه امنیتی نیز می تواند مورد استفاده قرار گیرد.
در این بخش نحوه برقراری امنیت در لبه شبکه توسط مسیریاب را بررسی می کنیم.
شکل زیر نمونه ای از ارتباط یک شبکه امن شده با اینترنت می باشد: علاوه بر آن مسیر یاب میتواند به صورت یکی از عناصر(لایه محافظتی) در روش دفاع در عمق بوده و از ابتدای ارتباط شبکه با دنیای خارج کار محافظت را انجام دهد.
مطابق شکل زیر، مسیریابی که در لبه شبکه قرار گرفته و به عنوان اولین نقطه کنترلی می باشد، به Screen Router معروف است.
این مسیر یاب دارای مسیر های ثابتی است(Static route) که شبکه داخلی را به فایروال ارتباط می دهد.
فایروال موجود نیز کنترل های بیشتری را روی ارتباطات انجام میدهد.
علاوه بر این میتواند کار تصدیق هویت کاربران را نیز انجام دهد.
بدلیل اینکه مسیر یاب دارای روش های امنیتی بیشتری برای این کار می باشد پیشنهاد میشود که این کار توسط مسیر