نحوه تنظیم WireGuard VPN در اوبونتو ۲۰٫۰۴

نحوه تنظیم WireGuard VPN در اوبونتو ۲۰٫۰۴

سعیده مهاجری

WireGuard یک فناوری مدرن VPN یا (شبکه خصوصی مجازی) است که از رمزنگاری پیشرفته استفاده می کند . در مقایسه با سایر راه حل های معروف VPN ، مانند IPsec و OpenVPN ، WireGuard سریعتر و کانفیگ آسان تر  دارد . این یک cross-platform است و تقریباً در همه جا از

جمله لینوکس ، ویندوز ، اندروید و macOS.قابل اجرا است .

Wireguard یک peer-to-peer VPN است ؛ از مدل client-server استفاده نمی کند. بسته به کانفیگ آن ، peer می تواند به عنوان یک  traditional server or clien  عمل کند. این کار با ایجاد یک network interface در هر peer که به عنوان یک tunnel عمل می کند ، کار می کند.

Peersبا تقلید از مدل SSH و مبادله و اعتبار سنجی کلیدهای عمومی ، یکدیگر را احراز هویت می کنند. کلیدهای عمومی با لیستی از آدرس های IP که در tunnel مجاز هستند ، ترسیم می شوند. ترافیک VPN در UDP محصور شده است.

در این مقاله ، ما در مورد چگونگی راه اندازی WireGuard VPN در اوبونتو ۲۰٫۰۴ که به عنوان یک سرور VPN عمل می کند ، بحث خواهیم کرد. ما همچنین نحوه کانفیگ  WireGuard را به عنوان client به شما نشان خواهیم داد . client’s traffic  از طریق سرور Ubuntu 20.04 هدایت

میشود.این تنظیمات می تواند به عنوان محافظت در برابر حملات Man in the Middle ، وبگردی در وب به صورت ناشناس ، ایمن سازی Geo-restricted یا اجازه دادن به همکاران شما که از خانه کار می کنند ، بتوانند به طور امن به شبکه شرکت متصل شوند.

پیش نیازها :

در ادامه ، به یک سرور Ubuntu 20.04 server with root یا sudo access  نیاز دارید.

تنظیمات سرور WireGuard :

ابتدا با نصب WireGuard در دستگاه اوبونتو شروع کنید و آن را تنظیم کنید تا به عنوان یک سرور عمل کند . همچنین سیستم را به گونه ای کانفیگ کنید که clients’ traffic را از طریق آن هدایت کند.

WireGuard را روی اوبونتو ۲۰٫۰۴ نصب کنید :

WireGuard در پیش فرض اوبونتو در دسترس است. برای نصب آن ، دستورات زیر را اجرا کنید:

sudo apt updatesudo apt install wireguard

با این کار WireGuard نصب می شود.

WireGuard به عنوان یک kernel module اجرا می شود.

پیکربندی WireGuard :

wg-quick command-lineبه شما امکان کانفیگ و مدیریت WireGuard interfaces را می دهند.

هر دستگاه در شبکه WireGuard VPN باید یک راهنمای خصوصی و عمومی داشته باشد. برای ایجاد راهنما ، دستور زیر را اجرا کنید:

wg genkey | sudo tee /etc/wireguard/privatekey | wg pubkey | sudo tee /etc/wireguard/publickey

فایل ها در فهرست / etc / wireguard تولید می شوند. می توانید محتویات فایل ها را با Cat یا نسخه های پایین ترمشاهده کنید. راهنمای خصوصی هرگز نباید با کسی به اشتراک گذاشته شود و همیشه باید از آن محافظت شود.

Wireguard از یک راهنما  مشترک استفاده می کند ، این راهنما اختیاری است و باید برای هر peer pair ، منحصر به فرد باشد.

مرحله بعدی کانفیگ tunnel device است که ترافیک VPN را مسیریابی می کند.

device را می توان از طریق command line با استفاده از دستورات ip و wg و یا با ایجاد فایل کانفیگ با یک text editor تنظیم کرد .

یک فایل جدید به نام wg0.conf ایجاد کنید و دستور زیر را اجرا کنید:

sudo nano /etc/wireguard/wg0.conf

[Interface]
Address = 10.0.0.1/24
SaveConfig = true
ListenPort = 51820
PrivateKey = SERVER_PRIVATE_KEY
PostUp = iptables -A FORWARD -i %i -j ACCEPT; iptables -t nat -A POSTROUTING -o ens3 -j MASQUERADE
PostDown = iptables -D FORWARD -i %i -j ACCEPT; iptables -t nat -D POSTROUTING -o ens3 -j MASQUERADE

