تمامی متخصصان امنیت سایبری به استفاده از وی پی ان برای استفاده از اینترنت تأکید دارند، زیرا وی پی ان اطلاعات را رمزنگاری میکند و حتی IP اتصال اینترنت شما را تغییر میدهد تا بتوانید از وبسایتها و سرویسهایی که در کشور شما در دسترس نیستند، استفاده کنید. با اینکه VPNهای متعددی بهصورت رایگان و پولی برای سیستم عاملهای اندروید، iOS حتی ویندوز موجود هستند اما به دلیل محبوبیت عمومی پایینتر سرور لینوکس و توزیع های لینوکس مثل Ubuntu، وی پی انهای کمی برای این سیستم عامل توسعه یافته است و گاهی اوقات کاربران برای حفظ امنیت لینوکس مجبور به ساخت وی پی ان سرور مخصوص به خود میشوند. در این مقاله با آموزش نصب VPN در اوبونتو در خدمت شما هستیم. با ما تا انتهای این مقاله همراه باشید.
چرا به نصب VPN در اوبونتو نیاز داریم؟
وی پی ان (VPN خلاصه شده عبارت Virtual Private Network) ابزاری برای اتصال به شبکهای محلی (local network) بر بستر اینترنت است. برای مثال تصور کنید که شما در ماموریتی کاری در هتلی مستقر هستید و میخواهید با استفاده از وای-فای هتل به شبکهای محلی در محل کار خود وصل شوید؛ برای این کار میتوانید از یک وی پی ان مناسب استفاده کنید. با اینکه اتصال اصلی اینترنت شما با همان شبکه وای-فای هتل است اما اینطور به نظر میرسد که با شبکه محل کار خود به اینترنت متصل هستید.
البته وی پی ان کاربردهای بسیار گستردهتری دارد. اکثر VPNها دیتا را رمزنگاری میکنند تا امکان سرقت اطلاعات انتقالی بر بستر شبکه اینترنت با حملاتی مثل man-in-the-middle وجود نداشته باشد و حتی تأمینکننده اینترنت نیز نتواند ترافیک شما را شنود کند.
همچنین اگر شما در کشوری زندگی کنید که دسترسی به بعضی از محتواها و سرویسهای اینترنتی را محدود کرده باشد، میتواند با استفاده از وی پی ان، آی پی اتصال اینترنت خود را به آی پی کشور دیگری که اینترنت آزادتر دارد تغییر دهید تا بتوانید از محتواها و سرویسهای مورد نیاز خود استفاده کنید.
با اینکه VPNهای رایگان و پولی متعددی برای سیستم عاملهای گوشیها و ویندوز وجود دارد اما به دلیل محبوبیت عمومی پایینتر سیستم عامل لینوکس و توزیعهای آن، VPNهای کمی برای این سیستم عامل توسعه پیدا کردهاند اما کاربران لینوکس نیز همانند دیگر کاربران به وی پی ان نیاز دارند و بنابراین در اینجا میخواهیم نحوه نصب VPN در اوبونتو را به شما آموزش دهیم.
آموزش قدم به قدم نصب VPN روی Ubuntu
برای نصب و استفاده از وی پی ان در سیستم عامل اوبونتو لینوکس ممکن است نیاز به دانلود و نصب چندین نرمافزار کلاینت داشته باشید که معمولا شرکت ارائهدهنده VPN آنها را در اختیار شما قرار میدهد. در رابطه با جزئیات نصب هر وی پی ان روی اوبونتو میتوانید از منتشرکننده وی پی ان کمک بگیرید. سپس به فایل نصبی وی پی ان بروید و پکیج NetworkManager را در صورت وجود پیدا و نصب کنید.
نکته: اگر وی پی ان شما دارای پکیج NetworkManager نباشد، احتمالا باید چندین نرمافزار کلاینت را از وبسایت شرکت ارائهدهنده وی پی ان دانلود و نصب کنید و برای این کار باید دستورالعملهای توسعهدهنده VPN را دنبال کنید.
برای نصب VPN در اوبونتو به ترتیب زیر پیش بروید:
۱- Activities overview را باز و عبارت Network را تایپ کنید.
۲- روی گزینه Network کلیک کنید تا پنل آن باز شود.
۳- در پایین لیست و در سمت چپ، روی دکمه + کلیک کنید تا کانکشن جدیدی ایجاد شود.
۴- یک VPN را از لیستی که نمایش داده میشود، انتخاب کنید.
۵- نوع اتصال VPN خود را انتخاب کنید.
۶- جزئیات اتصال VPN را وارد و در انتها روی دکمه Add کلیک کنید.
۷- پس از پایان نصب VPN در اوبونتو، system menu را که در سمت راست نوار بالایی قرار دارد باز کنید. سپس، روی گزینه VPN off و گزینه Connect را انتخاب کنید. ممکن است که پیش از برقراری اتصال وی پی ان نیاز به وارد کردن گذرواژهای باشید که تأمینکننده وی پی ان در اختیار شما قرار داده است. زمانی که اتصال برقرار شود، آیکونی شبیه به قفل در نوار بالایی میبینید.
۸- با انجام مراحل فوق باید به وی پی ان متصل شوید؛ در غیر این صورت باید تنظیمات انجام شده را مجددا چک کنید تا از درستی آنها مطمئن شوید. شما میتوانید این کار را از پنل Network که از آن برای ساخت نصب وی پی ان استفاده کردهاید، انجام دهید. گزینه VPN connection را در فهرستی که به شما نمایش داده میشود، انتخاب کنید و با کلیک روی آیکون چرخدنده وارد تنظیمات شوید تا آنها را بررسی کنید و در صورت نیاز تغییر دهید.
۹- برای قطع اتصال وی پی ان کافی است که در نوار بالا روی system menu کلیک و سپس روی گزینه Turn Off در زیر نام اتصال وی پی ان خود کلیک کنید تا کانکشن قطع شود.
آموزش راه اندازی VPN server در لینوکس
استفاده از VPNهای توسعهیافته توسط دیگران همیشه این خطر را دارد که دادههای حساس شما در اختیار توسعهدهنده قرار بگیرد. خوشبختانه شما میتوانید با خرید سرور لینوکس، VPN server مخصوص به خود را روی آن راهاندازی کنید. برای این کار نیازی نیست که برنامهنویسی بدانید و کسی با کمی دانش فنی میتواند وی پی ان خودش را روی سرور لینوکس راهاندازی کند اما این بر خلاف نصب VPN در اوبونتو کمی زحمت دارد ولی به زحمتش میارزد که یک وی پی ان امن و پر سرعت داشته باشید. در ادامه به شما میگوییم که چطور میتوانید VPN خود را در سرور لینوکس بسازید.
۱- سروری با سیستم عامل اوبونتو بخرید
شما میتوانید از یک ارائهدهنده خدمات هاستینگ، سروری با سیستم عامل اوبونتو بخرید.
۲- نرمافزار OpenVPN را نصب کنید
پس از خرید و راهاندازی سرور باید نرمافزار OpenVPN را روی آن نصب کنید. اولین کاری که باید انجام دهید، ورود به سرور با وارد کردن نام کاربری و رمز عبور از طریق خط فرمان (command prompt) است. سپس فرمانهای زیر را اجرا کنید (شما میتوانید این فرمانها را از همینجا کپی و در خط فرمان اوبونتو پیست کنید):
$ sudo apt-get update
$ sudo apt-get install openvpn easy-rsa
با اجرای فرمانهای بالا، OpenVPN و easy-rsa روی سرور لینوکس شما نصب میشوند.
۳- دایرکتوری Certificate Authority را بسازید
گواهینامهها (certificateها) قابل اطمینان بسیار مهم هستند زیرا رمزنگاری ترافیک خروجی را تضمین میکنند. به طور معمول این certificateها در دایرکتوری Certificate Authority یا CA قرار دارند اما از آنجایی که شما با سرور خودتان کار میکنید، باید یک دایرکتوری CA ساده روی سرور بسازید. برای این کار فرمان زیر را اجرا کنید:
$ make-cadir ~/openvpn-ca
حالا به فولدر ایجاد شده بروید و فرمان زیر را اجرا کنید:
$ cd ~/openvpn-ca
۴- Certificate Authority را کانفیگ کنید
در این مرحله باید CA را ویرایش کنید. برای باز کردن ادیتور متن که فایل vars را نمایش دهد، فرمان زیر را وارد کنید:
$ nano vars
حالا به دنبال خطهای زیر باشید:
export KEY_COUNTRY=”US”
export KEY_PROVINCE=”NY”
export KEY_CITY=”New York City”
export KEY_ORG=”My-Organization”
export KEY_EMAIL=”me@host.domain”
export KEY_OU=”MyOrganizationalUnit”
عبارات درون کوتیشنها (“”) را آنطور که میخواهید ویرایش کنید. هیچ کدام از آنها نباید خالی بمانند. سپس به پایین اسکرول کنید تا خط KEY_NAME را پیدا و آن را به عبارت زیر تغییر دهید:
export KEY_NAME=”server”
حالا میتوانید فایل را ذخیره کنید و آن را ببندید.
۵- Certificate Authority را بسازید
در حالی که در دایرکتوری CA هستید، فرمان زیر را وارد کنید:
$ cd ~/openvpn-ca
سپس فرمان زیر را وارد کنید:
$ source vars
در صورتی که فرایند به درستی انجام شود، باید عبارت زیر را روی صفحه نمایش ببینید:
NOTE: If you run ./clean-all, I will be doing a rm -rf on /home/sammy/openvpn-ca/keys
محیط را با فرمان زیر پاکسازی کنید:
$ ./clean-all
حالا روت CA را بسازید:
$ ./build-ca
باید مجموعهای از پیامها نمایش داده شود که نشاندهنده اجرای فرمانهای شما توسط سرور هستند. پس از نمایش هر کدام فقط Enter را بزنید تا فرایند تکمیل شود.
۶- فایلهای رمزنگاری سرور را بسازید
حالا که Certificate Authority ساخته شده است، میتوانید ساخت کلیدهای رمزنگاری واقعی را شروع کنید. اولین کاری که باید انجام دهید، ایجاد certificate مخصوص OpenVPN همراه با جفت کلید آن است:
$ ./build-key-server server
سرور بعضی مقادیر را پیشنهاد میکند. با تایپ کردن y با همه آنها موافقت کنید. در هنگام ایجاد certificate نیز همین کار را انجام دهید.
حالا باید چندین فایل دیگر را که OpenVPN برای کار کردن به آنها نیاز دارد، بسازید. برای این کار، فرمان زیر را اجرا کنید:
$ ./build-dh
ممکن است که اجرای این فرمان کمی زمان ببرد ولی باید تا انجام کامل آن صبر کنید. سپس، فرمان زیر را برای ایجاد امضاء به منظور تقویت فرآیند تأیید هویت، وارد کنید:
$ openvpn –genkey –secret keys/ta.key
۷- ایجاد certificate کلاینت
در این مرحله یک certificate به همراه یک جفت کلید برای متصل کردن کامپیوتر لینوکس شما میسازیم. از فرمانهای زیر استفاده کنید:
$ cd ~/openvpn-ca
$ source vars
$ ./build-key client1
هر عبارتی که نمایش داده شد، با فشار دادن enter اعمال کنید.
۸- کانفیگ کردن OpenVPN
حالا که همه certificateها و جفت کلیدهایی که نیاز دارید را ساختهاید، بالاخره میتوانید OpenVPN را کانفیگ کنید.
اولین کاری که باید انجام دهید، جا به جا کردن بعضی از فایلهای ساخته شده به فولدر openvpn است. برای این کار فرمانهای زیر را وارد کنید:
$ cd ~/openvpn-ca/keys
$ sudo cp ca.crt ca.key server.crt server.key ta.key dh2048.pem /etc/openvpn
حالا یک فایل کانفیگ نمونه را اضافه کنید تا بتوانید خودتان آن را باز و ویرایش کنید. برای این کار فرمان زیر را وارد کنید:
$ gunzip -c /usr/share/doc/openvpn/examples/sample-config-files/server.conf.gz | sudo tee /etc/openvpn/server.conf
پس از خارج کردن فایل از حالت فشرده، فرمان زیر را وارد کنید تا فایل کانفیگ باز شود:
$ sudo nano /etc/openvpn/server.conf
با باز شدن فایل server.conf در nano editor خط زیر را پیدا کنید:
;tls-auth ta.key 0 # This file is secret
نقطه ویرگول ابتدای خط را بردارید تا uncomment شود. در خطی که درست زیر آن قرار دارد، عبارت زیر را اضافه کنید:
key-direction 0
حالا به پایین اسکرول کنید تا بخش پرشده با کلیدها را پیدا کنید. در اینجا باید میزان امنیت را انتخاب کنید. با پیدا کردن خط زیر و uncomment کردن آن گزینه AES 128 bit را انتخاب کنید:
;cipher AES-128-CBC
درست زیر خط بالایی، عبارت زیر را اضافه کنید:
auth SHA256
حالا تنظیمات کاربر و گروه را که شامل خطهای زیر هستند، uncomment کنید:
user nobody
group nogroup
تنظیمات DNS را تغییر دهید تا تمامی ترافیک سرور از درون VPN عبور کند
در هشت مرحله بالا به شما آموزش دادیم تا VPN server خود را در لینوکس بسازید اما حالا شما باید ترافیک را از درون آن تونل کنید. برای این کار باید تنظیمات DNS را با کامپیوترهای کلاینت یکی کنید. برای این کار باید دایرکتیوهای لیست شده در زیر را uncomment کنید. همه آنها را پیدا کنید و نقطه ویرگول را بردارید:
push “redirect-gateway def1 bypass-dhcp”
درست زیر خط بالا، بخش dhcp-option را بیابید و هر دو خط را uncomment کنید:
push “dhcp-option DNS 208.67.222.222”
push “dhcp-option DNS 208.67.220.220”
با این کار، DNS کلاینتها به گونهای کانفیگ میشود که همیشه از VPN به عنوان دروازه پیشفرض استفاده کند.
پورت و پروتکل را تنظیم کنید
حالا باید پورتی را که OpenVPN از آن استفاده میکند، تغییر دهید. این نرمافزار به صورت پیشفرض از پورت 1194 و پروتکل UDP استفاده میکند. شما باید از پورت 443 که به ندرت توسط فایروالها محدود میشود، استفاده کنید. خط #Optional! را پیدا کنید و پورت را به 443 تغییر دهید.
# Optional!
port 443
سپس، پروتکل را از UDP به TCP تغییر دهید:
# Optional!
proto tcp
حالا فایل را ذخیره کنید و آن را ببندید.
۹- تنظیمات شبکه را انجام دهید
برای اطمینان از هدایت صحیح ترافیک توسط OpenVPN باید ویرایشهایی انجام دهید. اول از همه اجازه IP forwarding را به آن بدهید. برای این کار باید فایل /etc/sysctl.conf را ویرایش کنید. برای این منظور فایل را باز کنید.
$ sudo nano /etc/sysctl.conf
خط زیر را پیدا کنید و کاراکتر # را بردارید تا uncomment شود:
# net.ipv4.ip_forward=1
فایل را ذخیره کنید و آن را ببندید.
حالا فرمان زیرا را برای تنظیم مقادیر وارد کنید:
$ sudo sysctl –p
حالا باید فایروال سرور را تنظیم کنید تا به درستی ترافیک را تغییر دهد. برای این کار باید با پیدا کردن رابط کاربری شبکه عمومی سرور خودتان شروع کنید:
$ ip route | grep default
یکی از خطهای خروجی دارای کلمه dev است. چیزی که به دنبال این کلمه میآید، نام رابط کاربری شما است. برای مثال در خط زیر، w1p11s0 نام رابط کاربری است:
default via 203.0.113.1 dev wlp11s0 proto static metric 600
حالا باید با ویرایش کردن ruleهای فایل، نام بالا را به مکان مناسب اضافه کنید. فرمان زیر را وارد کنید:
$ sudo nano /etc/ufw/before.rules
دنبال بخشی از متن باشید که با عبارت زیر شروع میشود:
# START OPENVPN RULES
زیر عبارت بالا، خطی میبینید که با -A POSTROUTING شروع میشود. حالا باید نام رابط کاربری را اینجا وارد کنید. نام رابط کاربری را به جای XXXX قرار دهید:
-A POSTROUTING -s 10.8.0.0/8 -o XXXX -j MASQUERADE
حالا فایل را ذخیره کنید و آن را ببندید.
$ sudo nano /etc/default/ufw
سپس، به دنبال خطی باشید که دارای عبارت DEFAULT_FORWARD_POLICY است و DROP را به ACCEPT تغییر دهید:
DEFAULT_FORWARD_POLICY=”ACCEPT”
فایل را ذخیره کنید و ببندید.
در آخر باید تنظیمات فایروال را برای اجازه دادن ورود ترافیک به OpenVPN انجام دهید. از فرمانهای زیر استفاده کنید:
$ sudo ufw allow 443/tcp
$ sudo ufw allow OpenSSH
برای بارگذاری تغییرات، فایروال را با فرمانهای زیر، فعال و غیر فعال کنید:
$ sudo uwf disable
$ sudo uwf enable
۱۰- سرویس OpenVPN را راهاندازی کنید
OpenVPN را راهاندازی کنید تا سرور شما شروع به کار کند:
$ sudo systemctl start openvpn@server
برای تضمین اینکه OpenVPN هر زمانی که سرور بوت میشود، راهاندازی شود، فرمان زیر را وارد کنید:
$ sudo systemctl enable openvpn@server
۱۱- تنظیمات کلاینت
شما باید سرور را آماده کنید تا هر دستگاهی را که میخواهید به آن وصل کنید، بپذیرد. برای این کار باید یک دایرکتوری بسازید تا فایلهای مرتبط کلاینت را در آن قرار دهید، سپس، مجوزها را تغییر دهید تا آن را قفل کنید.
$ mkdir -p ~/client-configs/files
$ chmod 700 ~/client-configs/files
حالا یک فایل کانفیگ نمونه را کپی و ویرایش میکنیم:
$ cp /usr/share/doc/openvpn/examples/sample-config-files/client.conf ~/client-configs/base.conf
فایل را در ویرایشگر متن باز کنید:
$ nano ~/client-configs/base.conf
به پایین اسکرول کنید تا خطی را که با کلمه remote شروع میشود، پیدا کنید. آن را ویرایش کنید تا روی پورت 443 قرار بگیرد:
remote server_IP_address 443
زیر این خط UDP را به TCP تغییر دهید:
proto tcp
نقطه ویرگول را از خطهای user و group بردارید تا uncomment شوند:
user nobody
group nogroup
خطهای ca، cert و key را پیدا و با اضافه کردن کاراکتر # آنها را کامنت کنید:
#ca ca.crt
#cert client.crt
#key client.key
تنظیمات cipher و auth را تغییر دهید تا با تنظیمات بالا مطابقت داشته و به صورت زیر باشند:
cipher AES-128-CBC
auth SHA256
حالا در هر جایی در فایل یک خط اضافه و عبارت زیر را تایپ کنید:
key-direction 1
حالا خطهای خروجی کامنتشده زیر را کپی و به انتهای فایل اضافه کنید:
# script-security 2# up /etc/openvpn/update-resolv-conf# down /etc/openvpn/update-resolv-conf
تغییرات را ذخیره کنید و از ویرایشگر خارج شوید.
آخرین کاری که باید انجام دهید، ایجاد اسکریپتی برای کامپایل کردن چیزهایی است که تا اینجا ساختهاید. برای اینکار با ایجاد فایلی به نام make_config.sh در دایرکتوری ~/client-configs شروع و سپس آن را با ویرایشگر nano باز کنید. کد زیر را در اسکریپت کپی کنید:
#!/bin/bash
# First argument: Client identifier
KEY_DIR=~/openvpn-ca/keys
OUTPUT_DIR=~/client-configs/files
BASE_CONFIG=~/client-configs/base.conf
cat ${BASE_CONFIG} \
فایل را ذخیره کنید و ببندید. با فرمان زیر آن را قابل اجرا کنید:
$ chmod 700 ~/client-configs/make_config.sh
۱۲- کانفیگ کردن VPN در لینوکس
برای استفاده از VPN در اوبونتو که خودتان آن را ساختید، OpenVPN را روی کامپیوتر خود نصب کنید:
$ sudo apt-get update
$ sudo apt-get install openvpn
حالا باید فایل کانفیگ دانلود شده را باز و ویرایش کنید:
$ nano client1.ovpn
سه خط زیر را uncomment کنید:
script-security 2
up /etc/openvpn/update-resolv-conf
down /etc/openvpn/update-resolv-conf
فایل را ذخیره کنید و ببندید. حالا میتوانید با کامپیوتر لینوکس خود به VPN ساخت خودتان وصل شوید. برای متصل شدن به VPN ساخته شده، فرمان زیر را اجرا کنید:
$ sudo openvpn –config client1.ovpn
اگر همه کارهای بالا را به درستی انجام داده باشید، باید به VPN خود وصل شوید.
جمعبندی
در این مقاله به شما گفتیم که وی پی ان چیست و چرا به آن نیاز دارید. همچنین نحوه نصب VPN در اوبونتو را به شما آموزش دادیم. البته شما ميتوانید VPN server مخصوص به خود را در لینوکس بسازید و برای این کار باید از یک ارائهدهنده خدمات هاستینگ، سرور لینوکس بخرید و دستورالعملهایی را که در این مقاله به شما گفتیم مو به مو اجرا کنید.
سوالات پرتکرار
۱- آیا امکان نصب VPN روی لینوکس اوبونتو وجود دارد؟
بله. برای نصب VPN در اوبونتو مطابق با دستورالعملهای این مقاله پیش بروید.
۲- آیا ساخت وی پی ان در سرور لینوکس کار سختی است؟
خیر شما میتوانید به سادگی و با انجام چندین دستور ساده، یک وی پی ان اختصاصی روی سرور لینوکس خود بسازید.
۳- بهترین VPNها برای نصب در اوبونتو کدامند؟
از بهترین VPNها برای نصب در اوبونتو میتوان به ProtonVPN، Cisco و OpenVPN اشاره کرد.