دانش محور دستورالعمل های ساده برای کار با سرویس Profitserver
اصلی دانش محور راه اندازی سرور VPN در لینوکس: PPTP یا OpenVPN؟

راه اندازی سرور VPN در لینوکس: PPTP یا OpenVPN؟


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

برای اجرای VPN خود باید اجاره سرور VPS. نرم افزارهای مختلفی وجود دارد که به شما امکان می دهد یک اتصال VPN ایجاد کنید. با سیستم عامل های پشتیبانی شده و الگوریتم های مورد استفاده با یکدیگر متفاوت است. ما نگاهی به دو رویکرد مستقل برای راه اندازی سرور VPN خواهیم داشت. اولین مورد مبتنی بر پروتکل PPTP است که قبلاً منسوخ شده و ایمن نیست اما پیکربندی آن واقعاً آسان است. یکی دیگر از نرم افزار مدرن و ایمن OpenVPN استفاده می کند، اما نیاز به نصب یک برنامه مشتری شخص ثالث و یک فرآیند راه اندازی کامل تر دارد.

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

تهیه

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

برای روشن کردن ارسال بسته، فایل را باز کنید “/etc/sysctl.conf” و تغییر “net.ipv4.ip_forward” مقدار پارامتر به 1.

ارسال بسته ها را برای راه اندازی VPN روشن کنید

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

sudo sysctl -p /etc/sysctl.conf

ترجمه آدرس شبکه با استفاده از پیکربندی شده است از iptables. ابتدا نام رابط شبکه خارجی خود را که دستور را اجرا می کند بررسی کنید "نمایش لینک IP" - در مرحله بعد به آن نیاز خواهید داشت. اسم ما هست “ens3”.

نمایش لینک IP

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

sudo iptables -t nat -A POSTROUTING -o ens3 -j MASQUERADE

توجه داشته باشید که باید نام واقعی رابط سرور خود را مشخص کنید، ممکن است با ما متفاوت باشد.

به طور پیش فرض، تمام قوانین ایجاد شده توسط iptables پس از راه اندازی مجدد سرور، بازنشانی می شوند. برای جلوگیری از آن، استفاده کنید “iptables-persistent” سودمندی بسته زیر را نصب کنید:

sudo apt install iptables-persistent

در مرحله ای از مراحل نصب، پنجره پیکربندی را مشاهده خواهید کرد که به شما پیشنهاد می کند قوانین فعلی iptables را ذخیره کنید. از آنجایی که قوانین از قبل تعریف شده اند، فقط تایید کنید و کلیک کنید "بله" دو بار از آنجا که در حال حاضر قوانین به طور خودکار پس از راه اندازی مجدد سرور اعمال می شود.

ترجمه آدرس را روشن کنید

سرور PPTP

پیکربندی سرور

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

sudo apt install pptpd

پس از پایان نصب، فایل را باز کنید “/etc/pptpd.conf” در هر ویرایشگر متنی و به صورت زیر ویرایش کنید:

option /etc/ppp/pptpd-options #path to the settings file
logwtmp #client connections logging mechanism
connections 100 #number of simultaneous connections
localip 172.16.0.1 #the address that will serve as a client gateway
remoteip 172.16.0.2-200 #range of addresses

پس از آن فایل را ویرایش کنید «/etc/ppp/pptpd-options». اکثر پارامترها به صورت پیش فرض تنظیم شده اند.

#name of the service for new client records
name pptpd
#restrict obsolete authentication methods
refuse-pap
refuse-chap
refuse-mschap
#allow a more secure authentication method
require-mschap-v2
#enable encryption
require-mppe-128
#specify dns servers for clients (use any available servers)
ms-dns 8.8.8.8
ms-dns 8.8.4.4
proxyarp
nodefaultroute
lock
nobsdcomp
novj
novjccomp
nologfd

در مرحله بعد، باید یک رکورد برای اتصالات مشتری ایجاد کنید. فرض کنید می خواهید یک کاربر اضافه کنید “vpnuser” با رمز عبور "1" و امکان آدرس دهی پویا را برای او فراهم کنید. فایل را باز کنید "/etc/ppp/chap-secrets" و خط زیر را با پارامترهای کاربر در انتهای فایل اضافه کنید:

vpnuser pptpd 1 *

"pptpd" value نام سرویسی است که در فایل مشخص کرده ایم "pptpd-Options". بجای "*" می توانید یک آدرس IP ثابت را مشخص کنید. در نتیجه، فایل "بخش اسرار" باید به این شکل باشد:

