WireGuard келечектеги улуу VPNби?

WireGuard келечектеги улуу VPNби?

VPN мындан ары сакалчан система администраторлорунун кандайдыр бир экзотикалык куралы болбой калган учур келди. Колдонуучулардын ар кандай тапшырмалары бар, бирок чындык бардыгына VPN керек.

Учурдагы VPN чечимдеринин көйгөйү, аларды туура конфигурациялоо кыйын, тейлөө кымбат жана күмөндүү сапаттагы эски кодго толгон.

Бир нече жыл мурун, маалымат коопсуздугу боюнча канадалык адис Джейсон А. Доненфельд ал жетиштүү деп чечти жана иштей баштады. WireGuard. WireGuard азыр Linux ядросуна кошууга даярдалып жатат жана ал тургай, мактоолорду да алды Линус Торвалдс жана АКШнын Сенаты.

WireGuard'дун башка VPN чечимдерине караганда артыкчылыктары:

  • Колдонууга оңой.
  • Заманбап криптографияны колдонот: Noise протоколунун негизи, Curve25519, ChaCha20, Poly1305, BLAKE2, SipHash24, HKDF ж.б.
  • Ыкчам, окула турган код, алсыздыктарды иликтөө оңой.
  • Жогорку аткаруу.
  • Ачык жана так спецификация.

Күмүш ок табылдыбы? OpenVPN жана IPSecти көмүүгө убакыт келдиби? Мен муну менен күрөшүүнү чечтим, ошол эле учурда мен да чечтим жеке VPN серверин автоматтык түрдө орнотуу үчүн скрипт.

Бул кандайча иштейт

Иштөө принциптери төмөнкүдөй сүрөттөлүшү мүмкүн:

  • WireGuard интерфейси түзүлүп, ага жеке ачкыч жана IP дареги дайындалат. Башка теңтуштардын орнотуулары жүктөлөт: алардын ачык ачкычтары, IP даректери ж.б.
  • WireGuard интерфейсине келген бардык IP пакеттери UDP менен капсулдалат аман-эсен жеткирилди башка курбулары.
  • Кардарлар сервердин жалпы IP дарегин орнотууларда белгилешет. Сервер кардарлардын тышкы даректерин алардан туура аутентификацияланган маалыматтар алынганда автоматтык түрдө тааныйт.
  • Сервер өзүнүн ишин үзгүлтүккө учуратпастан коомдук IP дарегин өзгөртө алат. Ошол эле учурда, ал туташкан кардарларга эскертүү жөнөтөт жана алар конфигурациясын тез арада жаңыртышат.
  • Маршрутизация түшүнүгү колдонулат Cryptokey Routing. WireGuard башкалардын ачык ачкычынын негизинде пакеттерди кабыл алат жана жөнөтөт. Сервер туура аутентификацияланган пакеттин шифрин чечкенде, анын src талаасы текшерилет. Эгер ал конфигурацияга дал келсе allowed-ips аутентификацияланган тең, пакет WireGuard интерфейси тарабынан кабыл алынат. Чыгуучу пакетти жөнөтүүдө тиешелүү процедура ишке ашат: пакеттин dst талаасы алынат жана анын негизинде тиешелүү теңдеши тандалат, пакетке анын ачкычы менен кол коюлат, теңдештин ачкычы менен шифрленет жана алыскы акыркы чекитке жөнөтүлөт. .

WireGuardдын бардык негизги логикасы 4 миң саптан азыраак кодду ээлейт, ал эми OpenVPN жана IPSecте жүз миңдеген саптар бар. Заманбап криптографиялык алгоритмдерди колдоо үчүн Linux ядросуна жаңы криптографиялык API киргизүү сунушталууда. цинк. Учурда бул жакшы идеябы деген талкуу жүрүп жатат.

кирешелүүлүк

Максималдуу иштөө артыкчылыгы (OpenVPN жана IPSec менен салыштырганда) Linux системаларында байкалат, анткени WireGuard ал жерде ядро ​​модулу катары ишке ашырылат. Кошумчалай кетсек, macOS, Android, iOS, FreeBSD жана OpenBSD колдоого алынат, бирок аларда WireGuard колдонуучулардын мейкиндигинде иштейт, андан кийинки бардык натыйжалар. Windows колдоо жакынкы келечекте кошулушу күтүлүүдө.

менен салыштыруу жыйынтыгы расмий сайты:

WireGuard келечектеги улуу VPNби?

Менин колдонуу тажрыйбам

