همه چیز درمورد وایرگارد
Wireguard چیه اصلا ؟
وایرگارد یک VPN Service متن بازی هست که در توسط Jason A. Donenfeld توسعه داده شد.
نسخه استیبل وایرگارد تو مارچ سال 2020 روانه بازار شد وایرگارد به دلیل Performance بالا و همینطور استفاده از رمزنگاری های اختصاصی تونسته جزو یکی از پرسرعت و امن ترین VPN های دنیا باشه
مزیت وایرگارد
- استفاده در پلتفرم های مختلف (ویندوز-لینوکس-اندروید-آیفون-مکOS)
- state-of-the-art cryptographi
- تعداد خط کد کم تر نسیت به رقبا (نزدیک به 36 هزار خط کد کمتر نسبت به OPENVPN)
- سرعت بالا
- اتصال سریع
- تنظیمات ساده
تعداد خط کد بکارگرفته شده
Wireguard 4000
600,000 OPENVPN
40,000 IPSEC
وایرگارد چه جوری کار میکنه
وایرگارد برای احراز هویت کاربر برای اتصال از Crypto key Routing استفاده میکنه به این صورتی که به ازای هر کاربر یک Public و Private Key و همینطور یک Preshared key ( یک کلید ثابت مشکر بین سرور و کلاینت که استفاده از اون ضرروری نیست) مجزا درست میکنه که Public key کلاینت در قسمت peer سمت سرور وارد میشه که درواقع به این معنا هست که هرکسی که Private key این Public key رو داره میتونه کانکت بشه (البته درصورت استفاده از preshared key مقدار preshared key کلاینت هم باید در سرور و کلاینت یکسان باشد )
راه اندازی وایرگارد سمت سرور
1- نصب وایرگارد
apt -y install wireguard-tools
2- ایجاد Private key برای سرور
wg genkey | tee /etc/wireguard/server.key
3- ایجاد Public key برای سرور
cat /etc/wireguard/server.key | wg pubkey | tee /etc/wireguard/server.pub
4- ایجاد Private key برای کلاینت
wg genkey | tee /etc/wireguard/client.key
5- ایجاد Public key برای کاینت
cat /etc/wireguard/client.key | wg pubkey | tee /etc/wireguard/client.pub
6- ایجاد Preshared Key
wg genpsk > /etc/wireguard/preshared-client1
7- فعال کردن ویژگی روتینگ
vim /etc/sysctl.conf
# line 28: uncomment to enable IP forearding
net.ipv4.ip_forward=1
sysctl -p
کانفیگ نهایی سمت سرور
تو این مرحله تمامی کلید ها و مقادیری که ایجاد کردیم و باید توی فایل کانفیگ وایرگارد بذاریم
فایلی به اسم wg0.conf تو مسیر /etc/wireguard/ میسازیم و مقادیر مربوط به سرور و کلاینت رو وارد میکنیم
قسمت [Interface] مربوط به کانفیگ سرور هست که privatekey سرور را وارد میکنیم و همینطور از تعاریف زیر میتوننید برای کامل کردن کانفیگ استفاده کنید :
Address : آدرس IP تانل سمت سرور
PostUP: وقتی تانل UP شد چه کاری انجام شود
PostDown: وقتی تانل DOWN شد چه کاری انجام شود
[PEER] : کانفیگ کلینت ها در [PEER] باید نوشته بشه
Public Key : Publickey مربوط به کلاینت
Preshared Key : مقداری که بین کلاینت و سرور باید یکسان باشد
AllowedIPs : مشخص کننده این است که کلاینت فقط با چه IP میتونه وصل بشه
[Interface]
PrivateKey = aNRbw0DxW4BiWDHjnEcOVXHyRODGDF
Address = 10.8.0.1/24
ListenPort = 51820
PostUp = iptables -A FORWARD -i wg0 -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
PostDown = iptables -D FORWARD -i wg0 -j ACCEPT; iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE
# Client: farshad (03427e95-40c6-4611-8f94-f85271b04185)
[Peer]
PublicKey = KcI1nuEokkvRRsqymWPZlhYp9Q9/19hLMTcGSQspkVs=
PresharedKey = VEruDxXfm2/1PTpE7Syf4kzT0ad4gcpj6VZrsUYpxvA=
AllowedIPs = 10.8.0.2/32
راه اندازی وایرگارد سمت کلاینت
1- نصب وایرگارد
ابتدا وایرگارد ویندوز رو دانلود میکنیم و توی یک نوت پد کانفیگ کلاینت رو طبق کلید هایی که از قبل درست کردیم و IP سرور وارد میکنیم
از این URL میتونید آخرین ورژن وایرگارد کلاینت ویندوز رو دانلود کنید
https://download.wireguard.com/windows-client/wireguard-installer.exe
IMPORT کانفیگ وایرگارد
Address : آدرس IP تانل سمت سرور
EndPoint : آی پی فیزیکی سرور (IP PUBLIC یا هر آی پی که سرور داره)
[PEER] : کانفیگ مربوط به سرور
Private Key : private Key مربوط به کلاینت
Preshared Key : مقداری که بین کلاینت و سرور باید یکسان باشد
[Interface]
# private key for client generated on WireGuard server
PrivateKey = 2IcE8jDSDpHGOFBk5vEkmJ5yP7T9YHU+vr0mya+h5Ho=
# IP address for VPN interface
Address = 172.16.100.5
[Peer]
# specify public key for server generated on WireGuard server
PublicKey = AIUd+0cxJVkbq4M+4cVUJhHu1Nxszlz3ccidVTbCh1k=
AllowedIPs = 0.0.0.0/24
# specify server's global IP address:port
EndPoint = 172.29.10.100:51820
اتصال
در آخرین گام فقط کافیه که کانفیگ کلاینت رو جایی با پسوند conf. سیو و import کنید