WireGuard – טונל VPN מהיר, מודרני ובטוח ללינוקס

WireGuard הוא יישום VPN עכשווי, מאובטח, רוחב-פלטפורמה ובעל מטרה כללית שמשתמש בקריפטוגרפיה מתקדמת. הוא שואף להיות מהיר, פשוט יותר, רזה יותר ופונקציונלי יותר מ-IPsec ומתכוון להיות ביצועי יותר מ-OpenVPN.

הוא מעוצב לשימוש בנסיבות שונות וניתן להפעילו על ממשקים מוטמעים, נתבים עם עומס מלא וגם על סופרמחשבים; והוא פועל על מערכות ההפעלה Linux, Windows, macOS, BSD, iOS, ו-Android.

קריאה מומלצת: 13 שירותי VPN הטובים ביותר עם מנוי לכל החיים

הוא מציג ממשק מאוד בסיסי אך חזק ששואף להיות פשוט, קל להגדרה ולהפעלה כמו SSH. התכונות המרכזיות שלו כוללות ממשק רשת פשוט, ניתוב מפתחות קריפטוגרפיים, תמיכה ברומינג מובנה ותמיכה במיכלים.

שימו לב שבזמן כתיבת שורות אלו, הוא נמצא בפיתוח עז: חלקים ממנו עובדים לקראת גרסה יציבה 1.0, בעוד אחרים כבר שם (עובדים טוב).

במאמר זה תלמדו כיצד להתקין ולהגדיר WireGuard ב-Linux כדי ליצור מנהרת VPN בין שני מארחים של Linux.

סביבת בדיקה

עבור המדריך הזה, ההגדרה שלנו (שם מחשב ו-IP ציבורי) היא כדלקמן:

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

איך להתקין את WireGuard בהפצות 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 מלבני ה-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) עבור wireguard בצמתים ולהקצות כתובות 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.

$ 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 בין העמיתים. לאחר מכן צור את הטונל שלך באמצעות WireGuard כך:

העמית (מפתח ציבורי), allowed-ips (רשת/מסכת רשת) ו־endpoint (כתובת ציבורית:פורט) הם של העמית הנגדי.

----------  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 של WireGuard בין מערכות Linux

לאחר שהטונל VPN של WireGuard נוצר, הפעל פינג לעמית הנגדי באמצעות כתובת ממשק הרשת של WireGuard. לאחר מכן, הפעל את כלי 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 הוא פתרון VPN מודרני, מאובטח, פשוט ועוצמתי אך קל לתפעול לעתיד. הוא נמצא בפיתוח כבד ולכן הוא עובד תוך כדי. ניתן לקבל מידע נוסף בעיקר על פרטי התצורה הפנימיים ואפשרויות תצורה אחרות מהדף הבית של WireGuard.

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