WireGuard бол ирээдүйн гайхалтай VPN мөн үү?

WireGuard бол ирээдүйн гайхалтай VPN мөн үү?

VPN нь сахалтай системийн администраторуудын чамин хэрэгсэл байхаа больсон цаг иржээ. Хэрэглэгчид өөр өөр даалгавартай байдаг ч үнэн хэрэгтээ хүн бүрт VPN хэрэгтэй байдаг.

Одоогийн VPN шийдлүүдийн асуудал нь тэдгээрийг зөв тохируулахад хэцүү, засвар үйлчилгээ хийхэд үнэтэй, чанар нь эргэлзээтэй хуучин кодоор дүүрэн байдаг.

Хэдэн жилийн өмнө Канадын мэдээллийн аюулгүй байдлын мэргэжилтэн Жейсон А.Доненфельд үүнийг хангалттай авсан гэж үзэн ажиллаж эхэлсэн. WireGuard. WireGuard одоо Линуксийн цөмд оруулахаар бэлтгэгдэж байгаа бөгөөд бүр магтаал хүртэж байна Линус Торвалдс болон дотор АНУ-ын сенат.

Бусад VPN шийдлүүдээс WireGuard-ийн давуу тал:

  • Хэрэглэхэд хялбар.
  • Орчин үеийн криптографийг ашигладаг: Дуу чимээний протоколын хүрээ, 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 нь хэдэн зуун мянган мөртэй байдаг. Орчин үеийн криптографийн алгоритмуудыг дэмжихийн тулд Линуксийн цөмд шинэ криптограф API оруулахыг санал болгож байна. Цайр. Энэ нь зөв санаа мөн эсэх талаар одоо хэлэлцэж байна.

Бүтээмж

WireGuard нь цөмийн модуль хэлбэрээр хэрэгждэг тул хамгийн их гүйцэтгэлийн давуу тал (OpenVPN болон IPSec-тэй харьцуулахад) Linux системд мэдэгдэхүйц байх болно. Нэмж дурдахад, 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-ээр далдлах аргууд байдаг бөгөөд энэ нь тоталитар дэглэмтэй орнуудын оршин суугчдад интернетийг бүрэн ашиглахад тусалдаг.

үр дүн нь

Дүгнэж хэлэхэд, энэ бол маш сонирхолтой бөгөөд ирээдүйтэй төсөл бөгөөд та үүнийг хувийн сервер дээр ашиглаж болно. Ашиг нь юу вэ? Линукс системүүдийн өндөр гүйцэтгэл, тохиргоо болон дэмжлэгт хялбар, авсаархан, унших боломжтой кодын суурь. Гэсэн хэдий ч нарийн төвөгтэй дэд бүтцийг WireGuard руу шилжүүлэхээр яарах нь эрт байна, үүнийг Линуксийн цөмд оруулахыг хүлээх нь зүйтэй юм.

Миний (болон таны) цагийг хэмнэхийн тулд би хөгжүүлсэн WireGuard автомат суулгагч. Үүний тусламжтайгаар та энэ талаар юу ч ойлгохгүйгээр өөртөө болон найз нөхөддөө хувийн VPN тохируулж болно.

Эх сурвалж: www.habr.com

сэтгэгдэл нэмэх