ماکان یوسفی
ماکان یوسفی
خواندن ۳ دقیقه·۳ سال پیش

ساخت یک paas خانگی - قسمت سوم: نصب OpenVPN

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

در این قسمت VPS رو آماده می کنیم و در قسمت بعدی نحوه اتصال به اون رو از طریق pfSense توضیح میدیم.

در مرحله اول ما به یک VPS نیاز داریم که در یک کشور خارجی باشه. این VPS به سخت افزار خاصی نیاز نداره بنابراین کمترین هزینه ممکن رو براش انجام بدید.

خیلی از هاستیگ های ایرانی امکان خرید VPS های خارجی رو دارند که می تونید از اونها برای خرید استفاده کنید. ما از Hetzner استفاده می کنیم. سیستم عامل رو Ubuntu 20.04 بزارید که همه کامند ها رو بتونید مشابه ما اجرا کنید.

ساخت VPS
ساخت VPS

بعد از اینکه ساخت VPS تموم شد با ssh و با کمک یوزر و پسوری که دارید بهش وصل بشید.

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

#change your password passwd

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

https://docs.docker.com/engine/install/ubuntu/

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

#step 1 apt-get update
#step 2 apt-get install ca-certificates curl gnupg lsb-release
#step 3 curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
#step 4 echo &quotdeb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable&quot | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
#step 5 apt-get update
#step 6 apt-get install docker-ce docker-ce-cli containerd.io

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

docker --version

شما می توانید Docker Compose رو هم نصب کنید تا در بعضی مواقع ازش استفاده کنید:

apt-get install docker-compose-plugin

ما برای مدیریت کانتینر ها از portainer استفاده می کنیم پیشنهاد می کنم شما هم ازش استفاده کنید ولی اگر ابزاری دیگری برای این کار دارید می تونید این مرحله رو انجام ندید.

برای نصب portainer از این لینک استفاده کنید:

https://docs.portainer.io/v/ce-2.11/start/install/server/docker/linux

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

#Step 1 docker volume create portainer_data #Step 2 docker run -d -p 8000:8000 -p 9443:9443 --name portainer --restart=always -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data portainer/portainer-ce:2.11.1

برای تست نصب کافیست از این کامند استفاده کنید

docker ps

برای مراجعه به داشبورد portainer اگر مثل ما از پورت های پیش فرض استفاده کرده باشید کافی هست به این آدرس برید:

https://[your ip vps]:9443

به https بودن آدرس توجه کنید و ریسک دسترسی نا امن رو بپذیرید و به صفحه اول portainer برسید

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

خب همه این مراحل مقدمه ای بود برای نصب OpenVPN

برای نصب OpenVPN ما از klyemanna استفاده می کنیم. مزیتی که داره این هست که هیچ محدودیتی نداره ولی مشکل ش نداشتن ui هست.

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

https://github.com/kylemanna/docker-openvpn

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

OVPN_DATA=&quotopenvpn_data&quot
docker volume create --name $OVPN_DATA
docker run -v $OVPN_DATA:/etc/openvpn --rm kylemanna/openvpn ovpn_genconfig -u udp://VPN.SERVERNAME.COM
docker run -v $OVPN_DATA:/etc/openvpn --rm -it kylemanna/openvpn ovpn_initpki
docker run -v openvpn_data:/etc/openvpn -d -p 1194:1194/udp -p 80:80 -p 443:443 -p 14339:14339 -p 996:996 -p 25:25 -p 465:465 -p 587:587 --cap-add=NET_ADMIN --name paas_openvpn kylemanna/openvpn

اطلاعات در خواستی در این مرحله رو وارد کنید تا کلید ها تولید شود

کلید ca که در این مرحله از شما درخواست میشه رو در مراحل بعدی نیاز دارید پس در حفظ و نگهداری آن کوشا باشید D:

بعد از نصب مرحله بعدی ساخت یک کلاینت هست.

برای ساخت کلاینت و دریافت فایل ovpn از این کامند ها استفاده کنید و اطلاعاتی که می خواهد رو وارد کنید

docker run -v $OVPN_DATA:/etc/openvpn --rm -it kylemanna/openvpn easyrsa build-client-full PaaS nopass
docker run -v $OVPN_DATA:/etc/openvpn --rm kylemanna/openvpn ovpn_getclient PaaS > PaaS.ovpn

خط آخر اطلاعات کلاینت رو روی فایل PaaS.ovpn می نویسه حالا کافی هست با دستور زیر محتویات اون رو بخونید:

cat PaaS.ovpn

توی فایل یه سری اطلاعات هست که توی مرحله بعدی به اونها نیاز داریم

شکل فایل ovpn این طوری هست:

client
nobind
dev tun
remote-cert-tls server
remote VPN.SERVERNAME.COM 1194 udp
<key>
-----BEGIN PRIVATE KEY----- یه سری کاراکتر -----END PRIVATE KEY-----
</key>
<cert>
-----BEGIN CERTIFICATE----- یه سری داستان -----END CERTIFICATE-----
</cert>
<ca>
-----BEGIN CERTIFICATE----- یه سری کاراکتر -----END CERTIFICATE-----
</ca>
key-direction 1
<tls-auth>
#
# 2048 bit OpenVPN static key
#
-----BEGIN OpenVPN Static key V1----- یه سری کاراکتر -----END OpenVPN Static key V1-----
</tls-auth>
redirect-gateway def1


این اطلاعات رو داشته باشید در قسمت بعدی نحوه وصل شده به OpenVPN از طریق pfSense رو توضیح میدم.



ساخت یک paas خانگی - قسمت اول: مقدمه

ساخت یک paas خانگی - قسمت دوم: VMware ESXi

--> ساخت یک paas خانگی - قسمت سوم: نصب OpenVPN

ساخت یک paas خانگی - قسمت چهارم: تنظیم pfSense

ساخت یک paas خانگی - قسمت پنجم: تنظیمات OpenVPN

ساخت یک paas خانگی - قسمت ششم: نصب CapRover

paasopenvpnvps
توسعه دهنده وب
شاید از این پست‌ها خوشتان بیاید