WireGuard "ื™ื’ื™ืข" ืœืงืจื ืœ ื”ืœื™ื ื•ืงืก - ืœืžื”?

ื‘ืกื•ืฃ ื™ื•ืœื™ ื”ืฆื™ืขื• ืžืคืชื—ื™ ืžื ื”ืจืช ื”-VPN ืฉืœ WireGuard ืกื˜ ืชื™ืงื•ืŸ, ืžื” ืฉื™ื”ืคื•ืš ืืช ืชื•ื›ื ืช ืžื ื”ื•ืจ ื”-VPN ืฉืœื”ื ืœื—ืœืง ืžืœื™ื‘ืช ืœื™ื ื•ืงืก. ืขื ื–ืืช, ื”ืชืืจื™ืš ื”ืžื“ื•ื™ืง ืฉืœ ื™ื™ืฉื•ื ื”"ืจืขื™ื•ืŸ" ื ื•ืชืจ ืœื ื™ื“ื•ืข. ืžืชื—ืช ืœื—ื™ืชื•ืš ื ื“ื‘ืจ ืขืœ ื”ื›ืœื™ ื”ื–ื” ื‘ื™ืชืจ ืคื™ืจื•ื˜.

WireGuard "ื™ื’ื™ืข" ืœืงืจื ืœ ื”ืœื™ื ื•ืงืก - ืœืžื”?
/ ืชืžื•ื ื” ื˜ืžื‘ืงื• ื”ื™ื’ื•ืืจ CC

ื‘ืงืฆืจื” ืขืœ ื”ืคืจื•ื™ืงื˜

WireGuard ื”ื™ื ืžื ื”ืจืช VPN ืžื”ื“ื•ืจ ื”ื‘ื ืฉื ื•ืฆืจื” ืขืœ ื™ื“ื™ ื’'ื™ื™ืกื•ืŸ ื. ื“ื•ื ื ืคืœื“, ืžื ื›"ืœ Edge Security. ื”ืคืจื•ื™ืงื˜ ืคื•ืชื— ื› ืžึฐืคื•ึผืฉืึธื˜ ื•ืืœื˜ืจื ื˜ื™ื‘ื” ืžื”ื™ืจื” ืœ-OpenVPN ื•-IPsec. ื”ื’ืจืกื” ื”ืจืืฉื•ื ื” ืฉืœ ื”ืžื•ืฆืจ ื”ื›ื™ืœื” ืจืง 4 ืฉื•ืจื•ืช ืงื•ื“. ืœืฉื ื”ืฉื•ื•ืื”, ืœ-OpenVPN ื™ืฉ ื›-120 ืืœืฃ ืงื•ื•ื™ื, ื•-IPSec - 420 ืืœืฃ.

ืขืœ ืขืœ ืคื™ ืœืžืคืชื—ื™ื, ืงืœ ืœื”ื’ื“ื™ืจ ืืช WireGuard ื•ื”ื•ืฉื’ ืื‘ื˜ื—ืช ืคืจื•ื˜ื•ืงื•ืœ ื‘ืืžืฆืขื•ืช ืืœื’ื•ืจื™ืชืžื™ื ืงืจื™ืคื˜ื•ื’ืจืคื™ื™ื ืžื•ื›ื—ื™ื. ื‘ืขืช ื”ื—ืœืคืช ืจืฉืช: Wi-Fi, LTE ืื• Ethernet ืฆืจื™ื›ื™ื ืœื”ืชื—ื‘ืจ ืžื—ื“ืฉ ืœืฉืจืช ื”-VPN ื‘ื›ืœ ืคืขื. ืฉืจืชื™ WireGuard ืื™ื ื ืžืคืกื™ืงื™ื ืืช ื”ื—ื™ื‘ื•ืจ, ื’ื ืื ื”ืžืฉืชืžืฉ ืงื™ื‘ืœ ื›ืชื•ื‘ืช IP ื—ื“ืฉื”.

