Nyepetkeun OpenVPN pikeun $9.99* atanapi integrasikeun Orange Pi One kana router anjeun

Nyepetkeun OpenVPN pikeun $9.99* atanapi integrasikeun Orange Pi One kana router anjeun

Sababaraha urang henteu nganggo Internét tanpa VPN pikeun hiji alesan atanapi anu sanés: batur peryogi IP khusus, sareng langkung gampang sareng langkung mirah mésér VPS sareng dua IP tibatan mésér alamat ti panyadia, aya anu hoyong ngaksés sadaya situs wéb. , sareng henteu ngan ukur anu diidinan di daérah Féderasi Rusia, anu sanés peryogi IPv6, tapi panyadia henteu nyayogikeunana...
Paling sering, sambungan VPN diadegkeun dina alat sorangan nu keur dipake dina momen nu tangtu, nu asup akal lamun ngan boga hiji komputer tur hiji telepon tur jarang dipake dina waktos anu sareng. Upami aya seueur alat dina jaringan asal anjeun, atanapi, contona, aya sababaraha VPN anu teu tiasa dikonpigurasikeun, éta bakal langkung gampang pikeun nyiptakeun torowongan langsung dina router bumi supados henteu mikir ngeunaan nyetél unggal alat nyalira. .

Upami anjeun kantos masang OpenVPN dina router anjeun, sigana anjeun kaget pisan ku gancangna jalanna. The SoCs malah router mirah ngaliwatan ngeunaan lalulintas gigabit tanpa masalah, alatan mindahkeun routing sarta fungsi NAT kana chip misah dirancang éksklusif pikeun tugas ieu, sarta prosesor utama routers misalna rada lemah, sabab. Aya praktis euweuh beban on aranjeunna. Kompromi ieu ngamungkinkeun anjeun pikeun ngahontal kecepatan luhur router sareng sacara signifikan ngirangan harga alat anu parantos - router sareng prosesor anu kuat hargana sababaraha kali langkung seueur, sareng diposisikan henteu ngan ukur salaku kotak pikeun nyebarkeun Internét, tapi ogé salaku NAS, torrent. downloader jeung sistem multimédia imah.

Router kuring, TP-Link TL-WDR4300, henteu tiasa disebat énggal - modélna muncul dina pertengahan 2012, sareng gaduh prosesor arsitéktur 560 MHz MIPS32 74Kc, kakuatan anu ngan ukur cekap pikeun 20-23 Mb / s tina lalu lintas énkripsi. via OpenVPN, nu ku standar Laju Internet imah modern rada low.
Kumaha urang tiasa ningkatkeun laju torowongan énkripsi? Router kuring cukup fungsional, ngadukung 3x3 MIMO, sareng umumna tiasa dianggo, kuring henteu hoyong ngarobih.
Kusabab ayeuna biasa ngadamel halaman Internét 10-megabyte, nyerat aplikasi desktop dina node.js sareng bungkus kana file 100-megabyte, ningkatkeun kakuatan komputasi tinimbang optimasi, urang bakal ngalakukeun hal anu dahsyat - urang bakal mindahkeun sambungan VPN ka a produktif single-board "komputer" Oranyeu Pi Hiji, nu urang bakal install dina kasus router tanpa nyokot jaringan nu aya na palabuhan USB, ngan $ 9.99 *!
* + pangiriman, + pajeg, + keur bir, + MicroSD.

OpenVPN

Prosesor router henteu tiasa disebat lemah pisan - éta sanggup énkripsi sareng hashing data nganggo algoritma AES-128-CBC-SHA1 dina laju 50 Mb / s, anu nyata langkung gancang tibatan kumaha OpenVPN jalan, sareng aliran CHACHA20 modern. cipher kalawan hash POLY1305 malah ngahontal 130 megabits per detik! Naha laju torowongan VPN rendah pisan? Éta sadayana ngeunaan gentos kontéks antara rohangan pangguna sareng rohangan kernel: OpenVPN énkripsi lalu lintas sareng komunikasi sareng dunya luar dina kontéks pangguna, sareng routing sorangan lumangsung dina kontéks kernel. Sistem operasi kudu terus pindah mudik pikeun unggal pakét narima atawa dikirimkeun, sarta operasi ieu slow. Masalah ieu alamiah dina sakabéh aplikasi VPN ngajalankeun ngaliwatan supir TUN / TAP, sarta eta teu bisa disebutkeun yen masalah speed low disababkeun ku optimasi OpenVPN goréng (sanajan, tangtosna, aya tempat anu perlu reworked). Henteu hiji klien VPN userspace tunggal nyadiakeun malah hiji gigabit kalawan enkripsi ditumpurkeun dina laptop kuring, sumawona sistem kalawan processor lemah.

Jeruk Pi Hiji