راه اندازی سرور VPN

برای اعمال تنظیمات بازنشانی کنید pptpd سرویس دهید و آن را به بارگذاری خودکار اضافه کنید.

sudo systemctl restart pptpd
sudo systemctl enable pptpd

پیکربندی سرور به پایان رسیده است.

پیکربندی مشتری

باز کن "شروع" - "تنظیمات" - شبکه و اینترنت - "VPN" کلیک کنید و "افزودن اتصال VPN"

سرویس گیرنده را برای اتصال VPN تنظیم کنید

پارامترهای اتصال را در پنجره باز شده وارد کرده و کلیک کنید "صرفه جویی"

  • ارائه دهنده VPN: "ویندوز (توکار)"
  • نام اتصال: "vpn_connect" (شما می توانید هر نامی را انتخاب کنید)
  • نام یا آدرس سرور: (آدرس IP خارجی سرور را مشخص کنید)
  • نوع VPN: "خودکار"
  • نوع اطلاعات ورود: «نام کاربری و رمز عبور»
  • نام کاربری: vpnuser (نام مشخص شده در فایل “chap-secrets” در سرور)
  • کلمه عبور: 1 (همانند فایل “chap-secrets”)

پس از ذخیره پارامترها، اتصال VPN جدید را در پنجره مشاهده خواهید کرد. روی اتصال کلیک چپ کرده و انتخاب کنید "اتصال". در صورت اتصال موفق، خواهید دید "متصل" وضعیت.

افزودن اتصال VPN

در گزینه ها، آدرس های داخلی مشتری و سرور را پیدا خواهید کرد. میدان “آدرس مقصد” آدرس سرور خارجی را نمایش می دهد.

نحوه راه اندازی سرور VPN توسط خودتان

هنگام اتصال، آدرس IP داخلی سرور، 172.16.0.1 در مورد ما، به دروازه پیش فرض برای همه بسته های خروجی تبدیل می شود.

آدرس IP خارجی را بررسی کنید

با استفاده از هر سرویس آنلاین می توانید مطمئن شوید که آدرس IP خارجی رایانه اکنون با آدرس IP سرور VPN شما یکسان است.

سرور OpenVPN

پیکربندی سرور

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

sudo -s

تمام بسته های لازم را نصب کنید. نیاز خواهیم داشت “Easy-RSA” بسته ای برای مدیریت کلیدهای رمزگذاری

apt install openvpn easy-rsa iptables-persistent

اتصالات ورودی را از طریق پروتکل UDP روی پورت ۱۱۹۴ مجاز کنید و قوانین iptables را اعمال کنید.

sudo iptables -I INPUT -p udp --dport 1194 -j ACCEPT

sudo netfilter-persistent save

یک دایرکتوری با فایل‌های کپی‌شده از بسته‌ی «Easy-RSA» ایجاد کنید و به داخل آن بروید.

make-cadir ~/openvpn

cd ~/openvpn

ایجاد زیرساخت کلید عمومی (PKI).

./easyrsa init-pki

گواهی ریشه مرجع صدور گواهینامه (CA) را ایجاد کنید.

./easyrsa build-ca

در طول فرآیند ایجاد، از شما خواسته می‌شود که یک رمز عبور تنظیم کرده و آن را به خاطر بسپارید. همچنین باید به سؤالات پاسخ دهید و اطلاعات مربوط به مالک کلید را وارد کنید. می‌توانید مقادیر پیش‌فرض ارائه شده در داخل کروشه را رها کنید. برای نهایی کردن ورودی، "Enter" را فشار دهید.

یک کلید خصوصی و یک درخواست گواهی ایجاد کنید. به عنوان آرگومان، یک نام دلخواه مشخص کنید؛ در مورد ما، این نام «vpn-server» است.

./easyrsa gen-req vpn-server nopass

مقدار Common Name را به صورت پیش‌فرض باقی بگذارید.

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

./easyrsa sign-req server vpn-server

در این مرحله، برای تأیید امضا، به «بله» پاسخ دهید، سپس رمز عبوری را که در طول تولید گواهی ریشه ایجاد کرده‌اید، وارد کنید.

پارامترهای دیفی-هلمن را تولید کنید. این پارامترها برای تبادل کلید امن بین سرور و کلاینت استفاده می‌شوند.

./easyrsa gen-dh

تمام فایل‌های لازم ایجاد شده‌اند. بیایید یک پوشه "keys" در دایرکتوری کاری OpenVPN ایجاد کنیم تا کلیدها را ذخیره کنیم و فایل‌های ایجاد شده را در آنجا کپی کنیم.

