هدف از این کار این هستش که مثلا دوتا سیستم ای رو که از هم دور هستند و در یک شبکه هم قرار ندارند رو ب طور مجازی و در یک شبکه مجازی قرار داد.
قدم اول) نصب بسته ی openvpn
$sudo apt-get install openvpn
این بسته برای هر دو طرف معادل هست و فرقی برای کلاینت و یا سرور نمی کنه.
قدم دوم)تنظیم سرور
نکته:: بحث کلاینت و سرور تا قبل از ایجاد ارتباط هستش وبعد از برقراری ی ارتباط بین هیچ کدام از طرفین اخلافی نیستش.
نکته:: از مزایایی تونل مجازی کد کردن داده هاست و این کار توسط ی کد خیلی بزرگ انجام میشه! لذا کشف رمز دیتای ارتباطی نسبتا ناممکن بنظر میرسه.
چه خوب!
و البته برای دوستانی که ممکنه علت رو ندانند این رو اضافه میکنم: مثل این می ماند که شما می خواهی با دوستت ی روش رمزنگاری داشته باشی!
اولین کار اتون اینه ک ی پایه ی رمز بگذارید!مثلا کد اسکی ی هر حرفی رو بگیرید! پنج واحد بهش اضافه کنید و مجدد به حروف الفبایی برش گردونید! خب حالا همه ی چند تا حرف می بینند که هیچ معنای خاصی نداره و فقط دوست شما با دانستن پایه ی رمز ! یعنی کم کردم پنج واحد از مقدار کد اسکی ی هر حرفی می تونه اطلاعات شما رو کشف رمز کنه و متوجه منظور اصلی ی شما بشه!
خب حالا اگه شما داده ی خودتون رو در چند عدد ضرب! ی دو سه باز تقسیم! ی منهایی! و بعد هم ب توان رسانده باشیم! اون هم با اعداد نجومی!!!!
خب حق اتون هستش که دارای دادی ای کاملا حفاظت شده باشید.
کار ما هم دقیقا همین هستش! اول ی پایه ی رمز میگذاریم! یا همون کلید رمز گشایی! و در اختیار دو طرف داستان هم قرار اش می دیدم!
حالا این دوتا می تونند زبان هم رو بفهمند.
اوکی! از حاشیه بکاهیم و بر مایه بیفزاییم:)
ی نکته ی خاص داشتم با این روش! حتما از همین ابتدا به دستور
$su
به حالت root بروید! و از sudo استفاده نکنید! فایده نداره!
اول لازم هستش که ی کد پایه رو توسط سرور ایجاد کنیم::
#openvpn --genkey --secret mykey.key
اگه از شاخه ی جاری ی لیست بگیرید می بینید ی فایل متنی ب اسم mykey.key ایجاد شده که همان رمز کشای ما هستش! حتما یادمون باید باشه که همین فایل رو به سمت کلاینت کپی کنیم! از خودمون یکی دیگه بسازیم فایده نداره! چون اینا ها رو صورت شانسی تولید شده اند.
حالا باید ی فایل هم برای پیکر بندی ی سرور امون داشته باشیم که من اسم اش رو OpenVpnServer.conf می گذارم و محتوای داخل اش هم به این صورت خواهد بودش!
dev tun
ifconfig 10.0.0.1 10.0.0.2
secret mykey.key
توضیحات:: اول که می گه ی وسیله ی تونل بساز ! البته ب سیستم عامل میگه!
و بعد اش هم روی آن تونل شماره ی IP ی ۱۰.۰.۰.۱ رو قرار میده و منتظر وای میشه یا ی کلاینت بهش وصل بشه و اون رو هم با شماره ی IP ی ۱۰.۰.۰.۲ شناسایی خواهد نمود. و البته بعد معین می کنه که برای رمز نگاری از چ کد رمز نگاری/گشایی استفاده کنه!
حالا موژول تونل رو هم لود می کنیم
#modprobe tun
و در قسمت بعدی فقط باید ب صورت ی پروسه ی در پشت صحنه اجرا کنیم اش
#openvpn OpenVpnServer.conf &
اوکی!
از قدم و مرحله فکر کنم دور شدیم!
ولی کارمون روی سمت سرور تمام شده! و باید ب سمت کلاینت بریم و ابتدا باید یامون باشه که حتما به حالت root تغییر وضعیت بدیم.
بعد هم ی فایل متنی با اسم mykey.key ایجاد می کنیم و دقیقا همان کد ای رو که در سمت سرور ایجاد شده در این کپی می کنیم! خواهش میشه: ی موقع از اول تولید نکنید اش!
دقیقا محتوای همون فایل سرور رو اینجا هم می خواهیم! خط به خط! حالا یا همون فایل رو کپی کنید در کلاینت و یا باز اش کنید و محتواش روعینا کپی کنید.
و البته ی فایل هم برای پیکر بندی ی کلاینت نیاز داریم که اسم اش رو می گذاریم OpenVpnClient.conf و محتوای اون هم ب شرح ذیل خواهد بود::
remote ServerIPaddress
dev tun
ifconfig 10.0.0.2 10.0.0.1
secret mykey.key
توضیحات::
خط اول باید ب جای اون عبارت من! شماره ی آی پی ی معتبر از سیستم سرور راه دور اتون رو قرار بدید که روی اون پروسه س سرور رو اجرا کردیم! البته اگه در ی شبکه باشید که اسمش هم کفایت می کنه و یا آی پی ی نا معتبر داخلی.
بعد هم ک ی ابزار تونل روباز می کنه و بهش می گه که با شماری ی IP ی ۱۰.۰.۰.۲ خودش رو به سیستمی با شماره ی IP ی ۱۰.۰.۰.۱ متصل کنه که البته بالاتر IP ی معتبر اش رو هم ب openvpn معرفی کردیم و در آخر هم کد رمز نگاری/گشایی رو بهش داده.
بازم تاکید! محتوای این کد در هر دو طرف بایستی یکسان باشه.
حالا ماژول رو در این سمت هم بارگذاری و پرپسه رو در پشت صفحه اجرا می کنیم::
#modprobe tun
#openvpn OpenVpnClient.conf &
خسته نباشید دیگه! خلاص شد.
برای تست اش هم ی راه خب هستش! پینگ هر دوتا شماری IP ی جدید که بهشون داده اید! یعنی
#ping 10.0.0.1
#ping 10.0.0.2
بایستی هر دوتا دارای پاسخ باشند ! از هر دو طرف
ی راه جالب تر هم هستش! با برنامه ی netcat روی سرور گوش با ایستید و ببنید که می توانید از کلاینت باهاش صحبت کنید یا نه!
این طوری
روی سرور این دستور رو بزنید:
#netcat -l -p 8000
و در سمت کلاینت هم این رو
#netcat 10.0.0.1 8000
حالا هر چیزی که در سمت کلاینت بنویسید و اینتر کنید رو باید در ترمینال سرور اتون مشاهده کنید.
امید وارم که براتون جالب و البته مفید بوده باشه.