linux

نصب openvpn روی centos5 و centos6

ستاره غیر فعالستاره غیر فعالستاره غیر فعالستاره غیر فعالستاره غیر فعال
 

در این آموزش قصد داریم به بررسی نحوه نصب نرم افزار openvpn server روی لینوکس centos بپردازیم. توصیه ما نصب این نرم افزار روی centos5 است اما در خلال آموزش در قسمت هایی که برای centos6 متفاوت است، توضیحات مربوط به آنرا نیز درج می نماییم.

ابتدا باید چک کنیم که درایور tun/tap که از الزامات openvpn است، روی سیستم فعال است یا خیر. دستور زیر را اجرا می کنیم:

اگر درایور فوق فعال باشد، پیام زیر را دریافت خواهیم کرد. (معمولا بصورت پیشفرض فعال است)

حالا پکیج های پایه مورد نیاز را با وارد کردن دستور زیر نصب می نماییم:

حالا پکیج LZO RPM را دانلود کرده و  ریپوزیتوری RPMForge رو نصب و کانفیگ می کنیم :

برای Centos5 :

نسخه ۳۲ بیتی:

نسخه ۶۴ بیتی:

 برای Centos6 :

نسخه ۳۲ بیتی:

نسخه ۶۴ بیتی:

پکیج های rpm دانلود شده را Build می کنیم:

 

 

حالا نوبت به نصب openvpn می رسه. با دستور زیر این کار رو انجام میدیم:

پوشه easy-rsa را به مسیر /etc/openvpn/ منتقل می کنیم:

** لطفا توجه فرمایید که اگر با وارد کردن دستور فوق، اروری مثل ارور قرمز رنگ زیر را دریافت کردید، بدین معنی است که پوشه easy-rsa وجود ندارد (در openvpn 2.3.1 بصورت پیشفرض وجود ندارد) . دراین صورت مراحل زیر را برای دانلود آن دنبال کیند.

