Kebanyakan orang membaca file .ovpn seperti membaca halaman pengaturan router: alamat, rute, daftar sandi. Bagian yang menjalankan kode berada dekat bagian bawah, di samping direktif yang tampak seperti pekerjaan pipa, dan berjalan dengan hak akses apa pun yang sudah dimiliki klien. Itulah celah yang dimanfaatkan profil yang lalai atau jahat, dan juga celah yang mengubah pembantu DNS yang berguna menjadi masalah dukungan tiga minggu kemudian. Direktif peristiwa, tingkat keamanan, dan kepemilikan file menentukan apa yang bisa terjadi; isi skrip menentukan apa yang sebenarnya terjadi. Baca keempatnya sebelum Anda terhubung.

Profil yang menjalankan pembantu adalah program, bukan file pengaturan

Direktif seperti route dan dhcp-option menggambarkan keadaan yang harus dibangun klien, dan klien memperlakukannya sebagai data. Skrip up berbeda: klien menjalankannya sebagai proses dan memberinya lingkungan penuh detail koneksi, jadi apa pun yang ditulis penulisnya berjalan dengan hak akun Anda. Di laptop tempat pengguna adalah administrator, itu pintu lebar bagi file yang datang sebagai lampiran atau tempelan dari utas forum. Perbedaannya bukan gaya, itu perbedaan antara konfigurasi dan kode.

Mitos yang layak dipensiunkan adalah bahwa profil hanya dapat mengalihkan lalu lintas. Pembantu yang menjalankan ip route add dan yang menjalankan curl ke host jauh adalah mekanisme yang sama, dan profilnya tampak identik dari luar. Tidak ada apa pun pada tampilan file yang memberi tahu mana yang Anda miliki, karena itu tinjauan harus mencapai skrip itu sendiri.

Apa yang sebenarnya menentukan eksekusi, dan seperti apa baris yang mengizinkannya

Tiga hal mengatur pembantu: direktif peristiwa yang menamainya, tingkat script-security yang mengizinkannya, dan implementasi platform klien itu sendiri. Profil dapat meminta kait dan tetap tidak melihat apa pun terjadi, karena klien seluler atau build desktop yang dipangkas mungkin tidak menerapkan peristiwa itu sama sekali. Sama halnya, profil yang meminta izin lebih dari yang dibutuhkan fungsinya memberi tahu Anda sesuatu tentang asalnya. Tingkat izin adalah kemampuan, bukan persetujuan. Baris yang mengizinkannya tampak seperti ini, dengan jalur yang menggantikan jalur Anda.

script-security 2
up /etc/openvpn/update-resolv-conf.sh
down /etc/openvpn/update-resolv-conf.sh

Tingkat 0 menolak program eksternal dan tingkat 1, yang bawaan, hanya mengizinkan berkas eksekusi bawaan klien, jadi kait membutuhkan 2 atau lebih tinggi; tingkat 3 ada terutama untuk meneruskan kata sandi lama dan sebaiknya dihindari. Profil yang dikirim dengan kait membutuhkan direktif dan tingkat itu sekaligus, karena itu satu baris dekat bagian bawah file layak mendapat pemeriksaan yang sama seperti blok sertifikat. Panduan OpenVPN mencantumkan tingkat izin, dan kata-katanya layak dibaca di samping apa yang sebenarnya diminta profil.

Kepemilikan, jalur, dan apa yang diberi makan kepada pembantu

Profil yang Anda percaya tetapi menunjuk ke skrip yang dapat ditulis ulang akun lain bukan pengaturan yang tepercaya, karena tinjauan kemarin tidak lagi menggambarkan apa yang berjalan hari ini. Periksa pemilik dan mode pembantu, dan periksa bahwa jalur yang dikonfigurasi mengarah ke file yang Anda periksa, bukan ke nama yang dapat dinaungi hal lain. Argumen dan lingkungan layak mendapat pandangan yang sama: klien meneruskan detail koneksi ke kait, dan pembantu yang mencatat seluruh lingkungannya mungkin menulis kredensial ke tiket dukungan. Utamakan integrasi terdokumentasi dari operator atau platform daripada skrip DNS yang disalin dari kiriman tak terkait, karena dua manajer resolver yang berebut file yang sama menghasilkan kegagalan yang tampak seperti VPN rusak.

Saat melaporkan kait yang gagal, sunting lingkungan sebelum menempelkannya di mana pun. Dump yang membantu Anda men-debug juga dapat membawa token yang mengautentikasi Anda.

Kegagalan pembersihan muncul setelah terowongan hilang

Pembantu up menambahkan rute dan pengaturan resolver, dan pembantu down seharusnya mengambilnya kembali. Ketika kait down tidak ada, gagal diam-diam, atau tidak pernah berjalan karena klien dibunuh, sisa-sisanya hidup lebih lama dari sesi. Lalu lintas kemudian menempuh jalur yang tidak direncanakan siapa pun dan nama diselesaikan melalui resolver yang seharusnya sudah dihapus, sementara terowongannya sendiri tampak sehat. Gejala itu datang setelah pemutusan, karena itu jaringan yang disalahkan, bukan profilnya.

Uji pembongkaran sebagai langkah tersendiri: naikkan terowongan, catat rute dan resolver, turunkan, lalu pastikan keduanya hilang. Profil yang terhubung bersih tetap dapat meninggalkan keadaan, dan kode keluar nol dari pembantu tidak membuktikan resolver berakhir di tempat yang Anda pikirkan.

Meninjau pembantu dan menyimpan jalan keluar

Baca skrip dari awal sampai akhir mencari tiga hal: perintah yang membutuhkan izin, jalur berkode keras yang mungkin tidak ada di sistem Anda, dan setiap panggilan jaringan yang dilakukannya. Lalu lihat bagaimana ia gagal, karena pembantu yang menelan kesalahan mengubah kesalahan konfigurasi menjadi misteri. Jika Anda tidak dapat menyatakan dalam satu kalimat apa yang dilakukan skrip dan siapa yang dapat mengubahnya, Anda belum siap mengaktifkannya. Profil yang meminta izin lebih dari yang dibutuhkan kalimat itu adalah tanda untuk berhenti.

Simpan profil terakhir yang berfungsi dan pembantu yang dirujuknya di penyimpanan terlindungi, dengan kedua versinya dicatat, agar pemulihan menjadi salinan dan bukan pembangunan ulang pada saat terburuk. Jika pembantu hanya ada untuk distribusi atau versi klien yang tidak lagi membutuhkannya, pensiunkan ia di konfigurasi yang memiliki pengaturan itu daripada menaikkan izin sampai kesalahan berhenti. Itulah jalan keluarnya: lebih sedikit bagian bergerak, bukan lebih banyak izin.

Artikel terkait