منوهای نصب در پنل مدیریت

نصب و تنظیم OpenVPN بر روی سرور های دبیان و ابونتو

Openvpn چیست ؟

Openvpn سرویس VPN ای است که برای ایجاد مسیر اتباط امن و رمزنگاری شده VPN از پروتکل های رمز نگاری SSL/TLS استفاده میکند تا از دزدی اطلاعات ارسالی و دریافتی شما در مسیری که تا رسیدن به سرور مورد نظر دارد جلوگیری نماید . OpenVPN قادر است به سادگی از انواع فایروال عبور کند . همچنین در صورت نیاز این امکان وجود دارد که OpenVPN بر روی پورت 80 TCP و یا 443 TCP سرویس دهی کند که در این صورت امکان مسدود سازی آن عملا ممکن نیست . و کاربران سازمان بدون نگرانی از دزدی اطلاعات میتوانند از هرجایی در جهان به تبادل اطلاعات مهم سازمانشان بپردازند .

این برنامه برای تشخیص هویت میتواند امکان استفاده از  pre-shared secret keys ، certificates و همچنین نام کاربری و رمز عبور را به استفاده کنندگان بدهد تا کارمندان یا کسانی که قصد اتصال به شبکه خصوصی خود را از این طریق دارند به این صورت احراز هویت شوند.

OpenVPN با استفاده از پروتکل OpenSSL ، امکان پیاده سازی قابلیت های امنیتی و کنترولی بسیاری را در اختیار مصرف کنندگان قرار میدهد، مانند challenge response authentication ، ورود با دریافت امضا ، ایجاد load balancing و امکان failover را فراهم میسازد.

 

برای چه از OpenVPN استفاده میکنیم ؟

زمانی که صحبت از رد و بدل امن اطلاعات است ، VPN همیشه در سر زبان ها است. اگر شما در شرکت یا سازمانتان ،نیاز به رد و بدل اطلاعات مابین شعب خود هستید و یا اینکه از جایی دیگر نیاز به برقرای ارتباط و تبادل اطلاعات با دفاتر خود را دارید ، به منظور جلوگیری از امکان شنود اطلاعاتتان بهترین گزینه استفاده از یک تونل ارتباطی امن از نوع  VPN است که OpenVPN با دارا بودن امکانات مسیریابی و رمزنگاری فراوان ، بهترین گزینه برای ایجاد این ارتباط امن میباشد .

همچنین زمانی که در مکان های عمومی مانند رستوران و یا فرودگاه به اینترنت WiFi آن مکان متصل میشوید ، هیچ اطمینانی از عدم شنود اطلاعات شما وجود ندارد. پس بهتر است اطلاعات خود را از کانال دیگری مانند VPN رد و بدل نماییم .

 

سیستم مورد نیاز :

OpenVPN یک ابزار بسیار سبک است و با حداقل منابع سخت افزاری به خوبی اجرا میشود. یک سیستم با 64 مگابایت رم و 1گیگابایت فضای ذخیره سازی برای اجرای آن کافی میباشد. همچنین امکان نصب آن بر روی تمامی سیستم  عامل های معتبر امکان پذیر است .

 

نصب و تنظیم OpenVPN بر روی سرور های لینوکس  Debian و Ubuntu :

این آموزش کاملا از طریق ترمینال یا خط فرمان لینوکس انجام گرفته و به از ابزار های گرافیکی استفاده نمیشود. پس بهتر است سرور شما به صورت Minimal نصب شود تا از نصب بسته های اضافه و کاهش سرعت و کارایی سرورتان جلوگیری شود.
حال وارد محیط ترمینال سرور خود شوید و مراحل زیر را طی نمایید.

بهتر است در ابتدا دسترسی root از سیستم بگیرید تا در تمامی مراحل مجبور به استفاده از sudo نباشید.

بعد از اجرا دستور زیر از شما کلمه عبور اکانت root را میپرسد ، بعذ از وارد کردن و فشردن Enter شما دیگر تمامی اختیارات را دارا میباشید.

su

نصب OpenVPN و ابزار مورد نیاز :

اولین و ساده ترین روش نصب استفاده از Package manager های اتوماتیک میباشد مانند apt-get (debian) و yum (CentOS) :

در ابتدا اقدام به نصب OpenVPN میکنیم و به همراه آن ویراشگر متن nano و ابزار chkconfig که در ادامه در باره ی آن توضیح خواهیم داد را نصب می نماییم:

apt-get install openvpn nano chkconfig

اگر در این روش موفق به نصب OpenVPN نشدید میتوانید آخرین نسخه بسته ی نصبی آن را از سایت مرجعش دریافت کنید و به سادگی نصب نمایید :

ابتدا وارد آدرس زیر شده و توضیع مورد نظر خود را انتخاب و لینک دانلود آن را بدست بیاورید :

https://openvpn.net/index.php/access-server/download-openvpn-as-sw.html


