وایرگارد یک VPN سریع و سبک است. در این آموزش نصب و راه‌اندازی WireGuard در اوبونتو را از تولید کلید تا اتصال Peer قدم‌به‌قدم انجام می‌دهیم.

آموزش نصب WireGuard در اوبونتو

WireGuard را می‌توان به عنوان یک VPN مدرن، سبک و سریع معرفی کرد که از پروتکل‌های IPv4 و IPv6 پشتیبانی می‌کند. این ابزار به‌طور خاص برای بالا بردن امنیت طراحی شده است و به لطف وجود آن می‌توان اتصالی ایمن در هنگام استفاده از شبکه‌های غیرایمن تجربه کرد. نصب وایرگارد (WireGuard) در اوبونتو از آن دسته مشکلاتی است که خیلی‌ها با آن دست و پنجه نرم می‌کنند.

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

برای نصب وایرگارد در اوبونتو چه پیش‌نیازهای لازم است؟

پیش‌نیازهای لازم برای نصب وایرگارد (WireGuard) در اوبونتو عبارتند از:

  1. یک سرور با سیستم‌عامل Ubuntu 22.04 در اختیار داشته باشید.
  2. این سرور باید به یک کاربر غیر Root با دسترسی sudo مجهز باشد تا بتواند دستورات سیستمی را با سطح دسترسی مناسب اجرا کند.
  3. فایروال باید فعال باشد تا امنیت پایه‌ای شبکه حفظ شود.
  4. وجود یک کلاینت الزامی است. این کلاینت می‌تواند کامپیوتر شخصی، لپ‌تاپ یا سرور دیگری باشد که قرار است به سرور WireGuard متصل شود.
  5. اگر قصد دارید از IPv6 استفاده کنید، لازم است که سرور شما برای این پروتکل پیکربندی شده باشد. اگر از این موضوع مطمئن نیستید با شرکت هاستینگ تماس بگیرید و موضوع رو بپرسید.

نصب WireGuard در اوبونتو

برای نصب وایرگارد در اوبونتو باید مراحل زیر را به ترتیب انجام دهید.

قدم اول؛ نصب وایرگارد و تولید جفت کلید

برای راه‌اندازی WireGuard در اوبونتو اولین قدم نصب آن روی سرور است. اولین کاری که شما باید انجام دهید، آپدیت کردن WireGuard Server است. بعد از اینکه این کار را انجام دادید، دستور لازم برای نصب روی سرور را وارد کنید.

sudo apt update sudo apt install WireGuard

پس از نصب موفق نوبت به تولید جفت کلید خصوصی و عمومی می‌رسد. این کلیدها نقش مهمی در رمزنگاری و امنیت ارتباط بین کلاینت و سرور دارند. برای تشکیل این کلیدها ما از دستورات داخلی wg genkey و wg pubkey استفاده و در نهایت کلید خصوصی را به فایل پیکربندی وایرگارد اضافه خواهیم کرد. این فایل حاوی اطلاعات حساسی است و باید دسترسی به آن محدود شود. بنابراین، برای جلوگیری از دسترسی کاربران غیرمجاز، مجوزهای فایل را باید تغییر دهید. برای انجام کارهای بالا باید کدهای زیر را وارد کنید:

wg genkey | sudo tee /etc/wireguard/private.key sudo chmod go= /etc/wireguard/private.key

دستور sudo c.. دسترسی گروه‌ها و کاربران عادی را به فایل حذف می‌کند و فقط به کاربر Root اجازه مشاهده آن را می‌دهد. پس از اجرای این مراحل یک رشته متنی رمزنگاری ‌شده به فرمت base64 مشاهده خواهید کرد؛ این همان کلید خصوصی است. توصیه می‌شود این کلید را در محلی امن نگه دارید، چراکه در مراحل بعدی به آن نیاز خواهید داشت.

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

sudo cat /etc/wireguard/private.key | wg pubkey | sudo tee /etc/wireguard/public.key

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

قدم دوم نصب وایرگارد در اوبونتو؛ انتخاب آدرس IPv4 و IPv6

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

انتخاب محدوده آدرس IPv4

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

  • to 10.255.255.255 (10/8 prefix) 10.0.0.0
  • to 172.31.255.255 (172.16/2 prefix) 172.16.0.0
  • to 192.168.255.255 (192.168/prefix) 192.168.0.0