توصیه می شود از مواردی مانند wg0 یا wgvpn0 استفاده کنید. تنظیمات موجود در بخش interface معنای زیر را دارند:

  • Address –  لیستی از آدرسهای v4 یا v6 برای wg0  است. از IP هایی که مخصوص شبکه های خصوصی است (۱۰٫۰٫۰٫۰٫۰/۸ یا  ۱۷۲٫۱۶٫۰٫۰/۱۲ یا ۱۹۲٫۱۶۸٫۰٫۰/۱۶) استفاده کنید.
  • ListenPort – پورت گوش دادن است .
  • PrivateKey – یک راهنمای خصوصی ایجاد شده توسط دستور wg genkey است .
  • SaveConfig – هنگامی که روی true تنظیم شود ، هنگام خاموش شدن ، interface در فایل کانفیگ ذخیره می شود.
  • PostUp – دستور یا اسکریپتی که قبل از بالا آوردن interface اجرا می شود. در این مثال ، ما از iptables برای فعال کردن استفاده می کنیم که اجازه می دهد تا ترافیک از سرور خارج شود و به مشتریان VPN دسترسی به اینترنت می دهد.

مطمئن شوید که ens3 را پس از -A POSTROUTING جایگزین شده باشد تا با نام interface شبکه عمومی خود مطابقت داشته باشد. دستور زیر را اجرا کنید :

ip -o -4 route show to default | awk '{print $5}'
  • PostDown – دستور یا اسکریپتی که قبل از پایین آوردن interface اجرا می شود. با از بین رفتن interface ، قوانین iptables حذف می شوند.

فایل های  wg0.conf و privatekey نباید برای کاربران عادی قابل خواندن باشد. برای تنظیم  روی ۶۰۰ ، از chmod استفاده کنید:

sudo chmod 600 /etc/wireguard/{privatekey,wg0.conf}

پس از اتمام ، با استفاده از ویژگی های مشخص شده در فایل کانفیگ، دستور wg0 interface را اجرا کنید:

sudo wg-quick up wg0

این دستور خروجی زیر را نشان میدهد :

