پیشنهاد می شود ابتدا قسمت اول این مقاله ”
معرفی openvpn قسمت اول ” را مطالعه نمایید و سپس به سراغ این مطلب بیایید.
فایل پیکربندی اغلب گزینه های زیادی را مشخص می کند که ما در هنگام اتصال به سرورهای OpenVPN باید از آن مطلع باشیم. در این بخش، ما اکثر گزینه هایی را که وجود دارد برای شما آورده ایم. گزینه های پیکربندی و توضیحات آن خلاصه ای از تنظیمات دستی این وی پی ان می باشد.

معرفی openvpn
- گزینه های مورد استفاده برای کسب اجازه ی ورود به سرورهای OpenVPN
Ca: ریشه های CA مشخص می کند که اتصال عمومی یا خصوصی است و صحت اتصال کاربر و همچنین سرورها را نشان می دهد.
Key: منظور از آن یعنی یک کلید خصوصی برای جفت شدن و تایید اتصال
Cert: یک کلید عمومی به صورت نوعی گواهی نامه جهت جفت شدن که در هنگام اتصال مورد استفاده قرار می گیرد.
pkcs12: فایل .p12 که شامل کلیدهای خصوصی ، عمومی و گواهی CA می باشد. ما اگر از این گزینه استفاده کنیم اصلا نیازی به طی مراحل مربوط به گزینه های ca، key و cert نخواهیم داشت.
tls-auth: سطوح اضافه ای از حفاظت مقابل حملات DoS را ارائه می دهد. با امضای نامعتبر HMAC اتصال بدون پاسخ از بین خواهد رفت. این گزینه زمانی به درد می خورد که ما بخواهیم یک سرویس VPN را به هیچکسی ندهیم مگر اینکه آدرس اینترنتی خاصی از پیش تعیین شود.
Askpass: یعنی از کاربر یک رمز ورود بخواهد یا فایلی داده شود که اگر ما با یک رمز از گواهی ها حفاظت می کنیم کاربر از آن مطلع شود.
auth-user-pass یا تایید دسترسی های کاربر: فایلی را مشخص می کند که شامل نام کاربری و رمز عبور است، در آن نام کاربری در خط اول نوشته شده و رمز عبور نیز در خط دوم می باشد. OpenVPN تنها رمز عبور یک فایل را خواهد خواند اگر پس از خواندن آن گزینه ی ENABLE_PASSWORD_SAVE یا passwordsave USE flag in Gentoo مشخص شود، یعنی تایید شده اید. اگر ما فایل را مشخص نکنیم، پروسه ی OpenVPN به سرعت ما را به مسیرهای انحرافی می فرستد.
auth-nocache: باعث می شود که
اوپن وی پی ان نیاز به رمز عبور askpass و auth-user-pass داشته باشد و آن را در حافظه ذخیره نمی کند. به محض اینکه ما رمز عبور دیگری وارد کنیم OpenVPN قبلی را پاک می کند و اگر دوباره به آن نیاز داشته باشیم باید دستی وارد کنیم.
auth-retry-type: این بخش برای کنترل فعالیت های ما در زمانی است که رمز عبور و نام کاربری به علت نادرست بودن توسط سرور رد می شوند و این می تواند ناشی از اشتباه تایپ کردن ما باشد. ما می توانیم از گزینه های زیر استفاده کنیم:
- none: خطا خطرناک بوده و کلاینت خارج شود.(پیش فرض)
- Nointeract: کلاینت می تواند رمز عبور و نام کاربری فعلی را دوباره امتحان کند.
- Interact: کلاینت از کاربر دوباره رمز عبور و نام کاربری بخواهد پیش از آنکه برای اتصال مجدد تلاش کند بنابرین کاربر فرصت دارد اشتباهی که قبلا رخ داده را تصحیح کند.
script-security: سطوحی را مشخص می کند که مرتبط با برنامه های خارج از سرویس است. این سطوح می توانند به یکی از صورت های زیر باشند:
- OpenVPN به هیچ نرم افزار خارجی اجازه ی پاسخ را نخواهد داشت.
- OpenVPN تنها در حد دستورات تعیین شده مانند ifconfig، ip، route یا netshپاسخ خواهد داد.
- OpenVPN می تواند به اسکریپت ها و دستورات اجرایی پاسخ دهد.
- OpenVPN می تواند رمز عبور را وارد برنامه های دیگر کند .
Up: بعد از موفق شدن TUN/TAP ، دستگاه باز می شود و دستورات cmd که سیگنالی از سرور هستند اجرا خواهد دشد.
Down: بعد از TUN/TAP دستگاه بسته شده و دستورات اجرایی سرور اجرا می شود.
Cd: مستقیما بتوان به dir تغییر حالت داد، پیش از آنکه هیچ فایل پیکربندی، فایل کلیدی یا اسکریپت خوانده شود.
Chroot: دوباره بتوان ریشه های تعریف شده مستقیم را تبدیل به dir مستقیم کرد ، بنابرین OpenVPN قادر نخواهد بود خارج از قالب های تعیین شده شما به فایل های مربوط به خود دسترسی داشته باشد.
Daemon: اگر اوپن وی پی ان به حالت Daemon در بیاید تمامی ورود و خروج ها به جز خروج از اسکریپت های مشخص شده با دستورات up/down که به to /dev/null می روند، به /var/log/messages ارسال خواهند شد.
Log: تمامی خروجی ها اعم از stdout و همچنین stderr ، حتی خروجی های اسکریپت های مشخص شده با up/down به سمت فایل موجود هدایت می شوند.
حالت comp-lzo: به وسیله ی الگوریتم های LZO داده ها را فشرده سازی می کند، این حالت می تواند شامل یکی از موارد زیر باشد:
- Yes: روشن بودن LZO به صورت پیش فرض
- No: خاموش بودن LZO به صورت پیش فرض ، اما در این صورت به سرور اجازه داده می شود که برخی داده ها را باطل کند و شما می توانید این حالت را تغییر دهید.
- Adaptive(حالت پیش فرض) : از کاربر پرسیده شود که آیا حالت فشرده سازی LZO روشن باشد یا خاموش.
ما همچنین باید نگاهی به مدیریت رابط کاربری ارائه شده توسط OpenVPN داشته باشیم. بخش زیر تمامی گزینه های پیکر بندی که ما برای مدیریت فضای کاربری به آن نیاز داریم را آورده است:
مدیریت: توانایی اداره کردن سرورها، که تحت عنوان بخش ip:port. می باشد. اگر فایلی مورد استفاده قرار گیرد، در هنگام اتصال، ما نیاز به مشخص کردن رمز عبور یکسان با چیزی که در این فایل وجود دارد خواهیم داشت. این فضای کاربری مدیریتی سایر برنامه ها را قادر می سازد که به OpenVPN متصل شده و آن را مدیریت کنند. همچنین می توانیم در بخش پشتیبانی help را تایپ کنیم، و سپس توسط یک برنامه ی telnet به آن متصل شویم. به دلایل مسائل امنیتی، IP باید به حالت ۱۲۷٫۰٫۰٫۱ تنظیم شود تا دسترسی هایی که اجازه به آن ها داده نشده و معمولا مربوط به کلاینت های سایر سرویس ها است مسدود شوند.
- management-query-password
مدیریت رابط کاربری را به محیطی هدایت می کند که در آن رمز عبور و نام کاربری برای private key – که نسبت به telnet وابستگی بیشتری به مدیریت کاربری دارد- وارد شود.
- management-forget-disconnect
طوری تنظیم کنید که زمانی که از فضای مدیریت خارج شدید، OpenVPN رمز ما را فراموش کند.
OpenVPN از زمانی که ما در وضعیت hibernate قرار می گیریم تا ورود دوباره به فضای مدیریت کاربری شروع به کار کند و با فرمان hold release به طور خودکار وارد محیط مدیریت شود.
زمانی که ما اتصال رابط کاربری مدیریتی را قطع کردیم، سیگنال SIGUSR1 به OpenVPN ارسال شود. این برای زمانی که ما اتصال با GOpenVPN را خاموش کنیم مفید است. زیرا سیگنال هایی به OpenVPN ارسال می شود که آن نیز اتصال را قطع کند.

openvpn
به خاطر داشته باشید، اگر ما نخواهیم که مدام مجبور به وارد کردن رمز عبور خود باشیم، نباید از گزینه ی auth-nocache استفاده کنیم، زیرا باعث می شود که این فیلتر شکن نام کاربری و رمز عبور را از حافظه پاک کند. بنابرین زمانی که OpenVPN می خواهد اتصال دوباره برقرار کند، یک پنجره ی گفت و گو بالا می آید که از ما رمز عبور و نام کاربری می خواهد. انجام دادن این کار دم به دقیقه می تواند خسته کننده باشد بنابرین بهتر است با عدم استفاده از این گزینه اصلا سراغ این بخش نرویم. با این وجود، این گزینه نسبت به public/private keys امنیت بیشتری دارد. در روش public/private keys رمز عبور حفظ می شود و همیشه رمزی که در خود private key وجود دارد فعال می شود نه رمزی که واقعا در حافظه ذخیره شده باشد.