در این مقاله نصب و راه اندازی (Openvpn(server, client بر روی MyPBX نشان داده شده است. در این مقاله فرض می شود شخص آشنایی نسبی با لینوکس و دستورات آن را دارد.

1- نصب Openvpn
2- تنظیم MyPBX به عنوان vpn client
3- تنظیم MyPBX به عنوان vpn server

ابتدا سورس Openvpn را دریافت کرده و آن را در مسیر /usr/src/ قرار دهید و سپس دستورات زیر را به ترتیب اجرا کنید.

برای دریافت openvpn ورژن 2.2.1 می توانید آن را از اینجا دانلود کنید :

کد PHP:
$ ./configure --prefix=/usr

make

# make install 
سپس یک دایرکتوری ساخته و فایل های زیر را در آن کپی کنید.

کد PHP:
# mkdir /etc/openvpn

# cp -r easy-rsa /etc/openvpn

# cd /etc/openvpn/easy-rsa/2.0 
در این مسیر فایل vars را مطابق با مشخصات خودتان تغییر دهید. (نمونه ای از مشخصات به شرح زیر آورده شده است).

کد PHP:
export PKCS11_PIN=1234

export KEY_EMAIL
=" support@linux-zone.org"

export KEY_ORG="SENA"

export KEY_CITY="Tehran"

export KEY_PROVINCE="TE"

export KEY_COUNTRY="IR"

export KEY_SIZE=1024

export KEY_DIR
="$EASY_RSA/keys"

export KEY_CONFIG=`$EASY_RSA/whichopensslcnf $EASY_RSA`

export GREP="grep"

export OPENSSL="openssl"

export EASY_RSA="`pwd`" 
دستور زیر را در کنسول خود اجرا کنید تا تغییرات اعمال شوند. برای ساخت کلیدهای مناسب برای سرور و کلاینت دستورات زیر را همانند شکل به ترتیب وارد کنید.

کد PHP:
vars

./clean-all

./build-ca

./build-dh

./build-key-server server

./build-key MyPBX 
حال کار ایجاد فایل ها تمام شده است و تمامی آنها در زیر دایرکتوری keys قابل دسترسی می باشند.

برای بزرگتر شدن عکس روی آن کلیک کنید

نام:	71.jpg
نمایش ها:	1
اندازه:	25.8 KB
شناسه:	18481

در مسیر /etc/openvpn/ فایل server.conf را ایجاد کرده و محتویات زیر را در آن ذخیره کنید.

کد PHP:
dev tun

proto udp

port 1194

dh dh1024
.pem

key server
.key # This file should be kept secret

cert server.crt

ca ca
.crt

verb 3

persist
-tun

persist
-key

comp
-lzo

keepalive 10 120

server 10.8.0.0 255.255.255.0 
در بخش port بایستی port مناسب برای ارتباط بین سرور و کلاینت ها را معرفی نمایید. (مقدار پیش فرض برابر 1194 است) در بخش server شماره IP و Subnet کامپیوتر یا دستگاه MyPBX ای را که می خواهید بعنوان سرور Openvpn قرار دهید، وارد نمایید.

فایل client.conf را نیز همانند شکل زیر ایجاد کنید.

نکته مهم: در قسمت remote آدرس IP سرور openvpn را وارد کنید و بعد از یک فاصله شماره پورتی را که ارتباط با سرور از طریق آن برقرار می شود (و در فایل server.conf تعریف شده است) را وارد نمایید.

کد PHP:
client

dev tun

proto udp

remote 192.168.1.230 1194

resolv
-retry infinite

nobind

persist
-key

persist
-tun

ca ca
.crt

cert MyPBX
.crt

key MyPBX
.key

comp
-lzo

verb 3 
برای راه اندازی openvpn در mode سرور بر روی سرورهای linux دستور زیر را اجرا کنید.

کد PHP:
# openvpn --config server.conf 
برای بزرگتر شدن عکس روی آن کلیک کنید

نام:	18.jpg
نمایش ها:	1
اندازه:	39.4 KB
شناسه:	18482

حال فایل های {MyPBX.crt, MyPBX.key, dh1024.pem, ca.crt, client.conf } را که در مرحله قبل آماده کرده اید باید به صورت tar فایل در آورده و در MyPBX آن را import کنید.

کد PHP:
# tar -cvf vpn.tar client.conf MyPBX.crt MyPBX.key dh1024.pem ca.crt 
آدرس MyPBX را در browser وارد کرده و به قسمت VPN Settings رفته و فایل ساخته شده را در آن import کنید و بعد سیستم را ریستارت کنید.

برای بزرگتر شدن عکس روی آن کلیک کنید

نام:	19.jpg
نمایش ها:	1
اندازه:	24.2 KB
شناسه:	18483

همان طور که در شکل زیر مشاهده می شود MyPBX به محض بالا آمدن به سرور vpn می زند.

برای بزرگتر شدن عکس روی آن کلیک کنید

نام:	20.jpg
نمایش ها:	1
اندازه:	44.4 KB
شناسه:	18484

برای تست کردن برقراری ارتباط بین Client و server نیز IP گرفته شده توسط MyPBX را از روی سرور ping کنید.

برای تعریف MyPBX به عنوان vpn server نیز مراحل گفته شده در بخش یک را اجرا کرده و فایل های :
{server.crt, server.key, ca.crt, dh1024.pem, server.conf }
را به صورت یک tar فایل در آورده و در دستگاه MyPBX مطابق شکل زیر import کنید.

نکته مهم: در بخش server.conf بایستی اطلاعات مربوط به MyPBX ای که می خواهید بعنوان سرور OpenVPN قرار بگیرد را وارد نمایید.

کد PHP:
# tar -cvf server.crt server.key ca.crt dh1024.pem server.conf 
آدرس MyPBX را در browser وارد کرده و به قسمت VPN Settings رفته و فایل ساخته شده را در آن import کنید و بعد سیستم را ریستارت کنید.

برای بزرگتر شدن عکس روی آن کلیک کنید

نام:	19.jpg
نمایش ها:	1
اندازه:	24.2 KB
شناسه:	18483

برای تنظیم هر client در دستگاه های MyPBX بایستی اقدامات زیر جداگانه انجام شود :

1- در خط فرمان لینوکس فایل key مربوط به هر Client بصورت زیر ایجاد شود :

کد PHP:
./build-key MyPBX_C1 
2- فایل client.conf را در ازای هر یک از client ها بازنویسی کنید :

نکته مهم: در بخش Remote اطلاعات IP هر یک از MyPBX ها را وارد کنید. نام فایل ها در بخش cert و key باید متناسب با نام انتخاب شده در دستور بالا باشد.

کد PHP:
client

dev tun

proto udp

remote 192.168.1.230 1194

resolv
-retry infinite

nobind

persist
-key

persist
-tun

ca ca
.crt

cert MyPBX_C1
.crt

key MyPBX_C1
.key

comp
-lzo

verb 3 
3- حال فایل های {MyPBX_C1.crt, MyPBX_C1.key, dh1024.pem, ca.crt, client.conf } را که در مرحله قبل آماده کرده اید باید به صورت tar فایل در آورده و در دستگاه MyPBX مورد نظر خود آن را import کنید.

کد PHP:
# tar -cvf vpn.tar client.conf MyPBX_C1.crt MyPBX_C1.key dh1024.pem ca.crt 
4- همین عملیات را برای سایر Client ها تکرار کنید.