ما در این آموزش از محدود 10.8.0.0/24 استفاده می‌کنیم. این محدوده اجازه می‌دهد تا حداکثر ۲۵۵ کلاینت مختلف به سرور متصل شوند و به دلیل قرار گرفتن در بازه آدرس‌های خصوصی هیچ تداخلی با اینترنت عمومی نخواهد داشت. برای راه‌اندازی درست باید یک آدرس IP را از این محدوده به سرور وایرگارد اختصاص دهید. برای مثال اگر IP 10.8.0.1/24 را برای سرور انتخاب می‌کنیم. کلاینت‌ها نیز باید از همین محدوده استفاده کنند؛ مثلا IP 10.8.0.2/24 برای اولین کلاینت. نکته مهم اینجاست که آدرس انتخابی سرور باید در تمام فایل‌های پیکربندی کلاینت‌ها به‌عنوان EndPoint یا آدرس مقصد تعریف شود.

انتخاب محدوده آدرس IPv4

در صورت استفاده از IPv6 باید یک پیشوند IPv6 خصوصی و یکتا برای سرور خود تولید کنید. بهترین روش برای ایجاد این پیشوند استفاده از استاندارد RFC 4193 است که الگوریتم تولید آدرس‌های Unicast محلی (Unique Local Addresses) را توضیح می‌دهد. برای انجام ای کار باید:

$ date +%s%N

خروجی دستور بالا عبارتی به شکل زیر است:

Output 1650301699497770167

این خروجی را در جای نگهداری کنید. در مرحله بعد شما باید شناسه یکتای ماشین (machine-id) را استخراج کنید. برای انجام این کار باید از دستور زیر استفاده کنید:

cat /var/lib/dbus/machine-id

خروجی این دستور به شکل زیر خواهد بود:

Output /var/lib/dbus/machine-id 20086c25853947c7aeee2ca1ea849d7d

اکنون این دو مقدار را ترکیب کرده و با استفاده از الگوریتم SHA-1 هش می‌کنیم:

printf <timestamp><machine-id> | sha1sum

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

printf    165030169949777016720086c25853947c7aeee2ca1ea849d7d | sha1sum

با اجرای کد زیر با خروجی زیر به شما داده می‌شود:

4f267c51857d6dc93a0bca107bca2f0d86fac3bc  -

خروجی این فرمان به شکل یک رشته ۴۰ کاراکتری در مبنای ۱۶ (هگزادسیمال) است. این موضوع نشان می‌دهد که خروجی از دو کاراکتر برای نشان دادن یک باید استفاده می‌کند.

قدم سوم؛ تنظیم وایرگارد روی سرور

پس از تولید کلیدهای رمزنگاری و انتخاب آدرس‌های IP مناسب، اکنون نوبت به پیکربندی WireGuard روی سیستم سرور اوبونتو رسیده است. این مرحله یکی از مهم‌ترین مراحل نصب وایرگارد محسوب می‌شود و پایه‌گذار تمامی ارتباطات ایمن بین سرور و کلاینت‌ها خواهد بود. برای انجام این مرحله باید موارد زیر را از قبل آماده کرده باشید:

  • کلید خصوصی سرور؛ این کلید در گام اول ایجاد شده و نباید با کسی به اشتراک گذاشته شود.
  • آدرس IP نسخه چهارم (IPv4)؛ در اینجا ما از 8.0.1/24 استفاده می‌کنیم.
  • آدرس IP نسخه شش (IPv6)؛ در اینجا ما از fd24:609a:6c18::1/64 استفاده می‌کنیم.

اکنون برای شروع با استفاده از ویرایشگر متنی دلخواه (مثلا نانو)، فایل پیکربندی اصلی WireGuard را بسازید:

sudo nano /etc/wireguard/wg0.conf

سپس تنظیمات زیر را در این فایل وارد کنید. دقت کنید که مقدار PrivateKey را با کلید خصوصی واقعی سرور جایگزین کنید:

/etc/wireguard/wg0.conf [Interface] PrivateKey = base64_encoded_private_key_goes_here Address = 10.8.0.1/24, fd0d:86fa:c3bc::1/64 ListenPort = 51820 SaveConfig = true

