Hook klien atau hook pelayan? Di mana skrip OpenVPN berjalan
Laluan skrip dalam konfigurasi pelayan ialah laluan pada pelayan itu. Pilih hook mengikut mesin yang perlu melakukan kerja, dan berhenti mengharapkan push menjalankan kod pada komputer riba.
Tugasnya jelas: apabila komputer riba menyambung, sesuatu pada komputer riba itu sepatutnya berubah. Konfigurasi yang sedang diedit milik pelayan, dan di situlah andaian itu pecah. Laluan dalam fail pelayan menamakan fail pada pelayan itu, dan berapa banyak pun push tidak mengubah proses siapa yang menjalankannya. Memilih antara dua hook itu kebanyakannya soal memutuskan mesin mana yang memiliki kerja itu dan menerima had yang menyusul.
Dua mesin, dua soalan yang perlu dijawab dahulu
Tanya di mana perubahan keadaan perlu berlaku, kemudian tanya peristiwa mana yang sepadan dengannya. Jika perubahan itu kebenaran setiap pengguna atau keputusan konfigurasi setiap klien, ia tergolong di tempat direktori pengguna diketahui: pelayan. Jika perubahan itu laluan, tetapan resolver atau pembantu tempatan pada titik akhir, ia tergolong pada titik akhir, dan hanya titik akhir boleh melakukannya.
Menjawab kedua-dua soalan itu dalam urutan terbalik ialah cara orang akhirnya cuba menolak fail kelompok ke komputer riba Windows. Pelayan tahu siapa yang menyambung; komputer riba tahu bagaimana rupa tindanan rangkaiannya sendiri. Tiada satu pun mempunyai maklumat yang lain, dan percubaan itu biasanya gagal secara senyap dan bukannya dengan ralat yang jelas.
Sebelum kedua-duanya, wajar ditanya soalan ketiga: adakah platform itu sendiri menawarkan hook yang anda mahu? Perkakas yang menjana konfigurasinya sendiri mungkin tidak menawarkan nama peristiwa yang sama, dan klien desktop yang mengimport fail .ovpn belum tentu klien yang sama dengan tempat fail itu ditulis. Mengesahkan platform dahulu menyelamatkan anda daripada mereka bentuk di sekeliling hook yang tidak wujud di sana. Ia juga memberitahu anda dokumentasi mana yang benar-benar terpakai pada mesin di hadapan anda.
Pilihan di pihak pelayan: satu peristiwa bagi setiap sambungan
Skrip client-connect berjalan dalam konteks proses pelayan apabila klien yang disahkan menyambung, dan ia menerima butiran sambungan yang didokumenkan seperti common name dan alamat yang diperuntukkan. Ia tempat yang betul untuk menulis serpihan konfigurasi setiap klien, melaksanakan keputusan dasar atau merekod keadaan yang dimiliki pelayan.
Perbezaan yang orang terlepas pandang ialah perbezaan antara hook itu dan hook up pelayan. Hook up tercetus apabila pelayan membuka peranti terowongnya, yang berlaku sekali semasa daemon bermula pada pelayan berbilang klien. Ia bukan peristiwa setiap log masuk, dan kod yang diletakkan di situ berjalan apabila perkhidmatan bermula dan bukan apabila pengguna menyambung.
Pada perkakas dengan antara muka web, gunakan mekanisme sambungan yang disokong dan bukannya mengedit fail daemon yang dijana. Fail yang dijana ditulis semula pada penyimpanan seterusnya, dan penulisan semula itu membuang perubahan anda secara senyap pada saat paling buruk. Simpan salinan teks sambungan di luar perkakas supaya kemas kini firmware tidak turut kehilangan niat.
Pilihan di pihak klien: kerja yang mesti berjalan secara setempat
Klien komuniti boleh menjalankan skrip setempat apabila peranti terowong muncul dan sekali lagi apabila laluan dipasang. Itu dua saat yang berbeza, dan memilih yang salah menghasilkan perlumbaan klasik di mana pembantu bermula sebelum laluan yang menjadi kebergantungannya wujud.
Pembantu itu mesti wujud pada klien tersebut, boleh dibaca dan dilaksanakan oleh akaun yang menjalankan klien, dan dibenarkan oleh tetapan script-security yang jelas. Skrip yang berfungsi apabila anda melancarkan klien sebagai pentadbir tidak memberitahu apa-apa tentang perkhidmatan sebelum log masuk atau sesi pengguna lain.
Penamaan juga penting. Hook up sepadan dengan penciptaan peranti dan route-up dengan pemasangan laluan, tetapi tugas yang memerlukan rangkaian persendirian boleh dicapai harus mengesahkan kebolehcapaian dan bukannya menganggap penciptaan peranti bermakna setiap laluan, entri resolver dan aplikasi sudah sedia.
Mengapa menolak kod boleh laku tiada dalam pilihan
Pilihan yang ditolak dengan push sengaja dihadkan, dan pilihan yang menjalankan skrip tergolong dalam kategori yang pelayan tidak dibenarkan menurunkan. Kekangan itu wujud kerana alternatifnya akan membenarkan pelayan yang terjejas atau salah dikonfigurasi menjalankan arahan sewenang-wenangnya pada setiap klien yang pernah menyambung.
Mendayakan pelaksanaan skrip secara setempat tidak mengubah itu. Tetapan script-security anda membenarkan skrip setempat yang anda pilih; ia tidak memberi kuasa kepada pelayan untuk membekalkan yang baharu.
Jika matlamatnya hanya memasang laluan VPN, gunakan konfigurasi laluan yang disokong dan bukannya mencipta skim pelaksanaan jauh. Jika matlamatnya benar-benar memerlukan kod setempat, edarkannya melalui alat pengurusan titik akhir organisasi dan semak ia seperti mana-mana perisian lain yang berjalan dengan keistimewaan pengguna.
Apa yang perlu disahkan sebelum mempercayai mana-mana hook
Tulis empat perkara bagi setiap hook: mesin, nama peristiwa, akaun yang menjalankannya, dan perubahan keadaan yang sepatutnya dihasilkan. Kemudian uji sambungan, sambungan semula dan laluan pembersihan, kerana hook yang membocorkan keadaan semasa sambung semula lebih buruk daripada hook yang tidak pernah berjalan.
Uji di bawah akaun yang benar-benar akan melaksanakannya, pada saat ia benar-benar akan dilaksanakan. Manual openvpn(8) mendokumenkan kedua-dua keluarga hook dan kekangan push; platform tempat anda menggunakan mendokumenkan sama ada ia mendedahkannya sama sekali. Skrip yang berjaya dalam terminal pentadbir interaktif ialah hipotesis, bukan pengesahan.