Cara menjalankan OpenConnect di latar belakang selepas log masuk interaktif
Selesaikan log masuk di latar hadapan, kemudian serahkan terowong kepada mod latar belakang klien sendiri. Pemeriksaan yang menjadikannya mudah dicari dan dihentikan.
Anda menamatkan gesaan MFA, terowong naik, dan menutup terminal turut memutuskan sambungan. Ini masalah penyeliaan, bukan pengesahan, dan OpenConnect sudah menyertakan suis yang menyelesaikannya. Penyelesaiannya ialah membiarkan klien bercabang ke latar belakang selepas permulaan selesai, apabila bahagian interaktif benar-benar tamat. Berikut ialah urutan pemeriksaan: lakukan mengikut urutan dan berhenti pada yang pertama yang tidak berlaku untuk gateway anda.
Sahkan apa yang gateway perlukan semasa log masuk
Sebelum menaip arahan, catat laluan kelayakan yang dikuatkuasakan oleh penggunaan. Hanya sijil, kata laluan serta token, dan perjalanan pelayar melalui penyedia SAML berkelakuan berbeza, dan mod latar belakang tidak boleh melangkau mana-mana. Pilihan ini mengubah apa yang berlaku selepas permulaan, bukan semasanya.
Jalan pintas yang menggoda ialah mengautomasikan gesaan. Pembalut yang menaip jawapan tetap apabila mengenal pasti gesaan kata laluan akan rosak sebaik gateway meminta kod sekali guna, dan meninggalkan kelayakan dalam fail yang boleh dibaca akaun lain. Jika seseorang perlu meluluskan sesi, kekalkan orang itu dalam proses.
Jalankan sesi pertama di latar hadapan dan baca outputnya
Sambung sekali seperti biasa dan biarkan seluruh jabat tangan dicetak. Catat protokol yang digunakan, laluan sijil atau token, alamat terowong yang diberikan pelayan, dan setiap amaran sebelum sambungan diterima. Transkrip itu ialah garis dasar anda dan satu-satunya cara murah untuk membezakan masalah klien daripada perubahan gateway kemudian. Simpan di luar penampan terminal.
Kemudian ulangi seruan yang sama dengan mod latar belakang dan fail PID ditambah, contohnya openconnect --background --pid-file /run/openconnect.pid vpn.example.net, sambil mengekalkan protokol dan pilihan pengesahan yang diperlukan gateway pada baris yang sama. Manual OpenConnect menerangkan pilihan itu sebagai penerusan di latar belakang selepas permulaan selesai, dan itulah sebabnya fasa interaktif mesti tamat dahulu.
Jadikan proses yang berjalan mudah dicari dan dihentikan
Fail PID hanya bukti selagi sepadan dengan proses hidup. Letakkan dalam direktori milik akaun perkhidmatan, dan bandingkan nombor tercatat dengan jadual proses sebelum menghantar isyarat. But semula dan ranap meninggalkan fail, dan fail usang ialah sebab biasa skrip henti melaporkan kejayaan sedangkan terowong masih naik. Anggap pemeriksaan sebagai bahagian prosedur henti, bukan langkah pilihan.
Hantar isyarat kepada PID yang disahkan, kemudian sahkan antara muka terowong benar-benar hilang dan bukan mempercayai status keluar. Jika klien memerlukan keistimewaan tinggi untuk mengkonfigurasi antara muka, isyarat mesti datang dari akaun yang dibenarkan menghantarnya.
Jangan tindan mod latar belakang di bawah penyelia
systemd dan penyelia serupa menjangka memiliki proses yang mereka lancarkan, sebab itu klien yang bercabang keluar mengelirukan mereka. Penyelia melihat pelancar keluar sementara sambungan sebenar terus hidup, jadi logik mula semula, pelaporan status dan had masa henti menerangkan sesuatu yang tidak lagi benar. Tulis unit dalam susunan latar hadapan yang disokong dan biarkan penyelia melakukan kerja daemon.
Simpan --background untuk sesi yang dimulakan seseorang dan kemudian ditinggalkan. Jika keperluan ialah terowong yang wujud sebelum sesiapa log masuk, bahagian yang hilang ialah identiti bukan interaktif yang diluluskan serta pelan pembaharuannya, dan tiada bendera baris arahan menyediakan mana-mana. Menambah bendera pada skrip but menghasilkan terowong yang gagal senyap pada kelayakan tamat tempoh pertama.
Anggap cookie sesi sebagai kelayakan
OpenConnect mendokumentasikan fasa pengesahan berasingan melalui --authenticate, dan bahan yang terhasil boleh dikembalikan dengan --cookie-on-stdin. Pasangan itu wujud untuk kerja integrasi, dan apa yang dihasilkannya sama sensitif dengan kata laluan yang menciptanya.
Jauhkan nilai daripada sejarah shell, log dan mana-mana tiket yang anda buka. Skrip penyerahan juga mesti mengekalkan maklumat titik akhir yang disahkan yang diterima klien bersama cookie; jika hilang, jalanan kemudian mungkin bersambung ke hos yang tidak pernah anda sahkan, yang lebih teruk daripada sambungan yang sekadar gagal.
Lalui senarai sebelum menutup terminal
Empat perkara mesti benar: log masuk interaktif tamat di latar hadapan, fail PID menunjuk proses yang anda sahkan, persoalan penyelia sudah diputuskan ke satu arah, dan cookie mempunyai pelan penyimpanan yang bukan fail teks biasa. Apabila keempat-empatnya berlaku, meninggalkan terminal adalah selamat dan terowong terus berjalan.
Jika salah satu gagal, betulkan item itu sebelum menyentuh yang lain, kerana pemeriksaan lain tidak dapat menampungnya. Simpan juga transkrip latar hadapan daripada jalanan pertama: apabila terowong jatuh tanpa amaran nanti, garis dasar itulah yang memisahkan perubahan di pihak gateway daripada pihak klien.