ListenPort به صورت پیش‌فرض روی ۵۱۸۲۰ است، اما می‌توان آن را تغییر داد. SaveConfig اگر بر روی true تنظیم شده باشد، تمامی تغییرات در حین اجرای وایرگارد به‌طور خودکار در فایل ذخیره می‌شوند. پس از واردکردن تنظیمات بالا، فایل را ذخیره کرده و ببندید. این فایل اکنون به عنوان هسته تنظیمات سرور وایرگارد عمل خواهد کرد.

قدم چهارم نصب وایرگارد در اوبونتو؛ راه‌اندازی سرور WireGuard

پس از انجام مراحل پیکربندی اکنون زمان آن رسیده که سرور وایرگارد را روی اوبونتو راه‌اندازی کنید. WireGuard از یک اسکریپت داخلی به نام wg-quick بهره می‌برد که فرآیند مدیریت تونل‌ها را ساده‌تر می‌کند. این ابزار می‌تواند از طریق Systemd اجرا شود و با هر بار بوت ‌شدن سیستم به ‌صورت خودکار فعال گردد. این قابلیت باعث می‌شود حتی پس از ری‌استارت‌شدن سرور اتصال وایرگارد به‌طور کامل بازیابی شود. برای فعال‌سازی باید:

sudo systemctl enable wg-quick@wg0.service

در این دستور wg0 همان نام رابط شبکه‌ای است که در فایل پیکربندی (/etc/wireguard/wg0.conf) ایجاد کردید. پس از فعال‌سازی، نوبت به راه‌اندازی سرویس می‌رسد. برای شروع مجدد سرویس WireGuard از دستور زیر استفاده کنید:

sudo systemctl start wg-quick@wg0.service

برای اطمینان از اینکه همه ‌چیز به‌درستی اجرا شده است، می‌توانید وضعیت سرویس را با دستور زیر بررسی کنید:

sudo systemctl status wg-quick@wg0.service

اگر سرویس با موفقیت راه‌اندازی شده باشد، در خروجی دستور عبارت Running را مشاهده خواهید کرد که نشان‌دهنده اجرای صحیح سرویس است.

قدم پنجم؛ تنظیمات وایرگارد در Peer

پس از راه‌اندازی موفقیت‌آمیز سرور وایرگارد نوبت به پیکربندی سیستم‌های کلاینت یا همان Peerها می‌رسد. این سیستم‌ها همان دستگاه‌هایی هستند که قصد دارند از طریق تونل VPN به سرور متصل شوند. تنظیم WireGuard روی سیستم Peer  شباهت‌های زیادی به سرور دارد. در قدم اول شما باید وایرگارد را روی سیستم کلاینت نصب کنید. اگر سیستم کلاینت از اوبونتو استفاده می‌کند با اجرای دستورات زیر می‌توانید بسته موردنیاز را نصب نمایید:

sudo apt update sudo apt install wireguard

در مرحله بعدی شما باید مانند مراحل انجام‌ شده روی سرور یک جفت کلید خصوصی و عمومی تولید کنید. این کلیدها برای رمزنگاری و احراز هویت ارتباط میان سرور و کلاینت استفاده می‌شوند. برای تولید آن‌ها، می‌توانید از دستورهای wg genkey و wg pubkey استفاده کنید. از آنجایی که در بالا نحوه تولید این جفت کلیدها توضیح داده شد، برای جلوگیری از تکرار مطالب به آن‌ها اشاره نمی‌کنیم.

قدم ششم نصب وایرگارد در اوبونتو؛ اضافه‌ کردن کلید Peer به سرور WireGuard

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

در ابتدا باید کلید عمومی تولید ‌شده روی سیستم Peer را در اختیار داشته باشید. اگر کلید در مسیر پیش‌فرض ذخیره شده باشد، می‌توانید با اجرای دستور زیر آن را مشاهده کنید:

sudo cat /etc/wireguard/public.key

خروجی این دستور به شکل زیر خواهد بود:

Output PeURxj4Q75RaVhBKkRTpNsBPiPSGb5oQijgJsTa29hg=

برای ثبت این Peer روی سرور باید وارد سیستم سرور شوید و با استفاده از دستور زیر کلید عمومی و IPهای اختصاص ‌داده ‌شده به Peer را معرفی کنید:

