نحوه ایجاد یک تونل امن از طریق OpenVPN

برای راه اندازی یک اینترانت راهکارهای متفاوتی وجود دارد. خرید دو یا چند دستگاه به ازای هر دفتر/شعبه از سازمان/شرکت می باشد. راه حل ارزان برای این کار استفاده از OpenVPN می باشد که برای امن کردن آن در این پست کل تونل مربوطه توسط یک کلید ۱۰۲۴ بیتی رمز می شود.

این آموزش بر روی Ubuntu Server 12.04LTS انجام شده است.

نصب OpenVPN بر روی سرور و کلاینت از طریق دستور زیر:

# apt-get install openvpn

پس از زدن دستور بالا نصب بر روی سرور مربوطه انجام می شود.

برای ساختن کلید ها باید easy-rsa بر روی سرور نصب باشد. در صورت عدم نصب بودن آن را از طریق دستور زیر نصب کنید.

# apt-get install easy-rsa

حال باید کلید مربوط به سرور بر روی سرور OpenVPN ساخته شود.

برای این منظور کد های زیر را اجرا کنید.


# sudo mkdir /etc/openvpn/easy-rsa/
# sudo cp -r /usr/share/doc/openvpn/examples/easy-rsa/2.0/* /etc/openvpn/easy-rsa

فایل /etc/openvpn/easy-rsa/vars را ویرایش کرده و اطلاعات مربوطه را وارد کنید. به عنوان مثال برای ایجاد یک کلید یک ساله با الکوریتم ۱۰۲۴ بیتی می توان اطلاعات زیر را وارد کرد.


export KEY_SIZE=1024
export CA_EXPIRE=3650
export KEY_EXPIRE=3560
export KEY_COUNTRY="IR"
export KEY_PROVINCE="Tehran"
export KEY_CITY="Tehran"
export KEY_ORG="IRAN LINUX"
export KEY_CN=IR-LINUX
export KEY_NAME=IR-LINUX
export KEY_PKCS11_PIN=PASSWORDPIN

با استفاده از دستور زیر ورژن openssl را پیدا کنید

# apt-cache policy openssl

سپس فایل تنظیمات را به مسیر مروبطه از طریق دستور زیر کپی کنید.

# cp /etc/openvpn/easy-rsa/openssl-1.0.0.cnf /etc/openvpn/easy-rsa/openssl.cnf

پس از کپی کردن، دستورات زیر را اجرا کنید تا کلید و CA ساخته شوند.

# cd /etc/openvpn/easy-rsa/
# source vars
# ./clean-all
# ./build-dh
# ./pkitool --initca
# ./pkitool --server server
# cd keys
# openvpn --genkey --secret ta.key
# cp server.crt server.key ca.crt dh1024.pem ta.key /etc/openvpn/
ساخت کلید برای کلاینت

برای ساخت باید کار را انجام شود:


# cd /etc/openvpn/easy-rsa/
# sudo su
# source vars
# ./pkitool hostname

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


/etc/openvpn/easy-rsa/keys/ca.crt
/etc/openvpn/easy-rsa/keys/hostname.crt
/etc/openvpn/easy-rsa/keys/hostname.key
/etc/openvpn/easy-rsa/keys/ta.key

ساخت کلید ها انجام شد. حال باید تنظیمات سرور انجام شود.

تنظیمات سرور

بر روی سرور ابتدا فایل های نمونه سرور OpenVPN را به طبق دستورات زیر کپی کنید و از حالت فشرده خارج کنید.


# /usr/share/doc/openvpn/examples/sample-config-files/server.conf.gz /etc/openvpn/
# gzip -d /etc/openvpn/server.conf.gz

سپس فایل را با استفاده از editor باز کرده و قسمت های زیر را حداقل باید تغییر دهید. ممکن است طبق تنظیماتی که انجام داده اید نام فایل های شما با فایل های آموزشی در این بخش متفاوت باشد. البته بر روی این فایل تنظیماتی مانند bridge، dhcp و … وجود دارد که در این آموزش به بررسی این موارد پرداخته نخواهد شد.


ca ca.crt
cert irlinux.crt
key irlinux.crt
dh dh1024.pem

سپس با استفاده از دستور زیر سرویس را بر روی سرور start کنید. با این کار سرور شروع به listen کردن برای یک ارتباط می شود.


# service openvpn start
تنظیمات بر روی کلاینت OpenVPN

کلاینت ما در این آموزش نیز Ubuntu Server 12.04 LTS می باشد. بر روی این نسخه نیز باید OpenVPN نصب باشد که مانند نصب بر روی سرور انجام شود.
کلیدساخته شده ی کلاینت بر روی سرور باید در مسیر زیر حتما کپی شده باشد تا بتوان تونل را برقرار کرد.


/etc/openvpn/

سپس نمونه تنظبمات کلاینت به شکل زیر به مسیر فایل های config نرم افزار OpenVPN انتقال داده شود و توسط ویرایشگر آن باز شود.


# cp /usr/share/doc/openvpn/examples/sample-config-files/client.conf /etc/openvpn
# nano /etc/openvpn/client.conf

سپس موارد زیر را در فایل مربوطه تغییر دهید.


dev tap
remote vpn.mycompany.com 1194
cert hostname.crt
key hostname.key
tls-auth ta.key 1

حال با استفاده از دستور زیر OpenVPN را start کنید و سپس ارتباط برقرار خواهد شد.

منبع : irlinux

2 Replies to “نحوه ایجاد یک تونل امن از طریق OpenVPN”

پاسخ دهید

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