نصب وایرگارد بر روی ویندوز و لینوکس

نصب و راه اندازی وایرگارد (WireGuard) سرور VPN بر روی اوبونتو و ویندوز

WireGuard یک فناوری مدرن (VPN (Virtual Private Network با رمزنگاری پیشرفته است. در مقایسه با راه حل های مشابه دیگر ، مانند IPsec و OpenVPN ، WireGuard سریعتر ، پیکربندی آسان تر و عملکرد بیشتری دارد.

این کراس پلتفرم است و تقریباً در هر نقطه ، از جمله Linux ، Windows ، Android و macOS قابل اجرا است. WireGuard یک VPN همتا به همتا است و از مدل client-server استفاده نمی کند. بسته به تنظیمات آن ، یک peer می تواند به عنوان یک سرور یا مشتری مرسوم عمل کند.

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

در این آموزش WireGuard را روی یک دستگاه Ubuntu 18.04 تنظیم خواهیم کرد که به عنوان سرور VPN عمل خواهد کرد.

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

پیش نیازها

  • شما به یک Ubuntu server با سطح دسترسی sudo نیاز دارید.

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

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

نصب وایرگارد بر روی اوبونتو

WireGuard مخزن APT خود را که ما آن را نصب خواهیم کرد ، حفظ کرده و وقتی نسخه جدیدی در دسترس است ، آن را به روز می کنیم.

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

sudo apt update
sudo apt install software-properties-common
مخزن WireGuard را اضافه کنید:
sudo add-apt-repository ppa:wireguard/wireguard

در صورت درخواست ، Enter را فشار دهید تا ادامه یابد. add-apt-repository همچنین لیست بسته ها را به طور خودکار بروزرسانی می کند.

بسته WireGuard را نصب کنید:
sudo apt install wireguard

WireGuard به عنوان یک ماژول هسته اجرا می شود ، که به عنوان یک ماژول DKMS گردآوری می شود. با موفقیت ، خروجی زیر را مشاهده خواهید کرد:

wireguard:
Running module version sanity check.
 - Original module
   - No original module exists within this kernel
 - Installation
   - Installing to /lib/modules/4.15.0-88-generic/updates/dkms/

depmod...

DKMS: install completed.

وقتی هسته را به روز می کنید ، ماژول WireGuard در برابر هسته جدید کامپایل می شود.

پیکربندی WireGuard

WireGuard با دو ابزار خط فرمان به نام wg و wg-quick که به شما امکان می دهند تا رابط های WireGuard را پیکربندی و مدیریت کنید.

برای تولید کلیدهای عمومی و خصوصی دستور زیر را اجرا کنید:
wg genkey | sudo tee /etc/wireguard/privatekey | wg pubkey | sudo tee /etc/wireguard/publickey

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

اکنون که کلیدها تولید شده اند ، باید دستگاه تونلی را که مسیر ترافیک VPN را طی می کند ، پیکربندی کنیم.

دستگاه را می توان از طریق خط فرمان با استفاده از ip و wg یا با ایجاد پرونده پیکربندی با ویرایشگر متن تنظیم کرد.

یک پرونده جدید با نام 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 استفاده کنید. تنظیمات در بخش رابط معنای زیر را دارند:

  • Address – لیست جدا شده از کاما از آدرسهای IP v4 یا v6 برای رابط wg0. از IP هایی از محدوده ای استفاده کنید که مخصوص شبکه های خصوصی باشد.
  • Listen Port – پورتی که وایرگارد در آن اتصالات دریافتی را پذیرفت.
  • PrivateKey – یک کلید خصوصی تولید شده توسط فرمان wg genkey. (برای دیدن محتوای اجرای پرونده: sudo cat / etc / wireguard / privatekey)
  • SaveConfig -وقتی درست باشد ، وضعیت فعلی رابط هنگام خاموش شدن در پرونده پیکربندی ذخیره می شود.
  • PostUp – دستور یا اسکریپتی که قبل از up شدن رابط اجرا می شود. در این مثال ، ما از iptables برای فعال کردن حالت نقاب استفاده می کنیم. این امر باعث می شود که ترافیک سرور را ترک کرده و به مشتریان VPN دسترسی به اینترنت دهد.

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

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

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

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

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

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

برای بررسی وضعیت رابط و پیکربندی wg show wg0 را اجرا کنید:

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

همچنین می توانید ip show wg0 را برای تأیید وضعیت رابط اجرا کنید:

ip a show wg0
4: 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 در زمان بوت ، دستور زیر را اجرا کنید:

sudo systemctl enable wg-quick@wg0

شبکه سرور و پیکربندی فایروال

برای کار با NAT ، باید IP forwarding را فعال کنیم. پرونده /etc/sysctl.conf را باز کنید و خط زیر را اضافه یا آنکامنت کنید:

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

پرونده را ذخیره کنید و تغییر را اعمال کنید:

sudo sysctl -p

اگر از UFW برای مدیریت فایروال خود استفاده می کنید ، باید ترافیک UDP را در درگاه 51820 باز کنید:

sudo ufw allow 51820/udp

راه اندازی کلاینت بر روی Linux و macOS

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

روند راه اندازی یک سرویس دهنده لینوکس و 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 – لیست کاملی از آدرس IP IP v4 یا v6 برای رابط wg0 جدا شده است.
  • PrivateKey – برای دیدن محتوای پرونده در دستگاه کلاینت، اجرا شود :
    sudo cat /etc/wireguard/privatekey

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

  • PublicKey – یک کلید عمومی از peer که می خواهید به آن متصل شوید. (محتویات پرونده سرور / etc / wireguard / publickey)
  • Endpoint – یک IP یا hostname  از peer که می خواهید به آن متصل شوید به دنبال آن یک کولون و سپس یک عدد پورت که peer از راه دور به آن گوش می دهد.
  • AllowedIPs – لیستی که از کاما جدا شده است از آدرس های IP v4 یا v6 که از آنجا ترافیک ورودی برای peer مجاز است و ترافیک خروجی برای این peer به کدام سمت هدایت می شود. ما از 0.0.0.0/0 استفاده می کنیم ، زیرا ما ترافیک را مسیریابی می کنیم و می خواهیم سرور بسته هایی را با هر منبع IP ارسال کند.

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

تنظیمات کلاینت بر روی ویندوز

بسته ویندوز msi را از وب سایت WireGuard بارگیری و نصب کنید.

پس از نصب برنامه WireGuard را باز کرده و بر روی تصویر “Add Tunnel” کلیک کنید –
“Add empty tunnel… “را بر روی تصویر زیر کلیک کنید:

اضافه کردن تونل به وایرگارد در ویندوز

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

نصب و تنظیمات wire guard در ویندوز

یک نام برای تونل وارد کنید و پیکربندی را به شرح زیر ویرایش کنید:

[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

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

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

sudo wg set wg0 peer CLIENT_PUBLIC_KEY allowed-ips 10.0.0.2

حتماً CLIENT_PUBLIC_KEY را با کلید عمومی شما در دستگاه کلاینت
(sudo cat /etc/wireguard/publickey) تغییر دهید و در صورت متفاوت بودن آدرس IP کلاینت را تنظیم کنید. کاربران ویندوز می توانند کلید عمومی را از برنامه WireGuard کپی کنند.

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

کلاینت های لینوکس و مک اواس

در سرویس گیرندگان لینوکس دستور زیر رابط کاربری آورده شده را اجرا می کنید:

sudo wg-quick up wg0

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

sudo wg
interface: wg0
  public key: sZThYo/0oECwzUsIKTa6LYXLhk+Jb/nqK4kCCP2pyFg=
  private key: (hidden)
  listening port: 48052
  fwmark: 0xca6c

peer: r3imyh3MCYggaZACmkx+CxlD6uAmICI8pe/PGq8+qCg=
  endpoint: XXX.XXX.XXX.XXX:51820
  allowed ips: 0.0.0.0/0
  latest handshake: 1 minute, 22 seconds ago
  transfer: 58.43 KiB received, 70.82 KiB sent

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

برای متوقف کردن تونلینگ رابط wg0 را پایین بیاورید:

sudo wg-quick down wg0

کلاینت ویندوز

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

فعالسازی  سرور وایرگارد در ویندوز
نصب و راه اندازی وایرگارد در مک او اس ویندوز و لینوکس

نتیجه

ما به شما نشان داده ایم که چگونه WireGuard را در دستگاه Ubuntu نصب کنید و آن را به عنوان یک سرور VPN پیکربندی کنید. این تنظیم به شما امکان می دهد با نگه داشتن اطلاعات ترافیکی خود به صورت ناشناس در وب گشت و گذار کنید.

درباره نویسنده: AfshinBalakar

افشین بالاکار دانشجوی مهندسی تکنولوژی نرم افزار، مدت 5 سال است با لینوکس رابطه افلاطونی دارم.

مطالب زیر را حتما بخوانید

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *