همه چیز در مورد، VPN !!!
همه چیز در مورد، VPN (چیست؟)
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 بسته ها را پس از دريافت رمز گشايي كرده و پردازش لازم را روي
آن انجام مي دهد . در آدرس http://www.WOWN.COM\W-baeten\gifani\vpnani.gif
شكل بسيار جالبي وجود دارد كه چگونگي اين كار را نشان مي دهد . روشي كه
شرح داده شد را اغلب 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 ها كار نفوذ را برا ي خرابكاران خيلي سخت مي كند .
VPN چيست؟ (بخش دوم)
VPN با ويندوز
استفاده
از اينترنت به عنوان بستر انتقال داده ها هر روزگسترش بيشتري پيدا مي كند .
باعث مي شود تا مراجعه به سرويس دهندگان وب و سرويس هاي Email هر روز
بيشتر شود . با كمي كار مي توان حتي دو كامپيوتر را كه در دو قاره مختلف
قرار دارند به هم مرتبط كرد . پس از برقراري اين ارتباط ،هر
كامپيوتر،كامپيوتر ديگر را طوري مي بيند كه گويا در شبكه محلي خودش قرار
دارد. از اين رهگذر ديگر نيازي به ارسال داده ها از طريق سرويس هايي مانند
Email نخواهند بود. تنها اشكال اين كار اين است كه در صورت عدم استفاده از
كاركردهاي امنيتي مناسب،كامپيوترها كاملا در اختيار خرابكارن قرار مي
گيرند. VPN ها مجموعه اي از سرويس هاي امنيتي ردر برابراين عمليات رافراهم
مي كنند. در بخش قبلي با چگونگي كار VPN ها آشنا شديد و در اينجا به شما
نشان مي دهيم كه چگونه مي توان در ويندوز يك VPN شخصي راه انداخت. براي اين
كار به نرم افزار خاصي نياز نيست چون مايكروسافت همه چيزهاي لازم را در
سيستم عامل گنجانده يا در پايگاه اينترنتي خود به رايگان در اختيار همه
گذاشته.
پيش نيازها
براي اينكه دو كامپيوتر بر پايه ويندوز
بتواند از طريق VPN به هم مرتبط شوند دست كم يكي از آنها بايد به ويندوز NT
يا 2000 كار كند تا نقش سرويس دهنده VPN را به عهده بگيرد. ويندوز هاي 9x
يا Me تنها مي توانند سرويس گيرنده VPN باشند. سرويس دهنده VPN بايد يك IP
ثابت داشته باشد. روشن است كه هر دو كامپيوتر بايد به اينترنت متصل باشند.
فرقي نمي كند كه اين اتصال از طريق خط تلفن و مودم باشد يا شبكه محلي. IP
در سرويس دهنده VPN بايد مجاز (Valid) باشد تا سرويس گيرنده بتواند يك
مستقيما آن را ببيند. در شبكه هاي محلي كه اغلب از IP هاي شخصي
(192.168.x.x) استفاده مي شود VPN را بايد روي شبكه ايجاد كرد تا ايمني
ارتباط بين ميان كامپيوترها تامين شود. اگر سرويس گيرنده VPN با ويندوز 95
كار مي كند نخست بايد Dial up Networking Upgrade 1.3 را از سايت
مايكروسافت برداشت كرده و نصب كنيد. اين مجموعه برنامه راه اندازهاي لازم
براي VPN را در خود دارد . البته مايكروسافت پس از Upgrade 1.3 Networking
Dial up نگارش هاي تازه تري نيز عرضه كرده كه بنا بر گفته خودش ايمني و
سرعت ارتباط VPN را بهبود بخشيده است .
نصب سرويس دهنده VPN
روي
كامپيوتر بر پايه ويندوز NT نخست بايد در بخش تنظيمات شبكه، راه انداز
Point to Point Tunneling را نصب كنيد. هنگام اين كار، شمار ارتباط هاي
همزمان VPN پرسيده مي شود. در سرويس دهنده هاي NT اين عدد مي تواند حداكثر
256 باشد. در ايستگاه كاري NT، اين عدد بايد 1 باشد چون اين سيستم عامل
تنها اجازه يك ارتباط RAS را مي دهد. از آنجا كه ارتباط VPN در قالب Remote
Access برقرار مي شود ويندوز NT به طور خودكار پنجره پيكر بندي RAS را باز
مي كند. اگر RAS هنوز نصب نشده باشد ويندوز NT آن را نصب مي كند. هنگام
پيكربندي بايد VPN Adapter را به پورت هاي شماره گيري اضافه كنيد. اگر مي
خواهيد كه چند ارتباط VPN داشته باشيد بايد اين كار را براي هر يك از VPN
Adapter ها انجام دهيد .
پيكربندي سرويس دهنده RAS
اكنون بايد
VPN Adapterرا به گونه اي پيكربندي كنيد كه ارتباطات به سمت درون
(incoming) اجازه بدهد. نخست بايد پروتكل هاي مجاز براي اين ارتباط را مشخص
كنيد . همچنين بايد شيوه رمز گذاري را تعيين كرده و بگوييد كه آياسرويس
دهنده تنها اجازه دسترسي به كامپيوترهاي موجود در شبكه كامپيوتر ويندوز NT،
در اين وضيعت، سرويس دهنده VPN مي تواند كار مسير يابي را هم انجام دهد.
براي بالاتر بردن ايمني ارتباط، مي توانيد NetBEUI را فعال كرده و از طريق
آن به كامپيوترهاي دور اجازدسترسي به شبكه خود را بدهيد. سرويس گيرنده،
شبكه و سرويس هاي اينترنتي مربوط به سرويس دهنده VPN را نمي بينيد . براي
راه انداختن TCP/IP همراه با VPN چند تنظيم ديگر لازم است. اگر سرويس دهنده
DHCP نداريد بايد به طور دستي يك فضاي آدرس(Adress Pool ) IP را مشخص
كنيد. به خاطر داشته باشيد كه تنها بايد از IP هاي شخصي (Private) استفاده
كنيد.
اين فضاي آدرس بايد دست كم 2 آدرس داشته باشد ،يكي براي سرويس
دهنده VPN و ديگري براي سرويس گيرنده VPN . هر كار بر بايد براي دسترسي به
سرويس دهنده از طريق VPN مجوز داشته باشد. براي اين منظور بايد در User
Manager در بخش Dialing اجازه دسترسي از دور را بدهيد . به عنوان آخرين
كار،Remote Access Server را اجرا كنيد تا ارتباط VPN بتواند ايجاد شود.
سرويس گيرنده VPN روي ويندوز NT
نصب
سرويس گيرنده VPN روي ويندوز NT شبيه راه اندازي سرويس دهنده VPN است
بنابراين نخست بايد 4 مرحله گفته شده براي راه اندازي سرويس دهنده VPN را
انجام بدهيد، يعني:
. نصب PPTP
. تعيين شمار ارتباط ها
. اضافه كردن VPN به عنوان دستگاه شماره گيري
.
پيكر بندي VPN Adapter در RAS، تنها تفاوت در پيكر بندي VPN Adapter آن
است كه بايد به جاي ارتباط هاي به سمت درون به ارتباط هاي به سمت بيرون
(out going) اجاز ه بدهيد .
. سپس تنظيمات را ذخيره كرده و كامپيوتر را
بوت كنيد. در گام بعدي، در بخش Networking يك ارتباط(Connection) تلفني
بسازيد . به عنوان دستگاه شماره گير يا همان مودم بايد VPN Adapter را
انتخاب كرده و بجاي شماره تلفن تماس، IP مربوط به سرويس دهنده VPN را وارد
كنيد. در اينجا پيكر بندي سرويس گيرنده VPN روي ويندوز NT به پايان مي رسد و
شبكه هاي شخصي مجازي ساخته مي شود.
سرويس گيرنده VPN روي ويندوز 2000
راه
اندازي سرويس گيرنده VPN ساده تر و كم زحمت تر از سرويس دهنده آن است. در
ويندوز 2000 به بخش مربوط به تنظيمات شبكه رفته يك Connection تازه بسازيد.
گام نخست : Assistant در ويندوز 2000 پيكر بندي VPN را بسيار ساده كرده.
به
طور معمول بايد آدرس IP مربوط به سرويس دهنده VPN ر اداشته باشد. در اينجا
بايد همان IP معمولي را وارد كنيد و نه IP مربوط به شبكه VPNرا، با اين
كار ، VPN پيكر بندي شده و ارتباط بر قرار مي شود.
براي تعيين صلاحيت،
بايد نام كاربري و رمز عبور را وارد كنيد كه اجازه دسترسي از طريق Remote
Access را داشته باشيد. ويندوز 2000 بي درنگ ارتباط برقرار كرده و شبكه
مجازي كامل مي شود.
گام دوم: كافي است آدرس IP مربوط به سرويس دهنده VPN را وارد كنيد.
گام سوم: در پايان فقط كافي است خود را معرفي كنيد.
سرويس گيرنده VPN روي ويندوز 9x
نصب
سرويس گيرنده VPN روي ويندوز هاي 95، 98 و SE 98 مانند هم است . نخست بايد
پشتيباني از VPN فعال شود. در اينجا بر خلاف ويندوز NT به جاي اضافه كردن
پروتكل بايد يك كارت شبكه نصب كنيد. ويندوز x 9 همه عناصر لازم را نصب مي
كند. به اين ترتيب كار نصب راه اندازاها را هم كامل مي گردد. در قدم بعدي
بايد Dialup adapter يك Connection بسازيد. به عنوان دستگاه شمار گير بايد
VPN adapter را معرفي كنيد.
گام نخست: نصب VPN adapter
گام دوم: يك Connection تازه روي VPN dapter
در ويندوز x9، سيستم عامل IP مربوط به سرويس 90 دهنده VPN را در خواست مي كند.
گام
سوم: آدرس IP مربوط به سرويس دهنده VPN را وارد كنيد. پيكر بندي سرويس
گيرنده VPN در اينجا پايان يافته و ارتباط مي تواند برقرار شود. تنها كافي
است كه نام كاربري و رمز عبور را وارد كنيد. اكنون ويندوز به اينترنت وصل
شده و تونل را مي سازد و داده هاي خصوصي مي تواند حركت خود را آغاز كنند.
برنامه هاي كمكي
اگر
بخواهيد براي نمونه از دفتر كار( سرويس گيرنده VPN) به كامپيوتر خود در
خانه ( سرويس گيرنده VPN) وصل بشويد با دو مشكل روبرو خواهيد شد. نخست
اينكه كامپيوتري كه در خانه داريد پيوسته به اينترنت متصل نيست و ديگري
اينكه سرويس گيرنده VPN به يك آدرس IP نياز دارد. اين IP را هنگامي كه از
يك شركت فراهم ساز (ISP) سرويس مي گيريد از پيش نمي دانيد چون به صورت
پويا(dynamic) به شما تخصيص داده مي شود. Online Jack برنامه اي است كه
براي هر دو مشكل راه حل دارد.
Online Jack يك برنامه كوچك است كه بايد
روي كامپيوتر خانه نصب شود. از دفتر كار خود مي توانيد از طريق سايت Online
Jack و با نام كاربري و رمز عبور به كامپيوتر خود در خانه متصل شويد. با
اين كار، IP كه شركت فراهم ساز به شما تخصيص داده مشخص مي شود كه از روي
آن، سرويس گيرنده VPN پيكر بندي شده و كار خود را آغاز مي كند. از اين دست
برنامه هاي كمكي موارد زيادي وجود دارد كه با جستجو در اينترنت مي توانيد
آنها را بيابيد.
خلاصه
دامنه كاربردي VPN گسترده و گوناگون است.
VPN را مي توان براي متصل كردن كاربران بيروني به شبكه محلي،ارتباط دو
كامپيوتر يا دو شبكه در دو شهر مختلف يا دسترسي از دفتر كار به كامپيوتر
منزل بكار برد.
VPN نه تنها داده ها را با ايمني بيشتر منتقل مي كند
بلكه وقتي از آن براي مرتبط كردن دو كامپيوتر دور از هم استفاده مي كنيم
هزينه ها بسيار كاهش مي يابد. آخرين نكته اينكه راه اندازي VPN ساده و
رايگان است.
VPN چيست؟ (بخش سوم)
VPN با لينوكس (1)
يكي
از توانايي هاي VPN امكان كاربران دور از شبكه(Remote) در دسترسي به آ ن
است . IPsec در اين ميان نقش مهمي در فراهم كردن ايمني لازم براي داده ها
دارد . يكي از مناسب ترين و به صرفه ترين وسيله ها در پياده سازي اين
امكانات لينوكس و Free S/WAN كه در اين بخش به آن مي پردازيم .
IPsec و Free S/WAN
اگر
چه لينوكس هم به دليل توانايي هاي خوبFirewall بستر بسيار مناسبي براي يك
دروازه امنيتي(Security Gateway) برپايه IPsec است مال خودش به طور پيش فرض
بخش هاي لازم براي IPsec را به همراه ندارد. اين برنامه ها را مي توانيد
در مجموعه Free S/WAN بيابيد. Free S/WAN (www.fresswan.org) در اصل مجمعي
متشكل از برنامه نويسان زبده و تامين كنندگان مالي است كه برنامه هاي ويژه
لينوكس را فراهم مي كنند. برنامه Free S/WAN از دو بخش اصلي تشكيل شده يكي
KLIPS(Kernel IPsec ) است كه پروتكل هاي لازم را به Kernel اضافه مي كند و
ديگري Daemon كه وظيفهبرقراري ارتباط و رمز گذاري را بر عهده دارد.
در
اين بخش مي بينيد كه IPsec چگونه كار مي كند و چگونه بايد آن را به كمك
Free S/WAN در لينوكس براي VPN پيكر بندي كرد. در ادامه خواهيم گفت كه با
X.509 چطور زير ساخت هاي لازم براي يك شركت پياده سازي مي شود.
نگاهي به IPsec
IPsec در اصل مجموعه اي از پروتكل ها و روش هايي است كه به كمك آنها مي توان روي اينترنت يك ارتباط مطمئن و ايمن ايجاد كرد.
جزييات
IPsec يا Internet Protocol Security در RFC هاي شماره 2401 تا 2410 آمده.
IPsec براي اطمينان بخشيدن به ارتباط هاي اينترنتي از شيوه هاي تعيين
اعتبار و رمز گذاري داده ها استفاده مي كند. براي اين منظور در لايه شبكه
دو حالت انتقال و دو لايه ايمني فراهم مي كند.
Transport در مقايسه با Tunnel
در
حالت Transport دو ميزبان به طور مستقيم روي اينترنت با هم گفتگو مي كنند.
در اين حالت مي توان IPsec را براي تعيين اعتبار و همچنين يكپارچگي و
درستي داده ها به كار برد. به كمك IPsec نه تنها مي توان از هويت طرف گفتگو
مطمئن شدبلكه مي توان نسبت به درستي و دست نخوردگي داده هاهم اطمينان حاصل
كرد . به كمك عملكرد رمز گذاري مي توان افزون بر آن خوانده شدن داده ها از
سوي افراد غير مجاز جلوگيري كرد.
اما از آنجا كه در اين شيوه، دو
كامپيوتر به طور مستقيم داده ها را مبادله ميكنند نمي توان مبدا و مقصد
داده ها را پنهان كرد. از حالت Tunnel هنگامي كه استفاده مي شود كه دست كم
يكي از كامپيوترها به عنوان Security Gateway به كار برود. در اين وضعيت
حداقل يكي از كامپيوترهايي كه در گفتگو شركت مي كند در پشت Gateway
قراردارد و در نتيجه ناشناس مي ماند. حتي اگر دو شبكه از از طريق Security
Gateway هاي خود با هم داده مبادله كنند نمي توان از بيرون فهميد كه دقيقا
كدام كامپيوتر به تبادل داده مشغول است. در حالت Tunnel هم مي توان از
كاركردهاي تعيين اعتبار ،كنترل درستي داده ها و رمز گذاري بهره برد.
Authentication Header
وظيفه
Authentication Header IP آن است كه داده هاي در حال انتقال بدون اجازه از
سوي شخص سوم مورد دسترسي و تغيير قرار نگيرد . براي اين منظور از روي
Header مربوط به IP و داده هاي اصلي يك عددHash به دست آمده و به همراه
فيلدهاي كنترلي ديگر به انتهاي Header اضافه مي شود. گيرنده با آزمايش اين
عدد مي تواند به دستكاري هاي احتمالي در Header يا داده هاي اصلي پي ببرد.
Authentication Header هم در حالت Transport و هم در حالت Tunnel كاربرد
دارد.
AH در حالت Transport ميان Header مربوط به IP و داده هاي اصلي مي
نشيند . در مقابل، در حالت Tunneling ، Gateway كل Paket را همراه با
Header مربوط به داده ها در يك IP Packet بسته بندي مي كند. در اين حالت،
AH ميان Header جديد و Packet اصلي قرار مي گيرد. AH در هر دو حالت، اعتبار
و سلامت داده ها را نشان مي دهد اما دليلي بر قابل اطمينان بودن آنها نيست
چون عملكرد رمز گذاري ندارد.
Encapsulated Security Payload
Encapsulated
Security Payload IP براي اطمينان از ايمني داده ها به كار مي رود . اين
پروتكل داده ها در قالب يك Header و يك Trailer رمز گذاري مي كند. به طوري
اختياري مي توان به انتهاي Packet يك فيلدESP Auth اضافه كرد كه مانند AH
اطلاعات لازم براي اطمينان از درستي داده ها رمز گذاري شده را در خود دارد.
در حالت Transport، Header مربوط به ESP و Trailer تنها داده هاي اصلي IP
از پوشش مي دهند و Header مربوط به Packet بدون محافظ باقي مي ماند.
اما
در حالت Tunneling همه Packet ارسالي از سوي فرستنده، داده اصلي به شمار
مي رود و Security Gateway آن را در قالب يك Packet مربوط به IP به همراه
آدرس هاي فرستنده و گيرنده رمز گذاري مي كند. در نتيجه،ESP نه تنها اطمينان
از داده ها بلكه اطمينان از ارتباط را هم تامين مي كند . در هر
دوحالت،ESP در تركيب با AH ما را از درستي بهترين داده هاي Header مربوط
به IP مطمئن مي كند.
Security Association
براي اينكه
بتوانESP/AH را به كار برد بايد الگوريتم هاي مربوط به درهم ريزي(Hashing)،
تعيين اعتبار و رمز گذاري روي كامپيوترهاي طرف گفتگو يكسان باشد. همچنين
دو طرف گفتگو بايد كليدهاي لازم و طول مدت اعتبار آنها را بدانند. هر دو سر
ارتباط IPsec هر بار هنگام برقرار كردن ارتباط به اين پارامترهاي نياز
دارند. SA يا Security Association به عنوان يك شبه استاندارد در اين بخش
پذيرفته شده. براي بالا بردن امنيت، از طريق SA مي توان كليدها را تا زماني
كه ارتباط برقرار است عوض كرد. اين كار را مي توان در فاصله هاي زماني
مشخص يا پس از انتقال حجم مشخصي از داده ها انجام داد.
Internet Key Exchang
پروتكل
Internet Key Exchang يا IKE( RFC 2409 ) روند كار روي IPsec SA را تعريف
مي كند. اين روش را Internet Security Association and Key Management
Protocol يا ISAKMP نيز مي نامند. اين پروتكل مشكل ايجاد ارتباط ميان دو
كامپيوتر را كه هيچ چيز از هم نمي دانند و هيچ كليدي ندارند حل مي كند. در
نخستين مرحله IKE(IKE Phase 1) كه به آن حالت اصلي(Main Mode) هم گفته مي
شود دو طرف گفتگو نخست بر سر پيكر بندي ممكن براي SA و الگوريتم هاي لازم
براي درهم ريزي (Hashing)، تعيين اعتبار و رمزگذاري به توافق مي رسند.
آغاز
كننده(Initiator) ارتباط به طرف مقابل(يا همان Responder) چند گزينه را
پيشنهاد مي كند. Responder هم مناسب ترين گزينه را انتخاب كرده و سپس هر دو
طرف گفتگو، از طريق الگوريتم Diffie-Hellman يك كليد رمز(Secret Key) مي
سازند كه پايه همه رمز گذاري هاي بعدي است. به اين ترتيب صلاحيت طرف مقابل
براي برقراري ارتباط تاييد مي شود.
اكنون مرحله دوم IKE(2 ( IKE Phase
آغاز مي گردد كه حالت سريع (Ouick Mode) هم ناميده مي شود. اين مرحله SA
مربوط به IPsec را از روي پارامترهاي مورد توافق برا ي ESP و AH مي سازد.
گواهينامه x.506
همانطور
كه پيش از اين گفتيم بهترين راه براي تبادل Public Key ها x.509
Certificate(RFC شماره 2495( است. يك چنين گواهينامه اي يك Public Key براي
دارنده خود ايجاد مي كند. اين گواهينامه، داده هايي مربوط به الگوريتم به
كار رفته براي امضاء ايجاد كننده، دارنده و مدت اعتبار در خود دارد كه در
اين ميان، Public Keyمربوط به دارنده از بقيه مهمتر است. CA هم گواهينامه
را با يك عدد ساخته شده از روي داده ها كه با Public Key خودش تركيب شده
امضاء مي كند.
براي بررسي اعتبار يك گواهينامه موجود، گيرنده بايد اين
امضاء را با Public Key مربوط به CA رمز گشايي كرده و سپس با عدد نخست
مقايسه كند . نقطه ضعف اين روش در طول مدت اعتبار گواهينامه و امكان
دستكاري و افزايش آن است. اما استفاده از اين گواهينامه ها در ارتباطهاي
VPN مشكل چنداني به همراه ندارد چون مدير شبكه Security Gateway و همه
ارتباط ها را زير نظر دارد.
IPsec يا FreeS/WAN
همانطور كه گفتيم
FreeS/WAN مجموعه كاملي براي راه اندازي IPsec روي لينكوس است . البته
بيشتر نگارش هاي لينوكس برنامه هاي لازم براي اين كار را با خود دارند. اما
بر اساس تجربه بهتر است FreeS/WANرا به كار ببريد.
در اينجا ما از
RedHatLinux نگارش 2/7 با هسته 2.4.18 وFreeS/WAN197
(ftp://ftp.xs4all.nl/pub/cryypto/freesean/ ) استفاده كرده ايم. درصورت
لزوم مي توان FreeS/WAN را با هسته هسته هاي خانواده 2.2 هم به كار برد.
البته در اين حالت دست كم به نگارش 2.2.19 لينوكس نياز داريد. اين را هم
بايد در نظر داشته باشيد كه راه انداختن VPN Gateway همراه با ديواره آتش
سودمنداست و هسته نگارش 2.4 امكانات خوبي براي راه انداختن ديواره آتش
دارد.
نصب
براي نصب بايد هسته را در/usr/ser/linux و Free S/WAN
را در /usr/scr/freeswan-versionnumber باز كنيد. سپس با فرمان هاي make
menuconfig و make xconfig پيكربندي هسته را انجام بدهيد. گزينه هاي لازم
براي تنظيمات اضافي را در Networking Options\IPsec Options مي يابيد كه
معمولا نيازي به تغيير دادن تنظيمات پيش فرض آن نيست . براي راه انداختن
x.509 patch بايد بسته مربوطه را باز كرده و فايل freewan.diff را در فهرست
Free S/WAN كپي كنيد. پس از آن، فرمان patch-p1 < freewan.diff همه چيز
را برايتان تنظيم مي كند. در پايان بايد هسته را كه اكنون تغيير كرده
كامپايل كنيد. اين مار را با صادر كردن فرمان make kinstall وقتي در فهرست
Free S/WAN هستيد انجام بدهيد.
پس از اضافه كردن هسته تازه به مدير بوت و
راه اندازي كامپيوتر مي توانيد نتيجه كارهايي كه انجام داديد را ببينيد.
فرمان dmesg پيام هاي آغاز به كار KLIPS را نشان مي دهد. لازم است كه روي
Runlevel ها هم كارهايي انجام بدهيد. از آنجا كه Free S/WAN بع رابط هاي
eth0 و eth1، ipsec0 را اضافه مي كند، سيستم نخست Networking سپس Free
S/WAN و در پايان iptables را اجرا مي كند.
پيكر بندي
ما قصد
داريم كه Security Gateway خود را به گونه اي پيكربندي كنيم كه يك Firewall
هم باشد. اين ديواره آتش بايد به هر كامپيوتر از فضاي اينترنت با هر IP
دلخواه اجازه ارتباط با شبكه داخلي(172.16.0.0/16) را بدهد . اين كامپيوتر
براي اين كار دو رابط Ethernet(eth0 براي شبكه داخلي (172.16.0.0/16) و
eth1 براي محيط بيروني)دارد . بايد ميان اين دو رابط عملكرد IP-Forwarding
فعال باشد. نخست بايد ديواره آتش را در اين Security Gateway طوري تنظيم
كنيم كه Packet هاي AH و ESP را بپذيرد. به همين دليل روي رابط بيروني(همان
eth1) Packet هاي UDP را روي پورت 500(ESP) مي فرستيم.
تنظيمات
FreeS/WAN در فايل /etc/ipsec.conf ثبت مي شود . اين تنظيمات به سه گروه
تقسيم مي شوند. Config setup به تنظيمات پايه اي مربوط مي شود و
conn%default تنظيمات مشترك براي همه ارتباط ها را در خود دارد. گروه سوم
كه با لغت كليدي conn و يك نام دلخواه مشخص مي شود پارامترهاي ارتباطي با
همان نام را در خود دارد. در اين مثال ما نام اين بخش را Roadwarrior
گذاشته ايم كه كاربراني كه از بيرون با كامپيوترهاي همراه به شبكه متصل مي
شوند مربوط مي شود.
/etc/ipsec.conf
در بخش Config setup پيش از
هر چيز بايد رابطي كه درخواست ارتباط هاي IPsec روي آن مي روند رامشخص كرد.
براي اين منظور، فرمان interfaces=%defaultroute كافي است كه البته مي
توانيد بجاي %defaultroute آدرس IP مربوط به كارت را هم وارد كنيد. با
تنظيم كردن kilpsdebug و plutodebug روي none حالت Debug را غير فعال مي
كنيم . Plutoload و plutostart را روي %search تنظيم مي كنيم تا ارتباط ها
پس از درخواست از سمت مقابل ، ايجاد شوند.
دربخشي conn %defqult فرمان
keyingtries = 0 به Gateway مي گويد كه در صورت تغيير كليدهاي رمز تا
پيدايش آنها صبر كند. براي انتخاب اين روش تعيين اعتبار فرمان authby =
rsasig باعث مي شود تا هر دو طرف گفتگو حتما ميان خود گواهينامه مبادله
كنند: leftrsasigkey = %cert rightsasigkey = %cert
براي left هم دوباره
%defaultroute را اعلام مي كنيم كه به عنوان left subnet شبكه
داخلي(172.16.0.0/16) به كار مي رود. كمي بعد اين بخش رابا leftid كامل مي
كنيم كه گواهينامه ما را براي Gateway مشخص مي كند. در بخش conn
Roadwarrior هم با فرمان right = %any به همه كساني كه بتوانند گواهينامه
ارائه كننداجازه دسترسي مي دهيم. حالت ارتباط را هم با type = tunnel مشخص
مي كنيم كه در آن تبادل كليدها از طريق IKE(key exchang = ike) با Perfect
Forwarding Secrecy (pfc = yes) انجام مي گيرد. Auto = add هم به Free
S/WAN مي گويد كه ارتباط در پي در خواست از سوي كاربران بيرون از شبكه
برقرار شود.
گواهينامه
اكنون S/WAN Free براي برقرار كردن ارتباط
با يك رمز گذاري قوي از طريق تبادل گواهينامه پيكربندي شده. گواهينامه
لازم براي Gateway و كاربران بيرون از شبكه را خودمان مي سازيم. براي اين
كار از توانايي هاي SSL open بهره مي گيريم. نخست يك ساختار فهرست براي
ايجاد گواهينامه مي سازيم. براي نمونه فهرست /etc/fenrisCA را در نظر مي
گيريم. اينجا فهرست هاي certs و private key ها مي سازيم.
فهرست private
به طور منطقي بايد در دسترس root باشد. در فهرست/etc/fenrisCA به دو فايل
index.txt و serial نياز داريم. با touch، index.txt را خالي مي كنيم. Open
SSL بعدا در اين فايل ليستي از گواهينامه هاي صادر شده ثبت مي كند. اكنون
در فايل OPENSSL.CNF (كه در /usr/ssl يا /usr/share/ssl قرار دارد) مسير
فهرست CA را به عنوان پارامتر dir وارد مي كنيم.
RootCA
اكنون به
سراغ RootCA مي رويم . براي اين كار نخست يك RSAPrivate به طول 2048 بيت
مي سازيم :openssl gersa –des3 –out private/caKey.pem2048 گزينه des3 باعث
مي شود كه از طريق روش Triple DES ساخته شود تا افراد غير مجاز نتوانند
گواهينامه را درستكاري كنند. البته اكنون گواهينامه را درستكاري كنند.
البته اگر خودمان هم Passphrase را فراموش كنيم امكان انجام اين كار را
نخواهيم داشت.
اكنون گواهينامه RootCA خودمان را ايجاد كرده و آن را به يك بازه زماني محدوده مي كنيم:
Openssl
req –new-x509 –days = 1825 – key private/cakey.pem out caCert.pem به
عنوان passphrase از همان چيزي كه براي Private Key كار برديم استفاده كرده
ايم. سپس openssl تك تك عناصر مربوط به شناسايي دارنده گواهينامه مي پرسد.
در پايان گواهينامه Root CA را در /eht/ipsec.d/cacerts براي Free S/WAN كپي مي كنيم.
گواهينامه Gateway
ساختن
گواهينامه براي Gateway دقيقا همانند روشي است كه براي گواهينامه Root CA
شرح داديم. به كمك گواهينامه Gateway به كاربران بيرون از شبكه اجازه
ارتباط و استفاده از آن ر امي دهيم .
نخست به يك Private key نياز داريم كه اين بار طول آن 1024 بيت است:
openssl gersa –des3 –out private/gwKey.pem1024
اكنون گام بعدي را بر مي داريم:
openssl req –new-key private/gwKey.pem –out geReq.pem
اكنون Request را به عنوان Root CA امضاء مي كنيم:
Openssl ca –notext –in gwReq.pem –out gwCert.pem
اين گواهينامه را بايد در قالب فايل /etc/x509cert.der به شكل باينر روي Gateway ذخيره كنيم . عمل تبديل با فرمان زير انجام مي گيرد:
openssl x509 –in gwcwert.pem –outform der –out /etc/x509cert.der
Private
key با نام gwkey.pem را براي Free S/WAN در /etc/ipsec.d/private كپي مي
كنيم. از اين گذشته بايد Passphrase مربوطه به طور واضح در فايل
/etc/ipsec.secrets آمده باشد. اگر Passphrase به طور نمونه « asample
Passphrase » باشد آن را در سطر زير مي نويسيم :
« asample Passphrase » :RAS gwkey.pem
روشن است كه تنها root بايد به ipsec.secrets دسترسي داشته باشد. اكنون آخرين جاي خالي را در /etc/ipsec.conf پر مي كنيم.
Leftid = "C = IR,ST = Tehran, L = Tehran, O = Rayaneh Magazine, OU = Editorial,CN = fashkain, Email = fashkain@rayanehmag.net"
گواهينامه هاي كاربران
اكنون
بايد عمل تعيين اعتبار را براي هر كاربر يكبار انجام بدهيم. در فرمان زير
كه براي ساختن Private key براي يك كاربر به كار مي رود:
openssl genrsa –des3 –out private/userkey.pem –out 1024
بايد براي هر كاربر Passphrase جداگانه اي وارد كنيد. در گام بعدي فرمان زير را به كار ببريد:
openssl req –new-key private/gwKey.pem –out geReq.pem
اكنون
بايد گواهينامه اي را كه آن را در قالب Root CA امضاءخواهيد كرد
بسازيد.-enddate در اينجا براي مشخص كردن مدت اعتبار به كار مي رود:
Openssl ca –notext –eddate 020931200z in gwReq.pem –out gwCert.pem
در
آخرين مرحله روي اين گواهينامه يك فايل باينري با فرمت PKCS#12 مي سازيم
كهدر ادامه براي سرويس گيرنده هاي ويندوز xp /2000 لازم داريم.
Openssl pkcs12 –export –inusercert.pem –inkey private/userkey.pem –certfile caCert.pem-out user.p12
چشم انداز
پيكربندي
Security Gateway را با موفقيت پشت سر گذاشتيم. در بخش بعدي به سرويس
گيرنده هاي VPN در ويندوز مي پردازيم. براي اين كار از ابزارهاي موجود در
ويندوز 2000 و xp بهره خواهيم برد.
VPN چيست؟ (بخش چهارم)
VPN با لينوكس (2)
در
بخش پيش بر پايه لينوكس 2.4 و Free S/WAN يك VPN Security Gateway راه
انداختيم. با نصب patch هاي x.509 (www.strongsec.com/freewan/) Gateway را
با تنامين اعتبار هاي مطمئن و رمز گذاري هاي قوي كامل كرديم. به اين ترتيب
پيكر بندي سرويس دهنده به پايان مي رسد. اكنون بايد سرويس گيرنده ها را
براي دسترسي به VPN تنظيم كنيم. فرض مي كنيم كه سيستم عامل مورد استفاده
كاربران بيرون از شبكه ويندوز 2000 و xp است كه هر دوي آنها برنامه هاي
لازم براي ايجاد و مديريت ارتباط هاي IPsec را در خود دارند.
البته بايد
اين احتمال را نيز در نظر گرفت كه شايد برخي كاربران با سيستم ويندوز
9x/Me قصد استفاده از VPN را داشته باشند. در اين حالت به يك برنامه سرويس
گيرنده IPsec نياز داريم. يكبار معروفترين اين برنامه ها كه براي كاربردهاي
شخصي رايگان است PGPnet مي باشد. اين برنامه را مي توان حتي روي ويندوز
هاي NT و 2000 هم بكار برد.
ويندوز 2000 و XP
ويندوز هاي 2000و
XP با توجه به پشتيباني از IPsec براي استفاده به عنوان سرويس گيرنده IPsec
بسيار مناسبند. اين دو سيستم عامل افزون بر سرويس هاي IPsec امكاناتي هم
براي ايمني IP دارند. براي ساختن يك تونل VPN، كافي است كه به كاربر تنها
سرويس IPsec را اجرا كرده و گزينه هاي لازم را در آن تنظيم كند.
البته
فرض بر اين است كه تنظيمات امنيتي از پيش انجام شده باشد. انجام اين كار در
ويندوز چندان ساده نيست. در ويندوز 2000 بايد برنامه IPsecPOL
http://agent.microsoft.com/windows2000/techinfo/reskit/tools/existing/ipsecpol-o.asp
را
از ResourceKit نصب كنيد. در ويندوز XP بجاي آن به IPsecCmd نياز داريم.
براي دستيابي به اين برنامه بايد Support Tools را در ويندوز XP به طور
كامل نصب كنيد(فهرست \SUPPORT\TOOLS روي CD ويندوز XP).
تنظيم ipsec.conf
اكنون
ipsec.conf را كه قبلا آماده كرده بوديم مطابق كاربردمان تنظيم كنيم. در
conn %default ارتباط هاي تلفني(Dail up) كه بايد به طور خودكار فعال شوند
مشخص مي شوند.
سپس بخشي قرار مي گيرد كه با conn آغاز مي شود و
پارامترهاي ارتباط VPN را در خود دارد. آدرس هاي محلي كه به طور خودكار
براي آدرس هاي سرويس گيرنده ها به كار مي روند با با left = %any مشخص مي
شوند. در right آدرس IP مربوط به VPNGateway را واردكنيم.
پارامترrightsubnet هم آدرس IP و ماسك شبكه اي كه ارتباط با آن برقرار مي
شود را در خود دارد. در اينجا مي توانيد از هر دو شيوه نوشتن آدرس ها يعني
172.16.0.0/16 يا172.16.0.0/255.255.0.0 استفاده كنيد. Network مشخص مي كند
كه ارتباط از طريق تماس تلفني (network = ras)، شبكه (network = lan) يا
هر دو (network = both) برقرار شود.
پيكر بندي سرويس گيرنده
اكنون
بايد فايل آرشيوي كه براي گواهينامه كاربر، رمز عبور،IPsec و ipsec.conf
ساختيم را از يك راه مطمئن (مثلا Email رمز گذاري شده) به كامپيوتر سرويس
گيرنده بفرستيم. پس از باز كردن اين فايل، بايد يكSnap in را همان طور كه
در شكل مي بينيد اضافه كنيد . براي اين منظور در "Start,Run" ، mmc را وارد
كنيد. سپس از طريق "File,Add/Remove Snap-in" يك Plug in از از جنس
Certificate بسازيد. اين Plug in بايد از جنس Compeuter account براي Local
computer باشد. پس از اتمام كار و زدن كليدهاي Finish ، Close وOk ،Plug
in را در پنجره MMC خواهيد ديد.
خلاصه
لينوكس و Free S/WAN براي
ساختن VPN راه حل هايي هستند كه در مقايسه با راه حل هاي سخت افزاري بسيار
ساده تر و كم هزينه تر است. به ويژه سرويس گيرنده هاي ويندوز 2000 و XP با
توجه به دسترس بودن برنامه هاي لازم بسيار ساده و سريع پيكربندي مي شوند.
اما هنگام راه اندازي VPN نبايد يك نكته فراموش كرد. VPN اگر چه مطمئن است
اما اين اطمينان تا وقتي است كه كامپيوترها در هماهنگي كامل با يكديگر
باشند. اگر از VPN به درستي محافظت نشود بستر بسيار مناسبي براي ويروس ها،
كرم ها، اسب هاي تروآيي و كاربران غير مجاز خواهد بود. بنابراين استفاده از
برنامه هاي ضد ويروس و ديواره آتش را نبايد فراموش كنيد.
نگاهی فنی به 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 را
به مورد اجرا بگذارد.
آموزش راهاندازي شبكه خصوصي مجازي (VPN)
شبكه
خصوصي مجازي يا VPN (Virtual Private Network) در اذهان تصور يك مطلب
پيچيده براي استفاده و پياده كنندگان آن به وجود آورده است . اما اين
پيچيدگي ، در مطالب بنيادين و مفهومي آن است نه در پيادهسازي .
اين
نكته را بايد بدانيد كه پيادهسازي VPN داراي روش خاصي نبوده و هر
سختافزار و نرمافزاري روش پيادهسازي خود را داراست و نميتوان روش
استانداردي را براي كليه موارد بيان نمود . اما اصول كار همگي به يك روش
است .
مختصري درباره تئوري VPN
مفهوم اصلي VPN چيزي جز برقراري
يك كانال ارتباطي خصوصي براي دسترسي كاربران راه دور به منابع شبكه نيست .
در اين كانال كه بين دو نقطه برقرار ميشود ، ممكن است كه مسيرهاي مختلفي
عبور كند اما كسي قادر به وارد شدن به اين شبكه خصوصي شما نخواهد بود .
گرچه ميتوان از VPN در هر جايي استفاده نمود اما استفاده آن در خطوط
Dialup و Leased كار غير ضروري است (در ادامه بهدليل آن پي خواهيد برد).
در
يك ارتباط VPN شبكه يا شبكهها ميتوانند به هم متصل شوند و از اين طريق
كاربران از راه دور به شبكه به راحتي دسترسي پيدا ميكنند. اگر اين روش از
ارائه دسترسي كاربران از راه دور را با روش خطوط اختصاصي فيزيكي (Leased)
مقايسه كنيم ، ميبينيد كه ارائه يك ارتباط خصوصي از روي اينترنت به مراتب
از هر روش ديگري ارزانتر تمام ميشود .
از اصول ديگري كه در يك شبكه
VPN در نظر گرفته شده بحث امنيت انتقال اطلاعات در اين كانال مجازي ميباشد
. يك ارتباط VPN ميتواند بين يك ايستگاه كاري و يك شبكه محلي و يا بين دو
شبكه محلي صورت گيرد. در بين هر دو نقطه يك تونل ارتباطي برقرار ميگردد و
اطلاعات انتقال يافته در اين كانال به صورت كد شده حركت ميكنند ،
بنابراين حتي در صورت دسترسي مزاحمان و هكرها به اين شبكه خصوصي نميتوانند
به اطلاعات رد و بدل شده در آن دسترسي پيدا كنند.
جهت برقراري يك
ارتباط VPN ، ميتوان به كمك نرمافزار يا سختافزار و يا تركيب هر دو ، آن
را پيادهسازي نمود . به طور مثال اكثر ديوارههاي آتش تجاري و روترها از
VPN پشتيباني ميكنند . در زمينه نرمافزاري نيز از زمان ارائه ويندوز NT
ويرايش 4 به بعد كليه سيستم عاملها داراي چنين قابليتي هستند .
در اين مقاله پيادهسازي VPN بر مبناي ويندوز 2000 گفته خواهد شد .
پياهسازي VPN
براي
پيادهسازي VPN بر روي ويندوز 2000 كافيست كه از منوي
Program/AdministrativeTools/ ، گزينه Routing and Remote Access را انتخاب
كنيد . از اين پنجره گزينه VPN را انتخاب كنيد . پس از زدن دكمه Next وارد
پنجره ديگري ميشويد كه در آن كارتهاي شبكه موجود بر روي سيستم ليست
ميشوند .
براي راهاندازي يك سرور VPN ميبايست دو كارت شبكه نصب شده بر روي سيستم داشته باشيد .
از
يك كارت شبكه براي ارتباط با اينترنت و از كارت ديگر جهت برقراري ارتباط
با شبكه محلي استفاده ميشود. در اينجا بر روي هر كارت بهطور ثابت IP
قرار داده شده اما ميتوان اين IPها را به صورت پويا بر روي كارتهاي شبكه
قرار داد .
در پنجره بعد نحوه آدرسدهي به سيستم راه دوري كه قصد اتصال
به سرور ما را دارد پرسيده ميشود . هر ايستگاه كاري مي تواند يك آدرس IP
براي كار در شبكه محلي و يك IP براي اتصال VPN داشته باشد . در منوي بعد
نحوه بازرسي كاربران پرسيده ميشود كه اين بازرسي مي تواند از روي كاربران
تعريف شده در روي خود ويندوز باشد و يا آنكه از طريق يك سرويس دهنده
RADIUS صورت گيرد در صورت داشتن چندين سرور VPN استفاده از RADIUS را به
شما پيشنهاد ميكنيم . با اين روش كاربران ، بين تمام سرورهاي VPN به
اشتراك گذاشته شده و نيازي به تعريف كاربران در تمامي سرورها نميباشد.
پروتكلهاي استفاده شونده
عملياتي كه در بالا انجام گرفت تنها پيكربنديهاي لازم جهت راهاندازي يك سرور VPN ميباشد .
اما
(Remote Routing Access Service) RRAS داراي دو پروتكل جهت برقراري تونل
ارتباطي VPN ميباشد. سادهترين پروتكل آن PPTP (Point to Point Tunneling
Protocol) است ، اين پروتكل برگرفته از PPP است كه در سرويسهاي Dialup
مورد استفاده واقع ميشود ، در واقع PPTP همانند PPP عمل ميكند .
پروتكل
PPTP در بسياري از موارد كافي و مناسب است ، به كمك اين پروتكل كاربران
ميتوانند به روشهاي PAP (Password Authentication Protocol) و Chap
(Challenge Handshake Authentication Protocol) بازرسي شوند. جهت كد كردن
اطلاعات ميتوان از روش كد سازي RSA استفاده نمود.
PPTP براي كاربردهاي
خانگي و دفاتر و افرادي كه در امر شبكه حرفهاي نيستند مناسب است اما در
جايگاه امنيتي داراي پايداري زيادي نيست . پروتكل ديگري به نام L2TP
(Layer2 Forwarding) به وسيله شركت CISCO ارائه شده كه به لحاظ امنيتي
بسيار قدرتمندتر است.
اين پروتكل با استفاده از پروتكل انتقال اطلاعات
UDP (User Datagram Protocol) بهجاي استفاده از TCP به مزاياي زيادي دست
يافته است . اين روش باعث بهينه و ملموستر شدن براي ديوارههاي آتش شده
است ، اما باز هم اين پروتكل در واقع چيزي جز يك كانال ارتباطي نيست . جهت
حل اين مشكل و هر چه بالاتر رفتن ضريب امنيتي در VPN شركت مايكروسافت
پروتكل ديگري را به نام IPSec (IP Security) مطرح نموده كه پيكربندي VPN با
آن كمي دچار پيچيدگي ميگردد.
اما در صورتي كه پروتكل PPTP را انتخاب
كردهايد و با اين پروتكل راحتتر هستيد تنها كاري كه بايد در روي سرور
انجام دهيد فعال كردن قابليت دسترسي Dial in ميباشد. اين كار را ميتوانيد
با كليك بر روي Remote Access Polices در RRAS انجام دهيد و با تغيير
سياست كاري آن ، آن را راهاندازي كنيد (به طور كلي پيشفرض سياست كاري ،
رد كليه درخواستها ميباشد).
دسترسي ايستگاه كاري از طريق VPN
حالا
كه سرور VPN آماده سرويسدهي شده ، براي استفاده از آن بايد بر روي
ايستگاه كاري نيز پيكربنديهايي را انجام دهيم . سيستم عاملي كه ما در
اينجا استفاده ميكنيم ويندوز XP ميباشد و روش پيادهسازي VPN را بر روي
آن خواهيم گفت اما انجام اين كار بر روي ويندوز 2000 نيز به همين شكل صورت
ميگيرد . بر روي ويندوزهاي 98 نيز ميتوان ارتباط VPN را برقرار نمود ،
اما روش كار كمي متفاوت است و براي انجام آن بهتر است به آدرس زير مراجعه
كنيد :
www.support.microsot.com
بر روي ويندوزهاي XP ، يك نرمافزار
جهت اتصال به VPN براي هر دو پروتكل PPTP و L2TP وجود دارد. در صورت
انتخاب هر كدام ، نحوه پيكربندي با پروتكل ديگر تفاوتي ندارد . راهاندازي
VPN كار بسيار سادهاي است ، كافيست كه بر روي Network Connection كليك
نموده و از آن اتصال به شبكه خصوصي از طريق اينترنت (Private Network
Through Internet) را انتخاب كنيد .
در انجام مرحله بالا از شما يك اسم
پرسيده ميشود . در همين مرحله خواسته ميشود كه براي اتصال به اينترنت يك
ارتباط تلفني (Dialup) تعريف نماييد ، پس از انجام اين مرحله نام و يا آدرس
سرور VPN پرسيده ميشود .
مراحل بالا تنها مراحلي است كه نياز براي
پيكربندي يك ارتباط VPN بر روي ايستگاههاي كاري ميباشد . كليه عمليات
لازمه براي VPN به صورت خودكار انجام ميگيرد و نيازي به انجام هيچ عملي
نيست . براي برقراري ارتباط كافيست كه بر روي آيكوني كه بر روي ميز كاري
ايجاد شده دو بار كليك كنيد پس از وارد كردن كد كاربري و كلمه عبور چندين
پيام را مشاهده خواهيد كرد كه نشاندهنده روند انجام برقراري ارتباط VPN
است .
اگر همه چيز به خوبي پيش رفته باشد ميتوانيد به منابع موجود بر
روي سرور VPN دسترسي پيدا كنيد اين دسترسي مانند آن است كه بر روي خود سرور
قرار گرفته باشيد .
ارتباط سايت به سايت (Site-to-Site VPN)
در
صورتي كه بخواهيد دو شبكه را از طريق يك سرور VPN دومي به يكديگر وصل كنيد
علاوه بر مراحل بالا بايد چند كار اضافهتر ديگري را نيز انجام دهيد .
جزئيات
كار به پروتكلي كه مورد استفاده قرار ميگيرد . جهت اين كار بايد سرور را
در پنجره RRAS انتخاب كرده و منوي خاص (Properties) آن را بياوريد .
در
قسمت General مطمئن شويد كه گزينههاي LAN و Demand Dial انتخاب شده باشند
(به طور پيش گزيده انتخاب شده هستند). همچنين اطمينان حاصل كنيد كه پروتكل
را كه قصد روت (Route) كردن آن را داريد فعال است .
پس از مراحل بالا
نياز به ايجاد يك Demand Dial داريد ، اين كار را ميتوانيد با يك كليك
راست بر روي واسط روت (Routing Interface) انجام دهيد .
در پنجره بعدي
كه ظاهر ميشود بايد براي اين ارتباط VPN خود يك نام تعيين كنيد اين نام
بايد همان اسمي باشد كه در طرف ديگر كاربران با آن به اينترنت متصل ميشوند
در صورتي كه اين مطلب را رعايت نكنيد ارتباط VPN شما برقرار نخواهد شد .
پس از اين مرحله بايد آدرس IP و يا نام دامنه آن را مشخص كنيد و پس از آن نوع پروتكل ارتباطي را تعيين نمود .
اما
مرحله نهايي تعريف يك مسير (Route) بر روي سرور ديگر ميباشد بدين منظور
بر روي آن سرور در قسمت RRAS ، Demand Dial را انتخاب كنيد و آدرس IP و
سابنت را در آن وارد كنيد و مطمئن شويد كه قسمت
Use This to Initate Demand
انتخاب شده باشد . پس از انجام مرحله بالا كار راهاندازي اين نوع VPN به پايان ميرسد .
پايان
همانطور
كه ديديد راهاندازي يك سرور VPN بر روي ويندوز 2000 تحت پروتكل PPTP كار
سادهاي بود اما اگر بخواهيد از پروتكل L2TP/IPSec استفاده كنيد كمي كار
پيچيده خواهد شد . به خاطر بسپاريد كه راهاندازي VPN بار زيادي را بر روي
پردازنده سرور ميگذارد و هرچه تعداد ارتباطات VPNبيشتر باشد بار زيادتري
بر روي سرور است كه ميتوانيد از يك وسيله سختافزاري مانند روتر جهت
پيادهسازي VPN كمك بگيرد.
منبع : 3 نسل دات کام www.3nasl.com