Papan tunggal Oranyeu Pi One ti Xunlong mangrupikeun tawaran pangsaéna dina hal kinerja / rasio harga ayeuna. Pikeun $ 9.99 * anjeun kéngingkeun prosésor quad-core ARM Cortex-A7 anu padet (stabil) dina 1008 MHz, sareng jelas langkung unggul tina tatanggana harga-titik na Raspberry Pi Zero sareng Next Thing CHIP. Ieu dimana kaunggulan tungtung. Perusahaan Xunlong merhatikeun persis enol kana parangkat lunak papanna, sareng dina waktos One diluncurkeun pikeun dijual, éta henteu nyayogikeun file konfigurasi dewan, sanés waé gambar anu siap-siap. Allwinner, produsén SoC, ogé henteu peka pisan kana ngadukung produkna. Éta ngan museurkeun kinerja minimal dina Android 4.4.4 OS, nu hartina urang kapaksa ngagunakeun 3.4 kernel kalawan patch Android. Untungna, aya peminat anu ngumpul distribusi, ngédit kernel, nulis kode pikeun ngarojong papan dina kernel mainline, i.e. aranjeunna sabenerna ngalakukeun pagawean pikeun produsén, sahingga crap ieu dianggo acceptably. Pikeun tujuan kuring, kuring milih distribusi Armbian; éta sering sareng gampang diropéa (kernel énggal dipasang langsung ngalangkungan manajer pakét, sanés ku nyalin file kana partisi khusus, sapertos biasana dina Allwinner), sareng éta ngadukung paling. periferal, teu kawas nu séjén.

Router

Supados teu ngamuat prosésor lemah tina router sareng énkripsi sareng nyepetkeun sambungan VPN kami, urang tiasa mindahkeun tugas ieu kana taktak prosesor Oranyeu Pi anu langkung kuat ku cara ngahubungkeun ka router dina sababaraha cara. Nyambungkeun boh liwat Ethernet atanapi USB aya dina pikiran - duanana standar ieu dirojong ku kadua alat, tapi kuring henteu hoyong nyandak palabuhan anu tos aya. Untungna, aya jalan kaluar.

Chip hub USB GL850G, anu dianggo dina router, ngadukung 4 palabuhan USB, dua diantarana henteu kabel. Ieu mah can écés naha produsén teu unsolder aranjeunna, abdi anggap, pikeun nyegah pamaké tina nyambungkeun 4 alat jeung konsumsi arus tinggi (contona, teuas drive) sakaligus. Pasokan listrik standar router henteu dirancang pikeun beban sapertos kitu. Bisi wae, ieu keur kaunggulan urang.
Nyepetkeun OpenVPN pikeun $9.99* atanapi integrasikeun Orange Pi One kana router anjeun
Dina raraga neangan port USB sejen, Anjeun ngan perlu solder dua kawat ka pin 8 (D-) jeung 9 (D +) atawa 11 (D-) jeung 12 (D +).

Nyepetkeun OpenVPN pikeun $9.99* atanapi integrasikeun Orange Pi One kana router anjeun

Sanajan kitu, teu cukup ngan saukur nyolok dina dua alat USB tur miharep yén sagalana bakal jalan sorangan, sakumaha eta bakal mibanda Ethernet. Anu mimiti, urang kedah ngajantenkeun salah sahijina dina modeu Klién USB, sanés USB Host, sareng kadua, urang kedah mutuskeun kumaha alat-alat éta bakal ngadeteksi silih. Aya seueur panggerak pikeun anu disebut USB Gadgets (dingaranan subsistem kernel Linux), anu ngamungkinkeun anjeun niru sababaraha jinis alat USB: adaptor jaringan, kartu audio, keyboard sareng mouse, flash drive, kaméra, konsol liwat séri. palabuhan. Kusabab alat kami bakal tiasa dianggo sareng jaringan, niru adaptor Ethernet anu pangsaéna pikeun kami.

Aya tilu standar Ethernet-over-USB:

  • Jauh NDIS (RNDIS). Hiji standar luntur ti Microsoft, dipaké utamana salila Windows XP.
  • Modél Kontrol Ethernet (ECM). Hiji standar basajan nu encapsulates pigura Ethernet dina pakét USB. Gede pikeun modem kabel sareng sambungan USB, dimana éta merenah pikeun mindahkeun pigura tanpa processing, tapi alatan kesederhanaan sarta watesan beus USB, teu pisan gancang.
  • Modél Émulasi Ethernet (EEM). Protokol anu langkung pinter anu nganggap watesan USB sareng sacara optimal ngahijikeun sababaraha pigura kana hiji, sahingga ningkatkeun throughput.
  • Modél Kontrol Jaringan (NCM). Protokol panganyarna. Mibanda mangpaat EEM sarta salajengna optimizes pangalaman beus.

Pikeun kéngingkeun salah sahiji protokol ieu pikeun dianggo dina dewan kami, sapertos biasa, urang kedah ngalaman sababaraha kasusah. Kusabab kanyataan yén Allwinner ngan ukur resep kana bagian Android tina kernel, ngan ukur Gadget Android anu tiasa dianggo normal - kode anu ngalaksanakeun komunikasi sareng adb, ngekspor alat liwat protokol MTP sareng niru flash drive dina alat Android. Android Gadget sorangan ogé ngarojong protokol RNDIS, tapi rusak dina kernel Allwinner. Upami anjeun nyobian nyusun kernel sareng Gadget USB anu sanés, alat éta ngan saukur moal muncul dina sistem, henteu paduli naon anu anjeun lakukeun.
Pikeun ngajawab masalah, dina cara ramah, Anjeun kudu neangan tempat dimana controller USB ieu initialized dina kode gadget Android android.c dirobah ku pamekar, tapi aya ogé workaround pikeun nyieun sahenteuna emulation Ethernet leuwih. Karya USB:

