WireGuard – نفق VPN سريع وحديث وآمن لنظام Linux

واير جارد هو تطبيق حديث وآمن ومتعدد المنصات وعام لتنفيذ VPN يستخدم تشفيرًا متطورًا. يهدف إلى أن يكون أسرع وأبسط وأخف وزنًا وأكثر وظيفية من IPsec، ويهدف إلى أن يكون أكثر أداءً من OpenVPN.

صمم للاستخدام في مختلف الظروف ويمكن نشره على واجهات النظام المضمنة وموجهات الشبكة الخلفية محملة بالكامل وأجهزة الكمبيوتر الفائقة على حد سواء، ويعمل على أنظمة تشغيل Linux وWindows وmacOS وBSD وiOS وAndroid.

قراءة موصى بها: 13 أفضل خدمات VPN مع اشتراك مدى الحياة

يقدم واجهة بسيطة للغاية ولكنها قوية تهدف إلى أن تكون بسيطة، وسهلة التكوين والنشر مثل SSH. تتضمن ميزاته الرئيسية واجهة شبكة بسيطة وتوجيه مفتاح التشفير ودعم التجول المدمج والحاوية.

يرجى ملاحظة أنه في وقت كتابة هذا المقال، فإنه قيد التطوير الكثيف: بعض أجزائه تعمل نحو إصدار 1.0 ثابت، بينما تكون أخرى بالفعل هناك (تعمل بشكل جيد).

في هذا المقال، ستتعرف على كيفية تثبيت وتكوين واير جارد في Linux لإنشاء نفق VPN بين جهازي Linux.

بيئة الاختبار

لهذا الدليل، يكون إعدادنا (اسم المضيف وعنوان IP العام) كما يلي:

Node 1 : tecmint-appserver1: 		10.20.20.4
Node 2 : tecmint-dbserver1: 		10.20.20.3

كيفية تثبيت واير جارد في توزيعات Linux

سجّل الدخول إلى كلا العقدتين وقم بتثبيت WireGuard باستخدام الأمر المناسب التالي لتوزيعات Linux الخاصة بك على النحو التالي.

قم بتثبيت WireGuard في RHEL 8

$ sudo yum install https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm
$ sudo subscription-manager repos --enable codeready-builder-for-rhel-8-$(arch)-rpms
$ sudo yum copr enable jdoss/wireguard
$ sudo yum install wireguard-dkms wireguard-tools

قم بتثبيت WireGuard في CentOS 8

$ sudo yum install epel-release
$ sudo yum config-manager --set-enabled PowerTools
$ sudo yum copr enable jdoss/wireguard
$ sudo yum install wireguard-dkms wireguard-tools

قم بتثبيت WireGuard في RHEL/CentOS 7

$ sudo yum install https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
$ sudo curl -o /etc/yum.repos.d/jdoss-wireguard-epel-7.repo https://copr.fedorainfracloud.org/coprs/jdoss/wireguard/repo/epel-7/jdoss-wireguard-epel-7.repo
$ sudo yum install wireguard-dkms wireguard-tools

قم بتثبيت WireGuard في Fedora

$ sudo dnf install wireguard-tools

قم بتثبيت WireGuard في Debian

# echo "deb http://deb.debian.org/debian/ unstable main" > /etc/apt/sources.list.d/unstable.list
# printf 'Package: *\nPin: release a=unstable\nPin-Priority: 90\n' > /etc/apt/preferences.d/limit-unstable
# apt update
# apt install wireguard

قم بتثبيت WireGuard في Ubuntu

$ sudo add-apt-repository ppa:wireguard/wireguard
$ sudo apt-get update
$ sudo apt-get install wireguard

قم بتثبيت WireGuard في OpenSUSE

$ sudo zypper addrepo -f obs://network:vpn:wireguard wireguard
$ sudo zypper install wireguard-kmp-default wireguard-tools

تكوين نفق VPN WireGuard بين جهازي Linux