Мен VPN адиси эмесмин. Мен бир жолу OpenVPN'ди кол менен орнотконмун жана бул абдан жадатуу болду жана IPSecти сынаган да жокмун. Чечим кабыл алуу өтө көп, өзүңүздү бутка атып салуу абдан оңой. Ошондуктан мен серверди конфигурациялоо үчүн дайыма даяр скрипттерди колдончумун.

Ошентип, WireGuard, менин көз карашым боюнча, жалпысынан колдонуучу үчүн идеалдуу. Бардык төмөнкү деңгээлдеги чечимдер спецификацияда кабыл алынат, андыктан типтүү VPN инфраструктурасын даярдоо процесси бир нече мүнөттү гана талап кылат. Конфигурацияда алдоо дээрлик мүмкүн эмес.

орнотуу жараяны майда-чүйдөсүнө чейин сүрөттөлгөн расмий сайтында, мен өзүнчө сонун белгилегим келет OpenWRT колдоо.

Шифрлөө ачкычтары утилита тарабынан түзүлөт wg:

SERVER_PRIVKEY=$( wg genkey )
SERVER_PUBKEY=$( echo $SERVER_PRIVKEY | wg pubkey )
CLIENT_PRIVKEY=$( wg genkey )
CLIENT_PUBKEY=$( echo $CLIENT_PRIVKEY | wg pubkey )

Андан кийин, сиз сервер конфигурациясын түзүшүңүз керек /etc/wireguard/wg0.conf төмөнкү мазмун менен:

[Interface]
Address = 10.9.0.1/24
PrivateKey = $SERVER_PRIVKEY
[Peer]
PublicKey = $CLIENT_PUBKEY
AllowedIPs = 10.9.0.2/32

жана сценарий менен туннелди көтөрүү wg-quick:

sudo wg-quick up /etc/wireguard/wg0.conf

Системалуу системаларда муну ордуна колдоно аласыз sudo systemctl start [email protected].

Кардар машинасында конфигурацияны түзүңүз /etc/wireguard/wg0.conf:

[Interface]
PrivateKey = $CLIENT_PRIVKEY
Address = 10.9.0.2/24
[Peer]
PublicKey = $SERVER_PUBKEY
AllowedIPs = 0.0.0.0/0
Endpoint = 1.2.3.4:51820 # Внешний IP сервера
PersistentKeepalive = 25 

Жана туннелди ушундай жол менен көтөрүңүз:

sudo wg-quick up /etc/wireguard/wg0.conf

Кардарлар Интернетке кире алышы үчүн серверде NAT конфигурациялоо гана калды, сиз бүттүңүз!

Колдонуунун бул жөнөкөйлүгү жана коддук базанын компакттуулугу ачкыч бөлүштүрүү функционалдуулугун жок кылуу менен жетишилди. Татаал сертификат системасы жок жана бул корпоративдик үрөй учурарлык; кыска шифрлөө ачкычтары SSH ачкычтары сыяктуу бөлүштүрүлөт. Бирок бул көйгөй жаратат: WireGuard-ды кээ бир иштеп жаткан тармактарда ишке ашыруу оңой болбойт.

Кемчиликтердин арасында WireGuard HTTP прокси аркылуу иштебей турганын белгилей кетүү керек, анткени транспорт катары UDP протоколу гана жеткиликтүү. Суроо туулат: протоколду бүдөмүктөө мүмкүнбү? Албетте, бул VPNдин түздөн-түз милдети эмес, бирок OpenVPN үчүн, мисалы, тоталитардык өлкөлөрдүн тургундарына Интернетти толук колдонууга жардам берген HTTPS катары жамынуунун жолдору бар.

табылгалары

Жыйынтыктап айтканда, бул абдан кызыктуу жана келечектүү долбоор, сиз аны жеке серверлерде колдоно аласыз. Кандай пайда? Linux системаларында жогорку өндүрүмдүүлүк, орнотуунун жана колдоонун жөнөкөйлүгү, компакт жана окула турган код базасы. Бирок, WireGuardга татаал инфраструктураны өткөрүп берүүгө шашууга али эрте, аны Linux ядросуна киргизүүнү күтүү керек.

Менин (жана сиздин) убактыңызды үнөмдөө үчүн мен иштеп чыктым WireGuard автоматтык орнотуучусу. Анын жардамы менен сиз өзүңүз жана досторуңуз үчүн эч нерсе түшүнбөстөн жеке VPN орното аласыз.

Source: www.habr.com

Комментарий кошуу