NetBSD kernel เป€เบžเบตเปˆเบกเบเบฒเบ™เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบชเปเบฒเบฅเบฑเบš VPN WireGuard

เบ™เบฑเบเบžเบฑเบ”เบ—เบฐเบ™เบฒเป‚เบ„เบ‡เบเบฒเบ™ NetBSD เบฅเบฒเบเบ‡เบฒเบ™ ะพ ะฒะบะปัŽั‡ะตะฝะธะธ ะฒ ะพัะฝะพะฒะฝะพะน ัะพัั‚ะฐะฒ ัะดั€ะฐ NetBSD ะดั€ะฐะนะฒะตั€ะฐ wg ั ั€ะตะฐะปะธะทะฐั†ะธะตะน ะฟั€ะพั‚ะพะบะพะปะฐ WireGuard. NetBSD ัั‚ะฐะปะฐ ั‚ั€ะตั‚ัŒะตะน ะžะก ะฟะพัะปะต Linux ะธ OpenBSD ั ะธะฝั‚ะตะณั€ะธั€ะพะฒะฐะฝะฝะพะน ะฟะพะดะดะตั€ะถะบะพะน WireGuard. ะขะฐะบะถะต ะฟั€ะตะดะปะพะถะตะฝั‹ ัะพะฟัƒั‚ัั‚ะฒัƒัŽั‰ะธะต ะบะพะผะฐะฝะดั‹ ะดะปั ะฝะฐัั‚ั€ะพะนะบะธ VPN โ€” wg-keygen ะธ wgconfig. ะ’ ะบะพะฝั„ะธะณัƒั€ะฐั†ะธะธ ัะดั€ะฐ ะฟะพ ัƒะผะพะปั‡ะฐะฝะธัŽ (GENERIC) ะดั€ะฐะนะฒะตั€ ะฟะพะบะฐ ะฝะต ะฐะบั‚ะธะฒะธั€ะพะฒะฐะฝ ะธ ั‚ั€ะตะฑัƒะตั‚ ัะฒะฝะพะณะพ ัƒะบะฐะทะฐะฝะธั ะฒ ะฝะฐัั‚ั€ะพะนะบะฐั… ยซpseudo-device wgยป.

เบ™เบญเบเบˆเบฒเบเบ™เบฑเป‰เบ™, เบกเบฑเบ™เบชเบฒเบกเบฒเบ”เบชเบฑเบ‡เป€เบเบ”เป€เบซเบฑเบ™เป„เบ”เป‰ เบชเบดเปˆเบ‡เบžเบดเบก ะบะพั€ั€ะตะบั‚ะธั€ัƒัŽั‰ะตะณะพ ะพะฑะฝะพะฒะปะตะฝะธั ะฟะฐะบะตั‚ะฐ wireguard-tools 1.0.20200820, ะฒะบะปัŽั‡ะฐัŽั‰ะตะณะพ ั€ะฐะฑะพั‚ะฐัŽั‰ะธะต ะฒ ะฟั€ะพัั‚ั€ะฐะฝัั‚ะฒะต ะฟะพะปัŒะทะพะฒะฐั‚ะตะปั ัƒั‚ะธะปะธั‚ั‹, ั‚ะฐะบะธะต ะบะฐะบ wg ะธ wg-quick. ะ’ ะฝะพะฒะพะผ ะฒั‹ะฟัƒัะบะต ะฟั€ะพะฒะตะดะตะฝะฐ ะฟะพะดะณะพั‚ะพะฒะบะฐ IPC ะบ ะฟั€ะตะดัั‚ะพัั‰ะตะน ะฟะพะดะดะตั€ะถะบะต WireGuard ะฒ ะพะฟะตั€ะฐั†ะธะพะฝะฝะพะน ัะธัั‚ะตะผะต FreeBSD. ะžััƒั‰ะตัั‚ะฒะปะตะฝะพ ั€ะฐะทะดะตะปะตะฝะธะต ะฟะพ ั€ะฐะทะฝั‹ะผ ั„ะฐะนะปะฐะผ ัะฟะตั†ะธั„ะธั‡ะฝะพะณะพ ะดะปั ั€ะฐะทะฝั‹ั… ะฟะปะฐั‚ั„ะพั€ะผ ะบะพะดะฐ. ะ’ unit-ั„ะฐะนะป ะดะปั systemd ะดะพะฑะฐะฒะปะตะฝะฐ ะฟะพะดะดะตั€ะถะบะฐ ะบะพะผะฐะฝะดั‹ ยซreloadยป, ั‡ั‚ะพ ะฟะพะทะฒะพะปัะตั‚ ะทะฐะฟัƒัะบะฐั‚ัŒ ะบะพะฝัั‚ั€ัƒะบั†ะธะธ ะฒะธะดะฐ ยซsystemctl reload wg-quick at wgnet0ยป.