Software Packages

سپس به صورت زیر آن را نصب می نماییم :

wget http://swupdate.openvpn.org/as/openvpn-as-2.0.10-Debian7.amd_64.deb
dpkg -i openvpn-as-2.0.10-Debian7.amd_64.deb

حالا مراحل نصب تمام شده و نوبت به کانفیگ میرسد .
ساخت کلید ها و گواهینامه ها :

همانطور که میدانید سیستم هایی که از SSL برای امن کردن ارتباط استفاده میکنند ، اطلاعات را توسط گواهینامه ها یا (Certificate) ها رمزنگاری میکنند. پس در ابتدا باید کلید ها و گواهی نامه ها را ایجا نماییم، بدین منظور مراحل زیر را طی نمایید :

همراه نصب OpenVPN نرم افزار کلید ساز easy-rsa نیز به طور خودکار نصب میشود. حال نیاز داریم که یه کپی از این کلید ساز ها را در محلی دلخواه کپی کرده و کلید ها و گواهی نامه های مورد نیازمان را ایجاد نماییم.

mkdir /root/easy-rsa
cp -prv /usr/share/doc/openvpn/examples/easy-rsa/2.0/* /root/easy-rsa

خوب حالا وارد مسیر  کلید ساز میشویم :

cd /root/easy-rsa/

در بین این فایل ها یک فایل متنی وجود دارد که بسیاری از متغیر هایی که در ساخت گواهینامه و کلید ها  از آن ها استفاده میشود در این فایل قرار دارد. مانند مشخصات صاحب گواهینامه ای که قرار است صادر شود و حتی چند بیتی بودن رمزنگاری . شما میتوانید با دستور زیر این فایل را ویرایش و اطلاعات خود را وارد نمایید  :

nano vars

قسمت های قابل ویرایش (اختیاری) :
export KEY_SIZE=1024
export KEY_COUNTRY="US"
export KEY_PROVINCE="CA"
export KEY_CITY="SanFrancisco"
export KEY_ORG="Fort-Funston"
export KEY_EMAIL="me@myhost.mydomain"
export KEY_EMAIL=mail@host.domain
export KEY_CN=changeme
export KEY_NAME=changeme
export KEY_OU=changeme
export PKCS11_MODULE_PATH=changeme
export PKCS11_PIN=1234

همچنین در این فایل به دنبال خط زیر بگردید و آن را با مسیر فایل کانفیگ openssl که در همان پوشه قرار دارد جایگزین کنید:

export KEY_CONFIG=`$EASY_RSA/whichopensslcnf $EASY_RSA` 
تغییر داده شود به :
export KEY_CONFIG=/root/easy-rsa/openssl-1.0.0.cnf

حالا نوبت ساخت کلید ها و گواهینامه هاست . این دستورات را به صورت جداگانه پشت سر هم اجرا کنید :

chmod 755 *
source ./vars
./vars
./clean-all
./build-ca

بعد از اجرای آخرین دستور از شما ورودی میخواهد که میبایست همه موارد را با کلید Enter رد نمایید.

./build-key-server server

server نام دلخواهی است که فایل های کلید و گواهینامه سرور با آن نامگذاری میشود که به صورت پیفرض آن را server نام نهاده ایم.

ساخت گواهی نامه Diffie Hellman PEM :

./build-dh

ساخت کلید ها و گواهی نامه های متعلق به کلاینت :

./build-key cliente

در اینجا ساخت کلید ها و گواهینامه ها به ‍پایان رسید و فایل ایجاد شده را میتوان در پوشه keys مشاهده نمود.

ls keys/

تنها لازم است فایل های مربوط به سرور را در مسیر /etc/openvpn قرار میدهیم :

cp -pv /root/easy-rsa/keys/{ca.{crt,key},server.{crt,key},dh1024.pem} /etc/openvpn/

 

تنظیمات سمت سرور:

فایل حاوی تنظیمات را با دستور زیر  ایجاد کرده و در ویرایشگر قرار خواهیم گرفت :

nano /etc/openvpn/server.conf

مهمترین قسمت کار دایرکتیو هایی است که در این فایل قرار میگیرد و وجه تمایز انواع وی پی ان سرور ها در این قسمت است.

حال Directive های زیر را در آن کپی کنید و با کلید های Ctr+o تغییرات را ذخیره و با Ctr+x از آن خارج شوید:

port 1194 #- port
proto udp #- protocol
dev tun
tun-mtu 1500
tun-mtu-extra 32
mssfix 1450
reneg-sec 0
ca ca.crt
cert server.crt
key server.key
dh dh1024.pem
plugin /usr/lib/openvpn/openvpn-plugin-auth-pam.so /etc/pam.d/login # پلاگین احراز هویت یوزرهای لینوکس
client-cert-not-required
username-as-common-name
server 10.8.0.0 255.255.255.0
push "redirect-gateway def1"
push "dhcp-option DNS 8.8.8.8"
push "dhcp-option DNS 8.8.4.4"
keepalive 5 30
comp-lzo
persist-key
persist-tun
status 1194.log
verb 3

* پورت پیشفرضی که توسط OpenVPN استفاده میشود ۱۱۹۴ است اما شما میتوانید آن را به هر پورتی که بخواهید تغییر دهید مانند پورت ۸۰ .

* در صورت تمایل میتوانید به جای udp از tcp استفاده نمایید که بسته ها به صورت گارانتی شده منتقل میگردد ،‌ اما در این صورت باید شاهد کاهش سرعت نیز باشید .

 

حالا برای اینکه در شبکه NAT انجام شود میبایست IP Forwarding  قعال شود.

فایل زیر را در ویرایشگر باز نمایید :

nano /etc/sysctl.conf

به دنبال خط زیر بگردید و علامت # اول آن را حذف نمایید :

net.ipv4.ip_forward = 1

برای اعمال تغییر دستور زیر را وارد نمایید :

sysctl -p

Nat کردن :

برای اتصال کاربران متصل شده با OpenVPN به شبکه داخلی و حتی شبکه های خارجی متصل در دفتر ، باید دستورات زیر را اعمال نمایید (به غیر از مجازی ساز OpenVZ) :

iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE

اگر سرور شما به صورت مجازی میباشد و از مجازی ساز OpenVZ استفاده میکند دستوات Nat متفاوت است :

iptables -t nat -A POSTROUTING -o venet0 -j SNAT --to-source ServerIP
iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -j SNAT --to-source ServerIP

* به جای ServerIP آی پی سرور خود را وارد نمایید.

برای همیشگی شدن این تنظیمات لازم است برنامه iptables-persistent را نصب نمایید :

apt-get install iptables-persistent

حالا میتوانید سرویس openvpn را Restart کنید تا تنظیمات سمت سرور به پایان برسد:

service openvpn restart

این دستور رو هم میزنید تا هر بار که سرور ریبوت شد ،سرویس OpenVPN اتوماتیک Start بشه:

chkconfig openvpn on

 

تنظیمات سمت کلاینت (کاربر) :

یک فایل متنی با پسوند ovpn بسازید مانند office.ovpn و خطوط زیر را در آن ذخیره نمایید :

client
dev tun
proto udp
remote ServerIP 1194 # - Your server IP and OpenVPN Port
resolv-retry infinite
nobind
tun-mtu 1500
tun-mtu-extra 32
mssfix 1450
persist-key
persist-tun
ca ca.crt
cert client.crt
key client.key
auth-user-pass
comp-lzo
reneg-sec 0
verb 3

* توجه نمایید که تنظیمات در سرور و کلاینت بایستی هماهنگ باشند. یعنی اگر از پورتی غیر از ۱۱۹۴ استفاده میکنید یا اگر از tcp استفاده میکنید باید در فایل کانفیگ سمت کلاینت همانها ذکر شوند.

حالا از کلید ها و گواهی نامه هایی که قبلا ایجاد نمودید موارد زیر را در کنار این فایل قرار دهید :

ca.crt , client.crt , client.key

البته این امکان نیز وجود دارد که کلید و گواهینامه های سمت کلاینت را در یک فایل به صورت Embedded جاسازی نمایید که در این صورت محتویات فایل ovpn  به صورت زیر میباشد:

client
dev tun
proto udp
remote ServerIP 1194 # - Your server IP and OpenVPN Port
resolv-retry infinite
nobind
tun-mtu 1500
tun-mtu-extra 32
mssfix 1450
persist-key
persist-tun
auth-user-pass
comp-lzo
reneg-sec 0
verb 3

<ca>
محتویات فایل ca.crt
</ca>

<cert>
محتویات فایل client.crt
</cert>

<key>
محتویات فایل client.key
</key>

حالا میتوانید بر روی هر سیستم عاملی و هرجایی که دسترسی به اینترنت دارید ، ارتباط خود را امن نمایید.

برای اتصال بایستی نرم افزار کلاینت مخصوص سیستم عامل خود را نصب نمایید که آن را میتوانید از سایت زیر دانلود نمایید :

https://openvpn.net/index.php/download/community-downloads.html

برای اتصال در اندروید برنامه OpenVPN Connect پیشنهاد میشود.

* توجه کنید که برای اتصال باید فایل کانفیگ را در داخل برنامه import کنید.

 

1 پاسخ در "نصب و تنظیم OpenVPN بر روی سرور های دبیان و ابونتو"

  1. ممنونم از زحمتتمن… فقط اگه بگید که با easy-rsa3 تنظیماتش به چه صورت میشه که دیگه عالی میشه… باز هم ممنون

ارسال یک پیغام

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

 

2017 © تمامي حقوق مطالب سايت Developersian محفوظ و همچنین استفاده از مطالب سایت با ذکر منبع بلامانع است.
X