اینبار قراره که کانفیگ openconnect
(ازین به بعد بهش ocserv
هم میگم!) تو اوبونتو سرور ۱۶ آموزش بدم! قبل از همه چیز بگم که این آموزش جهت دور زدن تحریمها و تامین امنیت در فضای مجازی میباشد و مسئولیت هرگونه سوءاستفاده بر عهده کاربر میباشد.
ocserv
چیه؟؟
ocserv
یه برنامه برای تونل زدن تو اینترنت هست که اطلاعات رد و بدل شده رو نیز رمزنگاری میکنه! قسمت تونل زدنش هست که برای ما ایرانیا خیلی کاربردیه! ولی برای امنیت هم هست! برای اینکه دید بهتری نسبت بهش داشته باشین، در سایتهای فروش چیزپیان، بهش میگن سرویس سیسکو.
پیشنیازها
باز هم با بخش پیشنیاز ها شروع میکنیم!
- یک عدد vps با ip اختصاصی و سیستمعامل
ubuntu server 16.04 LTS
- دسترسی روت به همان سرور
- (اختیاری!) یک سرتیفیکیت
ssl
معتبر - صبر!
نصب ocserv
و پکیجهای مورد نیاز
اول از هم باید ocserv
رو، رو سرور نصب کنیم. برای اینکار، اول باید با کاربر root
تو سرور لاگین کنین، بعد این دستور رو تو ترمینال بزنین تا پکیجهای مربوطه نصب بشن:
حالا چون میخوایم که یسری سرتیفیکیت بسازیم، نیاز داریم که پکیج GnuTLS
رو نصب کنیم. برای اینکار هم این دستور رو به ترمینال میدیم:
ساخت سرتیفیکیتها
حالا نوبت ساخت سرتیفیکیت هست، اگه میخواین خودتون یه سرتیفیکیت بسازین این مراحل رو طی کنید:
- اول به دایرکتوری
/etc/ocserv
برین:cd /etc/ocserv
- اول باید یه CA (Certificate Authority) برای خودمون بسازیم:
اول یه فایل مثلca.tmpl
میسازیم (vim ca.tmpl
) بعد نوشتههای زیر رو توش کپی میکنیم:12345678cn = "My CA"organization = "My Org"serial = 1expiration_days = 3650casigning_keycert_signing_keycrl_signing_key
که میتونین cn
و organization
رو عوض کنین،
بعدش هم باید که بگین یه کلید رمز و سرتیفیکیت برای CA شما بسازه:
- حالا باید که از رو CA، یه سرتیفیکیت برای سرور بسازیم:
اول فایلserver.tmpl
رو میسازیم و باز میکنیم (vim server.tmpl
) بعد این متن رو توش پیست میکنیم:123456cn = "hexlinux.ir"organization = "My Org"expiration_days = 3650signing_keyencryption_keytls_www_server
که cn
باید ip یا دامنه شما باشه، organization
هم باید با organization
CA شما برابر باشد. سپس باید از فایل خارج بشیم (esc بعد : بعد wq) بعدش بگیم که از رو CA جدید ما، سرتیفیکیت و کلید رمز بساز:
اگر که از سرتیفیکیت پولی استفاده میکنین، باید فایلهارو به فرمت pem
تبدیل کنین! فایل .key
که با دستور cat file.key >> file2.pem
از فایل file.key
به فایل file2.pem
تبدیل میکنه! برای فایل .crt
نیز از openssl
استفاده میکنیم:
که file.crt
اسم سرتیفیکیت شماس، file2.pem
هم خروجیه! برای راحتی استفاده از این آموزش در قسمت اول file2 را به server-key تغییر دهید، در قسمت دوم نیز file2 را به server-cert تغییر دهید.
کانفیگ ocserv
حالا نوبت کانفیگ ocserv
هست! فایل /etc/ocserv/ocserv.conf
رو با ادیتور خودتون (nano
یا vim
) باز کنین. حالا مقادیری را که در زیر میبینید پیدا و تنظیم کنید:
(خط هایی که اولشان # هست را کامنت، آنهایی را که نیست، از کامنت در آورید!)
حالا فایل کانفیگ را ذخیره کنید و از ادیتور خارج شوید.
ساخت یوزرنیم و پسورد
برای لاگین در vpn، به ocserv گفتیم که از یک فایل استفاده کند که آدرس آن /etc/ocserv/ocpasswd
است. باید به ocserv بگیم که برامون تو این فایل یوزر بسازه، برای اینکار از این دستور استفاده میکنیم:
و بعدش از شما میخواد که پسورد بدید به اکانت، شما پسورد را وارد کنید، چیزی نشان داده نمیشود:
تنظیمات نهایی سرور و فایروال
اول از همه برای اینکه تونل بزنیم، باید رو سرور از فایل /etc/sysctl.conf
packet forwarding
رو فعال کنیم. برای همین این فایلو با ادیتور باز میکنیم و خط حاوی net.ipv4.ip_forward=1
رو از کامنت خارج میکنیم (# اول آنرا پاک میکنیم)
فایل را ذخیره میکنیم، از ادیتور خارج میشیم و چک میکنیم که آیا فعال شده یا نه:
حالا باید پورتهای مربوط به ocserv رو باز کنیم:
که جای ۴۴۳ شماره پورتی رو مینویسیم که توی کانفیگ هست (خطی که شامل tcp-port
هست)
و باید بگیم که NAT
فعال شه:
حالا باید تنظیمات فایروال رو ذخیره کنیم تا اگه سرور خاموش روشن شد چیزی نپره! برای اینکار اول با sudo apt-get install iptables-persistent
پکیج مورد نظر رو نصب میکنیم، بعدش با sudo dpkg-reconfigure iptables-persistent
دوباره آنرا پیکربندی میکنیم!
راهاندازی سرور
حالا دیگه نوبت راهانداختن سرور هست. اول با sudo lsof -i
چک میکنیم آیا برنامهای روی پورت مورد نظر ocserv باز هست یا نه. اگه نبود حالا باید ocserv رو اجرا کنیم:
حالا با sudo netstat -tulpn | grep 443
چک میکنیم آیا ocserv ران شده یا نه (جای ۴۴۳ بازم شماره پورت ocserv رو میزاریم)
پس از انجام این مراحل، سرور شما آماده استفاده است و باید با کلاینت openconnect
یا anyconnect
به سرور وصل شین (آدرس سرور به صورت ip:port
میباشد که ip همان ip یا
دامنه متصل به vps و port نیز پورت ocserv است)
آموزش اتصال به سرور نیز در تمام سیستمعاملها در پستهای بعدی گذاشتهخواهد شد.
در پایان نیز اگر مشکلی بود در کامنتها مطرح کنید تا رسیدگی شود!
پ.ن: با تشکر از mahdyfo (تلگرام: mahdyfo) که سرور در اختیار من گذاشت تا این آموزش رو کامل کنم!
پ.ن۲: منبع این پست سایت xuri.me میباشد.