Wireguard untuk Kubernetes dan GUI yang ramah pengguna







Bisakah saya sekali lagi menyatakan cinta saya untuk [WireGuard] dan berharap itu segera bergabung? Mungkin kodenya tidak sempurna, tetapi saya telah membacanya sekilas, dan dibandingkan dengan kengerian OpenVPN dan IPSec, ini adalah sebuah karya seni.



Linus Torvalds, di Milis Kernel Linux


Saya yakin banyak yang sudah mendengar tentang Wireguard. Beberapa bahkan merasakannya secara langsung. Saya cukup menyukainya dalam produksi, baik dari segi performa maupun kemudahan setup. Ya, tidak ada jutaan konfigurasi misterius untuk semua kesempatan seperti OpenVPN dan XFRM + StrongSwan di IPSEC VPN. Ini sederhana dan ringkas baik dalam kode dan konfigurasi. Itu belum akan menjadi berani dan kikuk. Singkatnya, versi positif dari skenario "bakar warisan dan tulis semuanya dengan benar".



Saya memutuskan untuk tidak menulis panduan lain "bagaimana saya menginstal Wireguard", tetapi untuk membagikan beberapa utilitas yang berguna. Beberapa dengan GUI yang sangat sukses menurut selera saya, yang sesuai untuk layanan dengan banyak pengguna. Kami akan menganalisis penggunaan VPN ini untuk komunikasi antar node di cluster Kubernetes yang berbeda, beberapa web-GUI untuk pembuatan dan beberapa sumber daya yang berguna.



Mengapa itu dibutuhkan?



Pertanyaan kuncinya. Salah satu hal paling keren tentang dia adalah dia sangat produktif. Dalam kebanyakan kasus, latensi lebih sedikit dan throughput lebih tinggi dengan beban CPU yang sama. Jika Anda membayar sumber daya yang dihabiskan atau berencana menyewa mesin virtual dengan mempertimbangkan beban puncak, VPN jenis ini juga akan menghemat uang Anda. Saya pikir tidak perlu menjelaskan mengapa buruk untuk mengarahkan lalu lintas melalui jaringan terbuka antara node individu.





Sumber: www.wireguard.com/performance



Selain itu, perlu dicatat bahwa ini telah dimasukkan dalam kernel sejak Linux 5.6, dan sejak musim semi tahun ini juga telah dimasukkan dalam cabang utama kernel Android, yang memberikan kami efisiensi energi yang sangat baik pada ponsel ... Meskipun, saya harus mengatakan bahwa dia tidak terlalu membebani baterai telepon sebelumnya.



Kilo - wireguard untuk Kubernetes



Seringkali, perusahaan yang lebih besar dari rata-rata mengalami situasi di mana mereka perlu menggunakan beberapa cloud yang berbeda. Alasannya berbeda - toleransi kesalahan, kehadiran yang baik di wilayah tersebut dan ping yang rendah. Terkadang harga untuk produk tertentu. Misalnya, Anda dapat menjalankan frontend dan logika utama di server Anda sendiri, dan melakukan outsourcing tugas yang membutuhkan GPU ke instans AWS.



Bagaimana itu bekerja? Kilo membutuhkan modul kernel wireguard di semua node. Jika Anda menggunakan kernel yang lebih baru dari 5.6, maka modul tersebut sudah ada di cabang utama dan Anda tidak perlu menambahkan apa pun. Selanjutnya, kilo agent, "kg", berjalan di setiap node di cluster, menyiapkan kunci pribadi dan publik untuk menyiapkan VPN. Aturan perutean lalu lintas antara wilayah terpisah juga dikonfigurasi secara otomatis. Kilo juga dapat bekerja bersama dengan solusi jaringan lain untuk cluster, seperti Flanel. Pada saat yang sama, kilo akan menyediakan komunikasi antar daerah, dan Flanel akan mengatur lalu lintas dalam satu lokasi.

Saat membangun topologi jaringan, itu bergantung pada topology.kubernetes.io/region , tetapi Anda juga dapat menandai wilayah secara manual.