sudo wg set wg0 peer PeURxj4Q75RaVhBKkRTpNsBPiPSGb5oQijgJsTa29hg= allowed-ips 10.8.0.2,fd24:609a:6c18::2

بخش peer شامل کلید عمومی Peer است. allowed-ips مشخص می‌کند که این Peer مجاز است از چه IPهایی برای اتصال استفاده کند. توجه داشته باشید که در قسمت allowed-ips، آدرس‌های IPv4 و IPv6 باید با علامت کاما (,) از هم جدا شوند. برای بررسی اینکه آیا Peer به ‌درستی به سرور اضافه شده یا خیر، دستور زیر را اجرا کنید:

sudo wg

در خروجی این دستور اطلاعاتی مانند کلید عمومی، IPهای مجاز، وضعیت اتصال و پورت مورد استفاده نمایش داده می‌شود. اگر همه ‌چیز درست پیش رفته باشد، Peer جدید باید در لیست اتصال‌ها دیده شود.

Output interface: wg0 public key: U9uE2kb/nrrzsEU58GD3pKFU3TLYDMCbetIsnV8eeFE= private key: (hidden) listening port: 51820 peer: PeURxj4Q75RaVhBKkRTpNsBPiPSGb5oQijgJsTa29hg= allowed ips: 10.8.0.2/32, fd0d:86fa:c3bc::/128

قدم هفتم؛ وصل کردن WireGuard Peer به تونل

پس از پیکربندی دقیق سرور و Peer و ثبت کلیدها در هر دو سمت، اکنون نوبت آن رسیده که تونل WireGuard را از سمت کلاینت راه‌اندازی کنیم. اگر می‌خواهید تمام ترافیک شبکه سیستم کلاینت از طریق تونل WireGuard عبور کند و از DNS Forwarding بهره‌مند شوید، باید ابزار resolvconf را روی سیستم Peer نصب کنید. این ابزار به شما کمک می‌کند تا تنظیمات DNS را درون تونل به‌درستی مدیریت کنید. برای نصب آن، دستور زیر را در ترمینال وارد کنید:

sudo apt install resolvconf

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

sudo wg-quick up wg0

در صورت پیکربندی صحیح خروجی زیر نشان داده می‌شود:

اگر در بخش AllowedIPs، مقدار 0.0.0.0 را تعریف کرده باشید به این معنی است که تمام ترافیک از تونل عبور خواهد کرد. در این صورت خروجی به شکل زیر خواهد بود:

برای کنترل وضعیت تونل در Peer می‌توانید از کد زیر استفاده کنید:

sudo wg

خروجی این کد دستوری به شکل زیر خواهد بود:

اکنون با استفاده از کدهای IP Route و IP -6 Route بررسی کنید که آیا Peer از شبکه‌های خصوصی مجازی استفاده خواهد کرد یا خیر:

ip route get 1.1.1.1

با اجرا کردن این کد خروجی مثل زیر را مشاهده خواهید کرد:

Output 1.1.1.1 dev wg0 table 51820 src 10.8.0.2 uid 1000    cache

wg0 همان دستگاهی است که از آن استفاده می‌کنید و10.8.0.2  نیز همان آدرسی است که با کمک پروتکل  IPv4 به Peer اختصاص داده‌اید. در صورت استفاده از IPv6 لازم است تا دستور زیر را اجرا کنید:

ip -6 route get 2606:4700:4700::1111

خروجی کد بالا به شکل زیر خواهد بود:

Output 2606:4700:4700::1111 from :: dev wg0 table 51820 src fd24:609a:6c18::2 metric 1024 pref medium

اگر می‌خواهید اتصال شبکه مجازی در دستگاه Peer قطع شود، کافیست تا دستور wg-quick را وارد کنید:

sudo wg-quick down wg0

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

Output [#] ip link delete dev wg0 [#] resolvconf -d tun.wg0 -f

سخن پایانی

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

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

سوالات متداول

آیا نصب WireGuard در اوبونتو پیچیده است؟

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

آیا می‌توان از وایرگارد برای اتصال بین چند دستگاه مختلف استفاده کرد؟

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

وایرگارد چیست؟

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

 

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