cannot stat `/usr/share/doc/openvpn-2.2.2/easy-rsa/’: No such file or directory

easy-rsa را با دستور زیر دانلود کنید:

با دستور زیر آنرا از حالت فشرده خارج کنید:

پوشه easy-rsa را توسط دستور زیر به دایرکتوری openvpn کپی کنید:

حالا فایل های certificate را می سازیم:

 

توجه فرمایید که در Centos6 قبل از انجام دستورات مربوط به ساخت certificate باید تغییرات کوچکی را اعمال کنیم:

برای این منظور فایل /etc/openvpn/easy-rsa/2.0/vars را با ویرایشگر متن مثل nano یا vi بازکنید:

و متن زیر را از داخل فایل پیدا کنید:

و آنرا به متن زیر تغییر دهید:

و فایل را save کنید. (برای save کردن فایل در ویرایشگر nano دکمه های ctrl+X را می زنیم و در مقابل سوال پرسیده شده y را تایپ کرده Enter می زنید)

حالا فایل های certificate را می سازیم (هر خط از دستورات را جداگانه اجرا کنید):

فایل CA را می سازیم:

موارد زیر را یکی یکی از شما میپرسد که میتوانید همه را بدون وارد کردن چیزی Enter بزنید»

کلید سرور (server key) را می سازیم:

مثل مرحله قبل چند مورد بصورت ذیل پرسیده می شود که میتوانید همه را با زدن Enter رد کنید و فقط دو مورد آخر که سوالی است را باید y را تایپ کنید و Enter بزنید»

حالا فایل Diffie Hellman را می سازیم. این دستور معمولا زمان بر است بنابراین تا زمانی که کار تمام شود صبر کنید:

فایل کانفیگ openvpn را می سازیم:

فایل کانفیگ ساخته شده را باز می کنیم و موارد ذیل را در آن کپی می کنیم و آنرا save می کنیم:

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

 

قبل از استارت کردن openvpn باید از خاموش بودن Selinux اطمینان حاصل کنیم. جهت اطلاعات بیشتر در این مورد به پست راهنمای غیرفعال کردن selinux مراجعه نمایید

سرویس openvpn را استارت می کنیم:

اگر هنگام استارت کردن openvpn با ارور “failed” مواجه شدید، و در /var/log/messages ارور زیر را داشتید؛

بدین دلیل است که آخرین نسخه Openvpn فایل openvpn-auth-pam.so را شامل نمی شود و باید آنرا جداگانه دانلود نمایید.

برای نسخه های ۳۲ بیت با دستور زیر :

و برای نسخه های ۶۴ بیت با دستور زیر دانلود نمایید:

فایل را از حالت فشرده خارج کنید:

آنرا به دایرکتوری Openvpn منتقل کنید:

سپس سطر مربوط به پلاگین pam را از فایل کانفیگ openvpn حذف نموده و بجای آن سطر زیر را جایگزین کنید:

سرویس openvpn را restart کنید. مشکل باید حل شده باشد:

چنانچه هنوز هم سرویس استارت نمی شود، خطای ثبت شده را از /var/log/messages مشاهده نمایید و برای رفع آن اقدام کنید. معمولا خطاها در این مرحله به پلاگین های موجود در فایل کانفیگ مربوط می شوند

توجه: برای stop کردن سرویس openvpn میتوانید از دستور زیر استفاده کنید:

حالا باید IP forwarding را فعال کنیم. بدین منظور فایل /etc/sysctl.conf را باز نموده و مقدار net.ipv4.ip_forward را برابر با ۱ قرار میدهیم:

و آنرا Save می کنیم.

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

 Nat کردن اینترنت:

اگر بخواهید کاربرانی که به openvpn متصل می شوند به اینترنت هم دسترسی داشته باشند، باید اینترنت را nat کنیم . برای این کار بصورت زیر عمل می کنیم:

اگر روی vps دارید تنظیمات رو انجام میدید، لازمه توجه کنید که دستور زیر برای Nat کردن اینترنت در مجازی ساز های xen و KVM و اکثر مجازی سازهای دارای کرنل اختصاصی جواب میدهد اما برای vps های مجازی سازی شده با OpenVZ باید از دستور دیگری استفاده نمایید که در ادامه بررسی می کنیم:

دستور مناسب برای OpenVZ (بجای ۱۰٫۱۰٫۱۰٫۱۰، آدرس آیپی سرورتان را وارد کنید) :

و

اگر روی این سرور فایروالی نظیر CSF دارید باید پورت openvpn را روی آن باز کنید. ما با فرض وجود فایروال CSF و ست بودن پورت openvpn روی پورت ۱۱۹۴، تنظیمات لازم را بررسی می کنیم:

توضیح: بهتر است بجای اجرای مستقیم دستورات زیر، آنها را در فایل /etc/csf/csfpre.sh اضافه نمایید

توجه: بجای ۱۰٫۱۰٫۱۰٫۱۰ آدرس آیپی سرور خودتان را وارد کنید

اگر rule های بالا (بخصوص در سرور های دارای cpanel) باعث بروز مشکل برای شما شد، آنها را حذف نموده و بجای آنها از دستورات زیر استفاده نمایید:

در پایان برای ذخیره سازی تغییرات دستور زیر را اجرا می کنیم:

تنظیمات سمت Client:

در سمت کاربر نیاز است یک فایل client.ovpn ساخته و محتوای زیر را در آن وارد نماییم. این فایل را بهمراه سایر فایل های certificate ایجاد شده به پوشه کانفیگ openvpn در کامپیوتر کاربر منتقل می کنیم:

مجددا لازم به ذکر است که:

* بجای ۱۰٫۱۰٫۱۰٫۱۰ آدرس آیپی سرور خود را وارد نمایید

* تنظیماتی که در سمت کلاینتر وارد می کنید باید با تنظیمات سرور متناسب باشد

برای اینکه openvpn در هر بار restart شدن سیستم بصورت خودکار اجرا شود، دستور زیر را اجرا می کنیم:

ساخت و حذف اکانت:

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

برای حذف یک اکانت از دستور زیر استفاده می کنیم:

 

سخن پایانی:

در صورتی که قصد راه اندازی سرور برای مقاصد تجاری دارید لازم است موارد زیر را در نظر بگیرید:

* برای اتصال openvpn به radius server ها (نظیر IBS) بجای پلاگین pam باید از پلاگین radiusplugin استفاده کنید که در پست بعدی به آن می پردازیم.

* برای دستیابی به سرعت مناسب باید از پورت های دیگری غیر از پورت پیشفرض openvpn استفاده نمایید.

* برای دسیابی به کیفیت مناسب باید همزمان هم روی پروتکل tcp و هم روی پروتکل udp سرویس را راه اندازی نمایید

* برای ایجاد قابلبت اتصال روی موبایل، لازم است اولا از برخی توابع خاص در فایل کانفیگ استفاده نمایید و ثانیا در سمت کاربر، محتویات فایل های certificate را با فایل کانفیگ Openvpn ادغام نمایید

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

کلمات کلیدی: | |