ืœืžืจื•ืช ื”ืขื•ื‘ื“ื” ืฉ-WireGuard ืชื•ื›ื ืŸ ื‘ืžืงื•ืจ ืขื‘ื•ืจ ืœื™ื‘ืช ืœื™ื ื•ืงืก, ื”ืžืคืชื—ื™ื ืžื˜ื•ืคืœ ื•ืœื’ื‘ื™ ื’ืจืกื” ื ื™ื™ื“ืช ืฉืœ ื”ื›ืœื™ ืœืžื›ืฉื™ืจื™ ืื ื“ืจื•ืื™ื“. ื”ืืคืœื™ืงืฆื™ื” ืขื“ื™ื™ืŸ ืœื ืžืคื•ืชื—ืช ื‘ืžืœื•ืื”, ืื‘ืœ ืืชื” ื™ื›ื•ืœ ืœื ืกื•ืช ืื•ืชื” ืขื›ืฉื™ื•. ื‘ืฉื‘ื™ืœ ื–ื” ืืชื” ืฆืจื™ืš ืœื”ื™ื•ืช ืื—ื“ ืžื”ื‘ื•ื“ืงื™ื.

ื‘ืื•ืคืŸ ื›ืœืœื™, WireGuard ื”ื•ื ื“ื™ ืคื•ืคื•ืœืจื™ ื•ืืฃ ื”ื™ื” ืžื•ื˜ืžืข ืžืกืคืจ ืกืคืงื™ VPN, ื›ืžื• Mullvad ื•- AzireVPN. ืคื•ืจืกื ื‘ืื™ื ื˜ืจื ื˜ ืžืกืคืจ ื’ื“ื•ืœ ืžื“ืจื™ื›ื™ ื”ืชืงื ื” ื”ื”ื—ืœื˜ื” ื”ื–ื•. ืœื“ื•ื’ืžื”, ื™ืฉ ืžื“ืจื™ื›ื™ื, ืฉื ื•ืฆืจื• ืขืœ ื™ื“ื™ ืžืฉืชืžืฉื™ื, ื•ื™ืฉ ืžื“ืจื™ื›ื™ื, ื”ื•ื›ืŸ ืขืœ ื™ื“ื™ ืžื—ื‘ืจื™ ื”ืคืจื•ื™ืงื˜.

ืคืจื˜ื™ื ื˜ื›ื ื™ื™ื