mkdir /etc/openvpn/keys

sudo cp pki/ca.crt pki/issued/vpn-server.crt pki/private/vpn-server.key pki/dh.pem /etc/openvpn/keys

پیکربندی NAT با استفاده از iptables قوانین. یک فایل با نام ایجاد کنید nat و آن را برای ویرایش در ... باز کنید /etc/openvpn/ دایرکتوری.

#!/bin/sh

# Reset firewall settings
iptables -F
iptables -X
iptables -t nat -F
iptables -t nat -X

# (eth0 in our case, may vary)
iptables -A INPUT -i eth0 -m state --state ESTABLISHED,RELATED -j ACCEPT

# (eth0 in our case, may vary)
iptables -A INPUT -i eth0 -p tcp --dport 22 -j ACCEPT

# Allow OpenVPN connections (eth0 in our case, may vary)
iptables -A INPUT -i eth0 -p udp --dport 1194 -j ACCEPT

iptables -A INPUT -i tun0 -j ACCEPT

# (eth0 in our case, may vary):
iptables -A FORWARD -i eth0 -o tun0 -j ACCEPT
iptables -A FORWARD -i tun0 -o eth0 -j ACCEPT

# (eth0 in our case, may vary)
iptables -A FORWARD -i eth0 -o tun0 -m state --state ESTABLISHED,RELATED -j ACCEPT

# Enable masquerading for the local network (eth0 in our case, may vary)
iptables -t nat -A POSTROUTING -o eth0 -s 10.8.0.0/24 -j MASQUERADE

# Deny incoming connections from outside
iptables -A INPUT -i eth0 -j DROP

# Deny transit traffic from outside (eth0 in our case, may vary)
iptables -A FORWARD -i eth0 -o tun0 -j DROP

sudo netfilter-persistent save

فایل را ذخیره کنید و آن را قابل اجرا کنید.

sudo chmod 755 /etc/openvpn/nat

الگوی پیکربندی سرور را کپی کنید.

cp /usr/share/doc/openvpn/examples/sample-config-files/server.conf /etc/openvpn/

باز کردن فایل “/etc/openvpn/server.conf” برای ویرایش، مطمئن شوید که حاوی خطوط زیر است و در صورت نیاز آنها را ویرایش کنید:

#Port, protocol, and interface

port 1194

proto udp

dev tun
#Path to the encryption keys

ca /etc/openvpn/keys/ca.crt

cert /etc/openvpn/keys/vpn-server.crt

key /etc/openvpn/keys/vpn-server.key

dh /etc/openvpn/keys/dh.pem

#SHA256 Hashing Algorithm

auth SHA256
#Switching off additional encryption

#tls-auth ta.key 0
#Network parameters

server 10.8.0.0 255.255.255.0

ifconfig-pool-persist /var/log/openvpn/ipp.txt

push "redirect-gateway def1 bypass-dhcp"

push "dhcp-option DNS 8.8.8.8"

push "dhcp-option DNS 8.8.4.4"
#Ping every 10 seconds to check the connection.

keepalive 10 120
#Set up AES-256 encryption for the tunnel.

cipher AES-256-GCM
#Demoting the service OpenVPN after launch

user nobody

group nogroup
#Switching on parameters saving after reboot

persist-key

persist-tun
#Set log verbosity

verb 3
#Redirecting logs

log-append /var/log/openvpn/openvpn.log
#Script the rule installation launch.

up /etc/openvpn/nat

فعال کردن قابلیت هدایت ترافیک روی سرور

sudo sysctl -w net.ipv4.ip_forward=1

echo 'net.ipv4.ip_forward=1' | sudo tee -a /etc/sysctl.conf

برای اعمال تنظیمات، OpenVPN را اجرا کنید.

systemctl restart openvpn@server

پیکربندی سرور به پایان رسید!

پیکربندی مشتری

به وب سایت رسمی OpenVPN برویدhttps://openvpn.net"، برو به "جامعه" بخش.

Заходим на سایت رسمی "https://openvpn.net"، در تقسیم بندی "COMUNITY".

به پایین اسکرول کنید و فایل نصبی مربوط به نسخه سیستم عامل خود را دانلود کنید. در مورد ما، ویندوز ۱۱ ARM11 است.

пролистываем вниз и скачиваем نصب کننده для своей версии операционной системы. در ویندوز 11 ARM64.

