Virtual Private Network یا به اختصار VPN به شما امکان دسترسی به شبکه خصوصی (Private LAN) خود از طریق شبکه های عمومی (PublicNetworks) مانند اینترنت را فراهم می کند. VPN یک ارتباط امن با شبکه دفتر یا سازمان در بستر اینترنت در اختیار قرار می دهد.
قابلیت راه اندازی VPN Server در IP-PBX های سری S شرکت یستار به شما کمک می کند تا PBX خود را تبدیل به یک VPN Server کنید که امکان اتصال چندین نقطه (Client) با ارتباطی امن و مطمئن از مزایای این قابلیت سری S محسوب می شود.
نکته: IP-PBX های سری S یستار از OpenVPN استفاده می کند. برنامه VPN Server از نسخه 30.2.0.8 در سری S پشتیبانی می شود.
قدم های اصلی در راه اندازی سرور VPN
قدم اول: ساخت یک گواهی (SSL Certificate) و کلید برای سرور و کاربران. روش ساخت گواهی با استفاده از ویندوز در این راهنما شرح داده شده است.
قدم دوم: نحوه اعمال تنظیمات در بخش سرور و کابران
این راهنما حاوی راهنمای تنظیم VPN Server بر روی مدل S20 و طریقه اتصال کاربران به سرور می باشد.
قبل از شروع خوب است تا کمی در خصوص TLS/SSL شرح دهیم. TLS/SSL یک نوع پروتکل رمزنگاری امنیتی در بستر شبکه های کامپیوتری است. نسخه های متفاوتی از SSL برای سرویس های مختلفی در شبکه همچون Web Server ،Mail Server، برنامه های پیام رسان و VoIP استفاده می شود. در حقیقت این پروتکل امنیت و یکپارچه بودن اطلاعات را در یک ارتباط کامپیوتری تضمین می کند. بعد از راه اندازی این پروتکل در ارتباط بین رایانه سرویس دهنده و سرویس گیرنده این ویژگی ها اضافه می گردند:
– ارتباط شما تبدیل به یک ارتباط خصوصی (امن) و کلید بازگشایی اطلاعات به صورت منحصر بفرد برای هر جلسه (Session) تولید می شود.
– احراز هویت از طریق یک کلید عمومی رمزنگاری شده به صورت اختیاری انجام می شود، با این حال از این کلید اغلب در سمت سرور استفاده می شود.
OpenVPN نیز از رمزنگاری SSL در اتباطات خود استفاده می کند، به همین دلیل نیاز است تا با تعدادی از اصطلاحات این حوزه آشنا شویم.
-(CA (Certificate Authorities:
TLS برای اعتبار سنجی گواهی نامه ها از لیست تایید شده سازمان های ارائه دهنده این گواهی استفاده می کند که همان CA نام دارد، هر چند می توانید رکوردهایی به لیست در برنامه های که استفاده می کنید اضافه نمایید.
-Cipher:
یک مفهوم در ارتباطات رمز نگاری شده بوده و الگوریتم encrypt و de-creyp را مشخص می نمایند؛ بعد از برقراری ارتباط (Handshake) بین کاربر و سرور Cipher های قابل پشتیبانی ارائه می شوند.
-Self Sign:
گواهی SSL بایستی از یکی صادر کننده های معتبر خریداری شود، همچنین می توانید با ابزار OpenSSL اقدام به تولید گواهی و امضای آن کنید که در این حالت به این گواهی Self-Signed می گویند.
نصب OpenVPN
برای شروع نیاز به نصب برنامه OpenVPN بر روی رایانه خود داریم سپس نحوه انجام تنظیمات و همچنین تولید گواهی SSL را بررسی می کنیم. برنامه OpenVPN را بر اساس سیستم عامل خود با لینک های زیر می توانید دریافت کنید.
ویندوز XP نسخه 32 بیتی
ویندوز XP نسخه 64 بیتی
ویندوز ویستا و بالاتر نسخه 32 بیتی
ویندوز ویستا و بالاتر نسخه 64 بیتی
دقت کنید هنگام نصب بر روی سیستم خود سطح دسترسی Administrator داشته باشید. بر روی برنامه کلیک کنید تا مراحل نصب آغاز شود.
با کلیک بر روی Agree به مرحله بعد بروید.
دو گزینه ی OpenSSL Utilities و OpenVPN RSA Certificate را انتخاب کنید تا بسته های مورد نیاز جهت تولید گواهی SSL بر روی سیستم نصب شوند.
مسیر نصب برنامه را انتخاب کنید. در این راهنما ما مسیر پیش فرض را انتخاب کرده ایم، بر روی Install کلیک کنید.
قدم اول: ساخت یک گواهی (SSL Certificate) و کلید برای سرور و کاربران.
پس از اتمام مراحل نصب OpenVPN می بایست یک گواهی و کلید تولید کنیم.
قدم اول: تغییر فایل نمونه vars.bat.sample:
با یک نرم افزار ویرایشگر مانند ++Notepad در مسیری که برنامه OpenVPN نصب شده، (در این مثال C:\Program Files\OpenVPN\easy-rsa) فایل vars.bat.sample را ویرایش کنید. مقادیر HOME و KEY_SIZE را با توجه به شکل زیر تغییر دهید.
set HOME=%ProgramFiles%\OpenVPN\easy-rsa
set KEY CONFIG=openss1-1.0.0.cnf
rem Edit this variable to point to
rem your soon-to-be-created key
rem directory.
rem
rem WARNING: clean-all will do
rem a rm -rf on this directory
rem so make sure you define
rem it correctly!
set KEY DIR=key
rem Increase this to 2048 if you
rem are paranoid. This will slow
rem down TLS negotiation performance
rem as well as the one-time DH parms
rem generation process.
set KEY SIZE=1024
متغیر HOME آدرس ابزار Easy-RSA را در خود نگه می دارد.
متغیر KEY_SIZE به معنای مقدار طول کلید تولید شده است، به طور معمول این مقدار بر روی 1024 تنظیم می گردد. شما می توانید با توجه به نیازتان این مقدار را بیشتر کنید به عنوان مثال بر روی 2048 تنظیم شود. دقت داشته باشید هرچه طول کلید بیشتر شود، رمزنگاری قوی تری خواهید داشت اما فاکتور زمان و بار پردازشی بیشتری به سرور تحمیل می کنید.
همچنین می توانید مقادیر دیگر را نیز تغییر دهید. هرچند که در مرحله تولید کلید و گواهی از شما مجدد سوال پرسیده خواهد شد اما با تنظیم آن ها در این قسمت پارامترها به صورت پیش فرض خواهند بود و شما مراحل را با سرعت بیشتری طی خواهید کرد.
set KEY COUNTRY=IR
set KEY PROVINCE=TEH
set KEY CITY=Tehran
set KEY ORG=SENA
set KEYEMAIL=support@senatelecom.ir
قدم دوم: آغاز تولید کلید عمومی (PKI)
از طریق منوی استارت برنامه (Command Prompt (cmd را اجرا کنید. با استفاده از دستور cd وارد مسیر نصب شده OpenVPN و پوشه easy-rsa شوید. در مثال ما آدرس به این صورت خواهد بود:
C:\Program Files\OpenVPN\easy-rsa
Microsoft Windows [Version 6.1.76011 Copyright (c) 2009 Microsoft Corporation. All rights reserved.
C:\Users\Saeed> cd C:\Progran Files\OpenUPN\easy-rsa
C:\Progran Files\OpenUPN\easy-rsa>
اکنون در مسیر جاری ابزارهای easy-rsa را در اختیار داریم. دستورات زیر را اجرا کنید:
init config
این دستور تنظیمات اولیه را پایه ریزی می کند که شامل کپی کردن محتوای فایل vars.bat.sample در فایل vars.bat می باشد.
Microsoft Windows [Version 6.1.76011 Copyright (c) 2009 Microsoft Corporation. All rights reserved.
C:\Users\Saeed>cd C:\Progran Files\OpenUPN\easy—rsa
C:\Progran Files\OpenUPN\easy—rsa>init—config
C:\Progran Files\OpenUPN\easy—rsa>copy vars.bat.sanple vars.bat
i file(s) copied.
C:\Progran Files\OpenUPN\easy—rsa>
vars
متغیرهایی که ما در فایل vars.bat.sample تعریف کرده ایم، مورد استفاده قرار می گیرند.
clean-all
با اجرای این دستور مطمئن می شویم که محیط اجرایی که در آن قرار داریم شامل متغیرهایی است که خودمان تنظیم کردهایم.
C:\Users\Saeed>cd C:\Progran Files\OpenUPN\easy-rsa
C:\Program Files\OpenUPN\easy-rsa>init-config
C:\Program Files\DpenUPN\easy-rsa>copy vars-bat.sample vars-bat
1 file copied
C:\Program Files\OpenOPN\easy-rsa>vars
C:\Program Files\OpenUPN\easy-rsa>clean-all
1 file copied
1 file copied
C:\Program Files\OpenUPN\easy-rsa>
قدم سوم: ساخت گواهی اصلی (root) و کلید آن:
1- دستور build-ca را اجرا کنید.
2- اطلاعات سازمان خود را وارد کنید.
نکته: اغلب پارامترها در این قسمت توسط فایل vars.bat که در مرحله قبل ویرایش کردیم فراخوانی می شوند. تنها متغیری که نیاز داریم تا به طور واضح آن را مشخص کنیم پارامتر Common Name نام دارد. در این مثال ما از اسم OpenVPN-CA استفاده می کنیم.
C:\Program Files\OpenUPN\easy-rsa>build-ca
WARNING: can't open config file: /etc/ssl/openssl.cnf
Loading 'screen' into random state - done
enerating a 1024 bit RSA private key
-----------------------------------------++++
----------------------------++++
writing new private key to 'keys\ca.key'
----
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN-
There are quite a few fields but you can leave some blank
For some fields there will he a default value,
If you enter '.', the field will he left blank.
----
Country Name <2 letter code> [IR]:
State or Province Name [TEH]:
Locality Name [Tehran]:
Organization Name [SENA]:
rganizational Unit Name [changeme]:
Common Name [changeme]: OpenUPN_CA
Name [changeme]: Email Address [support@senatelecom.ir]:
C:\Program Files\OpenUPN\easy-rsa>
قدم چهارم: تولید گواهی و کلید برای سرور
مانند قدم قبل می توانید از مقادیر به صورت پیش فرض استفاده کنید به غیر از Common Name که باید در این قسمت server وارد شود.
دو سوال اضافه در این قسمت از شما پرسیده می شود، آیا مایل به امضای گواهی دیجیتال خود هستید و آیا با درخواست تاییدیه موافق هستید که بایستی به هر دو این سوالات با وارد کردن کاراکتر y موافقت کنید.
دستور این قسمت:
build-key-server server
C:\Program Files\OpenVPN\easy-rsa/build-key-server server
WARNING: can't open config file: /etc/ssl/openssl.cnf
Loading 'screen' into random state - done
Generating a 1024 bit RSA private key
---------------++++++
--------------------------------++++++
writing new private key to 'keys\server.key'
-----
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [IR]:
State or Province Name (full name) [TEH]:
Locality Name (eg, city) [Tehran]:
Organization Name (eg, company) [SENA]:
Organizational Unit Name (eg, section) [changeme]:
Common Name (eg, your name or your server's hostname) [changeme]: server
Name [changeme]:
Email Address [support@senatelecom.ir]:
Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:
An optional company name []:
WARNING: can't open config file: /etc/ssl/openssl.cnf
Using configuration from openssl-1.0.0.cnf
Loading 'screen' into random state - done
Check that the request matches the signature
Signature ok
The Subject's Distinguished Name is as follows
countryName :PRINTABLE:'IR'
stateOrProvinceName :PRINTABLE:'TEH'
localityName :PRINTABLE:'Tehran'
organizationName :PRINTABLE:'SENA'
organizationalUnitName :PRINTABLE:'changeme'
commonName :PRINTABLE:'server'
name :PRINTABLE:'changeme'
emailAddress :IA5STRING: 'support@senatelecom.ir'
Certificate is to be certified until Mar 6 09:42:27 2027 GMT (3650 days)
Sign the certificate? [y/n]:y
1 out of 1 certificate requests certified, commit? [y/n]y
Write out database with 1 new entries
Data Base Updated
C:\Program Files\OpenVPN\easy
قدم پنجم: ساخت گواهی برای کاربران:
دستور build-key client را اجرا کنید.
در این مثال ما برای یک کاربر با گوشی اندروید گواهی را ایجاد می کنیم، شما می توانید به هر تعداد برای هر نوع کاربری گواهی را با الگویی که در اینجا بررسی می کنیم، بسازید.
نکته: برای هر کاربر یک common name منحصر بفرد اختصاص دهید.
C:\Program Files\OpenVPN\easy-rsa>build-key android
WARNING: can't open config file: /etc/ssl/openssl.cnf
Loading 'screen' into random state - done
Generating a 1024 bit RSA private key
.++++++
....+++++
writing new private key to 'keys android.key'
-----
You are about to be asked to enter information that will be incorporated into
your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.' the field will be left blank.
-----
Country Name (2 letter code) [IR]:
State or Province Name (full name) [TEH]:
Locality Name (eg, city) [Tehran]:
Organization Name (eg, company) [SENA]:
Organizational Unit Name (eg, section) [changeme]:
Common Name (eg, your name or your server's hostname) [changeme]: android
Name [changeme]:
Email Address [support@senatelecom.ir]:
Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:
An optional company name []:
WARNING: can't open config file: /etc/ssl/openssl.cnf
Using configuration from openssl-1.0.0.cnf
Loading 'screen' into random state - done
Check that the request matches the signature
Signature ok
The Subject's Distinguished Name is as follows
countryName :PRINTABLE:'IR'
stateOrProvinceName :PRINTABLE:'TEH'
localityName :PRINTABLE:'Tehran'
organizationName :PRINTABLE:'SENA'
organizationalUnitName :PRINTABLE:'changeme'
commonName :PRINTABLE:'android'
name :PRINTABLE:'changeme'
emailAddress :IASSTRING:'support@senatelecom.ir'
Certificate is to be certified until Mar 6 10:08:14 2027 GMT (3650 days)
Sign the certificate? [y/n]:y
1 out of 1 certificate requests certified, commit? [y/n]y
Write out database with 1 new entries
Data Base Updated
C:\Program Files\OpenVPN\easy-rsa)
قدم ششم: تولید مقادیر Diffie Hellman
* دفی هلمن یک الگوریتم بوده که برای برقراری ارتباط با یک کلید مخفی مشترک بین دو دستگاه کاربرد دارد. برای راه اندازی OpenVPN Server تولید کد دفی هلمن الزامی است.
دستور build-dh را اجرا کنید.
C:\Program Files\OpenVPN\easy-rsa>build-dh
WARNING: can't open config file: /etc/ssl/openssl.cnf
Loading 'screen' into random state - done
Generating DH parameters, 1024 bit long safe prime, generator 2
This is going to take a long time
....................................+..........+
.........+......................................
....................+...........................
...............+................................
.....................+.....+*+**++**
C:\Program Files\OpenVPN\easy-rsa)
قدم هفتم: تولید کلید ta.key (اختیاری)
دستور openvpn –genkey –secret keys/ta.key را برای تولید کلید اجرا کنید.
توجه: تمام دستورات بالا در یک Command Prompt اجرا شده اند. درصورتی که قصد دارید Command Prompt دیگری برای اجرای دستورات باز کنید به نکات زیر توجه کنید:
تا زمانی که در فایل تغییری ایجاد نکرده اید نیاز به وارد کردن دستور init-config نیست.
هر زمان که می خواهید Command Prompt جدید باز کنید بایستی دستور vars را اجرا سپس سایر گواهی مورد نظر خود را تولید کنید.
گواهی و کلیدها
اکنون می توانیم فایل های ایجاد شده با دستورات قبل را در مسیر easy-rsa/keys داشته باشیم، نیاز است تا فایل های مربوط به هر دستگاه به مسیر درست انتقال داده شوند. در جدول زیر فایل های هر دستگاه به صورت جداگانه لیست شده اند:
دستگاه | فایل های مورد نیاز |
---|---|
S-Series PBX (Server) | |
ca.crt | |
ca.key | |
fh1024.key | |
server.crt | |
server.key | |
ta.key | |
Android Phone | |
ca.crt | |
android.crt | |
android.key | |
ta.key |
قدم دوم: نحوه اعمال تنظیمات در بخش سرور و کابران
تنظیم OpenVPN Server در PBX های سری S
از طریق رابط کاربری وب PBX خود در منوی اصلی وارد برنامه App Center شوید. لیستی از برنامه های موجود برای شما به نمایش در خواهد آمد، OpenVPN را انتخاب کرده و بر روی Install کلیک کنید.
بعد از اتمام مراحل نصب می توانید آیکون OpenVPN را در منوی اصلی مشاهده کنید.
بعد از کلیک بر روی آیکون VPN Server گزینه Enable VPN Server را تیک بزنید تا سرور شما فعال گردد.
تنظیمات
در جدول زیر به بررسی هر کدام از گزینه ها می پردازیم:
ویژگی | توضیح |
---|---|
Server Port | شماره پورتی که سرور OpenVPN به آن گوش میدهد، به صورت پیش فرض ۱۱۹۴ |
Enable Compression | فعال سازی فشرده سازی در لینک VPN در صورت فعال شدن در سمت کاربر نیز فعال گردد |
Protocol | نوع پروتکل لایه انتقال که شامل دو گزینه UDP و TCP می باشد. |
Address Pool | بازه آدرس های IP در شبکه VPN شما |
Subnet Mask | زیرشبکه VPN |
Global Traffic Forwarding | در صورت فعال سازی تمام ترافیک کاربران از طریق Default Gateway سیستم PBX شما منتقل می.شود. اگر این گزینه غیر فعال باشد تنها به کاربران داخل شبکه VPN دسترسی دارید. |
Device Mode |
|
Encryption |
|
Key Length | طول کلید، این مقدار باید با مقداری که در فایل vars.bat.sample برای پارامتر Key_Size تعریف کرده اید یکسان باشد. |
Maximum Number Of Clients | بیشترین تعداد کاربرانی که در شبکه VPN می توانند حضور داشته باشند. |
Verification Mode |
|
آپلود گواهی و کلید بر روی سرور
فایل های ساخته شده مربوط به سرور را در مسیر easy-rsa با الگوی زیر در عکس بارگذاری کنید.
بعد از کلیک بر روی گزینه Save، وضعیت سرور به Running تبدیل می شود.
جهت بررسی صحت راه اندازی می توانید از منوی اصلی وارد بخش Resource Monitor شوید
در بخش Network > VPN Server، سرور شما اولین آدرس از Pool را برای خود رزرو کرده است
دسترسی به OpenVPN Server از طریق سیستم عامل اندروید
قدم اول: نرم افزار OpenVPN connect را دانلود و نصب کنید. این برنامه در Google Play نیز موجود است.
قدم دوم: ایجاد پوشه برای OpenVPN
دستگاه اندرویدی خود را با کابل به رایانه وصل کنید و وارد مسیر اصلی فایل ها در SD Card شوید. یک پوشه در این مسیر بسازید و نام آن را OpenVPN بگذارید.
قدم سوم: در این پوشه فایل های زیر را که قبلا ساخته شده، کپی کنید:
• ca.crt
• android.crt
• android.key
• ta.key
قدم چهارم: فایل تنظیمات کاربر
اکنون فایل اتصال کاربر که شامل تنظیمات می باشد را ویرایش و ذخیره کنید.
نکته: توضیحات در این فایل با کاراکتر “#” یا “,” مشخص می شوند.
نکته مهم: دستگاه های اندرویدی حالت TAP را پشتیبانی نمی کنند.
فایل نمونه را با یک ویرایشگر متن باز کنید و مانند تصویر تنظیمات را اعمال کنید:
client
; dev tap
dev tun
proto udp
remote 91.98.110.220 1194 udp
persist-key
persist-tun
resolv-retry infinite
route-metric 1
nobind
pull
verb 3
auth-user-pass
ca ca.crt
cert android.crt
key android.key
;ifconfig-push 10.8.0.13 10.8.0.14
tls-auth ta.key 1
cipher BF-CBC
:comp-lzo
متغیر remote: آدرس IP سرور OpenVPN خود را وارد کنید که همان PBX سری S شماست.
متغیر proto: نوع اتصال خود در سمت سرور TCP یا UDP را انتخاب کنید.
تنظیمات را در این فایل ذخیره و آن را در پوشه ای که با نام OpenVPN ساخته اید انتقال دهید.
تمام فایل های مورد نیاز در سمت سرور و کاربر وارد شده اند، اکنون یک نام کاربری و رمز عبور برای کاربر خود بسازید.
از برنامه OpenVPN Server وارد بخش Account شوید و بر روی گزینه Add Account کلیک کنید.
Account: نام کاربری دلخواه خود را وارد کنید.
Password: رمز عبور خود را وارد کنید، دقت داشته باشید که رمز عبور باید حداقل دارای 8 کاراکتر باشد.
گزینه Batch Add Account به شما امکان ساخت چندین اکانت به صورت دسته ای را می دهد.
Create Number: تعداد حسابی که به صورت دسته ای می سازید.
Start Account: پیشوند (prefix) نام کاربری، به صورت خودکار حساب های دیگر، پیشوند به همراه یک عدد به ترتیب ساخته می شوند.
Password: رمز عبور که شامل دو حالت می باشد:
Fixed: یک رمز ثابت برای همه حساب های کاربری در این دسته،
Prefix+account: یک رمز عبور ثابت که به مقدار نام کاربری به صورت پیشوند اضافه می گردد.
بعد از ساخت اکانت برنامه OpenVPN Connect را در دستگاه اندرویدی خود اجرا نمایید. بر روی گزینه moe-icon-o کلیک کنید.
گزینه Import و Import Profile from SD Card را از لیست باز شده انتخاب و در مسیر OpenVPN فایل اتصال را اضافه و سپس گزینه Select را لمس کنید.
حال کافیست تا نام کاربری و رمز عبور خود را وارد کرده و گزینهconnect را لمس کنید.
پس از اتصال موفقیت آمیز صفحه زیر نمایش داده خواهد شد.
همچنین می توانید لیستی از کاربران متصل به سیستم را از مسیر Server > Clients List مشاهده کنید.