ะ’ ืชื™ืขื•ื“ ืจืฉืžื™ (ืขืž' 18) ื™ืฆื•ื™ืŸ ื›ื™ ื”ืชืคื•ืงื” ืฉืœ WireGuard ื’ื‘ื•ื”ื” ืคื™ ืืจื‘ืขื” ืžื–ื• ืฉืœ OpenVPN: 1011 Mbit/s ืœืขื•ืžืช 258 Mbit/s, ื‘ื”ืชืืžื”. WireGuard ื’ื ืžืงื“ื™ืžื” ืืช ื”ืคืชืจื•ืŸ ื”ืกื˜ื ื“ืจื˜ื™ ืขื‘ื•ืจ Linux IPsec - ื™ืฉ ืœื• 881 Mbit/s. ื–ื” ื’ื ืขื•ืœื” ืขืœ ื–ื” ื‘ื ื•ื—ื•ืช ื”ื”ื’ื“ืจื”.

ืœืื—ืจ ื”ื—ืœืคืช ื”ืžืคืชื—ื•ืช (ื—ื™ื‘ื•ืจ ื”-VPN ืžืื•ืชื—ืœ ื‘ื“ื•ืžื” ืœ-SSH) ื•ื”ื—ื™ื‘ื•ืจ ื ื•ืฆืจ, WireGuard ืžื˜ืคืœ ื‘ื›ืœ ืฉืืจ ื”ืžืฉื™ืžื•ืช ื‘ืขืฆืžื•: ืื™ืŸ ืฆื•ืจืš ืœื“ืื•ื’ ืœื’ื‘ื™ ื ื™ืชื•ื‘, ื‘ืงืจืช ืžืฆื‘ ื•ื›ื•'. ืžืืžืฆื™ ืชืฆื•ืจื” ื ื•ืกืคื™ื ื™ื”ื™ื• ืจืง ื ื“ืจืฉ ืื ื‘ืจืฆื•ื ืš ืœื”ืฉืชืžืฉ ื‘ื”ืฆืคื ื” ืกื™ืžื˜ืจื™ืช.

WireGuard "ื™ื’ื™ืข" ืœืงืจื ืœ ื”ืœื™ื ื•ืงืก - ืœืžื”?
/ ืชืžื•ื ื” ืื ื“ืจืก Hojbjerg CC

ื›ื“ื™ ืœื”ืชืงื™ืŸ, ืชื–ื“ืงืง ืœื”ืคืฆื” ืขื ืœื™ื‘ืช ืœื™ื ื•ืงืก ื™ืฉื ื” ืž-4.1. ื ื™ืชืŸ ืœืžืฆื•ื ืื•ืชื• ื‘ืžืื’ืจื™ื ืฉืœ ื”ืคืฆื•ืช ืœื™ื ื•ืงืก ื’ื“ื•ืœื•ืช.

$ sudo add-apt-repository ppa:hda-me/wireguard
$ sudo apt update
$ sudo apt install wireguard-dkms wireguard-tools

ื›ืคื™ ืฉื”ืขื•ืจื›ื™ื ืฉืœ xakep.ru ืžืฆื™ื™ื ื™ื, ื’ื ื”ืจื›ื‘ื” ืขืฆืžื™ืช ืžื˜ืงืกื˜ื™ ืžืงื•ืจ ื”ื™ื ืงืœื”. ื–ื” ืžืกืคื™ืง ื›ื“ื™ ืœืคืชื•ื— ืืช ื”ืžืžืฉืง ื•ืœื™ืฆื•ืจ ืžืคืชื—ื•ืช ืฆื™ื‘ื•ืจื™ื™ื ื•ืคืจื˜ื™ื™ื:

$ sudo ip link add dev wg0 type wireguard
$ wg genkey | tee privatekey | wg pubkey > publickey

WireGuard ืื™ื ื• ืžืฉืชืžืฉ ืžืžืฉืง ืœืขื‘ื•ื“ื” ืขื ืกืคืง ืงืจื™ืคื˜ื• Cryptoapi. ื‘ืžืงื•ื ื–ืืช, ื ืขืฉื” ืฉื™ืžื•ืฉ ื‘ืฆื•ืคืŸ ื–ืจื ChaCha20, ืงืจื™ืคื˜ื•ื’ืจืคื™ ืชื•ืกืคืช ื—ื™ืงื•ื™ Poly1305 ื•ืคื•ื ืงืฆื™ื•ืช ื’ื™ื‘ื•ื‘ ืงืจื™ืคื˜ื•ื’ืจืคื™ื•ืช ืงื ื™ื™ื ื™ื•ืช.

ื”ืžืคืชื— ื”ืกื•ื“ื™ ื ื•ืฆืจ ื‘ืืžืฆืขื•ืช ืคืจื•ื˜ื•ืงื•ืœ ื“ื™ืคื™-ื”ืœืžืŸ ืžื‘ื•ืกืก ืขืœ ืขืงื•ืžื” ืืœื™ืคื˜ื™ืช CurveXNXX. ื‘ืขืช hashing, ื”ื ืžืฉืชืžืฉื™ื ืคื•ื ืงืฆื™ื•ืช hash BLAKE 2 ะธ SipHash. ื‘ืฉืœ ืคื•ืจืžื˜ ื—ื•ืชืžืช ื”ื–ืžืŸ TAI64N ื”ืคืจื•ื˜ื•ืงื•ืœ ืžืฉืœื™ืš ืžื ื•ืช ืขื ืขืจืš ื—ื•ืชืžืช ื–ืžืŸ ืงื˜ืŸ ื™ื•ืชืจ, ื•ื‘ื›ืš ืžื ื™ืขืช DoS- ะธ ื”ืชืงืคื•ืช ื—ื•ื–ืจื•ืช.

ื‘ืžืงืจื” ื–ื”, WireGuard ืžืฉืชืžืฉ ื‘ืคื•ื ืงืฆื™ื™ืช ioctl ื›ื“ื™ ืœืฉืœื•ื˜ ื‘-I/O (ื‘ืฉื™ืžื•ืฉ ืงื•ื“ื ื ื˜ืœื™ื ืง), ืžื” ืฉื”ื•ืคืš ืืช ื”ืงื•ื“ ืœื ืงื™ ื•ืคืฉื•ื˜ ื™ื•ืชืจ. ืืชื” ื™ื›ื•ืœ ืœืืžืช ื–ืืช ืขืœ ื™ื“ื™ ื”ืชื‘ื•ื ื ื•ืช ืงื•ื“ ืชืฆื•ืจื”.

ืชื•ื›ื ื™ื•ืช ืžืคืชื—ื™ื

ืœืขืช ืขืชื”, WireGuard ื”ื•ื ืžื•ื“ื•ืœ ืœื™ื‘ื” ืžื—ื•ืฅ ืœืขืฅ. ืื‘ืœ ืžื—ื‘ืจ ื”ืคืจื•ื™ืงื˜ ื”ื•ื ื’'ื™ื™ืกื•ืŸ ื“ื•ื ื ืคืœื“ ื”ื•ื ืžื“ื‘ืจ, ืฉื”ื’ื™ืข ื”ื–ืžืŸ ืœื™ื™ืฉื•ื ืžืœื ื‘ืœื™ื‘ืช ืœื™ื ื•ืงืก. ื›ื™ ื”ื•ื ืคืฉื•ื˜ ื•ืืžื™ืŸ ื™ื•ืชืจ ืžืคืชืจื•ื ื•ืช ืื—ืจื™ื. ื’'ื™ื™ืกื•ืŸ ื‘ื”ืงืฉืจ ื”ื–ื” ืชื•ืžืš ืืคื™ืœื• ืœื™ื ื•ืก ื˜ื•ืจื•ื•ืืœื“ืก ืขืฆืžื• ื›ื™ื ื” ืืช ืงื•ื“ ื”-WireGuard "ื™ืฆื™ืจืช ืืžื ื•ืช".

ืื‘ืœ ืืฃ ืื—ื“ ืœื ืžื“ื‘ืจ ืขืœ ื”ืชืืจื™ื›ื™ื ื”ืžื“ื•ื™ืงื™ื ืœื”ื›ื ืกืช WireGuard ืœืงืจื ืœ. ื• ื‘ืงื•ืฉื™ ื–ื” ื™ืงืจื” ืขื ืฉื—ืจื•ืจื• ืฉืœ ืœื™ื‘ืช ืื•ื’ื•ืกื˜ ืœื™ื ื•ืงืก 4.18. ืขื ื–ืืช, ื™ืฉื ื” ืืคืฉืจื•ืช ืฉื–ื” ื™ืงืจื” ื‘ื–ืžืŸ ื”ืงืจื•ื‘ ืžืื•ื“: ื‘ื’ืจืกื” 4.19 ืื• 5.0.

ื›ืืฉืจ WireGuard ืžืชื•ื•ืกืฃ ืœืงืจื ืœ, ื”ืžืคืชื—ื™ื ืจื•ืฆื” ืกื™ื™ื ืืช ื”ืืคืœื™ืงืฆื™ื” ืขื‘ื•ืจ ืžื›ืฉื™ืจื™ ืื ื“ืจื•ืื™ื“ ื•ื”ืชื—ืœ ืœื›ืชื•ื‘ ืืคืœื™ืงืฆื™ื” ืขื‘ื•ืจ iOS. ื™ืฉ ื’ื ืชื•ื›ื ื™ื•ืช ืœื”ืฉืœื™ื ื™ื™ืฉื•ืžื™ื ื‘-Go ื•-Rust ื•ืœื”ืขื‘ื™ืจ ืื•ืชื ืœ-macOS, Windows ื•-BSD. ื›ืžื• ื›ืŸ, ืžืชื•ื›ื ืŸ ืœื™ื™ืฉื ืืช WireGuard ืขื‘ื•ืจ "ืžืขืจื›ื•ืช ืืงื–ื•ื˜ื™ื•ืช" ื™ื•ืชืจ: DPDK, FPGA, ื›ืžื• ื’ื ื”ืจื‘ื” ื“ื‘ืจื™ื ืžืขื ื™ื™ื ื™ื ืื—ืจื™ื. ื›ื•ืœื ืจืฉื•ืžื™ื ื‘ ืจืฉื™ืžืช ืžื˜ืœื•ืช ืžื—ื‘ืจื™ ื”ืคืจื•ื™ืงื˜.

ื .ื‘ ืขื•ื“ ื›ืžื” ืžืืžืจื™ื ืžื”ื‘ืœื•ื’ ื”ืืจื’ื•ื ื™ ืฉืœื ื•:

ื”ื›ื™ื•ื•ืŸ ื”ืขื™ืงืจื™ ืฉืœ ื”ืคืขื™ืœื•ืช ืฉืœื ื• ื”ื•ื ืืกืคืงืช ืฉื™ืจื•ืชื™ ืขื ืŸ:

ืชืฉืชื™ืช ื•ื™ืจื˜ื•ืืœื™ืช (IaaS) | ืื™ืจื•ื— PCI DSS | Cloud FZ-152 | ืื™ืจื•ื— SAP | ืื—ืกื•ืŸ ื•ื™ืจื˜ื•ืืœื™ | ื”ืฆืคื ืช ื ืชื•ื ื™ื ื‘ืขื ืŸ | ืื—ืกื•ืŸ ื‘ืขื ืŸ

ืžืงื•ืจ: www.habr.com

ื”ื•ืกืคืช ืชื’ื•ื‘ื”