เปƒเบซเป‰เบžเบงเบเป€เบฎเบปเบฒเป€เบ•เบทเบญเบ™เบ—เปˆเบฒเบ™เบงเปˆเบฒ VPN WireGuard เป„เบ”เป‰เบ–เบทเบเบ›เบฐเบ•เบดเบšเบฑเบ”เบšเบปเบ™เบžเบทเป‰เบ™เบ–เบฒเบ™เบ‚เบญเบ‡เบงเบดเบ—เบตเบเบฒเบ™เป€เบ‚เบปเป‰เบฒเบฅเบฐเบซเบฑเบ”เบ—เบตเปˆเบ—เบฑเบ™เบชเบฐเป„เบซเบก, เบชเบฐเบซเบ™เบญเบ‡เบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเบชเบนเบ‡เบซเบผเบฒเบ, เบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰เบ‡เปˆเบฒเบ, เบšเปเปˆเบกเบตเบ„เบงเบฒเบกเบชเบฑเบšเบชเบปเบ™เปเบฅเบฐเป„เบ”เป‰เบžเบดเบชเบนเบ”เบ•เบปเบงเบ‚เบญเบ‡เบกเบฑเบ™เป€เบญเบ‡เปƒเบ™เบˆเปเบฒเบ™เบงเบ™เบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰เบ‚เบฐเบซเบ™เบฒเบ”เปƒเบซเบเปˆเบ—เบตเปˆเบ‚เบฐเบšเบงเบ™เบเบฒเบ™เบ‚เบฐเบซเบ™เบฒเบ”เปƒเบซเบเปˆเบ‚เบญเบ‡เบเบฒเบ™เบˆเบฐเบฅเบฒเบˆเบญเบ™. เป‚เบ„เบ‡โ€‹เบเบฒเบ™โ€‹เบ”เบฑเปˆเบ‡โ€‹เบเปˆเบฒเบงโ€‹เป„เบ”เป‰โ€‹เบฎเบฑเบšโ€‹เบเบฒเบ™โ€‹เบžเบฑเบ”โ€‹เบ—เบฐโ€‹เบ™เบฒโ€‹เบ™เบฑเบšโ€‹เบ•เบฑเป‰เบ‡โ€‹เปเบ•เปˆโ€‹เบ›เบต 2015โ€‹, เป„เบ”เป‰โ€‹เบฎเบฑเบšโ€‹เบเบฒเบ™โ€‹เบเบงเบ”โ€‹เบชเบญเบšโ€‹เปเบฅเบฐโ€‹ เบเบฒเบ™เบขเบฑเป‰เบ‡เบขเบทเบ™เบขเปˆเบฒเบ‡เป€เบ›เบฑเบ™เบ—เบฒเบ‡เบเบฒเบ™ เบงเบดเบ—เบตเบเบฒเบ™เป€เบ‚เบปเป‰เบฒเบฅเบฐเบซเบฑเบ”เบ—เบตเปˆเปƒเบŠเป‰. เบเบฒเบ™เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™ WireGuard เบ–เบทเบเบฅเบงเบกเป€เบ‚เบปเป‰เบฒเบเบฑเบš NetworkManager เปเบฅเบฐ systemd, เปเบฅเบฐ kernel patches เปเบกเปˆเบ™เบฅเบงเบกเบขเบนเปˆเปƒเบ™เบเบฒเบ™เปเบˆเบเบขเบฒเบเบžเบทเป‰เบ™เบ–เบฒเบ™. Debian เบšเปเปˆเบชเบฐเบ–เบฝเบ™เบฅเบฐเบžเบฒเบš, Mageia, Alpine, Arch, Gentoo, OpenWrt, NixOS, เบซเบปเบงเบ‚เปเป‰เบเปˆเบญเบ ะธ ALT.

