Cara mengukur masa operasi klien OpenVPN dengan cangkuk up dan down
OpenVPN tiada pembilang masa operasi. Simpan cap epoch daripada cangkuk up, hapuskannya pada down, tolak dan kekalkannya jujur merentas permulaan semula dan contoh.
Papan pemuka meminta nombor berapa lama sambungan telah aktif, dan OpenVPN tidak menyediakannya. Klien tahu bila terowongnya naik, tetapi hanya jika sesuatu merekodkan saat itu sebelum keadaan sesi hilang. Tempat yang disokong ialah cangkuk up, dan nilai yang wajar disimpan ialah saat epoch mentah dan bukan rentetan berformat. Semua selepas itu ialah aritmetik, ditambah beberapa peraturan susunan yang menentukan sama ada nombor itu kekal jujur.
Pastikan cangkuk benar-benar berjalan
Buktikan cangkuk tercetus sebelum merancang apa-apa di sekelilingnya. Konfigurasi klien minimum memerlukan script-security 2 serta laluan eksplisit up dan down; tanpa baris keselamatan OpenVPN enggan melaksanakan skrip dan menyatakannya dengan jelas. Tambah up-restart dan down-pre pada masa yang sama supaya laluan mula semula dan pembongkaran berkelakuan boleh diramal.
Jadikan versi pertama cangkuk itu menambahkan persekitarannya ke fail dan tidak melakukan apa-apa lagi. Itu memberitahu anda nama pemboleh ubah yang benar-benar dieksport oleh binaan anda, seperti dev dan script_type, bukan yang anda ingat daripada versi lain. Jalankan satu sambungan dan satu pemutusan, kemudian baca fail itu. Jika tiada apa yang muncul, berhenti di sini, kerana reka bentuk cap masa pada cangkuk yang tidak pernah berjalan akan kelihatan seperti kegagalan pemantauan selama berminggu-minggu.
Periksa sebagai pengguna mana cangkuk itu berjalan. Dengan user dan group ditetapkan, OpenVPN melepaskan keistimewaan sebelum menjalankan skrip, jadi direktori yang root boleh tulis mungkin tertutup kepada cangkuk. Pilih laluan dari sudut pandangan perkhidmatan, bukan shell anda.
Rekod satu nilai epoch dan hapuskannya dengan sengaja
Cangkuk up memerlukan satu baris, date +%s > /run/openvpn-client.started, dengan laluan diselaraskan bagi setiap contoh. Nilai epoch mengelakkan soalan bahasa, zon waktu dan format kemudian, dan ia ialah nombor yang sama yang boleh dibandingkan oleh ejen pemantauan dengan jamnya sendiri.
Menghapus sama pentingnya dengan menulis. Cangkuk down patut mengosongkan atau membuang fail itu, dan down-pre menjadikannya berlaku sebelum antara muka ditutup, yang menghapuskan tetingkap apabila fail menggambarkan terowong yang sudah pergi. up-restart kemudian menyegarkan cap itu pada mula semula dalaman dan bukan membiarkan nilai asal di tempatnya. Tanpa pasangan itu, mula semula selepas tamat masa ping menghasilkan nombor yang terus meningkat semasa terowong dibina semula.
Pilih lokasi dengan jangka hayat yang betul. Fail di bawah /run hilang semasa but semula, yang sepadan dengan realiti, manakala fail di bawah /tmp boleh dibersihkan secara tidak dijangka dan satu dalam direktori konfigurasi kekal dengan cara yang mengelirukan. Tetapkan kebenaran supaya hanya pengguna perkhidmatan dan pembaca pemantauan boleh membacanya.
Kira masa operasi tanpa mempercayai baris log
Baca saat yang disimpan, baca saat semasa, tolak. Apabila fail tiada atau kosong, jawapan jujurnya ialah tiada terowong aktif, bukan bahawa masa operasi ialah sifar, kerana kedua-dua keadaan itu sepatutnya menimbulkan amaran berbeza. Simpan saat mentah dalam muatan pemantauan dan format hari serta jam pada lapisan paparan. Pemformat yang membundarkan di dalam pengeksport membuang ketepatan yang seseorang akan mahukan semasa insiden.
Menghuraikan cap masa log ialah jalan pintas yang menggodakan, dan ia gagal dalam tiga cara: format mengikut apa sahaja pilihan yang ditetapkan, putaran membuang sejarah, dan sambungan semula muncul sebagai sesi berasingan dan bukan satu terowong berterusan. Cangkuk merekodkan peristiwa itu sekali, pada saat ia berlaku.
Apabila pemeriksaan berjalan pada hos lain, hantar cap masa dan bukan tempoh supaya pembaca menggunakan jamnya sendiri. Hasil negatif kecil kemudian dibaca sebagai sisihan jam dan bukan cangkuk rosak.
Liputi sambungan semula, mula semula dan berbilang contoh
Dua terowong pada satu hos memerlukan dua fail, dikunci dengan nama contoh yang sudah digunakan oleh perkhidmatan. Laluan kongsi bermakna sambungan terbaharu menimpa masa mula setiap profil, dan gejalanya ialah nombor yang melompat ke belakang apabila terowong kedua bermula.
Tingkah laku sambungan semula wajar diuji sendiri, kerana di situlah reka bentuk yang munasabah melaporkan perkara yang salah secara senyap. Paksa mula semula dengan menjatuhkan rakan atau menghantar isyarat kepada proses, kemudian bandingkan keadaan antara muka dengan fail. Cap masa sepatutnya bergerak ke hadapan pada saat terowong kembali.
Di sebelah pelayan, fail status membawa nilai connected-since bagi setiap klien, yang menjawab soalan berbeza: bila pelayan terakhir melihat rakan itu. Gunakannya untuk semakan silang dan bukan sebagai pengganti, kerana ia hilang bersama sesi yang digambarkannya. Kedua-dua ukuran tidak mengatakan apa-apa tentang kesihatan aplikasi di belakang terowong.
Jalankan tiga pemeriksaan yang menangkap pepijat susunan
Uji sambungan biasa, sambungan semula paksa dan hentian bersih, sambil membaca senarai antara muka dan fail itu bersama selepas setiap satu. Cap yang masih ada selepas hentian bersih, atau fail yang mendakwa terowong yang tiada dalam senarai antara muka, menunjuk terus kepada susunan cangkuk. Jalankan pemeriksaan sebagai pengguna perkhidmatan dan dengan laluan perkhidmatan, kerana shell root boleh melihat fail lain dan memberi jawapan salah dengan yakin. Kemudian biarkan pengundi perlahan membaca fail itu dan pastikan ia tidak pernah menulis ke dalamnya.
Undian setiap enam puluh saat meliputi amaran, dan tiada cangkuk patut bergantung pada pengundi itu masih hidup. Asingkan kedua-dua tanggungjawab itu dan nombor kekal boleh dipercayai apabila mana-mana pihak digerakkan semula.