محیط کاربری و ماهیت سیستم، راه اندازی وایرگارد روی لینوکس را برای بسیاری از کاربران و به خصوص افراد مبتدی چالش برانگیز میسازد. وایرگارد یک ویپیان اوپن سورس، رایگان و پرسرعت است که با استفاده از رمزنگاری پیشرفته، اتصالاتی ایمن و سریع ایجاد میکند. این پروتکل، ترافیک را از طریق UDP ارسال میکند و عملکردی بهتر از پروتکلهای رایج مانند OpenVPN و IPsec ارائه میدهد.
این فناوری بهصورت اختصاصی برای هسته لینوکس طراحی شده و به کاربران امکان میدهد تونل ویپیان مدرن، ایمن و سریعی ایجاد کنند. WireGuard از طریق ایجاد یک رابط شبکه در هر دستگاه همتا (Peer) کار میکند که نقش یک تونل را ایفا مینماید. دستگاههای همتا از طریق تبادل و اعتبارسنجی کلیدهای عمومی، مشابه مدل SSH، یکدیگر را تأیید میکنند.
در این راهنما، با آموزش گام به گام نصب و راه اندازی کانفیگ ایرگارد روی لینوکس همراه شما خواهیم بود.
پیش نیازهای تنظیم وایرگارد روی لینوکس
پیش از اینکه سراغ مراحل استفاده از وایرگارد روی لینوکس بروید، مطمئن شوید که پیش نیازهای آن روی سیستم شما وجود دارد. بسیاری از متقاضیان، پیش از نصب وایرگارد روی اوبونتو توجهی به رعایت پیش نیازهای ساده نمیکنند و در نهایت از کار نکردن WireGuard شاکی میشوند. مواردی که قبل از نصب و راه اندازی کانفیگ وایرگارد باید مدنظر داشته باشید عبارتند از:
- سیستمعامل بهروز: اطمینان حاصل کنید که توزیع لینوکس شما بهروز است. سرور اوبونتو شما باید ورژن Ubuntu 20.04 با کاربر غیر root و دارای دسترسی به sudo و فایروال فعال باشد. برای آپدیت کردن توزیعهای مبتنی بر دبیان مانند اوبونتو، دستور زیر را اجرا کنید:
sudo apt update && sudo apt upgrade –y
اگر قصد راه اندازی وایرگارد روی لینوکس با IPv6 را دارید، سیستم شما باید از این نوع ترافیک پشتیبانی کند.
- دسترسی کاربر با امتیازات sudo: برای نصب و پیکربندی WireGuard، نیاز به دسترسی کاربری با امتیازات مدیریتی (sudo) دارید.
- نصب بستههای ضروری: پیش از نصب WireGuard، اطمینان حاصل کنید که بستههای ضروری مانند curl و gnupg نصب شده باشند. در اوبونتو، میتوانید از دستور زیر استفاده کنید.
sudo apt install curl gnupg –y
- نصب WireGuard: بسته به نوع توزیع لینوکس شما، دستور نصب وایرگارد برای لینوکس ممکن است متفاوت باشد. برای اوبونتو و دبیان دستور زیر را وارد کنید.
sudo apt install wireguard -y
و برای فدورا دستور زیر را بزنید.
sudo dnf install wireguard-tools -y
- تولید کلیدهای رمزنگاری: پس از نصب، باید یک جفت کلید خصوصی و عمومی برای سرور و هر کلاینت تولید کنید. این کلیدها برای احراز هویت و ایجاد تونل امن استفاده میشوند. در ادامه نحوه تنظیم Wireguard برای اوبونتو، شیوه جنریت کردن جفت کلیدها را توضیح خواهیم داد.
- پیکربندی فایروال: در صورت فعال بودن فایروال، باید قوانین لازم برای اجازه ترافیک WireGuard را تنظیم کنید. به عنوان مثال، استفاده از UFW در اوبونتو با این دستور انجام میشود.
sudo ufw allow 51820/udp
- فعالسازی IP Forwarding: برای مسیریابی ترافیک بین کلاینتها و اینترنت، باید IP Forwarding را فعال کنید.
sudo sysctl -w net.ipv4.ip_forward=1
sudo sysctl -w net.ipv6.conf.all.forwarding=1
- کانفیگ WireGuard: فایل پیکربندی /etc/wireguard/wg0.conf را با اطلاعات مربوط به کلیدها، آدرسهای IP و پورتها تنظیم کنید. برای خرید وایرگارد، میتوانید همین حالا با ما در تماس باشید.
با رعایت این پیشنیازها، سیستم لینوکس شما برای نصب و راهاندازی WireGuard آماده خواهد بود
انتخاب آدرس IPv4 و IPv6 برای نصب WireGuard روی لینوکس
برای راه اندازی WireGuard روی لینوکس اوبونتو، ابتدا باید یک فایل پیکربندی برای سرورتان ایجاد کنید. سپس تنظیمات لازم را انجام دهید تا سرور پس از هر بار ریبوت، اتوماتیک راهاندازی شود. در این مرحله، باید آدرسهای IPv4 و IPv6 خصوصی را مشخص کنید تا سرور و Peerهای مرتبط بتوانند بهدرستی از WireGuard استفاده کنند.
اگر قصد دارید هر دو پروتکل IPv4 و IPv6 را فعال کنید، لازم است هر دو بخش توضیح دادهشده در ادامه را دنبال کنید. در غیر این صورت، تنها بخش مرتبط با پروتکل مدنظر را اجرا کنید.
انتخاب محدوده IPv4 برای راهاندازی وایرگارد روی لینوکس
در صورتی که از سرور WireGuard همراه با Peerهای IPv4 استفاده میکنید، لازم است محدودهای از آدرسهای IPv4 خصوصی برای مشتریان و اینترفیس تونل سرور تعیین کنید. محدودههای رزروشده زیر برای این منظور مناسب هستند:
- 0.0.0 تا 10.255.255.255 (پیشوند 10/8)
- 16.0.0 تا 172.31.255.255 (پیشوند 172.16/12)
- 168.0.0 تا 192.168.255.255 (پیشوند 192.168/16)
در این راهنما، محدوده 10.8.0.0/24 بهعنوان بخشی از آدرسهای IP انتخابشده است که به اولین بلوک آدرسهای رزروشده تعلق دارد. این محدوده میتواند حداکثر ۲۵۵ Peer مختلف را پشتیبانی کند. با این حال، باید اطمینان حاصل کنید که این آدرسها با سایر حوزههای IP خصوصی شبکه شما تداخل نداشته باشند. اگر محدوده 10.8.0.0/24 با شبکه فعلی شما سازگار نیست، میتوانید آدرس دیگری از بلوکهای رزروشده انتخاب کنید که مشکلی ایجاد نکند.
توجه داشته باشید که WireGuard از یک آدرس IP واحد از این محدوده برای تنظیم تونل خصوصی IPv4 خود استفاده میکند. در این آموزش، آدرس 10.8.0.1/24 بهعنوان آدرس تونل سرور انتخاب شده است؛ اما شما میتوانید از هر آدرس دیگری در محدوده 10.8.0.1 تا 10.8.0.255 استفاده کنید.
اگر تصمیم دارید آدرس دیگری غیر از 10.8.0.1/24 انتخاب کنید، حتماً آن را یادداشت کنید، زیرا در مراحل تنظیم و نصب وایرگارد روی لینوکس به آن نیاز خواهید داشت.
انتخاب محدوده IPv6 برای تنظیم WireGuard در لینوکس
برای استفاده از WireGuard با IPv6 در اوبونتو، لازم است که در این مرحله از راهاندازی وایرگارد روی لینوکس، پیشوند آدرس Unicast لوکال IPv6 بر اساس الگوریتم RFC 4193 تولید شود. طبق این الگوریتم، توصیه میشود برای ایجاد پیشوند IPv6 یکتا، زمان را با یک مقدار شناسایی منحصربهفرد مانند شماره سریال دستگاه ترکیب کنید.
این مقادیر در مرحله بعدی به صورت هش و کوتاهشده تبدیل میشوند و در نهایت مجموعهای از بیتها را ارائه میدهند که میتوانند به عنوان آدرسی یکتا استفاده شوند. برای شروع این فرآیند، دستور زیر را اجرا کنید:
$ date +%s%N
خروجی این دستور عددی مشابه زیر خواهد بود که نشاندهنده تعداد ثانیهها و نانوثانیهها از سال 1970 تاکنون است:
خروجی:
1650301699497770167
این عدد را یادداشت کنید؛ زیرا در ادامه فرآیند به آن نیاز خواهید داشت. در مرحله بعد، لازم است مقدار machine-id سرور خود را از مسیر زیر کپی کنید:
/var/lib/dbus/machine-id
Machine-ID یک شناسه منحصربهفرد برای سیستم شماست که تا زمان وجود سرور تغییری نمیکند. برای دریافت این مقدار، دستور زیر را وارد کنید:
cat /var/lib/dbus/machine-id
خروجی دستور مشابه زیر خواهد بود:
خروجی:
20086c25853947c7aeee2ca1ea849d7d
اکنون باید TimeStamp و Machine-ID را با یکدیگر ترکیب کرده و مقدار بهدستآمده را با الگوریتم SHA-1 هش کنید. این کار بهکمک دستور زیر انجام میشود:
printf <timestamp><machine-id> | sha1sum
به عنوان مثال، برای استفاده از دادههای قبلی، دستور به شکل زیر خواهد بود:
printf 165030169949777016720086c25853947c7aeee2ca1ea849d7d | sha1sum
با اجرای این دستور، خروجی مشابه متن زیر دریافت خواهید کرد:
خروجی:
4f267c51857d6dc93a0bca107bca2f0d86fac3bc –
توجه داشته باشید که خروجی sha1sum به صورت هگزادسیمال نمایش داده میشود؛ به این معنا که هر دو کاراکتر نشاندهنده یک بایت داده هستند. برای مثال، 4f و 26 در خروجی بالا دو بایت اول دادههای هششده هستند.
مراحل راهاندازی وایرگارد روی لینوکس
مرحله 1: فعالسازی IP Forwarding در سرور
برای اینکه سرور VPN بتواند بستههای شبکه را بین کلاینتهای VPN و اینترنت مسیریابی کند، باید IP Forwarding را فعال کنید. برای این کار، فایل /etc/sysctl.conf را با هر ویرایشگر متنی که میخواهید، باز کنید.
sudo vim /etc/sysctl.conf
خطی که در زیر مشخص شده را بدون علامت # کامنت کنید.
فایل را ذخیره کنید و تغییرات زیر را اعمال نمایید.
sudo sysctl -p
مرحله 2: نصب وایرگارد روی اوبونتو
مرحله بعدی در راه اندازی وایرگارد روی لینوکس، نصب WireGuard روی اوبونتوست. سپس باید آن را به عناون یک سرور راه اندازی کنید. پکیج وایرگارد به طور دیفالت روی اوبونتو موجود است.
دستور زیر را وارد کنید:
sudo apt install wireguard
بعد از نصب شدن پکیج وایرگارد، میتوانید به مرحله بعدی بروید.
مرحله 3: کانفیگوریشن سرور وایرگارد روی اوبونتو
عملکرد وایرگارد با تبادل کلیدهای عمومی بین دستگاههای موجود در شبکه شکل میگیرد. بعد از اطمینان از نصب این پکیج روی سیستم، باید یک کلید خصوصی و یک کلید عمومی برای سرور بسازید.
الف) جنریت جفت کلیدهای خصوصی و عمومی
دستور زیر را اجرا کنید تا جفت کلید عمومی و خصوصی ساخته شود. فایلها در مسیر /etc/wireguard/ ذخیره خواهند شد.
wg genkey | sudo tee /etc/wireguard/server_private.key | wg pubkey | sudo tee /etc/wireguard/server_public.key
دستور wg در تنظیمات داخلی وایرگارد، برای دریافت و تنظیمات کانفیگ به کار میرود. زمانی که دستور را اجرا کنید، یک خروجی تک خطی base64 تحویل خواهید گرفت که همان کلید عمومی (server_public.key) برای سرور وایرگارد شماست. فراموش نکنید که هرگز نباید کلید خصوصی (server_private.key) را لو بدهید. در جای امنی از آن نگهداری کنید.
ب) تنظیم تونل دستگاه
در این گام، باید یک اینترفیس شبکه برای وایرگارد ایجاد کنید. با استفاده از یک ویرایشگر متن مخصوص ایجاد خط دستور، یک فابل کانفیگ وایرگارد بسازید. نام اینترفیس شبکه wg0 است.
sudo vim /etc/wireguard/wg0.conf
بعد دستورهای زیر را وارد کنید.
[Interface]
## Private IP address for the wg0 interface ##
Address = 10.0.0.1/24
## VPN server listening port ##
ListenPort = 51820
## VPN server private key ##
PrivateKey = mPIoWfKQWZP8lie2ISEZ6ul7vyESH9MqpFvxk1cxIWQ=
## Firewall rules ##
PostUp = iptables -A FORWARD -i wg0 -j ACCEPT; iptables -t nat -A POSTROUTING -o enp1s0 -j MASQUERADE
PostDown = iptables -D FORWARD -i wg0 -j ACCEPT; iptables -t nat -D POSTROUTING -o enp1s0 -j MASQUERADE
اینجا باید عبارت PrivateKey را با کلید خصوصی که ساختید، جایگزین کنید. کلید خصوصی در فایل /etc/wireguard/server_private.key ذخیره میشود. با وارد کردن دستور زیر، میتوانید به کلید خصوصیتان دسترسی داشته باشید.
sudo cat /etc/wireguard/server_private.key
فراموش نکنید که بعد از -A POSTROUTING -o … به جای عبارت enp1s0 نام اینترفیس شبکه عمومی خودتان را وارد کنید. برای دسترسی به این قسمت، کد زیر را وارد نمایید.
ip -o -4 route show to default | awk ‘{print $5}’
تغییرات را ذخیره کنید و فایل wg0.conf را ببندید. اجازه دسترسی را تغییر بدهید تا فقط کاربران root بتوانند این فایل را باز کنند.
sudo chmod -R 600 /etc/wireguard/
مرحله 4: راه اندازی و شروع به کار وایرگارد
دستور زیر را روی سرور اجرا کنید تا وایرگارد به محض استارت و بوت شدن سیستم، به کار بیفتد.
sudo systemctl enable wg-quick@wg0
sudo systemctl start wg-quick@wg0
با استفاده از دستور زیر، وضعیت وایرگارد را چک کنید. عبارت active باید در خروجی وجود داشته باشد.
sudo systemctl status wg-quick@wg0.service
برای بررسی وضعیت اینترفیس و تنظیمات، دستور زیر را وارد کنید.
sudo wg show wg0
مرحله 5: نصب و راه اندازی کانفیگ WireGuard برای دستگاه کلاینت
قبل از هر کاری، باید پکیج وایرگارد را روی دستگاه کلاینت نصب کرده باشید. فرایند کار درست مشابه راه اندازی سرور وایرگارد است.
sudo apt install wireguard
سپس طبق روالی که در مراحل قبلی راه اندازی وایرگارد روی لینوکس شرح دادیم، جفت کلیدهای عمومی و خصوصی را ایجاد کنید.
wg genkey | sudo tee /etc/wireguard/client_private.key | wg pubkey | sudo tee /etc/wireguard/client_public.key
با استفاده از یک ویرایشگر، فایل /etc/wireguard/wg0.conf را روی دستگاه کلاینت وایرگارد باز کنید.
sudo vim /etc/wireguard/wg0.conf
موارد زیر را به فایل اضافه کنید.
[Interface]
## VPN client private IP address ##
Address = 10.0.0.2/24
## VPN client private key ##
PrivateKey = 0COkq1GMM86CmlF5blPFDYhU84iTX8iJ7lWoC1gLfnk=
[Peer]
## VPN server public key ##
PublicKey = ZnD/WMx0kasJfGjFf0/uCtJoFbz0oNdq7EcieHXVaSc=
## VPN server public IP address and port ##
Endpoint = 192.168.122.101:51820
## Route all the traffic through the VPN tunnel ##
AllowedIPs = 0.0.0.0/0
## Key connection alive ##
PersistentKeepalive = 15
به جای عبارت PrivateKey، کلید خصوصی خود را قرار بدهید. اگر کلید را فراموش کردهاید، از طریق مسیر زیر میتوانید به آن دسترسی داشته باشید.
sudo cat /etc/wireguard/client_private.key
به جای عبارت public key نیز کلید عمومی که در مسیر زیر وجود دارد را قرار بدهید.
/etc/wireguard/server_public.key
مقدار Endpoint (192.168.122.101:51820) را با آدرس IP و پورت سرور خودتان جایگزین کنید. در نهایت فایل را ذخیره کنید و ببندید.
برای ایجاد اتصال بین سرور و کلاینت (Peer)، باید تنظیمات سمت سرور را نیز انجام بدهید. برگردید سروقت سرور و فایل /etc/wireguard/wg0.conf را ادیت کنید.
sudo vim /etc/wireguard/wg0.conf
اطلاعات کلاینت را مطابق زیر داخل فایل وارد نمایید.
[Peer]
## Client public key ##
PublicKey = 6FLtyfBQie9+EB3QYF55CR1FASca7vVYPReynlEccAo=
## Client IP address ##
AllowedIPs = 10.0.0.2/24
به جای عبارت Public Key، کلیدی که روی دستگاه کلاینت ذخیره شده را قرار بدهید. در نهایت فایل کانفیگ سرور باید چنین شکلی داشته باشد.
فایل را ذخیره کنید و سرور را ری استارت نمایید تا تغییرات اعمال شوند.
sudo systemctl restart wg-quick@wg0.service
مرحله 6: اتصال کلاینت وایرگارد به سرور
دستور زیر را روی دستگاه کلاینت اجرا کنید تا به سرور وایرگارد متصل شود.
sudo systemctl start wg-quick@wg0
حال دستگاه باید به وایرگارد متصل باشد و ترافیک کلاینت را هدایت کند. با طی این مراحل، میتوانید راه اندازی وایرگارد روی لینوکس را انجام بدهید.
برای تست کردن اتصال، به کلاینت برگردید و با دستور 10. 0. 0. 2 از سرور 10. 0. 0. 1 پینگ بگیرید تا مشخص شود آیا تونل کار میکند یا خیر.
ping -c 3 10.0.0.1
برای بررسی وضعیت اتصال میتوانید از دستور زیر هم استفاده کنید.
sudo wg
برای دیسکانکت کردن سرور، میتوانید با دستور زیر آن را روی دستگاه کلاینت متوقف کنید.
sudo systemctl stop wg-quick@wg0
افزودن کاربران جدید به سرور وایرگارد
برای استفاده از WireGuard VPN روی دستگاههای دیگر، میتوانید کاربران جدیدی به سرور خود اضافه کنید. این فرایند به سادگی انجام میشود و در چند مرحله قابل اجرا است.
ابتدا، نرمافزار WireGuard را روی دستگاههای جدید (کلاینتها) نصب کنید. این مرحله همانند راه اندازی وایرگارد روی لینوکس برای دستگاههای قبلی انجام میشود. سپس یک جفت کلید جدید (کلید خصوصی و عمومی) برای دستگاه ایجاد کنید.
برای ویرایش تنظیمات سرور، ابتدا باید آن را متوقف کنید. دستورات زیر را اجرا کنید:
sudo wg-quick down wg0
sudo systemctl stop wg-quick@wg0
برای اضافه کردن کلاینت جدید، فایل تنظیمات سرور را باز کنید. دستور زیر را وارد کنید:
sudo nano /etc/wireguard/wg0.conf
در انتهای فایل، اطلاعات کلاینت جدید شامل کلید عمومی و آدرس IP را به صورت زیر اضافه کنید:
[Peer]
PublicKey = <content-of-client2-publickey>
AllowedIPs = 10.0.0.3/32
پس از اتمام، تغییرات را ذخیره کنید و از ویرایشگر خارج شوید. برای اعمال تغییرات، سرور را دوباره راهاندازی کنید:
sudo systemctl start wg-quick@wg0
جمع بندی
با نصب و راهاندازی وایرگارد برای لینوکس، میتوانید از اتصال امن، سریع و مدرن بهرهمند شوید. فرقی ندارد گیمر هستید، کاربر حرفه ای، تریدر یا صرفاً قصد دارید تحریمها را دور بزنید. این ابزار قدرتمند با طراحی ساده و رمزنگاری پیشرفته، بهترین انتخاب برای حفاظت از دادههای شما و ارتقاء امنیت آنلاین است.
اگر به دنبال خرید یک اشتراک حرفهای WireGuard هستید، تیم ما آماده خدمت رسانی به شماست. ما خوشوقتیم که اعلام کنیم با ارائه سرورهای پرسرعت و پشتیبانی 24 ساعته، تجربهای بینظیر از امنیت و سرعت را برای شما به ارمغان خواهیم آورد. همین حالا میتوانید از طریق مسیرهای ارتباطی با ما تماس بگیرید تا از اطلاعات تکمیلی پلنهای خرید وایرگارد و تخفیفهای ویژه ما آگاه شوید.
سوالی در ارتباط با نحوه استفاده از وایرگارد روی لینوکس دارید؟ در قسمت کامنتها از ما بپرسید، شاید پرسش شما، سؤال کاربران دیگر هم باشد!