[#] ip link add wg0 type wireguard
[#] wg setconf wg0 /dev/fd/63
[#] ip -4 address add 10.0.0.1/24 dev wg0
[#] ip link set mtu 1420 up dev wg0
[#] iptables -A FORWARD -i wg0 -j ACCEPT; iptables -t nat -A POSTROUTING -o ens3 -j MASQUERADE

برای بررسی وضعیت و کانفیگ interface ، دستور زیر را وارد کنید:

sudo wg show wg0

interface: wg0
  public key: r3imyh3MCYggaZACmkx+CxlD6uAmICI8pe/PGq8+qCg=
  private key: (hidden)
  listening port: 51820

برای تأیید وضعیت interface می توانید ip a show wg0 را نیز اجرا کنید:

ip a show wg0

۴: wg0: <POINTOPOINT,NOARP,UP,LOWER_UP> mtu 1420 qdisc noqueue state UNKNOWN group default qlen 1000
link/none 
inet 10.0.0.1/24 scope global wg0
valid_lft forever preferred_lft forever

WireGuard با Systemd نیز مدیریت مشود .

WireGuard interface در زمان راه اندازی WireGuard interface ، دستور زیر را اجرا کنید:

sudo systemctl enable wg-quick@wg0

شبکه سرور و کانفیگ فایروال :

IP forwarding باید فعال شود تا NAT کار کند. فایل /etc/sysctl.conf را باز کرده و دستور زیر را اضافه یا از حالت کامنت خارج کنید:

sudo nano /etc/sysctl.conf
net.ipv4.ip_forward=1

فایل را ذخیره کرده و دستورات زیر را اعمال کنید:

sudo sysctl -p
net.ipv4.ip_forward = 1

اگر از UFW برای مدیریت فایروال خود استفاده می کنید ، باید ترافیک UDP را در پورت ۵۱۸۲۰ باز کنید:

sudo ufw allow 51820/udp

Ubuntu peer که مانند یک سرور عمل خواهد کرد راه اندازی شده است .

راه اندازی Linux و macOS Clients :

دستورالعمل نصب برای همه سیستم عامل های پشتیبانی شده در https://wireguard.com/install/ در دسترس است. در سیستم های لینوکس ، می توانید package را با استفاده از distribution package manager و در macOS with brew نصب کنید.

پس از نصب ، مراحل زیر را برای کانفیگ client device دنبال کنید.

روند راه اندازی سرویس گیرنده Linux و macOS تقریباً همان روشی است که برای سرور انجام دادید. ابتدا راهنماهای عمومی و خصوصی را ایجاد کنید:

wg genkey | sudo tee /etc/wireguard/privatekey | wg pubkey | sudo tee /etc/wireguard/publickey

فایل wg0.conf را ایجاد کرده و دستور زیر را اضافه کنید:

sudo nano /etc/wireguard/wg0.conf

[Interface]
PrivateKey = CLIENT_PRIVATE_KEY
Address = 10.0.0.2/24


[Peer]
PublicKey = SERVER_PUBLIC_KEY
Endpoint = SERVER_IP_ADDRESS:51820
AllowedIPs = 0.0.0.0/0

معنای تنظیمات موجود در بخش interface هنگام تنظیم سرور به صورت زیر است:

  • Address – لیستی از آدرسهای v4 یا v6 برای  wg0 interface  است.
  • PrivateKey – برای دیدن محتویات فایل موجود در اجرای = sudo cat / etc / wireguard / privatekey است .

بخش peer شامل زمینه های زیر است:

  • PublicKey – راهنما عمومی peer که می خواهید به آن متصل شوید .
  • Endpoint – یک IP یا نام میزبانی است که شما می خواهید به آن متصل شوید ، و سپس یک شماره پورت وجود دارد که peer از راه دور به آن گوش می دهد.
  • AllowedIPs – لیستی جدا شده از آدرس های IP v4 یا v6 که ترافیک ورودی برای peer از آن مجاز است و ترافیک خروجی این peer به آن هدایت می شود. شما از ۰٫۰٫۰٫۰/۰ استفاده کنید  زیرا در حال مسیریابی ترافیک هستید و می خواهید server peer بسته هایی با هر IP منبع ارسال کند.

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

 راه اندازی Windows Clients :

msi package ویندوز را از وب سایت WireGuard دانلود و نصب کنید.

پس از نصب ، برنامه WireGuard را باز کرده و بر روی “Add Tunnel” -> “Add tunnel tun …” همانطور که در تصویر زیر نشان داده شده است کلیک کنید:

نحوه تنظیم WireGuard VPN در اوبونتو 20.04

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

نحوه تنظیم WireGuard VPN در اوبونتو 20.04

نامی برای tunnel وارد کنید و کانفیگ را به صورت زیر ویرایش کنید:

[Interface]
PrivateKey = CLIENT_PRIVATE_KEY
Address = 10.0.0.2/24


[Peer]
PublicKey = SERVER_PUBLIC_KEY
Endpoint = SERVER_IP_ADDRESS:51820
AllowedIPs = 0.0.0.0/0

در بخش interface ، یک line جدید اضافه کنید تا آدرس client tunnel را تعریف کنید.

در قسمت peer ، بخش های زیر را اضافه کنید:

  • PublicKey – راهنمای عمومی سرور اوبونتو ( etc / wireguard / فایل راهنمای عمومی).
  • Endpoint – آدرس IP سرور اوبونتو و پورت WireGuard (51820).
  • Allowed IPs – 0.0.0.0/0

پس از اتمام ، بر روی دکمه ” Save ” کلیک کنید.

Client Peer را به سرور اضافه کنید :

آخرین مرحله اضافه کردن راهنمای عمومی و آدرس IP client به سرور است. برای انجام این کار ، دستور زیر را بر روی سرور اوبونتو اجرا کنید:

sudo wg set wg0 peer CLIENT_PUBLIC_KEY allowed-ips 10.0.0.2

اطمینان حاصل کنید که CLIENT_PUBLIC_KEY را با راهنمای عمومی در client machine ایجاد کرده اید . (sudo cat / etc / wireguard / publickey) تغییر دهید و آدرس IP client  را در صورت متفاوت بودن تنظیم کنید. کاربران ویندوز می توانند راهنمای عمومی را از برنامه

WireGuard کپی کنید.

پس از اتمام کار ، به client machine برگردید و tunneling interface را ایجاد کنید.

Linux و macOS Clients :

دستور زیر را برای ایجاد کردن interface اجرا کنید:

sudo wg-quick up wg0

اکنون شما باید به سرور اوبونتو متصل شوید و ترافیک client machine شما باید از طریق آن هدایت شود. می توانید اتصال را با این موارد بررسی کنید:

sudo wg
interface: wg0
  public key: gFeK6A16ncnT1FG6fJhOCMPMeY4hZa97cZCNWis7cSo=
  private key: (hidden)
  listening port: 53527
  fwmark: 0xca6c

peer: r3imyh3MCYggaZACmkx+CxlD6uAmICI8pe/PGq8+qCg=
  endpoint: XXX.XXX.XXX.XXX:51820
  allowed ips: 0.0.0.0/0
  latest handshake: 53 seconds ago
  transfer: 3.23 KiB received, 3.50 KiB sent

همچنین می توانید مرورگر خود را باز کنید ، “What is my IP” را تایپ کنید ،  آدرس IP سرور اوبونتو خود را مشاهده می کنید.

برای متوقف کردن wg0 interface ، tunneling را پایین بیاورید:

sudo wg-quick down wg0

ویندوز Clients :

اگر WireGuard را روی ویندوز نصب کرده اید ، روی دکمه ” Activate ” کلیک کنید. پس از اتصال peers ، وضعیت tunnel به Active تغییر می کند:

نحوه تنظیم WireGuard VPN در اوبونتو 20.04

جمع بندی :

ما به شما نشان داده ایم که چگونه WireGuard را روی دستگاه اوبونتو ۲۰٫۰۴ نصب کرده و به عنوان سرور VPN کانفیگ کنید. این تنظیم با محرمانه نگه داشتن اطلاعات ترافیک به شما اجازه می دهد تا به صورت ناشناس  وب گردی کنید.

امیدواریم مطالب مورد پسند بوده باشد.

ما را در شتابان هاست همراهی کنید.

 

برچسب ها: دستورات لینوکس