برنامه را نصب کنید و تمام پارامترها را به طور پیش فرض باقی بگذارید.

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

  • کلیدهای عمومی و خصوصی؛
  • کپی کلید مرکز صدور گواهینامه؛
  • قالب فایل پیکربندی

به سرور متصل شوید، امتیازات را افزایش دهید و به دایرکتوری ایجاد شده ما بروید "~/openvpn".

sudo -s

cd ~/openvpn

یک کلید خصوصی و یک درخواست گواهی برای کلاینت ایجاد کنید. به عنوان آرگومان، یک نام دلخواه مشخص کنید؛ در مورد ما، این نام "client1" است.

./easyrsa gen-req client1 nopass

رمز عبوری را که هنگام ایجاد گواهی ریشه تنظیم کردیم وارد کنید و مقدار Common Name را به صورت پیش‌فرض باقی بگذارید.

نام مشترک در умолчанию.

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

./easyrsa sign-req client client1

در این مرحله، برای تأیید امضا، به «بله» پاسخ دهید، سپس رمز عبوری را که در طول تولید گواهی ریشه ایجاد کرده‌اید، وارد کنید.

در این مورد، "بله" را به عنوان "بله" پاسخ می‌دهد، پس از این که هر کدام از این منابع را ایجاد کرده‌اند، مجوزهای لازم را ایجاد کرده‌اند.

برای راحتی، بیایید یک پوشه با نام 'client1' در دایرکتوری خانگی ایجاد کنیم و تمام فایل‌هایی را که برای انتقال به کامپیوتر کلاینت در نظر گرفته شده است، در آن کپی کنیم.

mkdir ~/client1

cp pki/issued/client1.crt pki/private/client1.key pki/ca.crt ~/client1/

قالب فایل پیکربندی کلاینت را در همان دایرکتوری کپی کنید. پسوند فایل را به ".ovpn" در حین کپی کردن

cp /usr/share/doc/openvpn/examples/sample-config-files/client.conf ~/client1/client.ovpn

مالک دایرکتوری و همه فایل ها را تغییر دهید “~/client1/” تا بتوان آنها را بین مشتری توزیع کرد. بسازیم "میهایل" مالک در مورد ما

chown -R mihail:mihail ~/client1

به کامپیوتر مشتری بروید و محتوای آن را کپی کنید “~/client1/” پوشه شما می توانید این کار را با کمک انجام دهید "PSCP" ابزار، که با بتونه همراه است.

PSCP -r mihail@[IP_сервера]:/home/mihail/client1 c:\client1

شما می توانید فایل های کلیدی را ذخیره کنید “ca.crt”, “client1.crt”, "client1.key" هر کجا که بخواهی در مورد ما، آنها در این پوشه هستند "c:\Program Files\OpenVPN\keys"، و فایل کانفیگ را حالت می دهیم “client.ovpn” به "c:\Program Files\OpenVPN\config" دایرکتوری.

حالا بیایید به پیکربندی کلاینت بپردازیم. فایل را باز کنید "c:\Program Files\OpenVPN\config\client.ovpn" در یک ویرایشگر متن و خطوط زیر را ویرایش کنید:

#announce that this is the client

client
#interface and protocol just like on the server

dev tun

proto udp
#IP address of the server and port

remote ip_address 1194
#saving parameters after reload

persist-key

persist-tun
#key paths

ca “c:\\Program Files\\OpenVPN\\keys\\ca.cert”

cert “c:\\Program Files\\OpenVPN\\keys\\client1.crt”

key “c:\\Program Files\\OpenVPN\\keys\\client1.key”
#enable server verification

remote-cert-tls server
#disable extra encryption

#tls-auth ta.key 1

cipher AES-256-CBC

auth-nocache

verb 3

بقیه را دست نخورده بگذارید.

فایل را ذخیره کنید و برنامه مشتری را اجرا کنید “OpenVPN GUI”.

راه اندازی VPN به پایان رسید

روی نماد برنامه در نوار وظیفه کلیک راست کرده و انتخاب کنید "اتصال". اگر اتصال موفقیت آمیز باشد، نماد سبز می شود.

از هر سرویس آنلاینی استفاده کنید تا مطمئن شوید آدرس IP عمومی شما تغییر کرده و اکنون با آدرس IP سرور یکسان است.

❮ مقاله قبلی چگونه Wireguard VPN را روی سرور خود راه اندازی کنید
مقاله بعدی ❯ راه اندازی سرور FTP

VPS را از ما بخواهید

ما همیشه آماده پاسخگویی به سوالات شما در هر ساعت از شبانه روز هستیم.