Apa yang Harus Diizinkan VPS Sebelum Bisa Menghosting VPN Anda
VM yang menjelajah web tetap bisa gagal sebagai gateway VPN. Periksa dukungan antarmuka, dua firewall, penerusan, rencana alamat, dan klien luar.
Instans menyala, pemasangan paket berhasil, dan layanan bahkan melaporkan status berjalan, tetapi tidak ada yang terhubung. Pola ini umum di server pribadi virtual karena tamu yang dengan mudah mencapai internet tetap bisa gagal membuat antarmuka yang diinginkan protokol Anda. Lima pemeriksaan memisahkan host yang mampu melayani terowongan dari yang hanya tampak siap, dan pemeriksaan pertama yang gagal biasanya menjelaskan semua setelahnya. Masing-masing murah dijalankan dan berakhir dengan keputusan, bukan catatan.
Pastikan antarmuka yang dibutuhkan protokol
OpenVPN di atas TUN membutuhkan perangkat karakter dan modul kernel di belakangnya; WireGuard membutuhkan dukungan kernel sendiri atau implementasi ruang pengguna dengan ekspektasi yang sesuai. Kontainer terkelola dapat berbagi kernel host yang tidak pernah mengekspos perangkat itu, dan sebagian platform melarang pembuatan antarmuka terowongan sama sekali, terlepas dari apa yang terpasang.
Uji kemampuannya alih-alih membaca halaman dukungan, karena label pemasaran berubah lebih cepat daripada batas yang mendasarinya. Daftar fitur yang ditulis untuk satu paket mungkin tidak menggambarkan kernel tempat tamu benar-benar berjalan. Dua perintah singkat menjawab pertanyaan untuk protokol yang umum dipakai, dan keduanya membersihkan dirinya. Perintah di bawah tidak membuat apa pun yang permanen dan langsung dihapus.
sudo ip tuntap add dev tun9 mode tun
sudo ip tuntap del dev tun9 mode tun
sudo ip link add wgtest type wireguard && sudo ip link del wgtest
Penolakan pada pasangan pertama berarti TUN tidak tersedia dan mode bawaan OpenVPN tidak dapat dimulai; penolakan pada baris terakhir berarti antarmuka kernel WireGuard tidak ada. dokumentasi kernel tentang TUN/TAP menjelaskan perangkat yang diuji pemeriksaan pertama. Tidak satu pun dari kedua kegagalan itu diperbaiki dengan memasang ulang paket VPN.
Ingat bahwa jalur masuk punya dua pemilik
Aturan jaringan penyedia dan firewall tamu adalah sistem terpisah, dan lalu lintas harus melewati keduanya. Pendengar yang terikat di tamu tidak berarti apa-apa jika grup keamanan penyedia membuang port, dan aturan penyedia yang terbuka tidak melakukan apa-apa jika tamu menolak paket. Periksa pendengar, lalu aturan tamu, lalu panel penyedia, dalam urutan itu, dan pastikan protokol serta nomor port. Melompat langsung ke panel penyedia adalah cara orang membuka rentang yang tidak mereka butuhkan.
UDP adalah korban biasa: banyak platform mengizinkan TCP secara bawaan dan memperlakukan aturan UDP sebagai entri terpisah. Jika instans berada di belakang NAT penyedia alih-alih memiliki alamat publik, penerusan port di sisi penyedia menjadi konfigurasi ketiga yang harus diselaraskan.
Rencanakan jalur pulang, bukan hanya jalan keluar
Layanan terowongan penuh membutuhkan penerusan aktif, skema terjemahan atau perutean untuk lalu lintas klien, dan jalur pulang yang mencapai kumpulan klien. Membuka pendengar tidak menyediakan satu pun dari itu. Terowongan yang terbentuk tetapi tidak membawa lalu lintas berguna biasanya gagal di sini, bukan pada autentikasi. Perlakukan jabat tangan yang berhasil sebagai awal diagnosis, bukan akhirnya.
Tulis rencananya sebagai tiga keputusan konkret: rentang sumber mana yang diterima klien, bagaimana lalu lintas mereka keluar menuju internet, dan bagaimana balasan menemukan jalan pulang. Lalu pastikan kernel setuju dengan rencana sebelum menguji klien, agar ketidaksesuaian senyap tidak dikira kesalahan di sisi klien.
sysctl -n net.ipv4.ip_forward
sudo nft list ruleset | head -n 40
ip -4 route show default
Putuskan soal IPv6 secara eksplisit
IPv6 datang melalui beberapa mekanisme yang berperilaku berbeda bagi gateway: alamat pada instans, prefiks yang dirutekan, atau tidak sama sekali. Hanya prefiks yang dirutekan memungkinkan server memberi alamat kepada klien dengan cara biasa. Menganggap alamat IPv6 yang bekerja di host berarti prefiks klien yang dapat dipakai adalah kesalahan yang muncul kemudian sebagai konektivitas setengah rusak. Inilah jenis kesalahan yang lolos dari setiap uji yang hanya dilakukan dengan IPv4.
Jika penyedia tidak merutekan prefiks apa pun, putuskan apakah terowongannya hanya IPv4 dan apakah klien harus diberi tahu. Ketiadaan yang terdokumentasi lebih aman daripada konfigurasi sebagian yang diam-diam melempar tujuan IPv6 ke lubang hitam bagi pengguna yang terhubung.
Buktikan dari klien luar
Status layanan lokal menjelaskan satu proses di satu host. Uji yang berguna adalah klien sah di jaringan lain, yang terhubung dengan profil yang hendak Anda sebarkan, lalu mencapai aplikasi dan menyelesaikan nama. Sambungkan ulang sekali juga, karena terowongan yang hanya berhasil pada percobaan pertama tidak memenuhi syarat yang paling penting dalam praktik.
sudo wg show wg0 latest-handshakes
ip -4 route get 203.0.113.44
sudo journalctl -u wg-quick@wg0 -n 15 --no-pager
Pertahankan dasar operasional di samping uji: ruang untuk pembaruan, log terbatas, akses administratif yang tidak bergantung pada terowongan, konsol pemulihan, dan catatan tentang apa yang terjadi pada profil klien saat instans dibangun ulang dan alamat publiknya berubah. Jika antarmuka atau model penerusan yang diperlukan memang tidak tersedia, tidak ada perubahan di sisi klien yang akan menyediakannya, dan langkah berikutnya yang jujur adalah jenis instans lain, bukan konfigurasi lebih banyak.