عند الانتهاء من تثبيت wireguard على كلا العقدتين، يمكنك إعادة تشغيل عقدتيك أو إضافة وحدة wireguard module من نواة Linux باستخدام الأمر التالي على كلا العقدتين.

$ sudo modprobe wireguard
OR
# modprobe wireguard

بعد ذلك، قم بإنشاء مفاتيح عامة وخاصة مشفرة بترميز base64 باستخدام أداة wg على كلا العقدتين كما هو موضح.

---------- On Node 1 ---------- 
$ umask 077
$ wg genkey >private_appserver1

---------- On Node 2 ----------
$ umask 077
$ wg genkey >private_dbserver1
$ wg pubkey < private_dbserver1
Generate Keys on Both Nodes

بعد ذلك، تحتاج إلى إنشاء واجهة شبكة (على سبيل المثال wg0) لـ wiregaurd على الأقران كما هو موضح أدناه. ثم قم بتخصيص عناوين IP للواجهة الشبكية الجديدة التي تم إنشاؤها (لهذا الدليل، سنستخدم الشبكة 192.168.10.0/24).

---------- On Node 1 ---------- 
$ sudo ip link add dev wg0 type wireguard
$ sudo ip addr add 192.168.10.1/24 dev wg0

---------- On Node 2 ----------
$ sudo ip link add dev wg0 type wireguard
$ sudo ip addr add 192.168.10.2/24 dev wg0

لعرض الواجهات الشبكية المرفقة على الأقران وعناوين IP الخاصة بها، استخدم الأمر التالي IP command.

$ ip ad
View Network Interfaces with IP Addresses

بعد ذلك، قم بتخصيص المفتاح الخاص لكل قرين لواجهة الشبكة wg0 وقم بتشغيل الواجهة كما هو موضح.

---------- On Node 1 ---------- 
$ sudo wg set wg0 private-key ./private_appserver1
$ sudo ip link set wg0 up

---------- On Node 2 ----------
$ sudo wg set wg0 private-key ./private_dbserver1
$ sudo ip link set wg0 up

الآن بمجرد أن تكون كلتا الروابط قائمتين مع مفاتيح خاصة مرتبطة بهما، قم بتشغيل أداة wg بدون أي وسيطات لاسترداد تكوين واجهات WireGuard على الأقران. ثم قم بإنشاء نفق شبكة وايجارد VPN الخاص بك كما يلي.

القميصة (مفتاح عام), السماح بالعناوين (شبكة/قناع الشبكة الفرعية) و النقطة النهائية (عنوان IP العام: المنفذ) هم من القميص المعاكس.

----------  On Node1 (Use the IPs and Public Key of Node 2) ---------- 
$ sudo wg
$ sudo wg set wg0 peer MDaeWgZVULXP4gvOj4UmN7bW/uniQeBionqJyzEzSC0= allowed-ips 192.168.10.0/24  endpoint  10.20.20.3:54371

----------  On Node2 (Use the IPs and Public Key of Node 1) ----------
$ sudo wg
$ sudo wg set wg0 peer 6yNLmpkbfsL2ijx7z996ZHl2bNFz9Psp9V6BhoHjvmk= allowed-ips 192.168.10.0/24 endpoint  10.20.20.4:42930
Create Wireguard VPN Tunnel Between Linux Machines

اختبار نفق شبكة وايجارد VPN بين أنظمة Linux.

بمجرد إنشاء نفق شبكة وايجارد VPN، قم بعمل بينغ إلى القميص المعاكس باستخدام عنوان واجهة شبكة وايجارد. ثم قم بتشغيل أداة wg مرة أخرى لتأكيد عملية المصافحة بين الأقران كما هو موضح.

---------- On Node 1 ----------
$ ping 192.168.10.2
$ sudo wg

---------- On Node 2 ----------
$ ping 192.168.10.1
$ sudo wg
Test Wireguard VPN Tunnel Between Linux Machines

هذا كل شيء! WireGuard هو حلاً حديثًا، آمنًا، بس

Source:
https://www.tecmint.com/wireguard-secure-vpn-tunnel-for-linux/