ການກຳນົດຄ່າ WireGuard
ຈາກ wireguard.com:
WireGuard ແມ່ນ VPN ຮູບແບບໃໝ່ທີ່ເຮັດວຽກຢູ່ພາຍໃນ Linux Kernel ແລະ ນຳໃຊ້ການເຂົ້າລະຫັດລັບທີ່ທັນສະໄໝ. ມັນມີຈຸດປະສົງເພື່ອໃຫ້ໄວຂຶ້ນ, ງ່າຍຂຶ້ນ, ກະທັດຮັດກວ່າ ແລະ ມີປະໂຫຍດກວ່າ IPSec ໃນຂະນະທີ່ຫຼີກລ່ຽງຄວາມຫຍຸ້ງຍາກຫຼາຍຢ່າງ. ມັນຕັ້ງໃຈທີ່ຈະໃຫ້ມີປະສິດທິພາບສູງກວ່າ OpenVPN ຢ່າງຫຼວງຫຼາຍ. WireGuard ຖືກອອກແບບມາໃຫ້ເປັນ VPN ເພື່ອຈຸດປະສົງທົ່ວໄປ ສຳລັບການເຮັດວຽກໃນອິນເຕີເຟສທີ່ຝັງຕົວ ແລະ ຊຸບເປີຄອມພິວເຕີຄືກັນ ເຊິ່ງເໝາະສົມກັບຫຼາຍສະຖານະການທີ່ແຕກຕ່າງກັນ. ມັນເຮັດວຽກຜ່ານ UDP.
ທ່ານອາດຈະຕ້ອງການອ່ານ ພາບລວມແນວຄວາມຄິດ, ການເລີ່ມຕົ້ນດ່ວນ ແລະ ເອກະສານທາງວິຊາການ.
Fedora CoreOS ຮອງຮັບ WireGuard ຢ່າງເຕັມຮູບແບບມາພ້ອມກັບຕົວລະບົບ. ໜ້ານີ້ສະແດງວິທີການຕັ້ງຄ່າການເຊື່ອມຕໍ່ລະຫວ່າງເຊີເວີ Fedora CoreOS ແລະ ຄອມພິວເຕີເຄື່ອງອື່ນ. ມັນຈະກ່າວເຖິງການກຳນົດຄ່າພື້ນຖານຂອງໄຄລເອັນ, ແຕ່ບໍ່ໄດ້ລວມເຖິງການຕິດຕັ້ງ WireGuard ໃນໄຄລເອັນຂອງທ່ານ.
ມີສອງທາງເລືອກໃນການຕັ້ງຄ່າ WireGuard ໃນ Fedora CoreOS:
-
ການນຳເຂົ້າການກຳນົດຄ່າ WireGuard ໃນ NetworkManager
-
ການນຳໃຊ້
wg-quick
ການສ້າງຄີ (Keys)
ທ່ານຈຳເປັນຕ້ອງສ້າງຄີເພື່ອຕັ້ງຄ່າ WireGuard. ທ່ານສາມາດສ້າງຄີໃນເຄື່ອງເຮັດວຽກຂອງທ່ານ ຫຼື ໃນລະບົບ Fedora CoreOS ທີ່ກຳລັງເຮັດວຽກຢູ່.
ທຳອິດ, ໃຫ້ພວກເຮົາສ້າງຄີ WireGuard ສຳລັບລະບົບ Fedora CoreOS:
umask 077
wg genkey | tee fcos_private_key | wg pubkey > fcos_public_key
ບາດນີ້ ໃຫ້ພວກເຮົາສ້າງຄີ WireGuard ສຳລັບໄຄລເອັນ:
umask 077
wg genkey | tee client_private_key | wg pubkey > client_public_key
ທ່ານສາມາດເລືອກສ້າງ pre-shared key ເພື່ອເພີ່ມຄວາມປອດໄພ:
wg genpsk > fcos_client_psk
|
ທ່ານຄວນສ້າງ pre-shared key ສຳລັບແຕ່ລະຄູ່ພີຣ໌. |
ການກຳນົດຄ່າ WireGuard ໃນ Fedora CoreOS
ບາດນີ້ທ່ານສາມາດແກ້ໄຂການກຳນົດຄ່າ Butane ຂອງທ່ານເພື່ອສ້າງໄຟລ໌ກຳນົດຄ່າ wg0:
variant: fcos
version: 1.7.0
storage:
files:
- path: /etc/wireguard/wg0.conf
mode: 0600
contents:
inline: |
[Interface]
Address = 192.168.71.1/24,fdc9:3c6b:21c7:e6bd::1/64
PrivateKey =
ListenPort = 51820
[Peer]
PublicKey =
PresharedKey =
AllowedIPs = 192.168.71.2/32,fdc9:3c6b:21c7:e6bd::2/128
ການນຳໃຊ້ NetworkManager
ຫາກທ່ານຕ້ອງການໃຊ້ການຮອງຮັບໃນ NetworkManager, ທ່ານສາມາດນຳເຂົ້າການກຳນົດຄ່າ WireGuard ດ້ວຍ oneshot unit:
systemd:
units:
- name: import-wireguard-config.service
enabled: true
contents: |
[Unit]
ConditionPathExists=!/etc/NetworkManager/system-connections/wg0.nmconnection
Description=Import wireguard configuration to NetworkManager
[Service]
Type=oneshot
RemainAfterExit=yes
ExecStart=nmcli connection import type wireguard file /etc/wireguard/wg0.conf
[Install]
WantedBy=multi-user.target
|
NetworkManager ຈະບໍ່ສົນໃຈຄຳສັ່ງ |
|
ຫາກທ່ານຕ້ອງການປ່ຽນແປງເພີ່ມເຕີມເພື່ອອັບເດດການກຳນົດຄ່າຂອງ WireGuard, ໃຫ້ລຶບການເຊື່ອມຕໍ່ ແລະ ນຳໃຊ້ມັນຄືນໃໝ່ຈາກໄຟລ໌ກຳນົດຄ່າທີ່ອັບເດດແລ້ວ. ນຳເຂົ້າການກຳນົດຄ່າ WireGuard ທີ່ອັບເດດແລ້ວຄືນໃໝ່
|
ການນຳໃຊ້ wg-quick
ຫາກທ່ານຕ້ອງການໃຊ້ wg-quick ແທນການຮອງຮັບໃນ NetworkManager, ທ່ານສາມາດເພີ່ມສິ່ງຕໍ່ໄປນີ້ໃສ່ໃນການກຳນົດຄ່າ Butane ຂອງທ່ານ:
systemd:
units:
- name: wg-quick@wg0.service
enabled: true
|
ຫາກທ່ານຕ້ອງການປ່ຽນແປງເພີ່ມເຕີມຕໍ່ກັບການກຳນົດຄ່າຂອງ WireGuard, ໃຫ້ໂຫຼດເຊີວິດຄືນໃໝ່ດ້ວຍ:
|
ການກວດສອບການກຳນົດຄ່າໃນລະບົບ Fedora CoreOS
ບູດ Fedora CoreOS ແລະ ເຂົ້າສູ່ລະບົບ. ເມື່ອທ່ານລັນຄຳສັ່ງ sudo wg show ທ່ານຄວນຈະເຫັນສິ່ງນີ້:
[core@server ~]$ sudo wg show
interface: wg0
public key: <fcos_public_key>
private key: (hidden)
listening port: 51820
peer: <client_one_public_key>
preshared key: (hidden)
endpoint: <Client IP Address>:51821
allowed ips: 192.168.71.0/24, fdc9:3c6b:21c7:e6bd::/64
[core@server ~]$ sudo ip addr show wg0
12: wg0: <POINTOPOINT,NOARP,UP,LOWER_UP> mtu 1420 qdisc noqueue state UNKNOWN group default qlen 1000
link/none
inet 192.168.71.1/24 scope global wg0
valid_lft forever preferred_lft forever
inet6 fdc9:3c6b:21c7:e6bd::1/64 scope global
valid_lft forever preferred_lft forever
|
<Client IP address> ຂ້າງເທິງແມ່ນ IP ຫຼື FQDN ຂອງຄອມພິວເຕີໄຄລເອັນ. |
ການກຳນົດຄ່າ WireGuard ໃນໄຄລເອັນ
ບາດນີ້ທ່ານຈະຕ້ອງໄດ້ຕັ້ງຄ່າ WireGuard ໃນຄອມພິວເຕີໄຄລເອັນຂອງທ່ານດ້ວຍການກຳນົດຄ່າຕໍ່ໄປນີ້:
[Interface]
Address = 192.168.71.2/24,fdc9:3c6b:21c7:e6bd::2/64
PrivateKey = <client_private_key>
ListenPort = 51821
[Peer]
PublicKey = <fcos_public_key>
PresharedKey = <fcos_client_psk>
Endpoint = <FCOS IP address>:51820
AllowedIPs = 192.168.71.0/24,fdc9:3c6b:21c7:e6bd::/64
|
<FCOS IP address> ແມ່ນ IP ຫຼື FQDN ຂອງເຊີເວີ FCOS. |
ຂຽນການກຳນົດຄ່າຂ້າງເທິງໃສ່ໃນ /etc/wireguard/wg0.conf, ຕັ້ງໂໝດການເຂົ້າເຖິງໃນໄຟລ໌ກຳນົດຄ່າ ແລະ ຈາກນັ້ນນຳເຂົ້າການກຳນົດຄ່າໃນໄຄລເອັນຂອງທ່ານ:
[core@client ~]$ sudo chmod 0600 /etc/wireguard/wg0.conf
[core@client ~]$ sudo nmcli con import type wireguard file /etc/wireguard/wg0.conf
ຈາກນັ້ນກວດສອບການກຳນົດຄ່າຂອງທ່ານ:
[core@client ~]$ sudo wg show
interface: wg0
public key: <client_one_public_key>
private key: (hidden)
listening port: 51821
peer: <fcos_public_key>
preshared key: (hidden)
endpoint: <FCOS IP address>:51820
allowed ips: 192.168.71.0/24, fdc9:3c6b:21c7:e6bd::/64
[core@client ~]$ sudo ip addr show wg0
21: wg0: <POINTOPOINT,NOARP,UP,LOWER_UP> mtu 1420 qdisc noqueue state UNKNOWN group default qlen 1000
link/none
inet 192.168.71.2/24 scope global wg0
valid_lft forever preferred_lft forever
inet6 fdc9:3c6b:21c7:e6bd::2/64 scope global
valid_lft forever preferred_lft forever
ການທົດສອບການເຊື່ອມຕໍ່ WireGuard
ບາດນີ້ທ່ານສາມາດປິງ (ping) ໄປຫາທີ່ຢູ່ IP WireGuard ຂອງເຊີເວີ Fedora CoreOS:
[core@client ~]$ ping 192.168.71.1
PING 192.168.71.1 (192.168.71.1) 56(84) bytes of data.
64 bytes from 192.168.71.1: icmp_seq=1 ttl=64 time=0.439 ms
64 bytes from 192.168.71.1: icmp_seq=2 ttl=64 time=0.422 ms
64 bytes from 192.168.71.1: icmp_seq=3 ttl=64 time=0.383 ms
^C
--- 192.168.71.1 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2027ms
rtt min/avg/max/mdev = 0.383/0.414/0.439/0.023 ms
[core@client ~]$ ping6 fdc9:3c6b:21c7:e6bd::1
PING fdc9:3c6b:21c7:e6bd::1(fdc9:3c6b:21c7:e6bd::1) 56 data bytes
64 bytes from fdc9:3c6b:21c7:e6bd::1: icmp_seq=1 ttl=64 time=1.55 ms
64 bytes from fdc9:3c6b:21c7:e6bd::1: icmp_seq=2 ttl=64 time=0.454 ms
64 bytes from fdc9:3c6b:21c7:e6bd::1: icmp_seq=3 ttl=64 time=0.424 ms
64 bytes from fdc9:3c6b:21c7:e6bd::1: icmp_seq=4 ttl=64 time=0.424 ms
^C
--- fdc9:3c6b:21c7:e6bd::1 ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3054ms
rtt min/avg/max/mdev = 0.424/0.712/1.546/0.481 ms
ເມື່ອທ່ານລັນຄຳສັ່ງ sudo wg show ໃນໄຄລເອັນຂອງທ່ານ ທ່ານຄວນເຫັນການທັກທາຍ (handshake) ຫຼ້າສຸດ ແລະ ສ່ວນການຮັບສົ່ງຂໍ້ມູນ (transfer) ດ້ວຍຂໍ້ມູນທີ່ສົ່ງ ແລະ ຮັບ:
[core@client ~]$ sudo wg show
interface: wg0
public key: <client_one_public_key>
private key: (hidden)
listening port: 51821
peer: <fcos_public_key>
preshared key: (hidden)
endpoint: <Client IP address>:51820
allowed ips: 192.168.71.0/24, fdc9:3c6b:21c7:e6bd::/64
latest handshake: 9 seconds ago
transfer: 22.02 KiB received, 22.28 KiB sent
ການກຳນົດເສັ້ນທາງ (Routing) ທຸກທຣາຟຟິກຜ່ານ WireGuard
ຫາກທ່ານວາງແຜນທີ່ຈະສົ່ງຕໍ່ທຣາຟຟິກທັງໝົດຂອງໄຄລເອັນຜ່ານ Fedora CoreOS, ທ່ານຈະຕ້ອງເປີດໃຊ້ IP Forwarding ແລະ ກຳນົດຄຳສັ່ງ PostUp ແລະ PostDown ບາງຢ່າງ:
variant: fcos
version: 1.7.0
storage:
files:
- path: /etc/sysctl.d/90-ipv4-ip-forward.conf
mode: 0644
contents:
inline: |
net.ipv4.ip_forward = 1
- path: /etc/sysctl.d/90-ipv6-ip-forwarding.conf
mode: 0644
contents:
inline: |
net.ipv6.conf.all.forwarding = 1
- path: /etc/wireguard/wg0.conf
mode: 0600
contents:
inline: |
[Interface]
Address = 192.168.71.1/24,fdc9:3c6b:21c7:e6bd::1/64
PrivateKey =
ListenPort = 51820
PostUp = iptables -A FORWARD -i wg0 -j ACCEPT; iptables -t nat -A POSTROUTING -o enp1s0 -j MASQUERADE; ip6tables -A FORWARD -i wg0 -j ACCEPT; ip6tables -t nat -A POSTROUTING -o enp1s0 -j MASQUERADE
PostDown = iptables -D FORWARD -i wg0 -j ACCEPT; iptables -t nat -D POSTROUTING -o enp1s0 -j MASQUERADE; ip6tables -D FORWARD -i wg0 -j ACCEPT; ip6tables -t nat -D POSTROUTING -o enp1s0 -j MASQUERADE
[Peer]
PublicKey =
PresharedKey =
AllowedIPs = 192.168.71.0/24,fdc9:3c6b:21c7:e6bd::/64
systemd:
units:
- name: wg-quick@wg0.service
enabled: true
|
Fedora CoreOS ນຳໃຊ້ ຊື່ດີໄວສ໌ອິນເຕີເຟສທີ່ຄາດການໄດ້ ໂດຍ ຄ່າເລີ່ມຕົ້ນ. ໃຫ້ແນ່ໃຈວ່ານຳໃຊ້ຊື່ອິນເຕີເຟສທີ່ຖືກຕ້ອງສຳລັບຮາດແວຂອງທ່ານໃນຄຳສັ່ງ PostUp ແລະ PostDown ຂ້າງເທິງ. |
ຈາກນັ້ນໃຫ້ຕັ້ງ AllowedIPs = 0.0.0.0/0,::/0 ໃນ /etc/wireguard/wg0.conf ໃນການກຳນົດຄ່າໄຄລເອັນ ເພື່ອກຳນົດເສັ້ນທາງທຣາຟຟິກ IPv4 ແລະ IPv6 ທັງໝົດໃນຄອມພິວເຕີໄຄລເອັນຜ່ານອິນເຕີເຟສ WireGuard:
[Interface] Address = 192.168.71.1/24,fdc9:3c6b:21c7:e6bd::2/64 PrivateKey = <client_private_key> ListenPort = 51821 [Peer] PublicKey = <fcos_public_key> PresharedKey = <fcos_client_psk> Endpoint = <FCOS IP Address>:51820 AllowedIPs = 0.0.0.0/0,::/0
Want to help? Learn how to contribute to Fedora Docs ›