چهارشنبه , ۳ خرداد ۱۳۹۶
مطالب جدید
اکانت آپدیت آنتی ویروس nod32
نصب openvpn روی centos5 و centos6

نصب 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 ادغام نمایید

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

درباره‌ مهندس میرزایی

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

۱۶ نظر

  1. سلام.

    ببخشید در دبیان هم نیاز است که خط زیر را :
    export KEY_CONFIG=$EASY_RSA/whichopensslcnf $EASY_RSA
    با خط بعدیش تعویض کنیم؟

  2. سلام
    امکانش هست در مور این جمله تون توضیح بدید:

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

    طبق آموزش شما ژیش رفتم و IBSng را روی همین سرور نصب کردم ولی کاربر نمی تونه به سرور وصل بشه.
    چرا؟
    چه باید کرد؟

  3. سلام

    سرور باید GW باشه یعنی باید دوتا کارت شبکه داشته باشه؟

  4. سلام
    من وقتی دستور
    yum install gcc make rpm-build autoconf.noarch zlib-devel pam-devel openssl-devel -y
    رو می زنم ارور زیر رو دارم

    [Errno 12] Timeout:
    Error: Cannot find a valid baseurl for repo: commercial-addons
    ظاهرا لینک مناسب رو پیدا نمی کنه
    لطفا راهنمایی کنید

  5. در نصب و کانفیگ LZO RPM و RPMForge Repo :
    این خطا رو میده:

    wget http://openvpn.net/release/lzo-1.08-4.rf.src.rpm
    –۲۰۱۵-۰۹-۰۶ ۱۸:۴۰:۴۷– http://openvpn.net/release/lzo-1.08-4.rf.src.rpm
    Resolving openvpn.net… 198.41.191.212, 198.41.184.213
    Connecting to openvpn.net|198.41.191.212|:80… connected.
    HTTP request sent, awaiting response… 302 Found
    Location: https://openvpn.net/release/lzo-1.08-4.rf.src.rpm [following]
    –۲۰۱۵-۰۹-۰۶ ۱۸:۴۰:۴۷– https://openvpn.net/release/lzo-1.08-4.rf.src.rpm
    Connecting to openvpn.net|198.41.191.212|:443… connected.
    ERROR: certificate common name *.openvpn.net' doesn't match requested host name openvpn.net’.
    To connect to openvpn.net insecurely, use `–no-check-certificate’.
    Unable to establish SSL connection.

    • احسان میرزایی

      سلام
      احتمالا مشکل شما از repository لینوکستون هست. چند تایی از ریپوزیتوری های معروف مثل repel رو روی لینوکستون نصب کنید. برای نصبش در گوگل جستجو کنید

  6. سلام
    من همهچیزو مطمئنم درست زدم ولی وقتی کانکت می شم به جای IP ام ۱۰٫۸٫۶٫۰ میزنه که کانکت شدی و در نتیجه به اینترنت وصل نمی شخ لطفا راهنمایی فرمایید؟

    • سلام شما مرحله Nat کردن رو درست انجام ندادید. قسمت Nat کردن در آموزش را یکبار دیگر بخوانید و چک کنید که تنظیمات لازم مروبط به nat در iptable اعمال شده باشد

      موفق باشید

  7. سلام. دوست عزیز میخوام الزاما کاربرانی بتوانند به سرور openvpn وصل بشوند که دانگل (USB Token) مخصوص داشته باشند که البته این دانگل را هم ساخته ام و به محض اتصال اتوماتیک certificate مورد نیاز را در قسمت personal certificate ها نصب میکند ولی نمیدونم چطور میتونم تو فایل کانفیگ ovpn آدرس این محل رو بدم. البته این نکته رو هم ذکر کنم که بعد از جدا کردن دانگل certificate خود به خود حذف میشه. ممنون میشم اگر تجربه ای تو این زمینه دارید راهنمایی کنید.

    • مهندس میرزایی

      سلام
      در این زمینه تابحال کار نکرده ام. در صورتی که مستنداتی در مورد این پروژه دارید به ایمیل ما (ehsan [at] mohande3.com) ارسال بفرمایید بررسی می کنم در صورتی که به نتیجه ای رسیدم شما رو در جریان قرار میدم
      موفق باشید

جوابی بنویسید

ایمیل شما نشر نخواهد شدخانه های ضروری نشانه گذاری شده است. *

*

برو بالا