WireGuard เปƒเบŠเป‰เปเบ™เบงเบ„เบงเบฒเบกเบ„เบดเบ”เบ‚เบญเบ‡เป€เบชเบฑเป‰เบ™เบ—เบฒเบ‡เบฅเบฐเบซเบฑเบ”เบเบฒเบ™เป€เบ‚เบปเป‰เบฒเบฅเบฐเบซเบฑเบ”, เป€เบŠเบดเปˆเบ‡เบเปˆเบฝเบงเบ‚เป‰เบญเบ‡เบเบฑเบšเบเบฒเบ™เบ•เบดเบ”เบเบฐเปเบˆเบชเปˆเบงเบ™เบ•เบปเบงเปƒเบชเปˆเปเบ•เปˆเบฅเบฐเบชเปˆเบงเบ™เบ•เบดเบ”เบ•เปเปˆเป€เบ„เบทเบญเบ‚เปˆเบฒเบ เปเบฅเบฐเปƒเบŠเป‰เบกเบฑเบ™เป€เบžเบทเปˆเบญเบœเบนเบเบกเบฑเบ”เบเบฐเปเบˆเบชเบฒเบ—เบฒเบฅเบฐเบ™เบฐ. เบฅเบฐเบซเบฑเบ”เบชเบฒเบ—เบฒเบฅเบฐเบ™เบฐเบ–เบทเบเปเบฅเบเบ›เปˆเบฝเบ™เป€เบžเบทเปˆเบญเบชเป‰เบฒเบ‡เบเบฒเบ™เป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเปƒเบ™เบฅเบฑเบเบชเบฐเบ™เบฐเบ—เบตเปˆเบ„เป‰เบฒเบเบ„เบทเบเบฑเบ™เบเบฑเบš SSH. เป€เบžเบทเปˆเบญเป€เบˆเบฅเบฐเบˆเบฒเบ„เบตเปเบฅเบฐเป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเป‚เบ”เบเบšเปเปˆเบกเบตเบเบฒเบ™เปเบฅเปˆเบ™ daemon เปเบเบเบ•เปˆเบฒเบ‡เบซเบฒเบเปƒเบ™เบžเบทเป‰เบ™เบ—เบตเปˆเบœเบนเป‰เปƒเบŠเป‰, เบเบปเบ™เป„เบ Noise_IK เบˆเบฒเบ Noise Protocol Frameworkเบ„เป‰เบฒเบเบ„เบทเบเบฑเบ™เบเบฑเบšเบเบฒเบ™เบฎเบฑเบเบชเบฒ authorized_keys เปƒเบ™ SSH. เบเบฒเบ™เบชเบปเปˆเบ‡เบ‚เปเป‰เบกเบนเบ™เปเบกเปˆเบ™เบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™เป‚เบ”เบเบœเปˆเบฒเบ™เบเบฒเบ™ encapsulation เปƒเบ™เบŠเบธเบ” UDP. เบกเบฑเบ™เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบเบฒเบ™เบ›เปˆเบฝเบ™เปเบ›เบ‡เบ—เบตเปˆเบขเบนเปˆ IP เบ‚เบญเบ‡เป€เบ„เบทเปˆเบญเบ‡เปเบกเปˆเบ‚เปˆเบฒเบ VPN (เป‚เบฃเบกเบกเบดเบ‡) เป‚เบ”เบเบšเปเปˆเบกเบตเบเบฒเบ™เบ•เบฑเบ”เบเบฒเบ™เป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบเบฑเบšเบเบฒเบ™เบ›เบฑเบšเบ„เปˆเบฒเบฅเบนเบเบ„เป‰เบฒเบญเบฑเบ”เบ•เบฐเป‚เบ™เบกเบฑเบ”.

เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เป€เบ‚เบปเป‰เบฒเบฅเบฐเบซเบฑเบ” เบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰ stream cipher ChaCha20 เปเบฅเบฐเบฅเบฐเบšเบปเบšเบเบฒเบ™เบเบงเบ”เบชเบญเบšเบ‚เปเป‰เบ„เบงเบฒเบก (MAC) Poly1305เบญเบญเบเปเบšเบšเป‚เบ”เบ Daniel Bernstein (Daniel J. Bernstein), Tanya Lange
(Tanja Lange) เปเบฅเบฐ Peter Schwabe. ChaCha20 เปเบฅเบฐ Poly1305 เบ–เบทเบเบˆเบฑเบ”เป€เบ›เบฑเบ™ analogues เบ—เบตเปˆเป„เบงเบเบงเปˆเบฒเปเบฅเบฐเบ›เบญเบ”เป„เบžเบเบงเปˆเบฒเบ‚เบญเบ‡ AES-256-CTR เปเบฅเบฐ HMAC, เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบŠเบญเบšเปเบงเบ—เบตเปˆเบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰เบšเบฑเบ™เบฅเบธเป€เบงเบฅเบฒเบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบ—เบตเปˆเบเปเบฒเบ™เบปเบ”เป‚เบ”เบเบšเปเปˆเบกเบตเบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰เบเบฒเบ™เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบฎเบฒเบ”เปเบงเบžเบดเป€เบชเบ”. เป€เบžเบทเปˆเบญเบชเป‰เบฒเบ‡เบฅเบฐเบซเบฑเบ”เบฅเบฑเบšเบ—เบตเปˆเปƒเบŠเป‰เบฎเปˆเบงเบกเบเบฑเบ™, เป€เบชเบฑเป‰เบ™เป‚เบ„เป‰เบ‡เบฎเบนเบšเบชเป‰เบงเบ Diffie-Hellman protocol เบ–เบทเบเปƒเบŠเป‰เปƒเบ™เบเบฒเบ™เบˆเบฑเบ”เบ•เบฑเป‰เบ‡เบ›เบฐเบ•เบดเบšเบฑเบ”. Curve25519, เบเบฑเบ‡เบชเบฐเป€เบซเบ™เบตเป‚เบ”เบ Daniel Bernstein. เบชเบนเบ”เบเบฒเบ™เบ„เบดเบ”เป„เบฅเปˆเบ—เบตเปˆเปƒเบŠเป‰เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™ hashing เปเบกเปˆเบ™ BLAKE2s (RFC7693).

เปเบซเบผเปˆเบ‡เบ‚เปเป‰เบกเบนเบ™: opennet.ru

เป€เบžเบตเปˆเบกเบ„เบงเบฒเบกเบ„เบดเบ”เป€เบซเบฑเบ™