--- sun8i/drivers/usb/sunxi_usb/udc/sunxi_udc.c 2016-04-16 15:01:40.427088792 +0300
+++ sun8i/drivers/usb/sunxi_usb/udc/sunxi_udc.c 2016-04-16 15:01:45.339088792 +0300
@@ -57,7 +57,7 @@
 static sunxi_udc_io_t g_sunxi_udc_io;
 static u32 usb_connect = 0;
 static u32 is_controller_alive = 0;
-static u8 is_udc_enable = 0;   /* is udc enable by gadget? */
+static u8 is_udc_enable = 1;   /* is udc enable by gadget? */
 
 #ifdef CONFIG_USB_SUNXI_USB0_OTG
 static struct platform_device *g_udc_pdev = NULL;

Patch ieu maksakeun mode klien USB, anu ngamungkinkeun anjeun ngagunakeun Gadget USB biasa tina Linux.
Ayeuna anjeun kedah ngawangun deui kernel nganggo patch ieu sareng gadget anu diperyogikeun. Kuring milih EEM sabab ... Numutkeun hasil tés, tétéla langkung produktif tibatan NCM.
Tim Armbian nyadiakeun sistem assembly pisan basajan tur merenah pikeun sakabéh dewan dirojong dina sebaran. Ngan unduh, pasang patch kami userpatches/kernel/sun8i-default/otg.patch, édit saeutik compile.sh tur pilih gadget nu diperlukeun:

Nyepetkeun OpenVPN pikeun $9.99* atanapi integrasikeun Orange Pi One kana router anjeun

Kernel bakal disusun kana pakét deb, nu moal hese dipasang dina dewan via dpkg.
Sadaya anu tetep nyaéta nyambungkeun papan liwat USB sareng ngonpigurasikeun adaptor jaringan énggal kami pikeun nampi alamat via DHCP. Jang ngalampahkeun ieu anjeun kudu nambahkeun hal kawas di handap ieu /etc/network/interfaces:

auto usb0
        iface usb0 inet dhcp
        hwaddress ether c2:46:98:49:3e:9d
        pre-up /bin/sh -c 'echo 2 > /sys/bus/platform/devices/sunxi_usb_udc/otg_role'

Langkung saé pikeun nyetél alamat MAC sacara manual, sabab ... eta bakal acak unggal waktos alat kasebut rebooted, nu teu merenah tur troublesome.
Urang sambungkeun kabel MicroUSB ka konektor OTG, sambungkeun kakuatan ti router dina (bisa disadiakeun pikeun pin 2 jeung 3 tina sisir, teu ngan ka konektor kakuatan).

Sadaya anu tetep nyaéta ngonpigurasikeun router. Cukup masang pakét sareng supir EEM sareng tambahkeun alat jaringan USB anyar kami ka sasak zona firewall lokal:

opkg install kmod-usb-net-cdc-eem

Nyepetkeun OpenVPN pikeun $9.99* atanapi integrasikeun Orange Pi One kana router anjeun
Pikeun jalur sadaya lalulintas ka torowongan VPN, anjeun kudu boh nambahkeun aturan SNAT ka alamat IP dewan di sisi router, atawa ngadistribusikaeun alamat dewan salaku alamat gateway via dnsmasq. Anu terakhir dilakukeun ku nambihan garis di handap ieu kana /etc/dnsmasq.conf:

dhcp-option = tag:lan, option:router, 192.168.1.100

di mana 192.168.1.100 - Alamat IP papan anjeun. Tong hilap lebetkeun alamat router dina setélan jaringan dina papan éta sorangan!

A bolu melamin dipaké pikeun ngasingkeun kontak dewan tina kontak router. Tétéla sapertos kieu:
Nyepetkeun OpenVPN pikeun $9.99* atanapi integrasikeun Orange Pi One kana router anjeun

kacindekan

Jaringan via USB jalan heran gancang: 100-120 Mb / s, Kuring ekspektasi kirang. OpenVPN ngaliwat ngeunaan 70 Mb / s tina lalu lintas énkripsi, anu ogé henteu seueur pisan, tapi cekap pikeun kabutuhan kuring. Tutup router teu nutup pageuh, ninggalkeun celah leutik. Aesthetes tiasa nyabut panyambungna Ethernet sareng USB Host tina papan, anu bakal ngantep tutup tutup lengkep sareng masih gaduh sababaraha rohangan.
Éta langkung saé henteu kalibet dina pornografi sapertos kitu sareng mésér Turris Omnia.

sumber: www.habr.com

Tambahkeun komentar