Persyaratan:



  • Kernel 5.6 yang lebih baru atau modul wireguard terpisah
  • IP putih di node, untuk mengatur koneksi langsung di antara mereka.




Untuk lebih jelasnya, lihat pembicaraan pengembang tahun lalu di Forum Kubernetes di Seoul dan dokumentasinya .



wg-gen-web



gambar

Apa yang disebut "generator konfigurasi lain". Tapi sangat menyenangkan untuk diajak bekerja sama. Perbedaan utama dalam pendekatan ini adalah bahwa penulis tidak mencoba mengedit konfigurasi layanan yang berjalan dengan cepat, tetapi hanya menyediakan GUI yang nyaman untuk membuat aturan. Kemudian Anda sendiri menerapkan pembaruan konfigurasi sesuai selera Anda.



Fitur utama - menghasilkan kode QR yang nyaman untuk klien seluler dan mengirimkan semua data yang diperlukan untuk koneksi ke email klien. Tentu saja, melakukan docker. Repositori ada di sini .



Deploy cukup sederhana:



docker run --rm -it -v /tmp/wireguard:/data -p 8080:8080 -e "WG_CONF_DIR=/data" vx3r/wg-gen-web:latest

      
      





Subruang





GUI lain untuk pekerjaan mudah dengan banyak perangkat klien.

Fitur utama:



  1. Single Sign-On menggunakan SAML. Anda dapat menggunakan akun Google.
  2. Tambahkan dan hapus perangkat dengan beberapa klik
  3. Pembuatan konfigurasi individual untuk setiap perangkat. Ya, kode QR, tentu saja.
  4. Mari Enkripsi HTTPS di luar kotak dan alihkan otomatis ke port 443


Mudah diterapkan ke VPS. Omong-omong, kami memilikinya. Kita bisa mematikannya)

Wireguard harus dipasang di server dan port harus terbuka: 80 / tcp, 443 / tcp, 51820 / udp (WireGuard). Dalam kasus ini, Anda perlu menghapus dnsmasq standar, karena akan diluncurkan di penampung.

Maka semuanya cukup umum, hanya ganti --env SUBSPACE_HTTP_HOST dengan domain Anda:

# Your data directory should be bind-mounted as `/data` inside the container using the `--volume` flag.
$ mkdir /data

docker create \
    --name subspace \
    --restart always \
    --network host \
    --cap-add NET_ADMIN \
    --volume /usr/bin/wg:/usr/bin/wg \
    --volume /data:/data \
    --env SUBSPACE_HTTP_HOST=subspace.example.com \
    subspacecloud/subspace:latest

$ sudo docker start subspace

      
      





Repositori ada di sini .



Bukan kesimpulan



Jika Anda belum mencoba VPN ini, saya sangat merekomendasikannya. Seringkali ia mampu menghidupkan kembali perangkat keras yang tidak terlalu kuat, yang tidak dapat mengatasi beban sebelumnya. Ini juga tidak terlalu sulit untuk dikonfigurasi. Benar, tugas utamanya masih meninju terowongan yang sudah dikonfigurasi sebelumnya. Konfigurasi dinamis apa pun tidak tersedia baginya dalam arti biasa. Harga yang harus dibayar untuk kesederhanaan dan kinerja.

Ngomong-ngomong, jika belum tahu, wireguard sudah termasuk dalam RouterOS 7.1 versi beta dari MikroTik. Bisa dicoba sekarang, tapi menurut perasaan saya masih lembab.





Secara tradisional, saya dapat mengundang Anda untuk mencoba menerapkan wireguard di VPS kami... Misalnya, untuk menggabungkan beberapa lalu lintas jaringan rumah Anda ke Swiss atau Belanda. Kami memiliki banyak lokasi berbeda dan kebijakan harga sangat menyenangkan untuk tugas-tugas semacam itu.



Seperti yang saya katakan, Wireguard sangat hemat sumber daya, jadi konfigurasi minimal dengan 1 inti dan 1 GB RAM sudah lebih dari cukup untuk mendukung banyak klien. Harganya juga cukup manusiawi:














All Articles