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

فهرست مطالب

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

WireGuard یک فناوری مدرن (Virtual Private Network) است که از رمزنگاری پیشرفته استفاده می کند. در مقایسه با سایر نرم افزارهای VPN ، مانند IPsec و OpenVPN ، این VPN به طور کلی سریعتر ، امن‌ تر و با کانفیگ آسان‌تر است. این پلتفرم تقریباً در همه سیستم ها ، از جمله Linux ، Windows ، Android و macOS قابل اجرا است. WireGuard ، یک VPN نظیر به نظیر (peer-to-peer) است. بدین معنی که از مدل کلاینت-سرور استفاده نمی کند. بسته به کانفیگ آن ، یک peer می تواند به عنوان یک سرور یا کلاینت سنتی عمل کند. در این مقاله با ما همراه باشید تا شما عزیزان را با نحوه تنظیم WireGuard VPN در اوبونتو ۲۰٫۰۴ آشنا کنیم.

پیش نیازها :

شما به یک سرور اوبونتو ۲۰٫۰۴ با دسترسی root یا sudo نیاز دارید.

راه اندازی سرور WireGuard :

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

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

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

apt install wireguard

با این کار ماژول و ابزار WireGuard نصب می شود. WireGuard به عنوان یک ماژول هسته اجرا می شود.

کانفیگ WireGuard:

شما می‌توانید رابط‌های WireGuard را با ابزارهای خط فرمان wg و wg-fast کانفیگ و مدیریت کنید. هر دستگاهی در شبکه WireGuard VPN باید دارای یک کلید خصوصی و عمومی باشد. دستور زیر را برای ایجاد جفت کلید اجرا کنید:

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

فایل‌ ها در دایرکتوری /etc/wireguard ایجاد می‌شوند. برای مشاهده محتویات فایل‌ ها از دستورات cat یا less استفاده کنید. کلید خصوصی هرگز نباید با کسی به اشتراک گذاشته شود و همیشه باید از آن محافظت شود. Wireguard از یک کلید دیگری نیز استفاده می‌کند که این کلید از قبل به اشتراک گذاشته شده است و یک لایه اضافی از رمزنگاری کلید متقارن را اضافه می کند. این کلید اختیاری است و باید برای هر جفت peer منحصر به فرد باشد. مرحله بعدی کانفیگ دستگاه تونلی است که ترافیک 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: لیستی از آدرس‌های IPv4 یا IPv6 برای رابط wg0 که با ویرگول از هم جدا شده‌اند. شما می‌توانید به جای آدرس IP از محدوده‌ای که مخصوص شبکه‌های خصوصی (Private IP Addresses) است (۱۰٫۰٫۰٫۰/۸، ۱۷۲٫۱۶٫۰٫۰/۱۲ یا ۱۹۲٫۱۶۸٫۰٫۰/۱۶) استفاده کنید.
  • ListenPort: پورت شنود.
  • PrivateKey: یک کلید خصوصی ایجاد شده توسط دستور wg genkey (برای مشاهده محتویات نوع فایل از دستور زیر استفاده کنید):

sudo cat /etc/wireguard/privatekey

  • SaveConfig: زمانیکه برروی true تنظیم شود ، هنگام خاموش شدن ، وضعیت فعلی رابط در فایل کانفیگ ذخیره می‌شود.
  • PostUp: دستور یا اسکریپتی است که قبل از وصل کردن رابط اجرا می‌شود. در این مثال ، ما از 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 را وصل نمایید:

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 MASQUERAD

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

sudo wg show wg0

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

شما می توانید با ip a show wg0 ، وضعیت رابط را تایید کنید:

ip a show wg0

۴: wg0: 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 در زمان راه‌اندازی سیستم ، دستور زیر را اجرا کنید:

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

اکنون سیستم اوبونتو شما به عنوان یک سرور راه‌اندازی شده است.

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

دستورالعمل نصب برای همه سیستم عامل‌های پشتیبانی شده در https://wireguard.com/install/ در دسترس است. در سیستم‌های لینوکس می‌توانید ، بسته را با استفاده از ابزار مدیریت بسته توزیع و در macOS می‌توانید با دستور brew نصب کنید. پس از نصب ، به منظور کانفیگ دستگاه کلاینت مراحل زیر را دنبال کنید. فرایند راه اندازی کلاینت 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

معنای تنظیمات موجود در بخش رابط ، مشابه معنای تنظیمات هنگام تنظیم سرور است:

  • Address: لیستی از آدرس‌های IPv4 یا IPv6 برای رابط wg0 که با ویرگول از همدیگر جدا شده‌اند.
  • PrivateKey: برای مشاهده محتویات فایل در دستگاه کلاینت ، دستور زیر را اجرا کنید:

sudo cat /etc/wireguard/privatekey

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

  • PublicKey: کلید عمومی peerای است که می‌خواهید به آن وصل شوید. (محتویات فایل /etc/wireguard/publickey سرور)
  • Endpoint: یک IP یا نام میزبان از peerای است که می‌خواهید به آن وصل شوید و سپس یک colon و شماره پورت (که peer ریموت آن را شنود می‌کند) می‌آید.
  • AllowedIPs: لیستی از آدرس‌های IPv4 یا IPv6 جدا شده با ویرگول است که ترافیک ورودی برای peer از آن‌ها مجاز است و ترافیک خروجی این peer برای آن هدایت می‌شود. در اینجا از ۰٫۰٫۰٫۰/۰ استفاده می‌کنیم ؛ زیرا در حال عبور دادن ترافیک هستیم و می‌خواهیم peer سرور بسته‌های نشأت گرفته از هر IP را ارسال کند.

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

اضافه کردن 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 کپی کنند. پس از اتمام کار ، به دستگاه کلاینت برگردید و رابط مربوط به tunnel را وصل کنید.

جمع بندی :

ما به شما نحوه نصب WireGuard را روی دستگاه اوبونتو ۲۰٫۰۴ و کانفیگ آن به عنوان سرور VPN نشان دادیم.

امیدواریم مطالب مورد پسند بوده و از آن بهره لازم را برده باشید. خوشحال میشویم نظرات و سوالات خود را در قسمت دیدگاه به اشتراک بگذارید و ما را در میزبان داده همراهی کنید.

نظرات دیدگاهتان را ارسال کنید

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

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

10 + 18 =